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

Protection level with %

penivaldo

New Member
Joined
Sep 30, 2009
Messages
21
Reaction score
0
first, sorry for my bad english but you can understand, so..

can someone make a script that set a player just attack players with 30% range level?

exemple: if you are in lv 100 you can't attack players lv 70- and can't attack players lv 130+
 
in creature script
i think it can be like that ?
make a new attck.lua in creature --> scripts
LUA:
 local percent = 0.3   --- devide the percent by 100 , so 0.3 = 30%
 function onCombat(cid, target)
        if (getPlayerLevel(target) <= (getPlayerLevel(cid) * percent)) then
		 doPlayerSendCancel(cid,"He cant attck player lower than ".. percent*100 .."% than your lvl")
		

                return false
        end
return true
end

in creature.xml
Code:
 <event type="combat" name="Attk" event="script" value="attack.lua"/>

then go to creature --> scripts --> login.lua and paste this before the last <<return true>>
LUA:
  registerCreatureEvent(cid, "Attk")
 
taking advantage of the post, it is possible to use this formula percentage to function "doPlayerAddExperience(cid, amount)"?

maybe doPlayerAddExperience(cid,getPlayerExperience(cid)*percent)? :)
 
Last edited:
Code:
function doPlayerAddExperiencePercent(cid, percent)
	local level = getPlayerLevel(cid)
	return doPlayerAddExperience(cid, (getExperienceForLevel(level + 1) - getExperienceForLevel(level)) * percent / 100)
end
 
Code:
function doPlayerAddExperiencePercent(cid, percent)
	local level = getPlayerLevel(cid)
	return doPlayerAddExperience(cid, (getExperienceForLevel(level + 1) - getExperienceForLevel(level)) * percent / 100)
end

thanks cyko, that was what i wanted lua'function. :wub:

off: you still need rep++? :w00t::w00t:
 
can u help me? i have some error...

[Error - CreatureScript Iterface]
data/creaturescripts/scripts/attck.lua:onCombat
description:
data/creaturescripts/scripts/attck.lua3 attemp to compare boolean with number stack traceback:
data/creaturescripts/scripts/attck.lua3 in function <data/creaturescripts/scripts/attck.lua2>

edit: this happens when i atack a monster
 
Last edited:
Code:
local percent = 30

function onCombat(cid, target)
	if isPlayer(target) then
		local level, tlevel = getPlayerLevel(cid), getPlayerLevel(target)
		if tlevel < level + level * - percent / 100 or tlevel > level + level * percent / 100 then
			return not doPlayerSendCancel(cid, "You cannot attack players with more than ".. percent .."% level difference.")
		end
	end
	return true
end
 
Last edited:
local percent = 30

function onCombat(cid, target)
if isPlayer(target) then
local level, tlevel = getPlayerLevel(cid), getPlayerLevel(target)
if tlevel < level + level * - percent / 100 or tlevel > level + level * percent / 100
return not doPlayerSendCancel(cid, "You cannot attack players with more than ".. percent .."% level difference.")
end
end
return true
end

is it right? i have some error again =S
 
[Error - LuaScriptInterface::loadfile] data/creaturescripts/scripts/attck.lua:7: 'then' expected near 'return'
[Warning - Event::loadScript] cannot load script (data/creaturescripts/scripts/attck.lua)
data/creaturescripts/scripts/attck.lua:7: 'then' expected near 'return'

this error
 
Back
Top