Ir para conteúdo
  • 0

[Pedido] monstro que se multiplica com x de vida


4sharedddd

Pergunta

7 respostass a esta questão

Posts Recomendados

  • 0

data/creaturescripts/scripts

Código:

local health_to_multiple = 500                --Vida que, quando o monstro chegar, será replicado.
 
function onStatsChange(cid, attacker, type, combat, value)
    if isMonster(cid) and getCreatureHealth(cid) <= health_to_multiple and getPlayerStorageValue(cid, 4911) < 1 and type == STATSCHANGE_HEALTHLOSS then
        local new_monster = doCreateMonster(getCreatureName(cid), getThingPos(cid))

        doCreatureAddHealth(new_monster, -(getCreatureMaxHealth(new_monster) - health_to_multiple))
        setPlayerStorageValue(cid, 4911, 1)
        setPlayerStorageValue(new_monster, 4911, 1)
    end
    return true
end
Tag:
<event type="statschange" name="multiple_monster" event="script" value="nome_do_arquivo.lua"/>
No arquivo .xml do(s) monstro(s):
<script>
    <event name="multiple_monster"/>
</script>

 

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

  • 0

Basta colocar aquele último trecho de código que enviei no arquivo .xml do monstro (antes de </monster>).

Funcionou certinho, muito obrigado cara... o unico problema que estou tendo é com o monstro quando ele tiver trapado.

 

por exemplo, se ele estiver trapado por magic wall o server começa a dar erro e cai. como arrumar? acho que o script fica tentando achar um lugar pro monstro nascer e da erro

Link para o comentário
Compartilhar em outros sites

  • 0

eu tive esse problema quando criei a volatile spiderling. O tibia tem uma função chamada getClosestFreeTile que retorna a posição livre mais próxima pra sumonar o bixo.
Infelizmente para monstros trapados, ainda irá retornar esse erro então a forma de resolver isso é fazer um for por todas as posições em volta do player no range que vc quiser (gosto de usar range 2)

monstro é o 'o' e 'x' são as posições que irei contemplar.

 xxx
xxxxx
xxOxx
xxxxx
 xxx

e aí vc checa se tem uma posição livre, se tiver você cria o monstro lá.. se não tiver nenhuma vc não faz nada. Com essa simples checagem vc já arruma os erros da distro pois impede o script de tentar criar monstros em posições q não são elegíveis de se criar um monstro

 

Link para o comentário
Compartilhar em outros sites

  • 0

eu tive esse problema quando criei a volatile spiderling. O tibia tem uma função chamada getClosestFreeTile que retorna a posição livre mais próxima pra sumonar o bixo.

Infelizmente para monstros trapados, ainda irá retornar esse erro então a forma de resolver isso é fazer um for por todas as posições em volta do player no range que vc quiser (gosto de usar range 2)

monstro é o 'o' e 'x' são as posições que irei contemplar.

 xxx
xxxxx
xxOxx
xxxxx
 xxx

e aí vc checa se tem uma posição livre, se tiver você cria o monstro lá.. se não tiver nenhuma vc não faz nada. Com essa simples checagem vc já arruma os erros da distro pois impede o script de tentar criar monstros em posições q não são elegíveis de se criar um monstro

 

 

 

Agrdeço tanto a sua vontade de ajudar quanto a dos outros, bom só o script ali simples já quebrou um galho pra mim, já como não manjo muito de script (as vezes consigo fazer algo juntando varios scripts laugh.png ) eu vou fazer o monstro rodeado de portal, é só um boss mesmo talvez isso resolva kk

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...