Ir para conteúdo
  • 0

[SCRIPT]Summon não ataca monstro


nbb147

Pergunta

e ai pessoal, estou com um script aqui que faz com que os monstros não se matem ao usarem uma magia de arena, mas existe um problema nele, bom, os summons não conseguem atacar os monstros, mas os monstros atacam os summons normalmente, queria saber como faço para os monstros não se matarem ao usarem spell de arena e que os summons conseguissem atacar os monstros normalmente, já tentei colocar "not isSummon(attacker) and not isSummon(cid)" mas não funcionou o console diz que existe um erro relacionado ao "getCreatureMaster" se não me engano, bom, ai está o script:

function onStatsChange(cid, attacker, type, combat, value)    if isMonster(attacker) and isMonster(cid) then        return false    end    return trueend

agradeço desde já qualquer intenção de ajuda.

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 1

Poxa eu tava atras desse codigo tbm ai eu tinha feito mais n fico tao bom e ai eu peguei esse seu editei e funfo certinho aki ve se serve pra vc tbm

 

function onStatsChange(cid, attacker, type, combat, value)
    if isMonster(attacker) and isMonster(cid) and isMonster(getCreatureMaster(attacker)) and isMonster(getCreatureMaster(cid)) then
        return false
    end
    return true
end
 

Link para o comentário
Compartilhar em outros sites

  • 0

sua explicação está um pouco confusa pra mim, mas espero que minha dica ajude

 

todo creature event precisa ser registrado nas creatures que ele foi feito pra ser usado

 

exemplo: um creature event que nao deixa o player tomar dano eu preciso ir no login.lua e registrar no player com a função registerCreatureEvent(cid, "naoTomarDano") a partir daí o script de nao tomar dano vai funcionar no player que fez login

 

nos monstros você pode registrar pelo xml do monstro ou no script que sumona ele

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta debugar o script pra tentar achar o erro, exemplo

 

function onStatsChange(cid, attacker, type, combat, value)    if isMonster(cid) then        print('cid is monster')    end    if isMonster(attacker) then        print('attacker is monster')    end    if isMonster(attacker) and isMonster(cid) then        return false    end    return trueend

 

observa o que aparece no distro quando um summon ataca um monstro e vice-versa, se não aparecer nada também é sinal de algo errado, talvez o erro até seja nas sources.

Link para o comentário
Compartilhar em outros sites

  • 0

function ehMonstro(cid)
local eh = false
    if not isSummon(cid)  and not isPlayer(cid) then
        eh = true
    end
    return eh
end

      

      if ehMonstro(cid) and ehMonstro(attacker) and not isSummon(cid) and not isSummon(attacker) then
         return false                                        
       end

Link para o comentário
Compartilhar em outros sites

  • 0

@Eskylo cara vou tentar fazer isso, mas do jeito que isso está complicado eu acho que não vou conseguir, obrigado man pela sugestão.

 

@nociam cara, deu esse erro o script:

 

[17/07/2016 01:39:37] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/mkillm.lua:1: '=' expected near 'ehMonstro'
[17/07/2016 01:39:37] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/mkillm.lua)
[17/07/2016 01:39:37] data/creaturescripts/scripts/mkillm.lua:1: '=' expected near 'ehMonstro'

---------------------------EDIT--------------------

@Eskylo perdão sou meio leigo, não manjo muito de programar, mas me explica, não entendi muito bem isso que tu fez, como eu poderia encontrar o problema desse jeito? no console apareceu isso, como manda no script:

 

[17/07/2016 01:45:38] cid is monster
[17/07/2016 01:45:38] attacker is monster
[17/07/2016 01:45:38] cid is monster
[17/07/2016 01:45:38] attacker is monster
[17/07/2016 01:45:38] cid is monster
[17/07/2016 01:45:38] attacker is monster
[17/07/2016 01:45:38] cid is monster
[17/07/2016 01:45:38] attacker is monster
[17/07/2016 01:45:40] cid is monster
[17/07/2016 01:45:40] attacker is monster
[17/07/2016 01:45:40] cid is monster
[17/07/2016 01:45:40] attacker is monster
[17/07/2016 01:45:40] cid is monster
[17/07/2016 01:45:40] attacker is monster
[17/07/2016 01:45:40] cid is monster
[17/07/2016 01:45:40] attacker is monster
[17/07/2016 01:45:42] cid is monster
[17/07/2016 01:45:42] attacker is monster  

no caso não apresentou nenhum erro.

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

  • 0

removido, estou confuso se você quer adições no script que você tem ou apenas reparo

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

  • 0

creio eu que alguma adição tenha que ser feita ao script, pois ele funciona da seguinte forma, os monstros conseguem acertar arenas e ataques nos summons só que os summons não conseguem atacar e nem acertar magias no geral, eu gostaria de saber como eu poderia fazer para que os summons conseguisse acertar o dano nos monstros.

Link para o comentário
Compartilhar em outros sites

  • 0

mas você sabe que esse script impede que a criatura tome dano né? na minha visao o bug está em como os monstros atacam os summons.

 

porque os summons nao atacar os monstros tá dentro do esperado, o contrário que não tá

Link para o comentário
Compartilhar em outros sites

  • 0

Exatamente cara, por isso gostaria de saber se existe alguma maneira de concertar esse script para fazer o que quero, sei que isso não é um bug, isso já vem da sourcer, essa parada de reconhecer o summon como um monstro, eu apenas gostaria de saber se é possível fazer isso

Link para o comentário
Compartilhar em outros sites

  • 0

Estou procurando algo parecido, gostaria que os summons não ataque um certo tipo de monstro ou no caso bosses

Uso tfs 1.x será que é possível isso? problema que estou tentando fazer o reward chest para de derrubar o server quando um summon participa ou mata um boss.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...