Olha maninho, lembro que já consegui colocar isso em um servidor antigo meu, 8.1, mas estou meio por fora (voltando pra area do tibia agora)...
Eu vou dar umas pesquisadas aqui em scripts e vou ver se consigo dar um retorno.
Estou meio enferrujado nem tenho como testar aqui, mas eu tentei o seguinte:
local LEVER1 = 1945 -- IDs das alavancaslocal LEVER2 = 1946 -- IDs das alavancaslocal ITEMS = {2160, 2173} -- Lista de itens possíveislocal ITEMS_NUMBER = 2 -- Numero de itens que voce tem acima, sempre atualizefunction onUse(cid, item, fromPosition, itemEx, toPosition) if((item.itemid == LEVER1) or (item.itemid == LEVER2)) then -- Se o item for a alavanca de um lado ou de outro, então doPlayerAddItem(cid, ITEMS[math.random(1, ITEMS_NUMBER)], 1) --Adiciona um item para o player. O item é decidido na sorte a partir do sorteio da posicao 1 até ITEMS_NUMBER do array ITEMS doSendMagicEffect(fromPosition, CONST_ME_EXPLOSIONAREA) doCreatureSay(cid, "SURPRISE!", TALKTYPE_MONSTER) if (item.itemid == LEVER1) then doTransformItem(item.uid, LEVER2) -- Se for uma alavanca virada vira a outra e vice-versa elseif (item.itemid == LEVER2) then doTransformItem(item.uid, LEVER1) end else return false end return trueend
A lógica é mais ou menos essa, estou acostumado com C++ nao sei se isso irá rodar em LUA, estou meio ocupado agora e estou sem os programas pra testar, fiz meio que comparando alguns scripts pra pegar mais ou menos a sintaxe (Scripts como de instrumentos, potions, piggybank, etc.) quanto à tag no actions.xml nao me recordo como funciona direito, desculpe. Amanhã a tarde testo em algum servidor que baixar aqui, abraços
P.S.: Vale a pena relembrar que algumas linhas não são obrigatorias, como as de exibicao de efeito/mensagem.
Estou voltando a mexer com otserv e vou ter que dar umas estudadas pelo forum afora, se eu descobrir algo eu edito o código aqui!
P.S.: Lembrei de uma coisa, tem q mexer sim pq se nao me engano coisas "únicas" precisa do storage id