• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Solved Whats wrong in this short script? 20% more exp if vip

danne3131

Well-Known Member
Joined
Jun 26, 2008
Messages
391
Solutions
1
Reaction score
50
<event type="kill" name="VipBonusExp" script="others/vipexp.lua"/>

vipexp.lua =
Code:
function onKill(cid, target, lastHit)
    local monster = Monster(target)
    if not monster then
        return true
    end
 
    for id, damage in pairs(monster:getDamageMap()) do
        local player = Player(id)
        if player then
            local experience = monster:getType():getExperience()
            local expFormula = (experience * 0.20)
            player:addExperience(math.floor(expFormula), true)
        end
    end
end
 
Wont this script make 20% extra exp for every player?
I dont see any part of the script that checks if the player has got vip
 
Inside the events folder, there is a player event called onGainExperience(). Use that.

Something like this: (feel free to change however)
Code:
function Player:onGainExperience(source, exp, rawExp)
    if self and self:isVip() then
        return exp + (exp * 0.20)
    end
    return exp
end

Make sure to turn the event on in events.xml:
Code:
<event class="Player" method="onGainExperience" enabled="0" />
to
Code:
<event class="Player" method="onGainExperience" enabled="1" />
 
Back
Top