Boa tarde,
Parece que na hora que ele tenta buscar o valor de resets para comparar, está dando erro. (Variável cid), tomei a liberdade de organizar o código da linha 95 a 123:
function resetPlayer(cid, description)
local resets = getResets(cid)
local newResets = resets + 1
if newResets < 0 then
newResets = 0
end
setPlayerStorageValue(cid, config.storage, newResets)
if description then
db.executeQuery("UPDATE `players` SET `description` = ' [Reset " .. newResets .. "]' WHERE `id` = " .. config.resetStatus.player)
else
db.executeQuery("UPDATE `players` SET `description` = '' WHERE `id` = " .. config.resetStatus.player)
end
doRemoveCreature(cid)
-- Reset player's level and experience to initial values
db.executeQuery("UPDATE `players` SET `level` = " .. config.resetStatus.lvlreset .. ", `experience` = 0 WHERE `id` = " .. config.resetStatus.player)
end
function teleportAndReset(cid)
resetPlayer(cid, true) -- true indicates to update the player's description
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
return TRUE
end
function resetAndKeepLook(cid)
resetPlayer(cid, false) -- false indicates not to update the player's description
return TRUE
end
function getResets(cid)
local resets = getPlayerStorageValue(cid, config.storage)
return math.max(0, resets)
end
Nesse código revisado, as funções resetPlayer, teleportAndReset, e resetAndKeepLook foram criadas para realizar as operações de reset de forma mais organizada. A função resetPlayer realiza a atualização dos resets no armazenamento, a atualização da descrição do jogador e o teletransporte para o templo. As outras duas funções chamam resetPlayer com diferentes configurações. Certifique-se de chamar a função apropriada com base nas condições do jogo.