[CD3.55] Working Keymaker system.....thanks to IDABIGA

dagras

LOMCN Veteran
Veteran
Feb 6, 2011
282
3
44
Envir/MapQuest.txt:-

D1105 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyZTKR] GROUP
D1106 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyZTKR]
D503 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyWTKR] GROUP
D504 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyWTKR]
D704 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyASTKR] GROUP
D705 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyASTKR]
D804 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyDVKR] GROUP
D805 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyDVKR]
D904 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyRMVKR] GROUP
D905 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyRMVKR]
D20023 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyDCKR] GROUP
D2004 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyDCKR]
D1505 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyNRKR] GROUP
D1506 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyNRKR]
D2204 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeySTKR] GROUP
D2205 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeySTKR]
D1011 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyPTKR] GROUP
D1012 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyPTKR]
D1304 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyBPKR] GROUP
D1305 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyBPKR]
D2104 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyFDKR] GROUP
D2107 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyFDKR]
D1205 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyJPKR] GROUP
D1206 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyJPKR]
D1405 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyMSKR] GROUP
D1406 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyMSKR]
D2906 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyLTKR] GROUP
D2907 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyLTKR]
D2503 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyWOKR] GROUP
D2601 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyWOKR]
D604 [0] 0 [MonDie] Keymaker * [EventSystem\KeyMakerCall] [@AddKeyPSCKR] GROUP
D605 [0] 0 [Enter] * * [EventSystem\KeyMakerCall] [@CheckKeyPSCKR]

Envir/QuestDuary/EventSystem/KeymalerCall.txt

;;不要删掉此行
[@CheckKeyDCKR]
#ACT
Mov A1 "DCKR"
Goto @CheckKey
[@CheckKeyWTKR]
#ACT
Mov A1 "WTKR"
Goto @CheckKey1
[@CheckKeyASTKR]
#ACT
Mov A1 "ASTKR"
Goto @CheckKey2
[@CheckKeyBPKR]
#ACT
Mov A1 "BPKR"
Goto @CheckKey3
[@CheckKeyDVKR]
#ACT
Mov A1 "DVKR"
Goto @CheckKey4
[@CheckKeyFDKR]
#ACT
Mov A1 "FDKR"
Goto @CheckKey5
[@CheckKeyJPKR]
#ACT
Mov A1 "JPKR"
Goto @CheckKey6

[@CheckKeyLTKR]
#ACT
Mov A1 "LTKR"
Goto @CheckKey7
[@CheckKeyMSKR]
#ACT
Mov A1 "MSKR"
Goto @CheckKey8

[@CheckKeyNRKR]
#ACT
Mov A1 "NRKR"
Goto @CheckKey9
[@CheckKeyPSCKR]
#ACT
Mov A1 "PSCKR"
Goto @CheckKey10
[@CheckKeyPTKR]
#ACT
Mov A1 "PTKR"
Goto @CheckKey11
[@CheckKeyRMVKR]
#ACT
Mov A1 "RMVKR"
Goto @CheckKey12
[@CheckKeySTKR]
#ACT
Mov A1 "STKR"
Goto @CheckKey13
[@CheckKeyWOKR]
#ACT
Mov A1 "WOKR"
Goto @CheckKey14
[@CheckKeyZTKR]
#ACT
Mov A1 "ZTKR"
Goto @CheckKey15

[@CheckKey]
#ACT
Mov A0 %USERNAME
LoadValue D1 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D1 1
#ACT
Dec D1 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D1
SysMsg "Your In! You now have <$OUTPUT(D1)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey1]
#ACT
Mov A0 %USERNAME
LoadValue D15 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D15 1
#ACT
Dec D15 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D15
SysMsg "Your In! You now have <$OUTPUT(D15)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey2]
#ACT
Mov A0 %USERNAME
LoadValue D2 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D2 1
#ACT
Dec D2 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D2
SysMsg "Your In! You now have <$OUTPUT(D2)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"
[@CheckKey3]
#ACT
Mov A0 %USERNAME
LoadValue D3 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D3 1
#ACT
Dec D3 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D3
SysMsg "Your In! You now have <$OUTPUT(D3)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"
[@CheckKey4]
#ACT
Mov A0 %USERNAME
LoadValue D4 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D4 1
#ACT
Dec D4 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D4
SysMsg "Your In! You now have <$OUTPUT(D4)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"
[@CheckKey5]
#ACT
Mov A0 %USERNAME
LoadValue D5 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D5 1
#ACT
Dec D5 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D5
SysMsg "Your In! You now have <$OUTPUT(D5)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey6]
#ACT
Mov A0 %USERNAME
LoadValue D6 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D6 1
#ACT
Dec D6 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D6
SysMsg "Your In! You now have <$OUTPUT(D6)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey7]
#ACT
Mov A0 %USERNAME
LoadValue D7 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D7 1
#ACT
Dec D7 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D7
SysMsg "Your In! You now have <$OUTPUT(D7)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"
[@CheckKey8]
#ACT
Mov A0 %USERNAME
LoadValue D8 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D8 1
#ACT
Dec D8 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D8
SysMsg "Your In! You now have <$OUTPUT(D8)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey9]
#ACT
Mov A0 %USERNAME
LoadValue D9 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D9 1
#ACT
Dec D9 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D9
SysMsg "Your In! You now have <$OUTPUT(D9)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey10]
#ACT
Mov A0 %USERNAME
LoadValue D10 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D10 1
#ACT
Dec D10 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D10
SysMsg "Your In! You now have <$OUTPUT(D10)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"
[@CheckKey11]
#ACT
Mov A0 %USERNAME
LoadValue D11 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D11 1
#ACT
Dec D11 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D11
SysMsg "Your In! You now have <$OUTPUT(D11)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey12]
#ACT
Mov A0 %USERNAME
LoadValue D12 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D12 1
#ACT
Dec D12 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D12
SysMsg "Your In! You now have <$OUTPUT(D12)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey13]
#ACT
Mov A0 %USERNAME
LoadValue D13 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D13 1
#ACT
Dec D13 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D13
SysMsg "Your In! You now have <$OUTPUT(D13)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey14]
#ACT
Mov A0 %USERNAME
LoadValue D14 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D14 1
#ACT
Dec D14 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D14
SysMsg "Your In! You now have <$OUTPUT(D14)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

[@CheckKey15]
#ACT
Mov A0 %USERNAME
LoadValue D16 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
#IF
ELarge D16 1
#ACT
Dec D16 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D16
SysMsg "Your In! You now have <$OUTPUT(D16)> <$OUTPUT(A1)> Keys Left"
Enter_Ok
#ELSEACT
SysMsg "You do not have a key to this room!"

;;;;;;;;;;;



[@AddKeyDCKR]
#ACT
Mov A1 "DCKR"
Goto @AddKey
[@AddKeyWTKR]
#ACT
Mov A1 "WTKR"
Goto @AddKey1
[@AddKeyASTKR]
#ACT
Mov A1 "ASTKR"
Goto @AddKey2
[@AddKeyBPKR]
#ACT
Mov A1 "BPKR"
Goto @AddKey3
[@AddKeyDVKR]
#ACT
Mov A1 "DVKR"
Goto @AddKey4
[@AddKeyFDKR]
#ACT
Mov A1 "FDKR"
Goto @AddKey5
[@AddKeyJPKR]
#ACT
Mov A1 "JPKR"
Goto @AddKey6
[@AddKeyLTKR]
#ACT
Mov A1 "LTKR"
Goto @AddKey7
[@AddKeyMSKR]
#ACT
Mov A1 "MSKR"
Goto @AddKey8

[@AddKeyNRKR]
#ACT
Mov A1 "NRKR"
Goto @AddKey9
[@AddKeyPSCKR]
#ACT
Mov A1 "PSCKR"
Goto @AddKey10
[@AddKeyPTKR]
#ACT
Mov A1 "PTKR"
Goto @AddKey11
[@AddKeyRMVKR]
#ACT
Mov A1 "RMVKR"
Goto @AddKey12
[@AddKeySTKR]
#ACT
Mov A1 "STKR"
Goto @AddKey13

[@AddKeyWOKR]
#ACT
Mov A1 "WOKR"
Goto @AddKey14

[@AddKeyZTKR]
#ACT
Mov A1 "ZTKR"
Goto @AddKey15



[@AddKey]
#ACT
Mov A0 %USERNAME
LoadValue D1 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D1 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D1
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D1)> <$OUTPUT(A1)> Keys"
[@AddKey1]
#ACT
Mov A0 %USERNAME
LoadValue D15 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D15 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D15
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D15)> <$OUTPUT(A1)> Keys"

[@AddKey2]
#ACT
Mov A0 %USERNAME
LoadValue D2 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D2 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D2
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D2)> <$OUTPUT(A1)> Keys"
[@AddKey3]
#ACT
Mov A0 %USERNAME
LoadValue D3 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D3 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D3
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D3)> <$OUTPUT(A1)> Keys"
[@AddKey4]
#ACT
Mov A0 %USERNAME
LoadValue D4 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D4 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D4
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D4)> <$OUTPUT(A1)> Keys"
[@AddKey5]
#ACT
Mov A0 %USERNAME
LoadValue D5 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D5 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D5
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D5)> <$OUTPUT(A1)> Keys"
[@AddKey6]
#ACT
Mov A0 %USERNAME
LoadValue D6 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D6 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D6
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D6)> <$OUTPUT(A1)> Keys"
[@AddKey7]
#ACT
Mov A0 %USERNAME
LoadValue D7 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D7 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D7
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D7)> <$OUTPUT(A1)> Keys"
[@AddKey8]
#ACT
Mov A0 %USERNAME
LoadValue D8 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D8 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D8
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D8)> <$OUTPUT(A1)> Keys"
[@AddKey9]
#ACT
Mov A0 %USERNAME
LoadValue D9 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D9 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D9
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D9)> <$OUTPUT(A1)> Keys"

[@AddKey10]
#ACT
Mov A0 %USERNAME
LoadValue D10 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D10 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D10
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D10)> <$OUTPUT(A1)> Keys"

[@AddKey11]
#ACT
Mov A0 %USERNAME
LoadValue D11 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D11 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D11
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D11)> <$OUTPUT(A1)> Keys"
[@AddKey12]
#ACT
Mov A0 %USERNAME
LoadValue D12 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D12 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D12
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D12)> <$OUTPUT(A1)> Keys"
[@AddKey13]
#ACT
Mov A0 %USERNAME
LoadValue D13 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D13 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D13
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D13)> <$OUTPUT(A1)> Keys"

[@AddKey14]
#ACT
Mov A0 %USERNAME
LoadValue D14 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D14 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D14
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D14)> <$OUTPUT(A1)> Keys"

[@AddKey15]
#ACT
Mov A0 %USERNAME
LoadValue D16 "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1
Inc D16 1
SaveValue "QuestDiary\EventSystem\KeyMaker.txt" [%A0] %A1 %D16
SysMsg "<$OUTPUT(A1)> Key Added, you now have <$OUTPUT(D16)> <$OUTPUT(A1)> Keys"


Make A new txt in Eventsystem, call it Keymaker... no need to add anything to this as this is where the above script wrights data to.

many thanks to IDABIGA for help with this.
 
  • Like
Reactions: Churchill

idaBigA

Holley Mir 3!!
VIP
Oct 28, 2003
1,966
110
310
Stoke, UK
Ayup, you don't need all the CheckKey1...2 and the AddKey1..2.. Etc

Just make all of the AddKey**KR goto the same @AddKey routine. The same with the CheckKey. The first thing you see it doing is storing the name of the KR in A1, it then forwards to CheckKey where it checks the keys for whichever KR is stored in A1, so you only need 1 of those routines, not 1 for each KR.

I did it this way to make the script as small as possible and to re-use as much code as possible.

Hope that makes sense.