diff options
-rw-r--r-- | db/quest_db.conf | 4 | ||||
-rw-r--r-- | npc/025-1/commander.txt | 42 | ||||
-rw-r--r-- | npc/functions/util.txt | 6 |
3 files changed, 46 insertions, 6 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf index 641a6df71..b1925ee52 100644 --- a/db/quest_db.conf +++ b/db/quest_db.conf @@ -379,6 +379,10 @@ quest_db: ( Id: 151 Name: "FortressQuest_SlimeHunter" }, +{ + Id: 152 + Name: "FortressQuest_Over100" +}, // ID 171 to 190: Artis & Esperia Quests // ID 191 to 249: General Quests II (eg. Dungeon Quests) diff --git a/npc/025-1/commander.txt b/npc/025-1/commander.txt index 2b9b93b09..4b9f1a341 100644 --- a/npc/025-1/commander.txt +++ b/npc/025-1/commander.txt @@ -29,6 +29,8 @@ OnInit: // Check for ongoing quests if (getq(FortressQuest_SlimeHunter) == 1) goto L_SlimeHunter; + if (getq(FortressQuest_Over100) == 1) + goto L_Over100; mesn; mesq l("I have extremely difficult quests for you; They are more painful than a Grand Hunter Quest, because I don't admit wimps fighting with me."); next; @@ -41,14 +43,15 @@ OnInit: { select l("I'm not interested."), - rif(!getq(FortressQuest_SlimeHunter), l("The Great Slime Hunt")); + rif(!getq(FortressQuest_SlimeHunter), l("The Great Slime Hunt")), + rif(!getq(FortressQuest_Over100), l("The Great Over 100 Hunt")); mes ""; switch (@menu) { case 1: close; case 2: mesn; - mesq l("You'll have to slay %s slimes for me! I don't care which ones, just SLAY THEM!", fnum(.million)); + mesq l("You'll have to slay %s %s for me! I don't care which ones, just SLAY THEM!", fnum(.million), l("slimes")); next; select l("Accept"), @@ -61,6 +64,21 @@ OnInit: close; } break; + case 3: + mesn; + mesq l("You'll have to slay %s %s for me! I don't care which ones, just SLAY THEM!", fnum(.million), l("monsters of at least level 100")); + next; + select + l("Accept"), + l("Reject"); + mes ""; + if (@menu == 1) { + setq1 FortressQuest_Over100, 1; + mesn; + mesq l("Then get to work already!"); + close; + } + break; } } close; @@ -69,6 +87,10 @@ L_SlimeHunter: cadisReward(FortressQuest_SlimeHunter); close; +L_Over100: + cadisReward(FortressQuest_Over100); + close; + function cadisReward { .@kill=getq2(getarg(0)); .@rewa=getq3(getarg(0)); @@ -123,7 +145,6 @@ function cadisReward { getitem EarthPowder, 3; getitem any(LuckFruit, DexterityFruit, IntelligenceFruit, VitalityFruit, AgilityFruit, StrengthFruit), 1; getitem MysteriousFruit, 1; - //getitem PrismGift, 1; } return; } @@ -149,11 +170,22 @@ function script CadisQuestCheck { if (getq(FortressQuest_SlimeHunter) == 1) { // Register the kill - if (compare("slime", strtolower(strmobinfo(1, .@mobId)))) + if (compare("slime", strtolower(strmobinfo(1, .@mobId)))) { setq2 FortressQuest_SlimeHunter, getq2(FortressQuest_SlimeHunter)+1; // Report every 1000 kills if (getq2(FortressQuest_SlimeHunter) % 1000 == 0) - dispbottom l("Cadis : You have slain %s slimes out of a million.", fnum(getq2(FortressQuest_SlimeHunter))); + dispbottom l("Cadis : You have slain %s %s out of a million.", fnum(getq2(FortressQuest_SlimeHunter)), l("slimes")); + } + } + + if (getq(FortressQuest_Over100) == 1) { + // Register the kill + if (getmonsterinfo(.@mobId, MOB_LV) >= 100) { + setq2 FortressQuest_Over100, getq2(FortressQuest_Over100)+1; + // Report every 1000 kills + if (getq2(FortressQuest_Over100) % 1000 == 0) + dispbottom l("Cadis : You have slain %s %s out of a million.", fnum(getq2(FortressQuest_SlimeHunter)), l("mobs over lv 100")); + } } return; diff --git a/npc/functions/util.txt b/npc/functions/util.txt index 704c84805..76ecb1d9a 100644 --- a/npc/functions/util.txt +++ b/npc/functions/util.txt @@ -547,8 +547,12 @@ function script reputation { if (getq(FortressQuest_SlimeHunter) >= 2) .@nr=.@nr+1; + // Cadis: Great Over100 Hunt (+1 rep) + if (getq(FortressQuest_Over100) >= 2) + .@nr=.@nr+1; + // FORTRESS TOWN Magical Forumula - .@nr=.@nr*100/3; + .@nr=.@nr*100/4; // Final |