Ir para conteúdo
  • Cadastre-se

(Resolvido)Script boss + teleport (Adaptação)


Ir para solução Resolvido por Imperius,

Posts Recomendados

Ola galerinha, show ?
Entao, tenho esse script que ao matar o boss aparece um teleport com contagem regressiva pra poder entrar. Porem queria que esse script funcionasse ao contraio. Que ao aparecer o boss em determinado lugar aparecesse o teleport em tal determinado lugar, e quando o boss morrersse o teleport sumisse. E que nesse teleport que aparecesse ficasse a msg de tempo, que o teleport ficaria la ate 45min (na contagem regressiva como esta no script). 

Alguem poderia ajudar nisso pf ?

Desde de já, Muito grato ! ♥

 

Citar

local config = {
message = "Teleport se fechará em 90 segundos, Corra antes que feche.",
timeToRemove = 90, -- seconds
teleportId = 1387,
bosses = {
["Boss Thdagger"] = { x = 263, y = 349, z = 7 },
}
}

local function removal(position)
doRemoveThing(getTileItemById(position, config.teleportId).uid, 1)
return TRUE
end

function onDeath(cid, corpse, killer)
registerCreatureEvent(cid, "Boss Thdagger")
local position = getCreaturePosition(cid)

for name, pos in pairs(config.bosses) do
if name == getCreatureName(cid) then
teleport = doCreateTeleport(config.teleportId, pos, position)
doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
addEvent(removal, config.timeToRemove * 1000, position)
doSendMagicEffect(position,10)
end
end
return TRUE
end

 

Link para o post
Compartilhar em outros sites

Tenta esse:

local config = {
    message = "Teleport se fechará em 45 minutos. Corra antes que feche.",
    timeToRemove = 45 * 60, -- segundos
    teleportId = 1387,
    bosses = {
        ["Boss Thdagger"] = { x = 263, y = 349, z = 7 },
    }
}

local function removal(position)
    local teleport = getTileItemById(position, config.teleportId)
    if teleport.itemid == config.teleportId then
        doRemoveItem(teleport.uid)
    end
end

function onDeath(cid, corpse, killer)
    unregisterCreatureEvent(cid, "Boss Thdagger")
    local position = getCreaturePosition(cid)

    for name, pos in pairs(config.bosses) do
        if name == getCreatureName(cid) then
            local teleport = doCreateTeleport(config.teleportId, pos, position)
            doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
            addEvent(removal, config.timeToRemove * 1000, position)
            doSendMagicEffect(position, 10)
            break
        end
    end

    return true
end

 

Link para o post
Compartilhar em outros sites
1 hora atrás, Ruyzin Pikatxufly disse:

Tenta esse:


local config = {
    message = "Teleport se fechará em 45 minutos. Corra antes que feche.",
    timeToRemove = 45 * 60, -- segundos
    teleportId = 1387,
    bosses = {
        ["Boss Thdagger"] = { x = 263, y = 349, z = 7 },
    }
}

local function removal(position)
    local teleport = getTileItemById(position, config.teleportId)
    if teleport.itemid == config.teleportId then
        doRemoveItem(teleport.uid)
    end
end

function onDeath(cid, corpse, killer)
    unregisterCreatureEvent(cid, "Boss Thdagger")
    local position = getCreaturePosition(cid)

    for name, pos in pairs(config.bosses) do
        if name == getCreatureName(cid) then
            local teleport = doCreateTeleport(config.teleportId, pos, position)
            doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
            addEvent(removal, config.timeToRemove * 1000, position)
            doSendMagicEffect(position, 10)
            break
        end
    end

    return true
end

 

Muitoooo grato por tentar ajudar, mas nao condiz com pedido feito !

Ao aparecer o boss aparece o teleport juntamente em determinada localizaçao (e nao ter q matar o boss para aparecer o teleporte)  e no teleporte fica aparecendo o tempo em contagem regressiva. e quando o boss morre o teleporte tbm some !

Link para o post
Compartilhar em outros sites
local config = {
    message = "Teleport se fechará em 90 segundos. Corra antes que feche.",
    timeToRemove = 90, -- segundos
    teleportId = 1387,
    bosses = {
        ["Boss Thdagger"] = { x = 263, y = 349, z = 7 },
    }
}

local function removal(position)
    local teleport = getTileItemById(position, config.teleportId)
    if teleport then
        doRemoveItem(teleport.uid)
    end
end

function onDeath(cid, corpse, killer)
    unregisterCreatureEvent(cid, "Boss Thdagger")
    local position = getCreaturePosition(cid)

    for name, pos in pairs(config.bosses) do
        if name == getCreatureName(cid) then
            local teleportPosition = { x = pos.x + 10, y = pos.y + 10, z = pos.z } -- Posição do teleport (+10 nas coordenadas x e y)
            local teleport = doCreateTeleport(config.teleportId, teleportPosition, pos)
            doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
            addEvent(removal, config.timeToRemove * 1000, teleportPosition)
            doSendMagicEffect(position, 10)
            break
        end
    end

    return true
end

 

Entendi errado então ve se é isso que você precisa.

Mude o teleport position.

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

local config = {
    message = "Teleport se fechará em 90 segundos. Corra antes que feche.",
    timeToRemove = 90, -- segundos
    teleportId = 1387,
    bosses = {
        ["Boss Thdagger"] = { x = 263, y = 349, z = 7 },
    }
}

local function removal(position)
    local teleport = getTileItemById(position, config.teleportId)
    if teleport then
        doRemoveItem(teleport.uid)
    end
end

function onDeath(cid, corpse, killer)
    unregisterCreatureEvent(cid, "Boss Thdagger")
    local position = getCreaturePosition(cid)

    for name, pos in pairs(config.bosses) do
        if name == getCreatureName(cid) then
            local teleportPosition = { x = pos.x + 10, y = pos.y + 10, z = pos.z } -- Posição do teleport (+10 nas coordenadas x e y)
            local teleport = doCreateTeleport(config.teleportId, teleportPosition, pos)
            doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
            addEvent(removal, config.timeToRemove * 1000, teleportPosition)
            doSendMagicEffect(position, 10)
            break
        end
    end

    return true
end

 

Entendi errado então ve se é isso que você precisa.

Mude o teleport position.

Tbm nao condiz com o pedido !

Link para o post
Compartilhar em outros sites
1 hora atrás, Ruyzin Pikatxufly disse:

Desculpe amigo então não estou entendendo.

O boss vai aparecer, e quando o boss aparecer... o teleporte vai aparecer juntos (nao tem q precisar matar o boss para o teleport aparecer ) dai emcima do teleport vai ficar contagem regressiva(EX: 30...29...28...27...26 que é o tempo que o teleport vai acabar. assim que o boss morrer o teleport devera sumir !

Link para o post
Compartilhar em outros sites
  • Solução
Em 28/05/2023 em 00:03, Doidodepeda disse:

Ola galerinha, show ?
Entao, tenho esse script que ao matar o boss aparece um teleport com contagem regressiva pra poder entrar. Porem queria que esse script funcionasse ao contraio. Que ao aparecer o boss em determinado lugar aparecesse o teleport em tal determinado lugar, e quando o boss morrersse o teleport sumisse. E que nesse teleport que aparecesse ficasse a msg de tempo, que o teleport ficaria la ate 45min (na contagem regressiva como esta no script). 

Alguem poderia ajudar nisso pf ?

Desde de já, Muito grato ! ♥

 

 

 

seria tipo isso? Não entendi mt bem como será feito p/ nascer boss, então fiz uma talkaction, aí é só vc adapta da maneira que quiser.

 

data > lib > spawnBoss.lua

 

BOSS_SPAWN_CONFIG = {
    bosses = { 
        ["Boss Thdagger"] = { -- Nome do Boss.        
            position = {
                spawnBoss  = {x = 263, y = 349, z = 7 },  -- Onde o boss nascerá.
                openTP     = {x = 0, y = 0, z = 0},       -- Onde o TP aparecerá.
                locationTP = {x = 0, y = 0, z = 0}        -- Onde o TP levará o jogador.
            },
            timeInSeconds = {
                closeTP = 60 -- segundos p/ fechar o TP após o boss ter nascido.
            }
        }
        -- Adicione outros bosses aqui se quiser ...
    }
}

-- Mostrará a contagem regressiva em cima do TP --
function spawnBossCountdownOnTeleport(bossCreature, teleport, timeToCloseTP)

    local bossName = getCreatureName(bossCreature);

    if not bossName then
        doRemoveItem(getTileItemById(teleport, 1387).uid)
        doSendMagicEffect(teleport, CONST_ME_POFF)
        return true
    end

    local timeToCloseTP = tonumber(timeToCloseTP) - 1;

    if timeToCloseTP == 0 then
        doRemoveItem(getTileItemById(teleport, 1387).uid)
        doSendMagicEffect(teleport, CONST_ME_POFF)
        return true
    end

    doSendAnimatedText(teleport, timeToCloseTP, 725)
    addEvent(spawnBossCountdownOnTeleport, 1000, bossCreature, teleport, timeToCloseTP);

    return true
end

 

 

data > talkactions > scripts > spawnBoss.lua

 

function onSay(cid, words, param, channel)

    local bossName = param;

    if not BOSS_SPAWN_CONFIG.bosses[bossName] then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Boss nao encontrado! Escreva o nome corretamente, incluindo letras maiuscula/minuscula.")
        return true
    end
      
    local bossCreature = doCreateMonster(bossName, BOSS_SPAWN_CONFIG.bosses[bossName].position.spawnBoss)
    doCreateTeleport(1387,    BOSS_SPAWN_CONFIG.bosses[bossName].position.locationTP, BOSS_SPAWN_CONFIG.bosses[bossName].position.openTP)


    spawnBossCountdownOnTeleport(bossCreature, BOSS_SPAWN_CONFIG.bosses[bossName].position.openTP, BOSS_SPAWN_CONFIG.bosses[bossName].timeInSeconds.closeTP);

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOSS: "..bossName.." foi criado!")
    return true
end

 

data > talkactions > talkactions.xml

 

<!-- Spawn Boss -->
<talkaction access="5" words="/boss" script="spawnBoss.lua"/>

 

/boss nome do boss

Editado por Imperius (veja o histórico de edições)
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.

  • 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