ok, vamos lá
1.Erro no script youdead.lua:
[16/04/2024 03:41:17] [Error - CreatureScript Interface]
[16/04/2024 03:41:17] data/creaturescripts/scripts/youdead.lua:onPrepareDeath
[16/04/2024 03:41:17] Description:
[16/04/2024 03:41:18] (luaGetCreatureMaster) Creature not found
[16/04/2024 03:41:18] [Error - CreatureScript Interface]
[16/04/2024 03:41:18] data/creaturescripts/scripts/youdead.lua:onPrepareDeath
[16/04/2024 03:41:19] Description:
[16/04/2024 03:41:19] (luaGetCreatureName) Creature not found
[16/04/2024 03:41:19] > Broadcasted message: "O Jogador Fogao [level: 699553] Acaba de Morrer Para false.".
Parece que há uma tentativa de obter o nome da criatura que matou o jogador (lastHitKiller). No entanto, o sistema não conseguiu encontrar essa criatura. Isso pode acontecer se o jogador for morto por um evento ou condição do jogo em vez de uma criatura específica. Você pode precisar adicionar verificações adicionais para garantir que lastHitKiller seja uma criatura válida antes de tentar obter seu nome e mestre.
2.Erro no script deathchannel.lua:
[16/04/2024 03:41:23] [Error - CreatureScript Interface]
[16/04/2024 03:41:23] data/creaturescripts/scripts/deathchannel.lua:onDeath
[16/04/2024 03:41:23] Description:
[16/04/2024 03:41:24] data/creaturescripts/scripts/deathchannel.lua:7: attempt to perform arithmetic on a boolean value
[16/04/2024 03:41:24] stack traceback:
[16/04/2024 03:41:24] data/creaturescripts/scripts/deathchannel.lua:7: in function <data/creaturescripts/scripts/deathchannel.lua:5>
Parece que há um erro na linha 7 do script deathchannel.lua, onde uma operação aritmética está sendo tentada em um valor booleano. Isso geralmente ocorre quando você tenta realizar uma operação matemática em uma variável que não contém um valor numérico. Você precisará verificar o código na linha 7 do deathchannel.lua e garantir que todas as variáveis estejam definidas corretamente antes de tentar realizar operações matemáticas.
3.Erro XML:
XML:
[16/04/2024 06:52:01] [Error - CreatureEvent::executeCombat] Call stack overflow.
Parece que houve um estouro de pilha (stack overflow) em um evento de combate. Isso geralmente acontece quando há muitas chamadas recursivas ou aninhadas que excedem a capacidade da pilha de execução. Você precisará investigar o evento de combate especificado e verificar se há alguma lógica recursiva ou aninhada que precisa ser otimizada para evitar estouro de pilha.
1. Para o script youdead.lua, vamos adicionar verificações adicionais para garantir que lastHitKiller seja uma criatura válida antes de tentar obter seu nome e mestre. Também vamos corrigir a mensagem de broadcast para exibir o nome do jogador que matou corretamente.
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
if isPlayer(cid) then
if lastHitKiller and isCreature(lastHitKiller) then
local killerName = getCreatureName(lastHitKiller)
if not isPlayer(lastHitKiller) and not isPlayer(getCreatureMaster(lastHitKiller)) then
doBroadcastMessage("O jogador " .. getCreatureName(cid) .. " [level: " .. getPlayerLevel(cid) .. "] acabou de morrer para " .. tostring(killerName) .. ".", MESSAGE_STATUS_CONSOLE_RED)
end
end
end
return true
end
2.Para o script deathchannel.lua, vamos corrigir a operação aritmética na linha 7 para garantir que todas as variáveis estejam definidas corretamente antes de tentar realizar operações matemáticas.
function onDeath(cid, corpse, deathList)
local target = deathList[1]
if target and isCreature(target) then
local targetStorage = getCreatureStorage(target, storage)
if targetStorage then
doCreatureSetStorage(target, storage, targetStorage + 1)
for _, pid in ipairs(getPlayersOnline()) do
doPlayerSendChannelMessage(pid, '', info:format(getCreatureName(cid), getPlayerLevel(cid), getCreatureStorage(cid, storage), getPlayerSex(cid) == 1 and "o" or "a", isPlayer(target) and "player" or "monstro", getCreatureName(target), isPlayer(target) and " [Level: "..getPlayerLevel(target).."]." or "."), TALKTYPE_CHANNEL_O, 0xF)
for _, frag in ipairs(frags) do
if targetStorage == frag then
doPlayerSendChannelMessage(pid, '', win:format(getCreatureName(target), frag, getCreatureName(cid)), TALKTYPE_CHANNEL_W, 0xF)
end
local cidStorage = getCreatureStorage(cid, storage)
if cidStorage and cidStorage >= frag then
doPlayerSendChannelMessage(pid, '', lose:format(getCreatureName(target), getCreatureName(cid), cidStorage + 1), TALKTYPE_CHANNEL_RN, 0xF)
end
end
end
doCreatureSetStorage(cid, storage, 0)
return true
end
end
return false
end