function onLogin(cid)
registerCreatureEvent(cid, "Hitexp")
end
local maxExp = 100 -- Max exp for random
local minExp = 1 -- Min exp for random
function onAttack(cid, target)
doPlayerAddExperience(cid, math.random(minExp, maxExp)
return true
end
<event type="login" name="hitexp_register" event="script" value="hitexp.lua"/>
<event type="attack" name="Hitexp" event="script" value="hitexp.lua"/>
function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS then
doPlayerAddExperience(attacker, math.random(minExp, maxExp)
end
return true
end
local min, max = 100, 1000
function onStatsChange(cid, attacker, type, combat, value)
if not isPlayer(attacker) or not isPlayer(cid) then
return true
end
if type == STATSCHANGE_HEALTHLOSS then
doPlayerAddExperience(attacker, math.random(min, max))
end
return true
end
You are not adding it correctly to creatureevents.xml
if not isPlayer(attacker) or not isPlayer(cid) then
return true
end
You spelt "attacker" incorrectly on the script.
Code:if not isPlayer(attacker) or not isPlayer(cid) then return true end
<event type="login" name="hitexp_register" event="script" value="hitexp.lua"/>
<event type="attack" name="Hitexp" event="script" value="hitexp.lua"/>
Lua:<event type="login" name="hitexp_register" event="script" value="hitexp.lua"/> <event type="attack" name="Hitexp" event="script" value="hitexp.lua"/>
i think this is the right to use , right?
<event type="attack" name="Hitexp" event="script" value="hitexp.lua"/>
<event type="statschange" name="Hitexp" event="script" value="hitexp.lua"/>
function onStatsChange(cid, attacker, type, combat, value)
if isPlayer(cid) then
if getPlayerIp(cid) ~= getPlayerIp(attacker) then
local x,r = getPlayerLevel(attacker),math.random(10,35)
local m = 3.5*x+r -- formula .. m = 3.5*getPlayerLevel(attacker)*math.random(10,35)
doPlayerAddExperience(cid,m)
doPlayerSendTextMessage(cid,27,'Gained '..m..' experience.')
else
doPlayerSendTextMessage(cid,27,'Can\'t gain experience from attacking players with same IP.')
return false
end
else
return false
end
return true
end
Try this, with a formula, you can change it any way you like.
Lua:function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) then if getPlayerIp(cid) ~= getPlayerIp(attacker) then local x,r = getPlayerLevel(attacker),math.random(10,35) local m = 3.5*x+r -- formula .. m = 3.5*getPlayerLevel(attacker)*math.random(10,35) doPlayerAddExperience(cid,m) doPlayerSendTextMessage(cid,27,'Gained '..m..' experience.') else doPlayerSendTextMessage(cid,27,'Can\'t gain experience from attacking players with same IP.') return false end else return false end return true end