diff options
Diffstat (limited to 'npc/024-16')
-rw-r--r-- | npc/024-16/generals.txt | 62 |
1 files changed, 56 insertions, 6 deletions
diff --git a/npc/024-16/generals.txt b/npc/024-16/generals.txt index d7d6c83ba..3d169ade3 100644 --- a/npc/024-16/generals.txt +++ b/npc/024-16/generals.txt @@ -36,17 +36,66 @@ function script FrostiaGeneralQuest { mesn; mesq l("Now, a simple @@ quest to make you stronger...", .@at$); next; - mesn; - mesq l("Can't think on anything. Go away."); + if (FrostiaTaskMaster(20)) { + next; + mesn; + mesq l("Or maybe... You want to try again right now? I'll do whatever needed to level you up to less-noobish levels."); + next; + if (askyesno() == ASK_YES) { + setq General_MobHunting4, 0, 0, 0; + FrostiaTaskMaster(20); + } + } close; } +// FrostiaTaskMaster(lvl) +function script FrostiaTaskMaster { + .@q=General_MobHunting4; + .@q1=getq(General_MobHunting4); + .@q2=getq2(General_MobHunting4); + .@q3=getq3(General_MobHunting4); + .@d=gettimeparam(GETTIME_DAYOFMONTH); + .@lv=getarg(0, 1); + // It's a new day, so we must generate a new quest! + if (.@q1 != .@d) { + .@q1=.@d; + .@q2=any(Moggun, IcedFluffy, Fluffy, Pollet, BlueSlime, WhiteSlime, SantaSlime, AzulSlime, RudolphSlime); // WaterFairy + setq .@q, .@q1, .@q2, 0; + } + + // Maybe you finished the quest? + if (.@q3 >= 100) { + mesn; + mesq l("Good job, you've killed the 100 @@ and reported back in time!", getmonsterlink(.@q2)); + next; + mesn; + mesq l("It's not much of a reward, but doesn't it feels great to help others in need?! HAHAHA!"); + Zeny+=.@lv; + getexp BaseLevel*.@lv, .@lv; + setq2 .@q, 0; + return false; + } + + // Maybe there is no monster to kill + if (!.@q2) { + mesn; + mesq l("You've already completed this quest today. Try again tomorrow."); + return true; + } + + mesn; + mesq l("So, please kill @@/100 @@ for us and make the world a safer place!", .@q3, getmonsterlink(.@q2)); + return false; +} + 024-16,29,21,0 script Wizard General NPC_BLUESABER,{ .@q=getq(General_Narrator); if (.@q == 14) FrostiaGeneralQuest("Magic"); - hello; - end; + else + FrostiaTaskMaster(20); + close; OnInit: .distance=5; @@ -57,8 +106,9 @@ OnInit: .@q=getq(General_Narrator); if (.@q == 14) FrostiaGeneralQuest("Fight"); - hello; - end; + else + FrostiaTaskMaster(20); + close; OnInit: .distance=5; |