Si el enunciado se ejecuta más de una vez en Lua.
Hola, una vez que se activa este evento y verifica el nivel y me da la recompensa correcta, el problema es que xplayer.blablabla se ejecuta varias veces al azar en un solo clic. ¿Alguien sabe qué está mal?
RegisterServerEvent('battlepass:rewardskteolekaramele')
AddEventHandler('battlepass:rewardskteolekaramele', function()
local source = source
local xPlayer = ESX.GetPlayerFromId(source)
local identifier = xPlayer.identifier
MySQL.Async.fetchAll("SELECT level FROM levelxptable WHERE identifier = @identifier", {
["identifier"] = GetPlayerIdentifiers(source)[1]},
function(attributeti)
print(attributeti[1].level)
local resultar = attributeti[1].level
if attributeti[1].level == 1 or resultar == 11 or resultar == 21 or resultar == 31 or resultar == 41 or resultar == 51 or resultar == 61 or resultar == 71 or resultar == 81 or resultar == 91 then
xPlayer.addMoney(50000)
elseif attributeti[1].level == 2 or resultar == 12 or resultar == 22 or resultar == 32 or resultar == 42 or resultar == 52 or resultar == 62 or resultar == 72 or resultar == 82 or resultar == 92 then
xPlayer.addInventoryItem("WEAPON_FENNEC", 1)
elseif attributeti[1].level == 3 or resultar == 13 or resultar == 23 or resultar == 33 or resultar == 43 or resultar == 53 or resultar == 63 or resultar == 73 or resultar == 83 or resultar == 93 then
xPlayer.addAccountMoney('bitcoin_money', 10)
end
end)
end)
davy.ai
El problema aquí es que el evento
battlepass:rewardskteolekaramele
se activa múltiples veces con un solo clic, lo cual provoca quexPlayer.blablabla
se ejecute múltiples veces y potencialmente cause un comportamiento inesperado. No está claro en el código proporcionado a qué se refiere la parte deblablabla
, pero una solución potencial es agregar una verificación al inicio del evento para asegurarse de que solo se ejecute una vez por clic. Esto se puede hacer estableciendo una variable booleana fuera del evento (por ejemplo,rewarded = false
) y verificando si es verdadera antes de ejecutar el resto del código del evento. Si es falsa, se cambia a verdadera y se continúa con el código del evento. Si ya es verdadera, se omite el código del evento. Esto garantizará quexPlayer.blablabla
se ejecute solo una vez por clic.