[PEDIDO] SEQUÊNCIA DE ACTION E SER TELEPORTADO

killerbean
em Scripts

killerbean

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/11/22Posts: 4

Olá esse é meu primeiro tópico se estiver errado me corrija por favor.

 

Então o script que venho pedir é tipo,  tem 4 pilar em uma hunt e basicamente queria criar uma sequencia de action que ao ser completada na ordem certa, o player seria teleportado para o BOSS

L3K0T

LEVEL UP!
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 02/01/14Posts: 304Gênero: OutroChar no Tibia: Psy Skyline

Quando o jogador completar a sequência correta clicando, ele será teleportado para a posição do boss. Se o jogador clicar nos pilares fora da ordem correta, a sequência do jogador será reiniciada e uma mensagem de erro será exibida.

 

 

local bossPosition = {x = 100, y = 200, z = 10} -- Posição do boss

local sequence = {} -- Sequência correta de IDs dos pilares
sequence[1] = 1
sequence[2] = 2
sequence[3] = 3
sequence[4] = 4

local playerSequence = {} -- Sequência de IDs dos pilares que o jogador ativou

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if isInArray(sequence, itemEx.itemid) then
        local playerId = getPlayerGUID(cid)
        
        if not isInArray(playerSequence, itemEx.itemid) then
            table.insert(playerSequence, itemEx.itemid)
        end
        
        if #playerSequence == #sequence then
            local correctSequence = true
            
            for i = 1, #sequence do
                if sequence[i] ~= playerSequence[i] then
                    correctSequence = false
                    break
                end
            end
            
            if correctSequence then
                doTeleportThing(cid, bossPosition, false)
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você foi teleportado para o boss!")
                playerSequence = {} -- Reinicia a sequência do jogador
            else
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Sequência incorreta!")
                playerSequence = {} -- Reinicia a sequência do jogador
            end
        end
    end
    return true
end

 

 

 

 

Xml Actions itemid é o pilar e actionid é que vai no pilar pelo rme


    <action itemid="1" actionid="1000" script="activatePillar(1)"/>
    <action itemid="2" actionid="1001" script="activatePillar(2)"/>
    <action itemid="3" actionid="1002" script="activatePillar(3)"/>
    <action itemid="4" actionid="1003" script="activatePillar(4)"/>
 


 

ESTOU

Hospedado-por-claro1.png

e

bn3-600x100.png

 

Facebook Contato: www.facebook.com/alexolekynho

Skype: alex.souza238

killerbean

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/11/22Posts: 4
Em 28/06/2023 em 04:52, L3K0T disse:

Quando o jogador completar a sequência correta clicando, ele será teleportado para a posição do boss. Se o jogador clicar nos pilares fora da ordem correta, a sequência do jogador será reiniciada e uma mensagem de erro será exibida.

 

 

local bossPosition = {x = 100, y = 200, z = 10} -- Posição do boss

local sequence = {} -- Sequência correta de IDs dos pilares
sequence[1] = 1
sequence[2] = 2
sequence[3] = 3
sequence[4] = 4

local playerSequence = {} -- Sequência de IDs dos pilares que o jogador ativou

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if isInArray(sequence, itemEx.itemid) then
        local playerId = getPlayerGUID(cid)
        
        if not isInArray(playerSequence, itemEx.itemid) then
            table.insert(playerSequence, itemEx.itemid)
        end
        
        if #playerSequence == #sequence then
            local correctSequence = true
            
            for i = 1, #sequence do
                if sequence[i] ~= playerSequence[i] then
                    correctSequence = false
                    break
                end
            end
            
            if correctSequence then
                doTeleportThing(cid, bossPosition, false)
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você foi teleportado para o boss!")
                playerSequence = {} -- Reinicia a sequência do jogador
            else
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Sequência incorreta!")
                playerSequence = {} -- Reinicia a sequência do jogador
            end
        end
    end
    return true
end

 

 

 

 

Xml Actions itemid é o pilar e actionid é que vai no pilar pelo rme


    <action itemid="1" actionid="1000" script="activatePillar(1)"/>
    <action itemid="2" actionid="1001" script="activatePillar(2)"/>
    <action itemid="3" actionid="1002" script="activatePillar(3)"/>
    <action itemid="4" actionid="1003" script="activatePillar(4)"/>
 


 

Muito obrigado mano