summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf4
-rw-r--r--npc/025-1/commander.txt35
-rw-r--r--npc/functions/util.txt8
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