Ir para conteúdo
  • 0

PVP Separado Por Level


manitous

Pergunta

Não tenho mt certeza se estou na área correta, e se n estiver alguém move por gentileza...

Então, como diz o título eu queria 1 jeito de separar o pvp por level.

Exemplo : o player só ira poder atacar players no intervalo de (50 - 199), e do (200-801), no caso quem é lvl 200 n pode matar quem for lvl 199 ou menos, nem quem é lvl abaixo de 200 poderá atacar acima de 200..

anos atrás eu jogava 1 dbo que tinha isso e achei mt interessante para proteger os novatos e regular o pvp.

Meu ot é 1 dbo 8.6, tfs 0.4.

Aguardo Resposta !

 


Up@


Up

Editado por manitous
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0


local pvp_level_table = {

{minLv = 50, maxLv = 199},

{minLv = 200, maxLv = 801},

}

 

function onTarget(cid, target)

if not isPlayer(cid) or not isPlayer(target) then return true end

 

for _, level in pairs(pvp_level_table) do

if getPlayerLevel(cid) >= level.minLv and getPlayerLevel(cid) <= level.maxLv and getPlayerLevel(target) >= level.minLv and getPlayerLevel(target) <= level.maxLv then

return true

end

end

return false

end

 

function onStatsChange(cid, attacker, type, combat, value)

if not isPlayer(cid) or not isPlayer(attacker) or type ~= STATSCHANGE_HEALTHLOSS then return true end

 

for _, level in pairs(pvp_level_table) do

if getPlayerLevel(cid) >= level.minLv and getPlayerLevel(cid) <= level.maxLv and getPlayerLevel(attacker) >= level.minLv and getPlayerLevel(attacker) <= level.maxLv then

return true

end

end

return false

end

Tags:

<event type="statschange" name="PVPLevel1" event="script" value="nome_do_arquivo.lua"/>

<event type="target" name="PVPLevel2" event="script" value="nome_do_arquivo.lua"/>

Não se esqueça de registrar ambos os eventos em login.lua.
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

Creio que esse script deve funcionar

 

 

 

function onCombat(cid, target)
local parameter = {50, 199, 200, 300}
if isPlayer(cid) and isPlayer(target) then
for k = 0, #parameter do
if getPlayerLevel(cid) >= parameter[k] and getPlayerLevel(cid) <= parameter[k+1] then
if getPlayerLevel(target) < parameter[k] and getPlayerLevel(target) > parameter[k+1] then
doRemoveCreature(target)
doPlayerSendCancel(cid, "Você so pode atacar player com level entre" ..parameter[k].. "e".. parameter[k+1])
end
end
end
end
end

 

 

 

No caso o player sendo level por exemplo 60 ele so pode atacar quem for level 50 ou + ou quem for lvl 199 ou -

dai você edita o parameter seguindo a mesma logica...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...