Postado Setembro 8, 2020 4 anos 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 Setembro 8, 2020 4 anos por wevertonvrb (veja o histórico de edições)
Postado Setembro 9, 2020 4 anos @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 Setembro 9, 2020 4 anos 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.