Ir para conteúdo

Featured Replies

Postado

Opa, alguém pode dar uma maozinha?

eu clonei dois ids de alavancas pra fazer 1 summon especial, funciona assim:

12665: sumona o monstro e transforma essa alavanca (12665) em outra alavanca sem action (12664), pra não poder sumonar mais, até aí tudo bem, ela sumona o bicho, transforma a alavanca sumonável na outra não sumonável.

Porém...

Coloquei nos items.xml 12664 (sem action) duration de 30 minutos e então ela se transformaria na alavanca 12665 (sumonável), porém a alavanca fica ali eternamente, até reduzi o tempo pra 1 minuto pra poder testar certinho, ela fica lá. A duration dela não está contando, como se fosse um time ring por exemplo, dentro da bp.

Minha dúvida é o seguinte, como eu faço essa alavanca virar a outra? Tentei fazer o mesmo sistema dos firebomb runes, com decayto, duration, sem sucesso também.

Postado

Use um addEvent para transformar a alavanca de volta, exemplo em um script que fiz para outro membro:

local teleport = {{x = 1015, y = 1042, z = 7}, {x = 1013, y = 1042, z = 7}, 3} -- posição do teleport, posição que irá teleportar, segundos para fechar

function onUse(cid, item, fromPos)
    local function doRemove()
        local teleportThing = getTileItemById(teleport[1], 1387).uid
        local lever = getTileItemById(fromPos, 1945)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O teleporte foi fechado!")
        doSendMagicEffect(teleport[1], CONST_ME_POFF)
        doRemoveItem(teleportThing, 1) 
        doTransformItem(lever.uid, 1946) 	
    end

    if (item.itemid == 1946) then
        doCreateTeleport(1387, teleport[2], teleport[1])
        doTransformItem(item.uid, 1945)
        doCreatureSay(cid, "O teleporte irá fechar em ".. teleport[3] .." segundos!", TALKTYPE_MONSTER)
        addEvent(doRemove, teleport[3] * 1000, item)
    else
        doPlayerSendTextMessage(cid, 28, "O teleporte já está aberto.")
        doSendMagicEffect(fromPos, CONST_ME_POFF)
    end
   return true
end

Caso tenha dúvidas, sinta-se à vontade para perguntar.

Postado

@roach95:

local delay = 30

function onUse(cid, item, fromPos)
    local function doTransform()
        local lever = getTileItemById(fromPos, 12664)
        doTransformItem(lever.uid, 12665) -- TRANSFORMA A ALAVANCA EM 12665
    end

    if (item.itemid == 12665) then -- SE O ID FOR 12665 ENTAO
        doTransformItem(lever.uid, 12664)
    	addEvent(doTransform, delay * 1000 * 60, item) -- ATIVA A FUNÇÃO doTransform EM 30 MINUTOS
    	-- AQUI VOCÊ ADICIONA AS FUNÇÕES PARA SUMMONAR
    else -- SE NAO
    	doPlayerSendTextMessage(cid, 28, "MENSAGEM CASO ESTEJA NA ALAVANCA 12664.")
    end
   return true
end

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo