Ir para conteúdo

Featured Replies

  • Respostas 21
  • Visualizações 1.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Antes de tudo: caso você já tenha um script que dê início a esta missão (como, por exemplo, uma alavanca), coloque isso em tal script para verificar se o jogador já completou a quest: if getPlayerSt

  • Entendo. Mas vou da uma ideia pra voce ,caso não tenha nenhum amigo que possa fazer esse script que vc deseja.   Você poem 1 em 1 sala um boss e altera ele deixando ele dificil (Aumentando HP... ATK

Postado
  • Autor

criei 2 sem querer e não consegui deletar.. :x

então, alguém conhece a quest do Helmet of the Ancients do global? são várias salas.. eu peguei as mesmas salas com mesmo monstros, entre eles são: Dipthrah, Omruc, hand of cursed fate, necromancer.. enfim, eu só queria que o TP fosse liberado para partir para próxima quando todos os montros da sala forem mortos

Postado
  • Solução
Antes de tudo: caso você já tenha um script que dê início a esta missão (como, por exemplo, uma alavanca), coloque isso em tal script para verificar se o jogador já completou a quest:
if getPlayerStorageValue(cid, 90182) > -1 then
    return doPlayerSendCancel(cid, "You already completed this quest.")
end
Se você não souber aonde colocar exatamente, ou não tiver o script que mencionei, avise que eu faço para você.
Agora, vamos ao código do teleporte:
Tag:
<movevent type="StepIn" actionid="xxx" event="script" value="arenatp.lua"/>
Troque xxx por um actionid que não esteja em uso no seu servidor.
data/movements/scripts, arenatp.lua:
local arenas = {
    [1] = {                                          --Cada número representa uma room.
        fromPos = {x = x, y = y, z = z},      --Coordenadas da posição superior esquerda da arena.
        toPos = {x = x, y = y, z = z},        --Coordenadas da posição inferior direita da arena.
        pos = {x = x, y = y, z = z},          --Pra onde o player será teleportado.
    },
    [2] = {
        fromPos = {x = x, y = y, z = z},      --Coordenadas da posição superior esquerda da arena.
        toPos = {x = x, y = y, z = z},        --Coordenadas da posição inferior direita da arena.
        pos = {x = x, y = y, z = z},          --Pra onde o player será teleportado.
    },
    [3] = {
        fromPos = {x = x, y = y, z = z},      --Coordenadas da posição superior esquerda da arena.
        toPos = {x = x, y = y, z = z},        --Coordenadas da posição inferior direita da arena.
        pos = {x = x, y = y, z = z},          --Pra onde o player será teleportado.
    },
    [4] = {
        fromPos = {x = x, y = y, z = z},      --Coordenadas da posição superior esquerda da arena.
        toPos = {x = x, y = y, z = z},        --Coordenadas da posição inferior direita da arena.
        pos = {x = x, y = y, z = z},          --Pra onde o player será teleportado.
    },
    [5] = {
        fromPos = {x = x, y = y, z = z},      --Coordenadas da posição superior esquerda da arena.
        toPos = {x = x, y = y, z = z},        --Coordenadas da posição inferior direita da arena.
        pos = {x = x, y = y, z = z},          --Pra onde o player será teleportado.
    },
    [6] = {
        fromPos = {x = x, y = y, z = z},      --Coordenadas da posição superior esquerda da arena.
        toPos = {x = x, y = y, z = z},        --Coordenadas da posição inferior direita da arena.
        pos = {x = x, y = y, z = z},          --Pra onde o player será teleportado.
    },
    [7] = {
        fromPos = {x = x, y = y, z = z},      --Coordenadas da posição superior esquerda da arena.
        toPos = {x = x, y = y, z = z},        --Coordenadas da posição inferior direita da arena.
        pos = {x = x, y = y, z = z},          --Pra onde o player será teleportado. 
    },
}
local storage = 90181
local monsters = {"monster_name", "monster_name"}        --Configure aqui os monstros que serão ignorados pelo script.
function isThereSomeMonster(frompos, topos)
    for x = frompos.x, topos.x do
        for y = frompos.y, topos.y do
            local area = {x = x, y = y, z = frompos.z}
            local creature = getTopCreature(area).uid
            if creature > 0 and isMonster(creature) then
                if not isInArray(monsters, getCreatureName(creature)) then
                    return true
                end
            end
        end
    end
    return false
end
function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then
        return true
    end
    local arena = getPlayerStorageValue(cid, storage) < 1 and 1 or getPlayerStorageValue(cid, storage)
    if arenas[arena] then
        local _arena = arenas[arena]
        if getPlayerStorageValue(cid, 90182) > -1 then
            return doPlayerSendCancel(cid, "You already completed this quest.") and doTeleportThing(cid, fromPosition)
        elseif isThereSomeMonster(_arena.fromPos, _arena.toPos) then
            return doPlayerSendCancel(cid, "Kill all the monsters first.") and doTeleportThing(cid, fromPosition)
        else
            local msg = "You were teleported to the room "..(arena + 1)..". Good luck!"
            local new_value = arena + 1
            if not arenas[arena + 1] then
                msg = "You completed all the rooms. Congratulations!"
                new_value = -1
                setPlayerStorageValue(cid, 90182, 1)
            end
            doTeleportThing(cid, _arena.pos)
            doPlayerSendTextMessage(cid, 27, msg)
            setPlayerStorageValue(cid, storage, new_value)
        end
    end
    return true
end

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Postado
  • Autor

Não tenho nada que dê início, só um TP onde o player entra e cai direto na primeira sala.

 

<movevent type="StepIn" actionid="xxx" event="script" value="arenatp.lua"/>

Action ID="xxx" ? qual ID do teleport eu uso aqui?

Postado

Você não vai usar nenhum ID de teleporte na tag, e sim um actionid qualquer. Por exemplo, 9018. Aí, no RME, você configura esse actionid nos teleportes (da primeira à sétima room).

E me manda esse código de TP que você mencinou, no qual o jogador entra e cai na primeira sala.

PS: Não coloquei nada relacionado a prêmios. Quando o jogador completar a última room, ele entrará no teleporte e será teleportado para a posição configurada. Você pode colocar, por exemplo, que ele seja teleportado para uma área de recompensas. Aí, se quiser, eu posso fazer o código para você (mas especifique como quer que o jogador obtenha os prêmios).

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

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