A função faz com que um player possa ou nao ser atacado por PLAYERS. Para fazer em com que ele nao possa ser atacado por monstros voce tera que registrar o evento em todos os monstros do seu otserver, vou falar como fazer isso pra quem quizer.
Vá em data/lib e abra o arquivo 050-function.lua e adicione essa funçao logo na primeira linha:
function canPlayerBeAttacked(cid, bool) bool = bool == nil and true or bool setPlayerStorageValue(cid, 96661, bool and 0 or 1) end
Agora vá em data/creaturescripts/scripts crie um arquivo .lua com o nome de playerattack.lua e bote esse script:
function onCombat(cid, target) if isPlayer(target) and getPlayerStorageValue(target, 96661) == 1 then return false end return true end function onAttack(cid, target) if isPlayer(target) and getPlayerStorageValue(target, 96661) == 1 then return false end return true end
Agora vá no login.lua na mesma pasta e adicione essa linha antes do ultimo return true:
registerCreatureEvent(cid, "PlayerAttack")
Agora vá no creaturescripts.xml e adicione essas duas tags:
<event type="combat" name="PlayerAttack" event="script" value="playerattack.lua"/> <event type="attack" name="PlayerAttack" event="script" value="playerattack.lua"/>
Como usar a function:
canPlayerBeAttacked(cid, false) -- Isso faz com que o player nao possa ser atacado por outros players.
canPlayerBeAttacked(cid) -- Isso faz com que o player possa ser atacado por outros players, voce pode usar true ou nada.
Como fazer com que os monstros tambem nao possam atacar alguem com a function:
Va ate o code XML do monstro e antes de </monster> voce bota isso:
<script> <event name="PlayerAttack"/> </script>