diff options
-rw-r--r-- | db/quest_db.conf | 4 | ||||
-rw-r--r-- | npc/025-1/commander.txt | 35 | ||||
-rw-r--r-- | npc/functions/util.txt | 8 |
3 files changed, 44 insertions, 3 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf index b1925ee52..fbb6f8f53 100644 --- a/db/quest_db.conf +++ b/db/quest_db.conf @@ -383,6 +383,10 @@ quest_db: ( Id: 152 Name: "FortressQuest_Over100" }, +{ + Id: 153 + Name: "FortressQuest_RangedHunt" +}, // 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 5c5630b20..fe9044a20 100644 --- a/npc/025-1/commander.txt +++ b/npc/025-1/commander.txt @@ -31,6 +31,8 @@ OnInit: goto L_SlimeHunter; if (getq(FortressQuest_Over100) == 1) goto L_Over100; + if (getq(FortressQuest_RangedHunt) == 1) + goto L_RangedHunt; 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; @@ -44,7 +46,8 @@ OnInit: select l("I'm not interested."), rif(!getq(FortressQuest_SlimeHunter), l("The Great Slime Hunt")), - rif(!getq(FortressQuest_Over100), l("The Great Over 100 Hunt")); + rif(!getq(FortressQuest_Over100), l("The Great Over 100 Hunt")), + rif(!getq(FortressQuest_RangedHunt), l("The Great Ranged Hunt")); mes ""; switch (@menu) { case 1: @@ -79,6 +82,22 @@ OnInit: close; } break; + case 4: + mesn; + mesq l("You'll have to slay %s %s for me! I don't care which ones, just SLAY THEM!", fnum(.million), l("ranged monsters")); + mesc l("Minimum range: %d", 3); + next; + select + l("Accept"), + l("Reject"); + mes ""; + if (@menu == 1) { + setq1 FortressQuest_RangedHunt, 1; + mesn; + mesq l("Then get to work already!"); + close; + } + break; } } while (true); close; @@ -91,6 +110,10 @@ L_Over100: cadisReward(FortressQuest_Over100); close; +L_RangedHunt: + cadisReward(FortressQuest_RangedHunt); + close; + function cadisReward { .@kill=getq2(getarg(0)); .@rewa=getq3(getarg(0)); @@ -188,6 +211,16 @@ function script CadisQuestCheck { } } + if (getq(FortressQuest_RangedHunt) == 1) { + // Register the kill + if (getmonsterinfo(.@mobId, MOB_RANGE) >= 3) { + setq2 FortressQuest_RangedHunt, getq2(FortressQuest_RangedHunt)+1; + // Report every 1000 kills + if (getq2(FortressQuest_RangedHunt) % 1000 == 0) + dispbottom l("Cadis : You have slain %s %s out of a million.", fnum(getq2(FortressQuest_SlimeHunter)), l("ranged mobs")); + } + } + return; } diff --git a/npc/functions/util.txt b/npc/functions/util.txt index 76ecb1d9a..2cf7893da 100644 --- a/npc/functions/util.txt +++ b/npc/functions/util.txt @@ -551,8 +551,12 @@ function script reputation { if (getq(FortressQuest_Over100) >= 2) .@nr=.@nr+1; - // FORTRESS TOWN Magical Forumula - .@nr=.@nr*100/4; + // Cadis: Great Ranged Hunt (+1 rep) + if (getq(FortressQuest_RangedHunt) >= 2) + .@nr=.@nr+1; + + // FORTRESS TOWN Magical Formula + .@nr=.@nr*100/5; // Final |