Hail Xtibianos.
Eu criei esse sistema, não lembro se foi a pedido de um membro ou não, para que seja interessante sempre matar o toplvl do otserver devido ao premio recebido por isso.
Em config.lua adicione:
huntedTopLevel = 100 -- "false" inibe o sistema; numero é o level minimo necessario para dar hunted ao toplvl.priceForEachLevelTohuntedTopLevel = 100 -- preço pago por cada lvl do toplvl ao mata-lo.
Em creaturescripts.xml adicione:
<event type="death" name="toplvl" script="toplvl.lua"/>
Em creaturescripts/scripts/config.lua adicione:
registerCreatureEvent(cid, "toplvl")
Na mesma pasta, crie um arquivo lua com o nome toplvl e adicione:
function onDeath(cid, corpse, deathList)local top,price = getConfigInfo("huntedTopLevel"),getConfigInfo("priceForEachLevelTohuntedTopLevel") if(isPlayer(cid))then -- hunted top level local _,level = getTopLevel() if(tonumber(level) and top and tonumber(level) >= top and tonumber(level) <= getPlayerLevel(cid))then for _,player in pairs(deathList) do if(isPlayer(player))then doPlayerAddMoney(player, getPlayerLevel(cid)*price) end end end end return trueend
Agora abra o arquivo lib/050-functions.lua e adicione:
function getTopLevel() --[[( Marcryzius )]]--local target,name,level = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` <= 2 ORDER BY 'level' DESC;"),"",0 if(target:getID() ~= -1) then repeat local glevel = target:getDataInt("level") if(level < glevel)then name,level = target:getDataString("name"), glevel end until not(target:next()) end target:free() return name,levelend
No config.lua tu coloca o valor minimo requerido do toplvl para poder ser caçado.
Duvidas, erros e qualquer outra coisa, deixe nos comentários.