Ir para conteúdo
  • 0

-=[TFS]=- 0.3.6 - 8.60 - Player fica em cima do contador de tempo pro monstro nasce e mostro nasce do lado do player faiz com que ele criei varios monstros iguais ME AJUDA


Muvuka

Pergunta

<?xml version="1.0" encoding="UTF-8"?>
  <monster name="[EXP] Statue" nameDescription="[EXP] Statue" race="blood" experience="100000000000000" speed="0" manacost="0">
    <health now="1000000000" max="1000000000"/>
    <look typeex="9791" corpse="6364"/>
    <targetchange interval="60000" chance="0"/>
    <strategy attack="100" defense="0"/>
    <flags>
      <flag summonable="0"/>
      <flag attackable="1"/>
      <flag hostile="0"/>
      <flag illusionable="0"/>
      <flag convinceable="0"/>
      <flag pushable="0"/>
      <flag canpushitems="0"/>
      <flag staticattack="100"/>
      <flag lightlevel="0"/>
      <flag lightcolor="0"/>
      <flag targetdistance="0"/>
      <flag runonhealth="0"/>
      <flag skull="5"/>
    </flags>
    <attacks>
      <attack name="melee" interval="" min="" max=""/>
    </attacks>
    <defenses armor="1000000000" defense="1000000000">
     <defense name="healing" interval="" chance="1000000000" min="1000000000" max="1000000000">
     <attribute key="areaEffect" value="blueshimmer"/>
     </defense>
    </defenses>
    <immunities>
      <immunity physical="0"/>
      <immunity energy="0"/>
      <immunity fire="0"/>
      <immunity poison="0"/>
      <immunity lifedrain="0"/>
      <immunity paralyze="0"/>
      <immunity outfit="0"/>
      <immunity drunk="0"/>
      <immunity invisible="0"/>
    </immunities>
    <voices interval="5000" chance="2000">
<voice sentence="Bonús-EXP!"/>
    </voices>
    <loot>
    </loot>
  </monster>

 

 

 

 

 

local colorMsg = "orange"
local tableBoss = {
    ["[EXP] Statue"] = {seconds = 3600, newBoss = "[EXP] Statue"}
}

local function timer(position, duration, color)
    for i = 0, (duration - 1) do
        addEvent(function()
            doSendAnimatedText(position, tostring(duration - i), color)
        end, i * 1000)
    end
end

function onKill(cid, target, damage, flags)
    if isPlayer(target) then
        return true
    end
    local boss = tableBoss[getCreatureName(target)]
    if not boss then
        return true
    end
    local position = getThingPos(target)
        doPlayerSendTextMessage(cid, MESSAGE_TYPES[colorMsg], "The boss will be born in " .. boss.seconds .. " seconds.")
        timer(position, boss.seconds, COLOR_WHITE)
        addEvent(doCreateMonster, boss.seconds * 1000, boss.newBoss, position)
    return true
end

Screenshot_1.pngScreenshot_2.png.a69c9f4f2c387af613e8dc0b3fe736fb.pnggiphy.gif

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

3 respostass a esta questão

Posts Recomendados

  • 1
local colorMsg = "orange"
local tableBoss = {
    ["[EXP] Statue"] = {seconds = 3600, newBoss = "[EXP] Statue", event = nil}
}

local function timer(position, duration, color)
    for i = 0, (duration - 1) do
        addEvent(function()
            doSendAnimatedText(position, tostring(duration - i), color)
        end, i * 1000)
    end
end

function onKill(cid, target, damage, flags)
    if isPlayer(target) then
        return true
    end

    local bossName = getCreatureName(target)
    local boss = tableBoss[bossName]
    if not boss then
        return true
    end

    local position = getThingPos(target)

    -- Cancelar evento anterior se existir
    if boss.event then
        stopEvent(boss.event)
    end

    doPlayerSendTextMessage(cid, MESSAGE_TYPES[colorMsg], "The boss will be born in " .. boss.seconds .. " seconds.")
    timer(position, boss.seconds, COLOR_WHITE)
    boss.event = addEvent(function()
        boss.event = nil -- resetar evento
        doCreateMonster(boss.newBoss, position)
    end, boss.seconds * 1000)

    return true
end


1.Cancelamento do evento anterior: Antes de criar um novo evento de nascimento do monstro, o script cancela o evento anterior usando stopEvent(boss.event) se ele ainda estiver ativo.

2.Reset do evento: Quando o monstro é criado, o evento é resetado para nil, permitindo que novos eventos sejam criados sem problema na próxima vez que o monstro for morto.

Essa modificação deve evitar a criação de múltiplos monstros quando o jogador está em cima do contador de tempo.

Link para o comentário
Compartilhar em outros sites

  • 0
local colorMsg = "orange"
local tableBoss = {
    ["[EXP] Statue"] = {seconds = 3600, newBoss = "[EXP] Statue", event = nil}
}

local function timer(position, duration, color)
    for i = 0, (duration - 1) do
        addEvent(function()
            doSendAnimatedText(position, tostring(duration - i), color)
        end, i * 1000)
    end
end

function onKill(cid, target, damage, flags)
    if isPlayer(target) then
        return true
    end
    local boss = tableBoss[getCreatureName(target)]
    if not boss then
        return true
    end
    local position = getThingPos(target)
    if boss.event == nil then
        doPlayerSendTextMessage(cid, MESSAGE_TYPES[colorMsg], "The boss will be born in " .. boss.seconds .. " seconds.")
        timer(position, boss.seconds, COLOR_WHITE)
        boss.event = addEvent(doCreateMonster, boss.seconds * 1000, boss.newBoss, position)
    end
    return true
end

 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...