summaryrefslogtreecommitdiff
path: root/npc/029-1/valon.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/029-1/valon.txt')
-rwxr-xr-xnpc/029-1/valon.txt137
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;
+}