Ir para conteúdo
  • Cadastre-se

(Resolvido){RESOLVIDO} Monstro virando outro com % de vida


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Base: 0.4

 

Boa tarde povo, vou explicar melhor esse titulo: Eu queria um script que acontecesse  quando voce estivesse matando "x" monstro. Quando a vida desse monstro chegasse a por exemplo 50%, ele falaria algo, sumisse e aparecesse outro monstro no lugar dele. Eu não faço ideia se isso é simples ou difícil, é só uma ideia que eu tive.

Agradeço desde já.

 

Link para o post
Compartilhar em outros sites

Creaturescripts/scripts

function onStatsChange(cid, attacker, type, combat, value)

local life = getCreatureHealth(cid) <= math.floor(0.5 * getCreatureMaxHealth(cid))

local monster = "Rabbit" -- Monstro que irá atingir o 50% e sumir
local monstro = "Demon"  -- Monstro que irá ser invocado
local msg = "Irei sumir" -- Mensagem quando o monstro for sumir 

   if not isMonster(cid) then 
   return true 
   end
         
         if life and getCreatureName(cid) == monster then
            doCreatureSay(cid, msg, 1)
            addEvent(doCreateMonster, 1000, monstro, getCreaturePosition(cid))
            addEvent(doRemoveCreature, 1000, cid)
            return true
         end
return true
end  

XML

<event type="statschange" name="Pedido" event="script" value="Pedido.lua"/>

Na XML do monstro

	<script>
    <event name="Pedido"/>
    </script>

 

Link para o post
Compartilhar em outros sites
Agora, Zazeros disse:

Booa cara, eu vou testar quando chegar em casa. Tem como colocar um efeito de quando o novo monstro aparecer?


Em baixo de

doCreatureSay(cid, msg, 1)

Coloque

addEvent(doSendMagicEffect, 1000, getCreaturePosition(cid), ID DO EFEITO AQUI)

 

Link para o post
Compartilhar em outros sites

@Sttorm  Cara, infelizmente não funcionou, e não apareceu nem um erro no console. Se eu tirar vida a mais que 50 por cento, o evento não se realiza né? Eu coloquei a vida da criatura em exatos 50% e não funcionou

Link para o post
Compartilhar em outros sites

tenta assim:

 

 

function onStatsChange(cid, attacker, type, combat, value)
local monster = "Rabbit" -- Monstro que irá atingir o 50% e sumir
local monstro = "Demon"  -- Monstro que irá ser invocado
local msg = "Irei sumir" -- Mensagem quando o monstro for sumir 
   if not isMonster(cid) then 
      return true 
   end         
  if type == STATSCHANGE_HEALTHLOSS and getCreatureName(cid):lower() == monster:lower() then
         local monsterPercent = 100/(getCreatureMaxHealth(cid)/getCreatureHealth(cid))
         if monsterPercent <= 50 and monsterPercent >= 49 then
            doCreatureSay(cid, msg, 1)
            addEvent(doCreateMonster, 1000, monstro, getCreaturePosition(cid))
            addEvent(doRemoveCreature, 1000, cid)
        end
  end
return true
end 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart Funcionou sim, ficou bem legal, mas só uma pergunta:

Nessa parte da script, significa que o monstro vai sumir quando tiver com a vida entre 50 e 49% ou se tiver com a vida com 50 ou 49%?

 

if monsterPercent <= 50 and monsterPercent >= 49 then

Link para o post
Compartilhar em outros sites
3 horas atrás, Zazeros disse:

@Vodkart Funcionou sim, ficou bem legal, mas só uma pergunta:

Nessa parte da script, significa que o monstro vai sumir quando tiver com a vida entre 50 e 49% ou se tiver com a vida com 50 ou 49%?

 

if monsterPercent <= 50 and monsterPercent >= 49 then

 

é que depende do hp do monstro, eu acho que o hp do seu monstro é bastante alta certo?

 

no caso é:

 

SE (hp do monstro) é igual ou menor(<=) que 50 E (hp do monstro) é igual ou maior(>=) que 49 ENTÃO

 

porque isso? Porque digamos que mtos players hitem ao mesmo tempo e o hp do monstro pule de 51% para 49%, ou seja, pulou 50% e o script não iria executar... entendeu?

 

de qualquer jeito se o hp do seu monstro não for tão alto, só usar: 

 

if monsterPercent <= 50 then

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart Entendi, o HP dele é bem alto mesmo. Obrigado pela explicação.

Só uma coisa, as vezes o monstro tá falando 2x e nesse caso, acabada summonando 2 monstros. Eu acho que pode ser que o menor que 50 e maior que 49 esteja sendo usado ao mesmo tempo, pode ser isso? 

Link para o post
Compartilhar em outros sites
  • Solução
2 horas atrás, Zazeros disse:

@Vodkart Entendi, o HP dele é bem alto mesmo. Obrigado pela explicação.

Só uma coisa, as vezes o monstro tá falando 2x e nesse caso, acabada summonando 2 monstros. Eu acho que pode ser que o menor que 50 e maior que 49 esteja sendo usado ao mesmo tempo, pode ser isso? 

 

é pq tme mto jogador atingindo ao mesmo tempo, use assim:

 

 

function onStatsChange(cid, attacker, type, combat, value)
local stor = 354867 -- n mexa
local monster = "Rabbit" -- Monstro que irá atingir o 50% e sumir
local monstro = "Demon"  -- Monstro que irá ser invocado
local msg = "Irei sumir" -- Mensagem quando o monstro for sumir 
   if not isMonster(cid) then 
      return true 
   end         
  if type == STATSCHANGE_HEALTHLOSS and getCreatureName(cid):lower() == monster:lower() then
         local monsterPercent = 100/(getCreatureMaxHealth(cid)/getCreatureHealth(cid))
         if monsterPercent <= 50 and monsterPercent >= 49 then
            if getGlobalStorageValue(stor) - os.time() <= 0 then
               doCreatureSay(cid, msg, 1)
               setGlobalStorageValue(stor, os.time() + 120)
               addEvent(doCreateMonster, 1000, monstro, getCreaturePosition(cid))
               addEvent(doRemoveCreature, 1000, cid)
            end
        end
  end
return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • Zazeros mudou o título para {RESOLVIDO} Monstro virando outro com % de vida

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo