Olá pessoal tudo bem? estou fazendo um Otserver 7.72 voltado ao RPG, totalmente Oldschool.
A distro que estou usando é "The OTX Server Version: (2.X.S - 4)"
Estou tentando implementar a seguinte função no meu código: "alavanca por tempo".
Meu código faz diversas funções, como por exemplo: o player clica em uma pedra, e essa pedra remove 4 pedras em outro lugar, cria uma alavanca em baixo das pedras que foram removidas, e depois com tempo de 10 segundos remove a alavanca criada e aparecem as 4 pedras removidas no lugar novamente.
Até ai está tudo perfeito, mas se o player clicar várias vezes seguidas na pedra que executa essas funções, da um bug e não funciona mais.
Eu precisava que o player clica-se na pedra, e tivesse que esperar um certo tempo para poder clicar novamente nessa pedra (que é uma espécie de "alavanca").
No caso espera-se 10 ou 15 segundos, para poder clicar novamente na pedra e ela funcionar...
Assim funcionária tudo perfeito.. espero que alguém possa me ajudar... é isso galera tamo junto!!!
Meu código:
local time = 10
local tempo = 10
local lever_pos = {x = 2730, y = 2672, z = 7, stackpos=1}
local r1_pos = {x=2731, y=2673, z=7, stackpos=1}
local r2_pos = {x=2730, y=2673, z=7, stackpos=1}
local r3_pos = {x=2730, y=2672, z=7, stackpos=1}
local r4_pos = {x=2731, y=2672, z=7, stackpos=1}
function onUse(cid, item, frompos, item2, topos)
local playerTile1 = {x=2731, y=2673, z=7}
local playerTile2 = {x=2730, y=2673, z=7}
local playerTile3 = {x=2730, y=2672, z=7}
local playerTile4 = {x=2731, y=2672, z=7}
local new = {x = 2732, y = 2672, z = 7}
getrock1 = getThingfromPos(r1_pos)
getrock2 = getThingfromPos(r2_pos)
getrock3 = getThingfromPos(r3_pos)
getrock4 = getThingfromPos(r4_pos)
local lever = getThingfromPos(lever_pos)
if item.uid == 60115 and item.itemid == 1304 then
doRemoveItem(getrock1.uid,1303)
doRemoveItem(getrock2.uid,1302)
doRemoveItem(getrock3.uid,1300)
doRemoveItem(getrock4.uid,1301)
doSendMagicEffect(r1_pos, 2)
doSendMagicEffect(r2_pos, 2)
doSendMagicEffect(r3_pos, 2)
doSendMagicEffect(r4_pos, 2)
local lever = doCreateItem(1945, 1, lever_pos)
doItemSetAttribute(lever, "uid", 60114)
addEvent(function()
if isCreature(getTopCreature(playerTile3).uid) then
doTeleportThing(getTopCreature(playerTile3).uid, {x = 2732, y = 2672, z = 7})
doSendMagicEffect(new, 10)
end
local lever = getThingfromPos(lever_pos)
if lever then
doRemoveItem(lever.uid, 1945)
end
end, time * 980)
addEvent(function()
if isCreature(getTopCreature(playerTile1).uid) then
doTeleportThing(getTopCreature(playerTile1).uid, {x = 2732, y = 2673, z = 7})
end
local r1 = doCreateItem(1303, 1, r1_pos)
doItemSetAttribute(r1, "aid", 60109)
end, tempo * 1000)
addEvent(function()
if isCreature(getTopCreature(playerTile2).uid) then
doTeleportThing(getTopCreature(playerTile2).uid, {x = 2732, y = 2673, z = 7})
end
local r2 = doCreateItem(1302, 1, r2_pos)
doItemSetAttribute(r2, "aid", 60109)
end, tempo * 1000)
addEvent(function()
if isCreature(getTopCreature(playerTile3).uid) then
doTeleportThing(getTopCreature(playerTile3).uid, {x = 2732, y = 2672, z = 7})
end
local r3 = doCreateItem(1300, 1, r3_pos)
doItemSetAttribute(r3, "aid", 60109)
end, tempo * 1000)
addEvent(function()
if isCreature(getTopCreature(playerTile4).uid) then
doTeleportThing(getTopCreature(playerTile4).uid, {x = 2732, y = 2672, z = 7})
end
local r4 = doCreateItem(1301, 1, r4_pos)
doItemSetAttribute(r4, "aid", 60109)
end, tempo * 1000)
end
return true
end
Você tem o código disponível? Se tiver publique-o aqui:
Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.