summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/functions/mobhunter.txt102
1 files changed, 85 insertions, 17 deletions
diff --git a/npc/functions/mobhunter.txt b/npc/functions/mobhunter.txt
index b38fea25d..abecd23fa 100644
--- a/npc/functions/mobhunter.txt
+++ b/npc/functions/mobhunter.txt
@@ -107,52 +107,117 @@ function script GHQ_GetRewardsOnMilestone {
.@new=getq2(General_Hunter);
.@blv=strmobinfo(3, .@monsterId);
.@bhp=strmobinfo(4, .@monsterId);
+ .@bxp=getmonsterinfo(.@monsterId, MOB_BASEEXP);
.@xp=0;
.@gp=0;
.@jp=0;
+ .@sc=0;
//if (getq2(General_Hunter) >= 10000) goto L_Finish;
// 1st step: 1000 kills
if (is_between(.@old, .@new, 1000)) {
mesc l("Goal: @@/@@ reached!", .@new, 1000), 2;
- .@xp+=.@blv*10;
+ .@xp+=.@bxp*10;
.@gp+=(.@bhp/2);
.@jp+=10;
} else if (.@new < 1000) {
mesc l("@@: @@/@@", l("1st step"), .@new, 1000);
}
- // 2nd step: 2500 kills
+ // 2nd step: 2000 kills
+ if (is_between(.@old, .@new, 2000)) {
+ mesc l("Goal: @@/@@ reached!", .@new, 2000), 2;
+ .@xp+=.@bxp*20;
+ .@gp+=.@bhp;
+ .@jp+=20;
+ } else if (.@new < 2000) {
+ mesc l("@@: @@/@@", l("2nd step"), .@new, 2000);
+ }
+
+ // BONUS step: 2500 kills
if (is_between(.@old, .@new, 2500)) {
- mesc l("Goal: @@/@@ reached!", .@new, 2500), 2;
- .@xp+=.@blv*25;
+ mesc l("Bonus Goal: @@/@@ reached!", .@new, 2500), 2;
+ .@sc=1+(.@blv/10);
+ }
+
+ // 3rd step: 3000 kills
+ if (is_between(.@old, .@new, 3000)) {
+ mesc l("Goal: @@/@@ reached!", .@new, 3000), 2;
+ .@xp+=.@bxp*30;
.@gp+=.@bhp;
- .@jp+=25;
- } else if (.@new < 2500) {
- mesc l("@@: @@/@@", l("2nd step"), .@new, 2500);
+ .@jp+=30;
+ } else if (.@new < 3000) {
+ mesc l("@@: @@/@@", l("3rd step"), .@new, 3000);
}
- // 3rd step: 5000 kills
+ // 4th step: 4000 kills
+ if (is_between(.@old, .@new, 4000)) {
+ mesc l("Goal: @@/@@ reached!", .@new, 4000), 2;
+ .@xp+=.@bxp*40;
+ .@gp+=.@bhp;
+ .@jp+=40;
+ } else if (.@new < 4000) {
+ mesc l("@@: @@/@@", l("4th step"), .@new, 4000);
+ }
+
+ // 5th step: 5000 kills
if (is_between(.@old, .@new, 5000)) {
mesc l("Goal: @@/@@ reached!", .@new, 5000), 2;
- .@xp+=.@blv*50;
+ .@sc=1+(.@blv/10);
+ .@xp+=.@bxp*50;
.@gp+=.@bhp;
.@jp+=50;
} else if (.@new < 5000) {
- mesc l("@@: @@/@@", l("3rd step"), .@new, 5000);
+ mesc l("@@: @@/@@", l("bonus step"), .@new, 5000);
+ }
+
+ // 6th step: 6000 kills
+ if (is_between(.@old, .@new, 6000)) {
+ mesc l("Goal: @@/@@ reached!", .@new, 6000), 2;
+ .@xp+=.@bxp*60;
+ .@gp+=.@bhp;
+ .@jp+=60;
+ } else if (.@new < 6000) {
+ mesc l("@@: @@/@@", l("6th step"), .@new, 6000);
}
- // 4th step: 7500 kills
+ // 7th step: 7000 kills
+ if (is_between(.@old, .@new, 7000)) {
+ mesc l("Goal: @@/@@ reached!", .@new, 7000), 2;
+ .@xp+=.@bxp*70;
+ .@gp+=.@bhp;
+ .@jp+=70;
+ } else if (.@new < 7000) {
+ mesc l("@@: @@/@@", l("7th step"), .@new, 7000);
+ }
+
+ // BONUS step: 7500 kills
if (is_between(.@old, .@new, 7500)) {
- mesc l("Goal: @@/@@ reached!", .@new, 7500), 2;
- .@xp+=.@blv*75;
+ mesc l("Bonus Goal: @@/@@ reached!", .@new, 7500), 2;
+ .@sc=1+(.@blv/10);
+ }
+
+ // 8th step: 8000 kills
+ if (is_between(.@old, .@new, 8000)) {
+ mesc l("Goal: @@/@@ reached!", .@new, 8000), 2;
+ .@xp+=.@bxp*80;
.@gp+=.@bhp;
- .@jp+=75;
- } else if (.@new < 7500) {
- mesc l("@@: @@/@@", l("4th step"), .@new, 7500);
+ .@jp+=80;
+ } else if (.@new < 8000) {
+ mesc l("@@: @@/@@", l("8th step"), .@new, 8000);
}
- // 5th step: 10000 kills
+ // 9th step: 9000 kills
+ if (is_between(.@old, .@new, 9000)) {
+ mesc l("Goal: @@/@@ reached!", .@new, 9000), 2;
+ .@xp+=.@bxp*90;
+ .@gp+=.@bhp;
+ .@jp+=90;
+ } else if (.@new < 9000) {
+ mesc l("@@: @@/@@", l("9th step"), .@new, 9000);
+ }
+
+ // 10th step: 10000 kills
if (is_between(.@old, .@new, 10000)) {
mesc l("Goal: @@/@@ reached!", .@new, 10000), 2;
@@ -182,6 +247,9 @@ function script GHQ_GetRewardsOnMilestone {
getexp .@xp, .@jp;
Zeny=Zeny+.@gp;
}
+ if (.@sc) {
+ getitem StrangeCoin, .@sc;
+ }
// Update Grand Hunter memory
GHMEMO[.@q]=.@k;