summaryrefslogtreecommitdiff
path: root/npc/024-10
diff options
context:
space:
mode:
Diffstat (limited to 'npc/024-10')
-rw-r--r--npc/024-10/eldrin.txt118
1 files changed, 116 insertions, 2 deletions
diff --git a/npc/024-10/eldrin.txt b/npc/024-10/eldrin.txt
index f03cea5a7..0298a174e 100644
--- a/npc/024-10/eldrin.txt
+++ b/npc/024-10/eldrin.txt
@@ -11,8 +11,122 @@
mesc l("The elf seems busy. He ignores you.");
close;
}
- mesn;
- mesq l("Sorry, we're not yet open.");
+ .@d=gettimeparam(GETTIME_DAYOFMONTH);
+ mesn l("Eldrin, Taskmaster");
+ mesq l("Hello, and welcome to Frostia bounty hunter guild.");
+ next;
+ mesn l("Eldrin, Taskmaster");
+ mesq l("I have bounties for specific high level monsters as well for extermination. Do note mobs killed in Heroes Hold may not count.");
+ next;
+ mesn l("Eldrin, Taskmaster");
+ mesq l("Be careful that they may be anywhere in the world, and the same rules as Tulimshar Guard House apply! So, are you here to apply or to report back?");
+ mesc l("Protip: All quests expire at 00:00 server time, be sure to finish AND report back before that!");
+ next;
+ // Borrowed from Arkim Code
+ mesc l("Time remaining to report completion: ")+FuzzyTime($@ARKIM_TIMER+86400), 1;
+
+ select
+ l("I want a MODERATE (Lv 50~70) task!"),
+ l("I want a EXPERT (Lv 70~100) task!"),
+ l("I want a MASTER (Lv 100+) task!"),
+ l("I want a BOSS task!"),
+ l("It was nice seeing you.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ .@q1=getq(General_MobHunting5);
+ .@q2=getq2(General_MobHunting5);
+ .@q3=getq3(General_MobHunting5);
+ .@q=General_MobHunting5;
+ .@lv=7;
+ goto L_QuestMaster;
+ case 2:
+ .@q1=getq(General_MobHunting6);
+ .@q2=getq2(General_MobHunting6);
+ .@q3=getq3(General_MobHunting6);
+ .@q=General_MobHunting6;
+ .@lv=14;
+ goto L_QuestMaster;
+ case 3:
+ .@q1=getq(General_MobHunting7);
+ .@q2=getq2(General_MobHunting7);
+ .@q3=getq3(General_MobHunting7);
+ .@q=General_MobHunting7;
+ .@lv=20;
+ goto L_QuestMaster;
+ case 4:
+ .@q1=getq(General_MobHunting8);
+ .@q2=getq2(General_MobHunting8);
+ .@q3=getq3(General_MobHunting8);
+ .@q=General_MobHunting8;
+ .@lv=50;
+ goto L_QuestMaster;
+ }
+ closeclientdialog;
+ goodbye();
+ close;
+
+L_QuestMaster:
+ // It's a new day, so we must generate a new quest!
+ if (.@q1 != .@d) {
+ .@q1=.@d;
+ if (.@lv == 7) {
+ .@q2=any(EarthFairy, FireFairy, WaterFairy, WindFairy, PoisonFairy, BlackScorpion, MountainSnake, ForestMushroom, GoldenScorpion, Yeti, WickedMushroom, Archant, Scar, Crafty);
+ } else if (.@lv == 14) {
+ .@q2=any(Crafty, Forain, GreenDragon, Troll, Moonshroom, Terranite, JackO, BlackMamba, Centaur, GoboBear);
+ } else if (.@lv == 20) {
+ .@q2=any(TerraniteProtector, EliteDuck, Reaper, NightmareDragon, NightmareDragon, PinkieSuseran, PinkieMaximus);
+ } else if (.@lv == 50) {
+ .@q2=any(Tengu, Tipiu, EvilScythe, GiantCaveMaggot, SpiderQueen, TerraniteKing, PinkieEmperor, Yetifly, YetiKing);
+ } else {
+ Exception("Bad setting for GMH.LV: "+.@lv, RB_DEFAULT|RB_SPEECH|RB_ISFATAL);
+ }
+ setq .@q, .@q1, .@q2, 0;
+ }
+
+ // Maybe there is no monster to kill
+ if (!.@q2) {
+ mesn l("Eldrin, Taskmaster");
+ mesq l("You've already completed this quest today. Try again tomorrow.");
+ close;
+ }
+
+ // You only need to slay one boss
+ if (.@q3 && .@lv == 50)
+ .@q3 += 50;
+
+ // Maybe you finished the quest?
+ // Reuses everything from Kreist
+ if (.@q3 >= 50) {
+ mesn l("Eldrin, Taskmaster");
+ mesq l("Good job, you've killed the @@ @@ and reported back in time!", 50, getmonsterlink(.@q2));
+ next;
+ inventoryplace MercBoxA, 1;
+ if (MERCENARY_DAILYQUEST == 100) {
+ inventoryplace BountyHunterHelmet, 1;
+ getitem BountyHunterHelmet, 1;
+ }
+ mesn l("Eldrin, Taskmaster");
+ mesq l("It's not much of a reward, but doesn't it feels great to help others in need?! HAHAHA!");
+ .@overkill=.@q3-50;
+ Zeny+=.@lv*(42+MERCENARY_DAILYQUEST);
+ // Raise LV according to monster level
+ .@lv+=getmonsterinfo(.@q2, MOB_LV)+MERCENARY_DAILYQUEST*11/10;
+ getexp BaseLevel*.@lv, .@lv+.@overkill;
+ setq2 .@q, 0;
+ setq3 .@q, 0;
+ MERCENARY_DAILYQUEST+=1;
+ if (MERCENARY_DAILYQUEST % 5 == 0) {
+ getitem MercBoxA, 1;
+ }
+ close;
+ }
+
+ mesn l("Eldrin, Taskmaster");
+ if (.@lv != 50)
+ mesq l("So, please kill @@/@@ @@ for us and make the world a safer place!", .@q3, 50, getmonsterlink(.@q2));
+ else
+ mesq l("So, please kill a %s for us and make the world a safer place!", getmonsterlink(.@q2));
close;
OnInit: