Ir para conteúdo

Featured Replies

Postado
Olá, boa noite pessoal, peço por gentileza uma ajuda de vocês novamente.
 
Tenho esse script, que quando puxar todas as alavancas remove as grade do lugar.
No entanto o script está com um bug, que a alavanca fica "emperrada" ela não vira para o outro lado (id 1946), e não está sendo necessário puxar todas as alavanca.
 

local config = {
    storage = 9481,
    time = 1,                            --Tempo, em minutos, para as grades reaparecem.
    gateId = 3511,                        --ID da grade.
    positions = {
        gate = {
            {x = 632, y = 1009, z = 7},       --Posições das grades.
            {x = 632, y = 1010, z = 7},
            {x = 632, y = 1011, z = 7},
        },
        alavancas = {
            {x = 634, y = 1006, z = 7},       --Posições das alavancas.
            {x = 634, y = 1007, z = 7},
            {x = 634, y = 1008, z = 7},
        },
    },
}
function onUse(cid, item)
    for _, position in pairs(config.positions.gate) do
        local _item = getTileItemById(position, config.gateId).uid
        if _item < 1 then
            return doPlayerSendCancel(cid, "The gates are already open.")
        end
    end
    if not getItemAttribute(item.uid, "used") then
        setGlobalStorageValue(config.storage, getGlobalStorageValue(config.storage) < 1 and 1 or getGlobalStorageValue(config.storage) + 1)
        if #config.positions.alavancas == getGlobalStorageValue(config.storage) then
            for _, position in pairs(config.positions.gate) do
                local _item = getTileItemById(position, config.gateId).uid
                if _item > 0 then
                    doRemoveItem(_item)
                    doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
                end
            end
            setGlobalStorageValue(config.storage, -1)
            broadcastMessage("The gates were opened!")
            for _, position in pairs(config.positions.alavancas) do
                local _item = getTileItemById(position, item.itemid).uid
                if _item > 0 then
                    doItemSetAttribute(_item, "used", false)
                end
            end
            addEvent(function()
                for _, position in pairs(config.positions.gate) do
                    local _item = getTileItemById(position, config.gateId).uid
                    if _item < 1 then
                        doCreateItem(config.gateId, 1, position)
                        doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
                    end
                end
            end, config.time * 1000)
        else
            doItemSetAttribute(item.uid, "used", true)
            doPlayerSendTextMessage(cid, 27, #config.positions.alavancas - getGlobalStorageValue(config.storage).." lever(s) left.")
        end
    else
        return doPlayerSendCancel(cid, "This lever was already used.")
    end
    return true
end

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

Postado
  • Autor
Ele até mudou de lado, porém não tem como remover novamente a grade.
Teria como colocar só quando estiver tudo 1945 dela funcionar ? E quando estiver 1946 ela apenas voltar pro 1945 ?

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 520.1k

Informação Importante

Confirmação de Termo