Jump to content

[SIMPLE] Anti-attack yourself


Skymagnum

Recommended Posts

É simples só serve para monstros não atacarem eles mesmo em alguns server's eles roubam a exp, há casos também de magias bugadas que os próprios jogadores se atacam.

 

 

/data/creaturescripts/scripts/ crie um arquivo renomeie para antiAtk:

 

 

function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS then
if attacker == cid then
  return false
end
end
return true
end

 

creaturescripts.xml

 

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

 

Tem que registar no xml dos monstros.

 

@Tinha esquecido disso dalvo valeu.

Edited by Skymagnum
Link to comment
Share on other sites

Muito bom mesmo cara, é extremamente simples e lógico, da pra usar isso também em Spells bugadas que os players se atacam, obrigado por trazer o conteúdo para o Éks :)

 

 

~~

OBS: Arrume o code do registercreature...

Link to comment
Share on other sites

Tem duas falhas nesse script que vão impossibilitar que ele funcione adequadamente e que não bugue o jogo.

 

Primeiro é que pra uma criatura usar uma creature script, ela tem que ser registrada nela. E monstro não executam login, logo eles nunca vão receber o registro como tu está fazendo.

 

O segundo é que você não dá return true no script, logo o retorno passa a ser nil, isso causa o cancelamento do dano para todas as criaturas que usam do evento.

 

A dica é a seguinte: use a creaturescript onCreatureApper para registrar nos monstros a onStatsChange, e apos o bloco do if do seu script, antes do end, dê return true.

 

#edit

Pensando melhor, não adianta usar onCreatureApper, o unico jeito mesmo é registrar no xml dos monstros.

Edited by dalvorsn
Link to comment
Share on other sites

×
×
  • Create New...