Isso é um bug nas sources, mas dá pra bloquear que o evento aconteça 2x usando lua mesmo, teste:
local blockDoubleExecution = {}
function onEquip(cid, item, slot)
if blockDoubleExecution[cid] then
blockDoubleExecution[cid] = nil
return true
else
blockDoubleExecution[cid] = true
end
print('Test')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Test")
return true
end
function onDeEquip(cid, item, slot)
print('Test')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Test")
return true
end
Eu to com muita preguiça de testar, então se esse não funcionar, talvez esse funcione:
local canTrigger = {}
function onEquip(cid, item, slot)
canTrigger[cid] = not canTrigger[cid]
if not canTrigger[cid] then return true end
print('Test')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Test")
return true
end
function onDeEquip(cid, item, slot)
print('Test')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Test")
return true
end
Mas sei lá, provável que os dois funcionem, testa ai pra mim





info
Group: Marquês
Joined: 22/07/12
Posts: 1.1k
Reputation: +400
Gender: Masculino
Tibia Character: Luck Oake
Olá pessoal. Eu recentemente fiz um sistema que usa onEquip, mas acontece que ele está rodando duas vezes. Se não entendeu, fiz um script de testes para melhor compreensão.
function onEquip(cid, item, slot)
print('Test')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Test")
return true
end
function onDeEquip(cid, item, slot)
print('Test')
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Test")
return true
end
Ao equipar:
Player:
Console:
Ao desequipar:
Player:
Console:
Alguma solução para corrigir isso?
Edited Agosto 24 by LuckOake