Karbust Posted September 3, 2018 at 06:12 PM Share Posted September 3, 2018 at 06:12 PM Boas, Recentemente encontramos um bug, que acontece todas as vezes que recebemos veneno de um monstro (tenha ele saído de uma metin ou não) (demos conta deste bug na Metin da Sombra - 8009 (monstros do deserto e do v2), o veneno dado por monstros crasha o servidor) Por vezes quando nos teleportamos para outro mapa (mapas noutro núcleo) o servidor também crasha (se o veneno tiver sido dado por um jogador e não por um monstro) (isto só acontece às vezes)... O debug do game.core: [email protected]:/usr/home/game/share/bin # lldb game -c game.core (lldb) target create "game" --core "game.core" Core file '/usr/home/game/share/bin/game.core' (i386) was loaded. (lldb) bt all * thread #1, name = 'game', stop reason = signal SIGSEGV * frame #0: game`CHARACTER::Damage(this=0x469f7640, pAttacker=0x00000000, dam=1010, type=DAMAGE_TYPE_POISON) at char_battle.cpp:2121 frame #1: game`long poison_event(event=LPEVENT @ 0x00000008, processing_time=0) at char_resist.cpp:68 frame #2: 0x08490850 game`nBATTLE_ARENA_MAP + 16 thread #2, name = 'game', stop reason = signal SIGSEGV frame #0: 0x2889c8e9 libc.so.7`__umtx_op + 5 frame #1: 0x28888bac libc.so.7`sem_clockwait_np + 236 frame #2: 0x28888c70 libc.so.7`sem_wait + 32 frame #3: 0x0848e4e8 game`CSemaphore::Wait(void) + 24 thread #3, name = 'game', stop reason = signal SIGSEGV frame #0: 0x2889c8e9 libc.so.7`__umtx_op + 5 frame #1: 0x28888bac libc.so.7`sem_clockwait_np + 236 frame #2: 0x28888c70 libc.so.7`sem_wait + 32 frame #3: 0x0848e4e8 game`CSemaphore::Wait(void) + 24 thread #4, name = 'game', stop reason = signal SIGSEGV frame #0: 0x2889c8e9 libc.so.7`__umtx_op + 5 frame #1: 0x28888bac libc.so.7`sem_clockwait_np + 236 frame #2: 0x28888c70 libc.so.7`sem_wait + 32 frame #3: 0x0848e4e8 game`CSemaphore::Wait(void) + 24 (lldb) Linhas do char_battle.cpp: if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE) { if (IsAffectFlag(AFF_TERROR)) //ESTA É A LINHA 2121 { int pct = GetSkillPower(SKILL_TERROR) / 400; if (number(1, 100) <= pct) return false; } } Linhas do char_resist.cpp: EVENTFUNC(poison_event) { TPoisonEventInfo * info = dynamic_cast<TPoisonEventInfo *>( event->info ); if ( info == NULL ) { sys_err( "poison_event> <Factor> Null pointer" ); return 0; } LPCHARACTER ch = info->ch; if (ch == NULL) { // <Factor> return 0; } LPCHARACTER pkAttacker = CHARACTER_MANAGER::instance().FindByPID(info->attacker_pid); int dam = ch->GetMaxHP() * GetPoisonDamageRate(ch) / 1000; if (test_server) ch->ChatPacket(CHAT_TYPE_NOTICE, "Poison Damage %d", dam); if (ch->Damage(pkAttacker, dam, DAMAGE_TYPE_POISON)) //ESTA É A LINHA 68 { ch->m_pkPoisonEvent = NULL; return 0; } --info->count; if (info->count) return PASSES_PER_SEC(3); else { ch->m_pkPoisonEvent = NULL; return 0; } } Alguém me consegue ajudar? Obrigado a todos Link to comment Share on other sites More sharing options...
Karbust Posted September 5, 2018 at 12:02 PM Author Share Posted September 5, 2018 at 12:02 PM BUMP Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted September 5, 2018 at 06:40 PM Share Posted September 5, 2018 at 06:40 PM Isso aconteceu nalguma personagem com o "medo" ativo ou é apenas coincidência? Acontece com todas as classes ou apenas com 1? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now