diff options
Diffstat (limited to 'npc/029-1/valon.txt')
-rwxr-xr-x | npc/029-1/valon.txt | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/npc/029-1/valon.txt b/npc/029-1/valon.txt new file mode 100755 index 00000000..d8b3a0c6 --- /dev/null +++ b/npc/029-1/valon.txt @@ -0,0 +1,137 @@ +- script #ValonConfig NPC32767,{ + end; + +OnInit: + setarray $@ValonMob, 1002,1050,1046,1003; + setarray $@ValonMobName$, "Maggots","House Maggots","Tame Scorpions","Scorpion"; + setarray $@ValonMobCnt, 10,5,3,1; + end; +} +function script ValonCount { + @valon_mob = 0; + if (QL_VALON >= 2) + @valon_mob = (QL_VALON - 2); + @valon_count = ((STARTAREA & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT); + return; +} +function script ResetValonCntMask { + STARTAREA = (STARTAREA & ~(NIBBLE_2_MASK) | (0 << NIBBLE_2_SHIFT)); + return; +} +function script AddValonCntMask { + @valon_tmp = (@valon_count + 1); + if (@valon_tmp > $@ValonMobCnt[@valon_mob]) + @valon_tmp = $@ValonMobCnt[@valon_mob]; + STARTAREA = (STARTAREA & ~(NIBBLE_2_MASK) | (@valon_tmp << NIBBLE_2_SHIFT)); + @valon_tmp = 0; + callfunc "ValonProgress"; + return; +} +function script ValonProgress { + callfunc "ValonCount"; + if ((QL_VALON > 1) && (QL_VALON < 6)) + message strcharinfo(0), $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob]; + return; +} +029-1,74,86,0 script ValonDebug NPC156,{ + mes "[Valon Debug]"; + mes "Reset?"; + menu + "Yes.", L_Reset, + "No.", L_close; + +L_Reset: + QL_VALON = 0; + STARTAREA = (STARTAREA & ~(NIBBLE_2_MASK) | (0 << NIBBLE_2_SHIFT)); + mes "Reset!"; + goto L_close; + +L_close: + close; + +OnInit: + if (!debug) + disablenpc "ValonDebug"; + end; +} +029-1,72,86,0 script Valon NPC156,{ + callfunc "PCtoNPCRange"; + if(@npc_check) end; + + callfunc "ValonCount"; + if (QL_VALON >= 6) + goto L_QuestComplete; + if (QL_VALON == 1) + goto L_QuestAskAgain; + if (@valon_count >= $@ValonMobCnt[@valon_mob]) + goto L_NextMob; + if ((QL_VALON >= 2) && (QL_VALON < 6)) + goto L_QuestStarted; + goto L_QuestAsk; + +L_QuestAskAgain: + mes "[Valon]"; + mes "\"Hello, Adventurer! Have you come back to help?\""; + menu + "Yes. I will help with the island beasts.", L_Accept, + "Maybe some other time.", L_close; + +L_QuestAsk: + mes "[Valon]"; + mes "\"Hello!"; + mes "You're looking for adventures, right?\""; + mes "\"But you shouldn't underestimate this island, it is dangerous.\""; + mes "\"It's crawling with scorpions, and the heat has overcome adventurers tougher than you are.\""; + mes "\"I should know I guard this gate from all manner of island beasts.\""; + mes "\"Maybe you would like help and earn your stripes?\""; + mes "\"The Council of Wizard's does offer a reward for helping...\""; + QL_VALON = 1; + callfunc "ResetValonCntMask"; + menu + "YES!!! let me at them!", L_Accept, + "Maybe some other time.", L_close; + +L_Accept: + QL_VALON = 2; + callfunc "ValonCount"; + goto L_NewMob; + +L_NextMob: + getexp 40, 0; + mes "\"I see you killed all the " + $@ValonMobName$[@valon_mob] + " needed.\""; + mes "\"The Wizard's thank thee as well.\""; + Zeny = Zeny + 25; + QL_VALON = (QL_VALON + 1); + callfunc "ResetValonCntMask"; + callfunc "ValonCount"; + if (@valon_mob == getarraysize($@ValonMob)) + goto L_QuestOver; + goto L_NewMob; + +L_NewMob: + mes "\"Let's see whats on the list. Ah ok, I need you to kill me " + $@ValonMobCnt[@valon_mob] + " " + $@ValonMobName$[@valon_mob] + "\""; + mes "\"I'll be waiting here, come back and see after you've killed those mobs.\""; + goto L_close; + +L_QuestStarted: + mes "[Valon]"; + mes "Hail adventurer! You are well on your way to mastering the beasts of the island.\""; + mes "\"You need to kill " + $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob] + "\""; + mes "\"Come back and see me when the job is done.\""; + goto L_close; + +L_QuestOver: + mes "[Valon]"; + mes "\"Thanks once again for helping with the monsters in the island.\""; + getexp 50, 0; + QL_VALON = (QL_VALON + 1); + goto L_close; + +L_QuestComplete: + mes "[Valon]"; + mes "\"Thanks once again for helping with the monsters in the island.\""; + goto L_close; + +L_close: + close; +} |