diff options
Diffstat (limited to 'npc/024-10')
-rw-r--r-- | npc/024-10/eldrin.txt | 118 |
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: |