Ir para conteúdo

Featured Replies

Postado

boa tarde pessoal eu gostaria muito da ajuda de vocês na construção desse script
eu quero praticamente uma alteração no script da alavanca que remove a pedra do caminho, vou ate deixar esse script no final para que possam usar de base.

oque + muda desse que eu quero para o da alavanca é que a alavanca remove a pedra, já eu estou querendo colocar a pedra, porem sem clicar diretamente na alavanca, mas sim usando um item nela
e também tendo um custo pra isso com a pedra sempre sendo gerada no andar de cima sem decay, ou seja a pedra vai permanecer la ate que o servidor seja reiniciado


1º o player usa o item X no item Y se o item Y tem uma action ID (editável) registrada  o scripit pula pra 2º 
2º o script vai verificar se o player tem uma quantidade (editável) de 3 itens (também editável), se o player tiver os itens eles serão removidos do player (isso é o preço ) pula pro 3º

3º ira criar um Item (editavel) encima do item Y e também sera criado um outro item (editavel)  na posição atual do item Y com XYZ +1 ou seja se o item Y estiver na posição X=1000, Y=1000, Z=7 o outo item sera criado na posição posição X=1001, Y=1001, Z=8

se o item Y estiver na posição  X=3333, Y=3333, Z=8 outo item sera criado na posição posição X=3334, Y=3334, Z=9 e assim por diante


vou deixar o script da alavanca que remove a pedra

Spoiler

local config = {
    [49998] = {position = Position(32259, 31891, 10), revert = true},
    [49999] = {position = Position(32259, 31890, 10), revert = true},
    [50000] = {position = Position(32259, 31891, 10), revert = true},
    [50001] = {position = Position(32259, 31890, 10), revert = true},
    [50002] = {position = Position(32266, 31860, 11)},

    time = 100
}

local function revertWall(wallPosition, leverPosition)
    local leverItem = Tile(leverPosition):getItemById(1946)
    if leverItem then
        leverItem:transform(1945)
    end

    Game.createItem(1498, 1, wallPosition)
end

local function removeWall(position)
    local tile = position:getTile()
    if not tile then
        return
    end

    local thing = tile:getItemById(1498)
    if thing then
        thing:remove()
        position:sendMagicEffect(CONST_ME_MAGIC_RED)
    end
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if item.itemid ~= 1945 then
        player:sendCancelMessage('The lever has already been used.')
        return true
    end

    local wall = config[item.uid]
    removeWall(wall.position)
    if wall.revert then
        addEvent(revertWall, config.time * 1000, wall.position, toPosition)
    end
    item:transform(1946)
    return true
end
 

 

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

Postado

@wevertonvrb Aqui vai o script. OBS: Para utilizar na versão TFS 0.3, 0.4 ou OTX2. Siga os passos para instalação dessa lib ->https://github.com/kenfi2/KenfiLib

 

local config = {
    aid = 23000,
    items = {7425,7429,7414},
    createItems = {
        2160, -- Item acima do itemEx.
        1515, -- Item do andar de baixo
    }
}

function onUse(player, item, fromPosition, itemEx, toPosition)
    --Se você não usa TFS 0.3, 0.4 ou OTX 2.x pode apagar essa parte abaixo até o comentário de referência
    local player = Player(player)
    local item = Item(item.uid)
    local fromPosition = Position(fromPosition)
    local toPosition = Position(toPosition)
    local itemEx = Item(itemEx.uid)
    -- Aqui.
    if itemEx.actionid ~= config.aid then
        return false
    end
    local items = {}
    for i, v in ipairs(config.items) do
        if player:getItemCount(v) > 0 then
            table.insert(items, v)
        end
    end
    if #items < #config.items then
        player:sendTextMessage(27,"Você não tem os itens necessários")
        return false
    end
    for i, v in ipairs(config.items) do
        if not player:removeItem(v, 1) then
            player:sendTextMessage(27,"Erro ao concluir.")
            return false
        end
    end
    Game.createItem(config.createItems[1],1,toPosition)
    local toPosition = toPosition + 1
    Game.createItem(config.createItems[2],1,toPosition)
    player:sendTextMessage(27,"Mensagem final")
    return true
end

 

XML

<action itemid="IDDOITEM" script="NOMEDOARQUIVO.lua" />

IDDOITEM é o item que vai ser usado na alavanca.

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

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

Informação Importante

Confirmação de Termo