Ir para conteúdo

Featured Replies

Postado

Oin, Eu queria um Script que para passar em uma porta precisa de "x" quantidade de um item dropado nessa sala, E que depois que um player passar nela os outros sejam teleportados para o Cp. 

A sala é assim https://prnt.sc/klckl7

 

agradeço s2.

 

(Eu Não sei onde coloco pedido de script ;-; dscp se eu tive fazendo errado)

Postado

@biellhb

 

Crie um arquivo em actions/scripts e cole isto dentro:

 

Spoiler

local t = {
    item = {id = 2160, count = 10}, -- id do item, quantidade do item necessários para passar pela porta
    removeItem = true, -- 'true' para remover o item ao passar da porta, 'false' para não remover
    winner_pos = {x = 1, y = 1, z = 1}, -- posição para onde o player será levado ao usar a porta
    room_area = {
        fromPos = {x = 1, y = 1, z = 1}, -- posição do canto superior esquerdo da área (posição 1 na imagem)
        toPos = {x = 2, y = 2, z = 2} -- posição do canto inferior direito da área (posição 2 na imagem)
    },
    CP_pos = {x = 1, y = 1, z = 1} -- posição do CP para onde os players serão teleportados
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local p = getPlayerPosition(cid)
    if not isInRange(p, t.room_area.fromPos, t.room_area.toPos) then
        return true
    end
    if getPlayerItemCount(cid, t.item.id) < t.item.count then
        doPlayerSendCancel(cid, "Você não possui "..t.item.count.." "..getItemNameById(t.item.id)..(t.item.count > 1 and "s" or "")..".")
        return true
    end
    if t.removeItem then
        doPlayerRemoveItem(cid, t.item.id, t.item.count)
    end
    local players = getPlayersInArea(t.room_area.fromPos, t.room_area.toPos)
    doSendMagicEffect(p, CONST_ME_POFF)
    for i = 1, #players do
        local player = players[i]
        if player ~= cid then
            p = t.CP_pos
        else
            p = t.winner_pos
        end
        doTeleportThing(player, p)
        doSendMagicEffect(p, CONST_ME_TELEPORT)
    end
    return true
end

function getPlayersInArea(fromPos, toPos)
    local players = {}
    for _, pid in ipairs(getPlayersOnline()) do
        if isInRange(getPlayerPosition(pid), fromPos, toPos) then
            table.insert(players, pid)
        end
    end
    return players
end

 

 

Imagem mostrando as posições:

https://prnt.sc/klnthu

 

Em actions.xml, adicione a tag: 

<action actionid="XXXX" script="NOMEDOARQUIVO.lua"/>

Coloque um actionid em XXXX e esse mesmo actionid na porta.

Contato:

 

Postado
  • Autor

Vou Testar aqui, eu queria mais uma coisinha no script tem como vc colocar pra  pros players que forem teleportados para o Cp eles perderem esse item que vai se dropado la? Pra eles nao ficar acumulando e na proxima vez que tiver o evento passar direto.

 

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo