summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-12-13 10:36:09 -0300
committerJesusaves <cpntb1@ymail.com>2022-12-13 10:36:09 -0300
commitc7bf1112d0db534d3a1f1f9f461e05d4225b506c (patch)
treecdfeed58ac49a69fb2ca4fb98881f7b7f144ca11
parentc23e8863da4f5271c866b4eba1f7676f4c29c494 (diff)
downloadserverdata-c7bf1112d0db534d3a1f1f9f461e05d4225b506c.tar.gz
serverdata-c7bf1112d0db534d3a1f1f9f461e05d4225b506c.tar.bz2
serverdata-c7bf1112d0db534d3a1f1f9f461e05d4225b506c.tar.xz
serverdata-c7bf1112d0db534d3a1f1f9f461e05d4225b506c.zip
Improve Grand Hunter Quest milestones
-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;