• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Crash addevent 1.2 8.0

matheusjp2

New Member
Joined
Oct 5, 2015
Messages
24
Reaction score
3
Logs :

0x00007f06e8000080 in ?? ()
(gdb) call g_game.saveGameState(13)
Attempt to extract a component of a value that is not a structure.
(gdb) bt full
#0 0x00007f06e8000080 in ?? ()
No symbol table info available.
#1 0x000055ada9f86600 in Combat::getCombatDamage(Creature*, Creature*) const ()
No symbol table info available.
#2 0x000055ada9f88a80 in Combat::doCombat(Creature*, Creature*) const ()
No symbol table info available.
#3 0x000055adaa0dd230 in LuaScriptInterface::luaCombatExecute(lua_State*) ()
No symbol table info available.
#4 0x00007f06f0b9dfb7 in ?? () from /lib/x86_64-linux-gnu/libluajit-5.1.so.2
No symbol table info available.
#5 0x00007f06f0bec4a4 in lua_pcall () from /lib/x86_64-linux-gnu/libluajit-5.1.so.2
No symbol table info available.
#6 0x000055adaa071bbe in LuaScriptInterface::protectedCall(lua_State*, int, int) ()
No symbol table info available.
#7 0x000055adaa072b7e in LuaScriptInterface::callFunction(int) ()
No symbol table info available.
#8 0x000055adaa0e1446 in LuaEnvironment::executeTimerEvent(unsigned int) ()
No symbol table info available.
#9 0x000055adaa0f7987 in void std::__invoke_impl<void, void (LuaEnvironment::&)(unsigned int), LuaEnvironment&, unsigned int&>(std::__invoke_memfun_deref, void (LuaEnvironment::&)(unsigned int), LuaEnvironment&, unsigned int&) ()
No symbol table info available.
#10 0x000055adaa0f57ac in std::__invoke_result<void (LuaEnvironment::&)(unsigned int), LuaEnvironment&, unsigned int&>::type std::__invoke<void (LuaEnvironment::&)(unsigned int), LuaEnvironment&, unsigned int&>(void (LuaEnvironment::&)(unsigned int), LuaEnvironment&, unsigned int&) ()
No symbol table info available.
#11 0x000055adaa0f265c in void std::_Bind<void (LuaEnvironment::(LuaEnvironment, unsigned int))(unsigned int)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) ()
No symbol table info available.
#12 0x000055adaa0ef253 in void std::_Bind<void (LuaEnvironment::(LuaEnvironment, unsigned int))(unsigned int)>::operator()<, void>() ()
No symbol table info available.
#13 0x000055adaa0eb030 in std::_Function_handler<void (), std::_Bind<void (LuaEnvironment::(LuaEnvironment, unsigned int))(unsigned int)> >::_M_invoke(std::_Any_data const&) ()
No symbol table info available.
#14 0x000055adaa1ce89a in std::function<void ()>::operator()() const ()
No symbol table info available.
#15 0x000055adaa1ce7e8 in Task::operator()() ()
No symbol table info available.
#16 0x000055adaa1cdf69 in Dispatcher::threadMain() ()
No symbol table info available.
#17 0x000055adaa144544 in void std::__invoke_impl<void, void (Dispatcher::)(), Dispatcher>(std::__invoke_memfun_deref, void (Dispatcher::&&)(), Dispatcher&&) ()
No symbol table info available.
#18 0x000055adaa144265 in std::__invoke_result<void (Dispatcher::)(), Dispatcher>::type std::__invoke<void (Dispatcher::)(), Dispatcher>(void (Dispatcher::&&)(), Dispatcher&&) ()
No symbol table info available.
#19 0x000055adaa143e29 in void std:🧵:_Invoker<std::tuple<void (Dispatcher::)(), Dispatcher> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) ()
No symbol table info available.
#20 0x000055adaa1439c1 in std:🧵:_Invoker<std::tuple<void (Dispatcher::)(), Dispatcher> >::operator()() ()
No symbol table info available.
#21 0x000055adaa14347c in std:🧵:_State_impl<std:🧵:_Invoker<std::tuple<void (Dispatcher::)(), Dispatcher> > >::_M_run() ()
No symbol table info available.
#22 0x00007f06f09a2df4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#23 0x00007f06f0ab6609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139667762263808, -7951809180824918696, 140735959002190, 140735959002191, 140735959002192, 139667762261376, 8045857860606600536, 8045855526520595800},
--Type <RET> for more, q to quit, c to continue without paging--detach
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#24 0x00007f06f068d353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.



Spell.

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0)

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat4, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat5, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0)

local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat6, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

local combat7 = createCombatObject()
setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat7, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat7, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat7, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

local combat8 = createCombatObject()
setCombatParam(combat8, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat8, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat8, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat8, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

local combat9 = createCombatObject()
setCombatParam(combat9, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat9, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat9, COMBAT_PARAM_DISTANCEEFFECT, 29)
setCombatFormula(combat9, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)


local combat10 = createCombatObject()
setCombatParam(combat10, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat10, COMBAT_PARAM_EFFECT, 11)
setCombatParam(combat10, COMBAT_PARAM_DISTANCEEFFECT, 3)
setCombatFormula(combat10, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

local function onCastSpell1(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
end

local function onCastSpell2(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
end

local function onCastSpell3(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
end

local function onCastSpell4(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat4, parameters.var)
end
end

local function onCastSpell5(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat5, parameters.var)
end
end

local function onCastSpell6(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat6, parameters.var)
end
end

local function onCastSpell7(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat7, parameters.var)
end
end

local function onCastSpell8(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat8, parameters.var)
end
end

local function onCastSpell9(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat9, parameters.var)
end
end

local function onCastSpell10(parameters)
if isPlayer(parameters.cid) then
doCombat(parameters.cid, parameters.combat10, parameters.var)
end
end

function onCastSpell(cid, var)
if not isPlayer(cid) then
print("Jogador não encontrado!")
return false
end

local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7, combat8 = combat8, combat9 = combat9, combat10 = combat10 }

addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell2, 300, parameters)
addEvent(onCastSpell3, 600, parameters)
addEvent(onCastSpell4, 900, parameters)
addEvent(onCastSpell5, 1200, parameters)
addEvent(onCastSpell6, 1500, parameters)
addEvent(onCastSpell7, 1800, parameters)
addEvent(onCastSpell8, 2100, parameters)
addEvent(onCastSpell9, 2400, parameters)
addEvent(onCastSpell10, 2700, parameters)

return true
end
 
try change
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
your spell for
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
 
try change
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
your spell for
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
Segmentation fault (core dumped)
Post automatically merged:

try change
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
your spell for
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)

Bom fiz a correção na 1.x é necessário fazer uma verificação em todos parâmetros
cid:getId()
exemplo:
if isCreature(parameters.cid:getId()) then

estranho demais haha
 
Last edited:
This spell is too long, repetitive, and not optimized.

The issue is that addEvent passes cid, but if the player logs out, it becomes invalid and crashes the server.

To fix this, store player:getGuid() instead and recreate the player with Player(getPlayerByGuid(guid)) before doCombat.

This should prevent crashes and make the script work properly.
LUA:
local combat = {}
local effect = 11
local disteffect = 29
local lasteffect = 3

for i = 1, 10 do
    combat[i] = Combat()
    combat[i]:setParameter(COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
    combat[i]:setParameter(COMBAT_PARAM_EFFECT, effect)
    combat[i]:setParameter(COMBAT_PARAM_DISTANCEEFFECT, i == 10 and lasteffect or disteffect)
    
    if i <= 5 then
        combat[i]:setFormula(COMBAT_FORMULA_LEVELMAGIC, -0.5, 0, -0.6, 0)
    else
        combat[i]:setFormula(COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)
    end
end

local function spellCallback(parameters)
    local player = Player(parameters.guid)
    if player then
        return combat[parameters.index]:execute(player, parameters.var)
    end
end

function onCastSpell(creature, var)
    local player = creature:getPlayer()
    if not player then
        return false
    end

    local guid = player:getGuid()
    local baseDelay = 300
    
    for i = 1, 10 do
        local delay = (i - 1) * baseDelay
        local parameters = {
            guid = guid,
            var = var,
            index = i
        }
        addEvent(spellCallback, delay, parameters)
    end
    
    return true
end
 
Back
Top