• 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!

exp per hit

you can try this
Lua:
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

on creaturescripts.xml
XML:
<event type="login" name="hitexp_register" event="script" value="hitexp.lua"/>
<event type="attack" name="Hitexp" event="script" value="hitexp.lua"/>
 
then this?
Lua:
function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS then
doPlayerAddExperience(attacker, math.random(minExp, maxExp)
end
return true
end
 
Last edited:
the onStatsChange works on player(cid) stats change no? then we need to add experience to attacker, not to player, no?
 
Lua:
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

?
 
Last edited:
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?
 
Last edited:
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?

On login.lua, add registerCreatureEvent(cid, "Hitexp"), and change:

Lua:
<event type="attack" name="Hitexp" event="script" value="hitexp.lua"/>

To:
Lua:
<event type="statschange" name="Hitexp" event="script" value="hitexp.lua"/>
 
Coca Cola you need to put this on the same script:
Lua:
function onLogin(cid)
registerCreatureEvent(cid, "Hitexp")
end

Because you declared on XML that there is a login function on hitexp file.
 
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
 
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

Where is check for statchangetype :p
 
Back
Top