diff options
Diffstat (limited to 'npc/functions')
-rw-r--r-- | npc/functions/mobhunter.txt | 141 |
1 files changed, 72 insertions, 69 deletions
diff --git a/npc/functions/mobhunter.txt b/npc/functions/mobhunter.txt index c4c496908..3733838b1 100644 --- a/npc/functions/mobhunter.txt +++ b/npc/functions/mobhunter.txt @@ -68,6 +68,78 @@ function script GHQ_GetMonsterIDByQuestID { } +///////////////////////////////////////////////////////////////////////////////// + +// Handle milestone rewards; it does NOT update stuff +function script GHQ_GetRewardsOnMilestone { + + // Check if you can store a Strange Coin (you really should) + // Another item too, which I'm sure you won't get it anywhere. + inventoryplace StrangeCoin, 1, NPCEyes, 1; + .@old=GHMEMO[getq(General_Hunter)]; + .@new=getq2(General_Hunter); + .@blv=atoi(strmobinfo(3, GHQ_GetMonsterIDByQuestID(getq(General_Hunter)))); + .@bhp=atoi(strmobinfo(4, GHQ_GetMonsterIDByQuestID(getq(General_Hunter)))); + .@xp=0; + .@gp=0; + .@jp=0; + + // 1st step: 1000 kills + if (VarDiffValue(.@old, .@new, 1000)) { + mesc l("Goal: @@/@@ reached!", .@new, 1000), 2; + .@xp+=.@blv*10; + .@gp+=.@bhp; + .@jp+=10; + } else if (.@new < 1000) { + mesc l("@@: @@/@@", l("1st step"), .@new, 1000); + } + + // 2nd step: 2500 kills + if (VarDiffValue(.@old, .@new, 2500)) { + mesc l("Goal: @@/@@ reached!", .@new, 2500), 2; + .@xp+=.@blv*25; + .@gp+=.@bhp; + .@jp+=25; + } else if (.@new < 2500) { + mesc l("@@: @@/@@", l("2nd step"), .@new, 2500); + } + + // 3rd step: 5000 kills + if (VarDiffValue(.@old, .@new, 5000)) { + mesc l("Goal: @@/@@ reached!", .@new, 5000), 2; + .@xp+=.@blv*50; + .@gp+=.@bhp; + .@jp+=50; + } else if (.@new < 5000) { + mesc l("@@: @@/@@", l("3rd step"), .@new, 5000); + } + + // 4th step: 7500 kills + if (VarDiffValue(.@old, .@new, 7500)) { + mesc l("Goal: @@/@@ reached!", .@new, 7500), 2; + .@xp+=.@blv*75; + .@gp+=.@bhp; + .@jp+=75; + } else if (.@new < 7500) { + mesc l("@@: @@/@@", l("4th step"), .@new, 7500); + } + + // 5th step: 10000 kills + if (VarDiffValue(.@old, .@new, 10000)) { + mesc l("Goal: @@/@@ reached!", .@new, 10000), 2; + mesc l("You must talk to Aidan to claim rewards!"); + } + + // Get reward (must have Job Exp) + if (.@jp) { + getexp .@xp, .@jp; + Zeny=Zeny+.@gp; + } + return; +} + +///////////////////////////////////////////////////////////////////////////////// + // MobID, Place, Prize function script GHQ_Assign { // Arguments @@ -189,75 +261,6 @@ function script GHQ_GetRewardsOnCompletion { return; } - -// Handle milestone rewards; it does NOT update stuff -function script GHQ_GetRewardsOnMilestone { - - // Check if you can store a Strange Coin (you really should) - // Another item too, which I'm sure you won't get it anywhere. - inventoryplace StrangeCoin, 1, NPCEyes, 1; - .@old=GHMEMO[getq(General_Hunter)]; - .@new=getq2(General_Hunter); - .@blv=atoi(strmobinfo(3, GHQ_GetMonsterIDByQuestID(getq(General_Hunter)))); - .@bhp=atoi(strmobinfo(4, GHQ_GetMonsterIDByQuestID(getq(General_Hunter)))); - .@xp=0; - .@gp=0; - .@jp=0; - - // 1st step: 1000 kills - if (VarDiffValue(.@old, .@new, 1000)) { - mesc l("Goal: @@/@@ reached!", .@new, 1000), 2; - .@xp+=.@blv*10; - .@gp+=.@bhp; - .@jp+=10; - } else if (.@new < 1000) { - mesc l("@@: @@/@@", l("1st step"), .@new, 1000); - } - - // 2nd step: 2500 kills - if (VarDiffValue(.@old, .@new, 2500)) { - mesc l("Goal: @@/@@ reached!", .@new, 2500), 2; - .@xp+=.@blv*25; - .@gp+=.@bhp; - .@jp+=25; - } else if (.@new < 2500) { - mesc l("@@: @@/@@", l("2nd step"), .@new, 2500); - } - - // 3rd step: 5000 kills - if (VarDiffValue(.@old, .@new, 5000)) { - mesc l("Goal: @@/@@ reached!", .@new, 5000), 2; - .@xp+=.@blv*50; - .@gp+=.@bhp; - .@jp+=50; - } else if (.@new < 5000) { - mesc l("@@: @@/@@", l("3rd step"), .@new, 5000); - } - - // 4th step: 7500 kills - if (VarDiffValue(.@old, .@new, 7500)) { - mesc l("Goal: @@/@@ reached!", .@new, 7500), 2; - .@xp+=.@blv*75; - .@gp+=.@bhp; - .@jp+=75; - } else if (.@new < 7500) { - mesc l("@@: @@/@@", l("4th step"), .@new, 7500); - } - - // 5th step: 10000 kills - if (VarDiffValue(.@old, .@new, 10000)) { - mesc l("Goal: @@/@@ reached!", .@new, 10000), 2; - mesc l("You must talk to Aidan to claim rewards!"); - } - - // Get reward (must have Job Exp) - if (.@jp) { - getexp .@xp, .@jp; - Zeny=Zeny+.@gp; - } - return; -} - function script mobhunter { if (getq(General_Hunter) == 0) return; |