Ir para conteúdo

Posts Recomendados

Com o exemplo corrigido não funcionou? Você instalou tudo corretamente? O jogador por acaso está usando um summon?

Tudo está funcionando como deve, inclusive testei a modificação na mesma versão da sua distro.

Um eu tenho uma alteração feita pelo slicer acho que e mesma coisa so que faltava a parte do void Monster::doAttacking(uint32_t interval) pra alterar se pode me dizer se posso deixar desse modo a parte do bool Monster::selectTarget(Creature* creature) ou deixo do seu jeito?

 

modo slicer​

 

 

  Mostrar conteúdo oculto

 

 

modo seu

 

 

  Mostrar conteúdo oculto

 

 

EDIT:Achei um erro fatal no qual da crash no servidor, e quanto os monster(tinha 2) estão atacando e vc seta a storage na hora dos ataques ai cai o servidor.

Editado por nociam
  Em 08/09/2015 em 00:48, zipter98 disse:

Minha alteração é basicamente a mesma do Slicer. A única diferença é que, na minha versão, eu retorno falso antes da dele.

e sobre esse erro

 

tipo tem um monstro me atacando ai eu usei uma food de proteçao que me ta tal storage pro monstro nao me atacar ai o servidor cai?

Apesar de não ser a maneira mais adequada para corrigir esse erro, é o que pude pensar no momento.

Na parte em que a storage é alterada no código da food de proteção:

local name = "monster_name"        --Nome do monstro.
 
function Substitute(cid)
    for _, pid in pairs(getSpectators(getThingPos(cid), 8, 8)) do
        if isMonster(pid) and getCreatureName(pid) == name then
            local healthNow, posNow = getCreatureHealth(pid), getThingPos(pid)
            doRemoveCreature(pid)
            local newMonster = doCreateMonster(name, posNow)
            doCreatureAddHealth(newMonster, -(getCreatureMaxHealth(newMonster) - healthNow))
        end
    end
end
 
setPlayerStorageValue(cid, key, -1)
Substitute(cid)
Editado por zipter98

Usando a correção que postei, o servidor não caiu e os monstros não me atacaram mais. Mas, se preferir, você pode fazer o que disse e fazer com que o item só possa ser usado fora de combate.

Amigo vc poderia testa com o script do ptdg. Estou usando ele e está dando esse erro. Quando tem o dois monster com msm nome atacando eu, quando mato um fecha Server. Poderia testa o do nosso amigo ae.

Se a storage for alterada durante o "processo", o servidor cai. Para evitar isso, vejam a correção que enviei alguns comentários acima para o nociam.

Troque a linha responsável pela modificação na storage por este código:

local name = "monster_name"        --Nome do monstro.
 
function Substitute(cid)
    for _, pid in pairs(getSpectators(getThingPos(cid), 8, 8)) do
        if isMonster(pid) and getCreatureName(pid) == name then
            local healthNow, posNow = getCreatureHealth(pid), getThingPos(pid)
            doRemoveCreature(pid)
            local newMonster = doCreateMonster(name, posNow)
            doCreatureAddHealth(newMonster, -(getCreatureMaxHealth(newMonster) - healthNow))
        end
    end
end
 
setPlayerStorageValue(cid, storage, valor)
Substitute(cid)
Editado por zipter98
  • 3 weeks later...
  • 4 months later...
  Em 02/10/2015 em 21:57, ptdg disse:

agr o problema é outro se 2 players tive matando o bixo junto e o bixo morre só muda a storage de 1 deles precisava mudar dos 2

tem como fazer isso zipter, o meu está do msm jeito.

×
×
  • Criar Novo...