function onKill(cid, target, lastHit)
local attackMonster = MonsterType(target)
if not attackMonster then
return true
end
for id, damage in pairs(attackMonster:getDamageMap()) do
local player = Player(cid)
if player then
if getPlayerVipTime(player) > 100 then
local experience = attackMonster:getExperience()
local expFormula = (experience * 0.20)
player:addExperience(math.floor(expFormula), true)
end
end
end
end
function onKill(cid, target, lastHit)
local attackMonster = MonsterType(getCreatureName(target))
if not attackMonster then
return true
end
local player = Player(getCreatureName(cid))
if player then
if getPlayerVipTime(player) > 100 then
player:addExperience(math.floor(attackMonster:getExperience() * 0.2), true)
end
end
return true
end
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
function onKill(cid, target, lastHit)
local attackMonster = MonsterType(getCreatureName(target))
if not attackMonster then
return true
end
local creature = Creature(target)
local damageMap = creature:getDamageMap()
for id, damage in pairs(damageMap) do
local player = Player(id)
if player then
if getPlayerVipTime(player) > 100 then
player:addExperience(math.floor(attackMonster:getExperience() * 0.2), true)
end
end
end
return true
end
You need to use getDamageMap so all attackers receive experience
Code:function onKill(cid, target, lastHit) local attackMonster = Monster(target) if not attackMonster then return true end for id, damage in pairs(attackMonster:getDamageMap()) do local player = Player(id) if player then local experience = MonsterType(attackMonster:getName()):getExperience() local expFormula = (experience * 0.20) player:addExperience(math.floor(expFormula), true) end end end
Are you testing with a GM character?Hey @Ninja thanks for the help! With this script the same problem is occuring. The Bonus EXP is working but all the exp still goes to the player who takes the last hit.
Are you testing with a GM character?
I just tested with 3 normal characters and all of them received bonus exp plus normal exp.
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 = damage.total / monster:getType():getHealth() * monster:getType():getExperience()
local expFormula = (experience * 0.20)
player:addExperience(math.floor(expFormula), true)
end
end
end