Ir para conteúdo
  • 0

Player Não Pode Atacar Seu Proprio Summon.


eduardo190696

Pergunta

opa, eu e um amigo criamos esse script

 

creaturescript


function onCombat(cid, target)
if isPlayer(cid) and isSummon(target) then
doPlayerSendCancel(cid, "You can't attack your dragon or best.")
return false
end
return true
end

 

lib


function isSummon(sid)
   for i, pid in ipairs(getPlayersOnline()) do
       for c, cid in pairs(getCreatureSummons(pid)) do
           if (cid == sid) then
               return true
           end
       end 
   end
   return false
end  

 

desse jeito, o player não pode atacar nem um summon, e eu quero para que ele não possa atacar só o seu summon.

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

function isSummon(cid, monster)
return getCreatureMaster(monster) == cid
end

 

function onCombat(cid, target)
if isPlayer(cid) and isSummon(cid, target) then
doPlayerSendCancel(cid, "You can't attack your dragon or best.")
return false
end
return true
end

 

deqlqr forma fica mais facil, somente:

function onCombat(cid, target)
if cid == getCreatureMaster(target) then
doPlayerSendCancel(cid, "You can't attack your dragon or best.")
return false
end
return true
end

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

  • 0

Beleza amigo, qual sua dúvida? Já leu o post que você fez? Colocou sua script e a função que você fez (que por acaso podia ser 1000x mais simples, rápida e limpa) e não perguntou nada...

 

Se o problema for não funcionar a script, é provavelmente porque você esqueceu de registrar o creature event nos players pelo login.lua

Link para o comentário
Compartilhar em outros sites

  • 0

@Eskylo, funcionou 100% +rep, Só que agora como eu faço para que o summon não acerte o dono, porque quando o summon solta uma spell e acaba acertando o seu dono, o dono leva um rit do próprio summon, faço para não ocorrer isso ?

 

@Edit

 

@Brun123

 

desse jeito, o player não pode atacar nem um summon, e eu quero para que ele não possa atacar só o seu summon.

ou seja, o player não podia atacar o summon que ele invocou, mais pode atacar o summon de outros players.

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

  • 0

pros summons nao 'combaterem' os donos seria:

 

 

function onCombat(cid, target)

if isInArray(getCreatureSummons(target), cid) then

return false

end

return true

end

Link para o comentário
Compartilhar em outros sites

  • 0

@Eskylo, eu dei rep, mais não funcionou, e o player fica com uma Yellow Skull.

 

login.lua

 

registerCreatureEvent(cid, "SummonAntKillPlayer")

 

no creaturescript.xml

<event type="combat" name="SummonAntKillPlayer" event="script" value="SummonAntKillPlayer.lua"/>

 

e o script

 


function onCombat(cid, target)
if isInArray(getCreatureSummons(target), cid) then
return false
end
return true
end

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

  • 0
@Eskylo, eu dei rep, mais não funcionou, e o player fica com uma Yellow Skull. login.lua
 registerCreatureEvent(cid, "SummonAntKillPlayer") 

no creaturescript.xml

  

e o script

 function onCombat(cid, target) if isInArray(getCreatureSummons(target), cid) then return false end return true end 

você tem que registrar essa creature event no summon...

exatamente como ele falou, pq nesse caso o cid é o summon e sendo assim o registerCreatureEvent() tem q ser no summon, exemplo

 

no script do summon vc procura essa parte

 

creature = doSummonCreature(nome, getCreaturePosition(cid))
doConvinceCreature(cid, creature)

 

aí vc add embaixo disso, isto:

 

registerCreatureEvent(creature, "SummonAntKillPlayer")

 

creature em vez de cid, pq creature foi a variavel q usei aki -> creature = doSummonCreature(..

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

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