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
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: 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?
Editado Agosto 24 por LuckOake