Ir para conteúdo
  • Cadastre-se

(Resolvido)[ajuda] ao matar monstro, um teleport aparece por 15 segundos


Ir para solução Resolvido por 139,

Posts Recomendados

Qual o motivo deste tópico?

Eu tentei usar o mesmo script para outro monstro, mas não funciona, funciona apenas com o primeiro monstro.

 

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

local tpId = 1387 -- id do teleport que aparece(deixe assim)
local tp = {
    info = {
        pos = {x = 647, y = 250, z = 6}, -- onde aparece o teleport
        toPos = {x = 658, y = 251, z = 6}, -- para onde o teleport leva
        time = 15, -- tempo em segundos que dura o portal
    },
    kill = {
        ["Weakened Lich"] = {count = 1, str = 10002}, -- monstro 1, quantidade, stor
    },
}
 
function checkTask()
    for name, info in pairs(tp.kill) do
        if getGlobalStorageValue(info.str) < info.count then
            return false
        end
    end
    return true
end
 
function removeTp(tp)
    local t = getTileItemById(tp.info.pos, tpId)
    if t then
        doRemoveItem(t.uid, 1)
        doSendMagicEffect(tp.info.pos, CONST_ME_POFF)
    end
end
 
function onDeath(cid)
    local m = tp.kill[getCreatureName(cid)]
    if not tp then
        return true
    end
    setGlobalStorageValue(m.str, getGlobalStorageValue(m.str) < 0 and 1 or getGlobalStorageValue(m.str) + 1)
    if checkTask() then
        doCreateTeleport(tpId, tp.info.toPos, tp.info.pos)
        doCreatureSay(cid, "O teleport vai sumir em "..tp.info.time.." segundos.", TALKTYPE_ORANGE_1)
        addEvent(removeTp, tp.info.time * 1000, tp)
        for _, info in pairs(tp.kill) do
            setGlobalStorageValue(info.str, -1)
        end
    end
    return true
end 

 

Eu queria poder fazer uma cópia do script e mudar apenas o monstro e o local de onde o portal vai aparecer.

 

Link para o post
Compartilhar em outros sites
2 horas atrás, varkhal2 disse:

Qual seu TFS?

po mano, eu não sei ver a versão, o ot que baixei veio sem a pasta pra compilar o tfs, ele ja veio compilado..
quando eu abro o server aparece "crystal server version 2.1"

Link para o post
Compartilhar em outros sites
  • Solução

Alterei o script pra você poder adicionar quantos monstros quiser nele, ao invés de criar varias cópias.

 

Spoiler

local tpId = 1387 -- id do teleport que aparece(deixe assim)
local tabela = {
    ["Weakened Lich"] = {count = 1, str = 10002, pos = {x = 647, y = 250, z = 6}, toPos = {x = 658, y = 251, z = 6}, time = 15},
    ["Dragon"]        = {count = 1, str = 10003, pos = {x = 111, y = 111, z = 1}, toPos = {x = 222, y = 222, z = 2}, time = 10}, 
}
 
function checkTask(info)
    if getGlobalStorageValue(info.str) < info.count then
        return false
    end
    return true
end
 
function removeTp(info)
    local t = getTileItemById(info.pos, tpId)
    if t then
        doRemoveItem(t.uid, 1)
        doSendMagicEffect(info.pos, CONST_ME_POFF)
    end
end
 
function onDeath(cid)
    local info = tabela[getCreatureName(cid)]
    if not info then
        return true
    end
    setGlobalStorageValue(info.str, getGlobalStorageValue(info.str) < 0 and 1 or getGlobalStorageValue(info.str) + 1)
    if checkTask(info) then
        doCreateTeleport(tpId, info.toPos, info.pos)
        doCreatureSay(cid, "O teleport vai sumir em "..info.time.." segundos.", TALKTYPE_ORANGE_1)
        addEvent(removeTp, info.time * 1000, info)
        addEvent(setGlobalStorageValue(info.str, -1))
    end
    return true
end 


Agora sobre o script não funcionar com o segundo monstro:
Confere se você registrou corretamente o evento desse script no .xml dele.

Editado por 139 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
10 horas atrás, 139 disse:

Alterei o script pra você poder adicionar quantos monstros quiser nele, ao invés de criar varias cópias.

 

  Ocultar conteúdo

local tpId = 1387 -- id do teleport que aparece(deixe assim)
local tabela = {
    ["Weakened Lich"] = {count = 1, str = 10002, pos = {x = 647, y = 250, z = 6}, toPos = {x = 658, y = 251, z = 6}, time = 15},
    ["Dragon"]        = {count = 1, str = 10003, pos = {x = 111, y = 111, z = 1}, toPos = {x = 222, y = 222, z = 2}, time = 10}, 
}
 
function checkTask(info)
    if getGlobalStorageValue(info.str) < info.count then
        return false
    end
    return true
end
 
function removeTp(info)
    local t = getTileItemById(info.pos, tpId)
    if t then
        doRemoveItem(t.uid, 1)
        doSendMagicEffect(info.pos, CONST_ME_POFF)
    end
end
 
function onDeath(cid)
    local info = tabela[getCreatureName(cid)]
    if not info then
        return true
    end
    setGlobalStorageValue(info.str, getGlobalStorageValue(info.str) < 0 and 1 or getGlobalStorageValue(info.str) + 1)
    if checkTask(info) then
        doCreateTeleport(tpId, info.toPos, info.pos)
        doCreatureSay(cid, "O teleport vai sumir em "..info.time.." segundos.", TALKTYPE_ORANGE_1)
        addEvent(removeTp, info.time * 1000, info)
        addEvent(setGlobalStorageValue(info.str, -1))
    end
    return true
end 


Agora sobre o script não funcionar com o segundo monstro:
Confere se você registrou corretamente o evento desse script no .xml dele.

Manooo, deu certo!! muito obrigado!!! +rep

Link para o post
Compartilhar em outros sites
Em 14/02/2021 em 01:03, kinomoto disse:

Manooo, deu certo!! muito obrigado!!! +rep

agora que vi, ta dando erro no console, como faço pra arrumar?
image.png.c4172e7c44d3de39d4c971b2d4aff561.png

Link para o post
Compartilhar em outros sites

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo