PVP Separado Por Level

manitous
em Scripts

manitous

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/02/13Posts: 6

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

Krono

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 08/04/15Posts: 247

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...

manitous

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/02/13Posts: 6

Kronos, Essa Script ai n funcionou :(... Mas Vlw pela ajuda


Up@

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino


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.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

manitous

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/02/13Posts: 6

Vlw Manow, unico problema q quando usa magia de area msm n tomando dano, pega pz....

mas ja ajudou mt , se conseguir arrumar agradeço + ainda icon_lol.gificon_lol.gif

SkyLigh

User X
avatar
Lorde
Lorde

INFOS

Grupo: LordeRegistrado: 23/07/12Posts: 2183Char no Tibia: Kissy

Tópico movido para dúvidas / pedidos resolvidos.

Att,
Kissy