diff options
-rw-r--r-- | npc/functions/mobhunter.txt | 102 |
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; |