Jump to content

Karbust

Management
  • Posts

    1162
  • Joined

  • Days Won

    10
  • Feedback

    100%

Everything posted by Karbust

  1. If I knew how my friend did I would start thinking about doing it myself, but, as obviously, he won't share such information with anyone...
  2. You want to do what I told you my friend did, but you want to use the epk, he used the eix, why? You need a lot of bandwith on the server to be able to every single player use every single file from your web server, and not talking about the headache you would get to transform the whole client, yes, the whole client, metin2 wasn't made to be a web game, and no one would even think about having the files on the server and load them to the client as request... You can try to save just the eix on the server and read them using packets, like my friend did, except that and panama you can't do more...
  3. Hello, Recently I found a bug, that happens every time I'm either breaking a metin and then get poison from some monster that came from the metin or even a stand alone monster... (we found this bug on metin 8009 (monsters from desert, v2), the monsters give poison and the server crash) Sometimes when I teleport to other maps (if the map is on another core) the server crashs (this if poison is given by a player and not a monster) This is the debug: lldb: root@sv1:/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) gdb game.core: root@source:~ # cd /usr/home/game/share/bin root@source:/usr/home/game/share/bin # gdb GNU gdb (GDB) 7.12 [GDB v7.12 for FreeBSD] Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <[Hidden Content]; This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i386-portbld-freebsd9.3". Type "show configuration" for configuration details. For bug reporting instructions, please see: <[Hidden Content];. Find the GDB manual and other documentation resources online at: <[Hidden Content];. For help, type "help". Type "apropos word" to search for commands related to "word". (gdb) file game Reading symbols from game...done. (gdb) core game.core [New LWP 100257] [New LWP 100259] [New LWP 100260] [New LWP 100264] warning: .dynamic section for "/usr/lib32/libm.so.5" is not at the expected address (wrong library or version mismatch?) warning: .dynamic section for "/usr/lib32/libgcc_s.so.1" is not at the expected address (wrong library or version mismatch?) warning: .dynamic section for "/usr/lib32/libthr.so.3" is not at the expected address (wrong library or version mismatch?) warning: .dynamic section for "/usr/lib32/libc.so.7" is not at the expected address (wrong library or version mismatch?) warning: .dynamic section for "/libexec/ld-elf32.so.1" is not at the expected address (wrong library or version mismatch?) Core was generated by `game'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x080a7372 in CHARACTER::Damage (this=this@entry=0x5d585fc0, pAttacker=pAttacker@entry=0x0, dam=dam@entry=727, type=type@entry=DAMAGE_TYPE_POISON) at char_battle.cpp:2121 2121 if (IsAffectFlag(AFF_TERROR)) [Current thread is 1 (LWP 100257)] (gdb) bt full #0 0x080a7372 in CHARACTER::Damage (this=this@entry=0x5d585fc0, pAttacker=pAttacker@entry=0x0, dam=dam@entry=727, type=type@entry=DAMAGE_TYPE_POISON) at char_battle.cpp:2121 IsCritical = <optimized out> IsPenetrate = <optimized out> IsDeathBlow = <optimized out> damage_debug = <optimized out> #1 0x080d4337 in poison_event (event=..., processing_time=1) at char_resist.cpp:68 info = 0x5e6ee980 __FUNCTION__ = "poison_event" pkAttacker = 0x0 ch = 0x5d585fc0 dam = 727 #2 0x08142332 in event_process (pulse=pulse@entry=6183) at event.cpp:140 pElem = <optimized out> the_event = {px = 0x5e6f3040} processing_time = 1 new_time = <optimized out> num_events = 0 #3 0x082ed4f9 in heartbeat (ht=0x28c253f0, pulse=6183) at main.cpp:290 t = 268799 #4 0x082eec6a in idle () at main.cpp:1063 pta = {tv_sec = 1535927461, tv_usec = 206} passed_pulses = 0 process_time_count = 19 #5 0x08057d25 in main (argc=1, argv=0xffffde38) at main.cpp:715 title = {<singleton<TitleManager>> = {_vptr.singleton = 0x84d4970 <vtable for TitleManager+8>, static ms_singleton = 0xffffa460}, <No data fields>} lzo_manager = {<singleton<LZOManager>> = {_vptr.singleton = 0x84b18b8 <vtable for LZOManager+8>, static ms_singleton = 0xffffa478}, m_workmem = 0x28c5d700 ""} priv_manager = {<singleton<CPrivManager>> = {_vptr.singleton = 0x84b4a08 <vtable for CPrivManager+8>, static ms_singleton = 0xffffb39c}, m_aakPrivEmpireData = {{{m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}}, {{m_value = 500, m_end_time_sec = 1536532042}, {m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}, { m_value = 0, m_end_time_sec = 0}}, {{m_value = 1000, m_end_time_sec = 1536532042}, {m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}}, {{m_value = 1000, m_end_time_sec = 1536532042}, {m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}}, {{m_value = 300, m_end_time_sec = 1536532042}, {m_value = 0, m_end_time_sec = 0}, { m_value = 0, m_end_time_sec = 0}, {m_value = 0, m_end_time_sec = 0}}}, m_aPrivGuild = {{_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb444, _M_right = 0xffffb444}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb45c, _M_right = 0xffffb45c}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb474, _M_right = 0xffffb474}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb48c, _M_right = 0xffffb48c}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, CPrivManager::SPrivGuildData> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb4a4, _M_right = 0xffffb4a4}, _M_node_count = 0}}}}, m_aPrivChar = {{_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb4bc, _M_right = 0xffffb4bc}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb4d4, _M_right = 0xffffb4d4}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb4ec, _M_right = 0xffffb4ec}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb504, _M_right = 0xffffb504}, _M_node_count = 0}}}, {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, int> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<unsigned int, unsigned int, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xffffb51c, _M_right = 0xffffb51c}, _M_node_count = 0}}}}} spam_mgr = {<singleton<SpamManager>> = {_vptr.singleton = 0x84d9900 <vtable for SpamManager+8>, static ms_singleton = 0xffffa49c}, ---Type <return> to continue, or q <return> to quit---m_vec_word = {<std::_Vector_base<std::pair<std::basic_string<char, std::char_traits<char>, std::alQuit Lines from char_battle.cpp: if (type != DAMAGE_TYPE_NORMAL && type != DAMAGE_TYPE_NORMAL_RANGE) { if (IsAffectFlag(AFF_TERROR)) //THIS IS LINE 2121 { int pct = GetSkillPower(SKILL_TERROR) / 400; if (number(1, 100) <= pct) return false; } } Lines from 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)) //THIS IS LINE 68 { ch->m_pkPoisonEvent = NULL; return 0; } --info->count; if (info->count) return PASSES_PER_SEC(3); else { ch->m_pkPoisonEvent = NULL; return 0; } } I've tried comment those lines on char_battle.cpp, but then I got error at line 2057: if (GetRaceNum() == 5001) //THIS IS LINE 2057 { bool bDropMoney = false; int iPercent = (GetHP() * 100) / GetMaxHP(); if (iPercent <= 10 && GetMaxSP() < 5) { SetMaxSP(5); bDropMoney = true; } else if (iPercent <= 20 && GetMaxSP() < 4) { SetMaxSP(4); bDropMoney = true; } else if (iPercent <= 40 && GetMaxSP() < 3) { SetMaxSP(3); bDropMoney = true; } else if (iPercent <= 60 && GetMaxSP() < 2) { SetMaxSP(2); bDropMoney = true; } else if (iPercent <= 80 && GetMaxSP() < 1) { SetMaxSP(1); bDropMoney = true; } if (bDropMoney) { DWORD dwGold = 1000; int iSplitCount = number(10, 13); sys_log(0, "WAEGU DropGoldOnHit %d times", GetMaxSP()); for (int i = 1; i <= iSplitCount; ++i) { PIXEL_POSITION pos; LPITEM item; if ((item = ITEM_MANAGER::instance().CreateItem(1, dwGold / iSplitCount))) { if (i != 0) { pos.x = (number(-14, 14) + number(-14, 14)) * 20; pos.y = (number(-14, 14) + number(-14, 14)) * 20; pos.x += GetX(); pos.y += GetY(); } item->AddToGround(GetMapIndex(), pos); item->StartDestroyEvent(); } } } } Is anyone able to help me? Thank you all
  4. At best you would be able to save eix on your metin2 server and transfer the information with packets, since you open the client till you close it... I'm not talking about panama, a friend of mine was able to do it with RSA authentication...
  5. I tried both introselect, the one from my interface and the original one, the exactly same error... But I'll request to delete this topic, I went back to my sash system and solved the bug with the new sashs thanks to this post: @Raylee can you please close or delete this topic? Thank you
  6. Thanks It solved both bugs I didn't even knew about that option
  7. Hello, I have this error after successfully login: Unknown packet header: 225, last: 253 32 The client closes instantly and there's nothing shown on server-side syserr or syslog... I've tried to change the Acce System for a better one, but now I have this problem... I already check the headers and the packets, it's everything equal on both sides, but this problem is messing with my head... Does anyone know what can be causing this? Thank you
  8. I used the files from the posted Temple of Ochao system, but I had this bug, then I tried the ones from the official, I kept having the same problem... Now, using the map from official client (using the textureset, terrainmaps, environment and map) and the server side you gave me the floor is still black...
  9. With 0.450000 the floor is shown correctly, but it bugs when I try to move. What do I want to say is when I'm on start of the map, I press with the mouse some area in front of me, the character starts going there, but when I'm coming back to start I can't to that, I have to move myself manually or keep pressing the mouse key, and I noticed it starts doing like a curve on the movement... Is that something normal or do I leave it as it is? It's nothing to worry, but it may cause some players to report it as a bug, I don't know...
  10. Didn't work... The default is HeightScale 0.500000, I tried 1.000000, didn't work, then I tried 0.700000 and it didn't work either, then I tried 0.600000 and it didn't work... If I change the value to one of those I get the map all black, I can only see the monsters...
  11. There's any info on syserr.txt about this map, that was the first thing I tried to check, but it's empty...
  12. I copied every file from the official client, environment, terrain, textureset and map...
  13. Hello, I've had this bug on the Temple of Ochao since I started using it, and I already tried to use the map from the oficial client and all it's add-ons (terrain, textureset, environment) and nothing worked. The floor is black on the surface, but the real floor is underneath the black texture... Does anyone how to solve this? Thank you all
  14. About 5 minutes with i7 6700HQ 16GB RAM and solution on HDD
  15. Solved! The problem was on the subtype, I had WEAPON_UNLIMITED_ARROW above on ProtoReader, but on subtype item it was bellow, and on client I had the same thing. But I still don't have effect
  16. I tested with the original source formula and the one from vanilla that can be activated and deactivated with a config option. The one from vanilla is letting the sura getting much more damage. An example, yesterday me and my friends tested, while I was without the manashield I got 800 of damage (hit), when I used the manashield I started getting 3000 (hit) (it was neither critic or penetration) With the original formula I can't remember exactly what was the difference, but it wasn't doing what was supposed to as well...
  17. Ah that formula, yes I changed it. I'm using the one from vanilla's source, but I tried both original and the one from vanilla, even thought the results were different, it wasn't what it was supposed to do...
  18. I didn't touch the formula actually, and I even compared the formula with another serverfiles and it was the same... I've touched every other skill that does damage, like warrior aura, triple attack, etc, didn't touch defensive skills
  19. Hello, I'm testing the damages on my server and we realized that magic sura using it's protection gets much more damage than he takes without it... My skill proto row INSERT INTO `skill_proto`(`dwVnum`, `szName`, `bType`, `bLevelStep`, `bMaxLevel`, `bLevelLimit`, `szPointOn`, `szPointPoly`, `szSPCostPoly`, `szDurationPoly`, `szDurationSPCostPoly`, `szCooldownPoly`, `szMasterBonusPoly`, `szAttackGradePoly`, `setFlag`, `setAffectFlag`, `szPointOn2`, `szPointPoly2`, `szDurationPoly2`, `setAffectFlag2`, `szPointOn3`, `szPointPoly3`, `szDurationPoly3`, `szGrandMasterAddSPCostPoly`, `prerequisiteSkillVnum`, `prerequisiteSkillLevel`, `eSkillType`, `iMaxHit`, `szSplashAroundDamageAdjustPoly`, `dwTargetRange`, `dwSplashRange`) VALUES (79, 0xC8E6BDC5BCF6C8A3, 3, 1, 1, 0, 'DEF_GRADE', '(0.5*iq+15)*k', '20+30*k', '60+120*k', '5+10*k', '63+120*k', '(0.5*iq+15)*k', '', 'SELFONLY,TOGGLE', 'MANASHIELD', 'MANASHIELD', '100-((iq*0.84)*k)', '60+120*k', '', '', '', '', '20+30*k', 0, 0, 'MAGIC', 1, '0.8', 0, 0); My char_battle.cpp // POINT_MANASHIELD �� �۾������� ���� int iDamageSPPart = (dam * GetPoint(POINT_MANASHIELD)) / 100; int iDamageToSP = iDamageSPPart * 0.2f; int iSP = GetSP(); // SP�� ������ ������ ������ ���� ���� if (iDamageToSP <= iSP) { PointChange(POINT_SP, -iDamageToSP); dam -= iDamageSPPart; } else { // ���ŷ��� ���ڶ��� �ǰ� �� �←���ҋ� PointChange(POINT_SP, -GetSP()); dam -= (iSP / 20) * 100; } Does anyone know what is wrong?
  20. Hello, I've got 2 bugs on my offline shop system (Ken Offline Shop) The first bug is on the offline shop's sign. When I create the offline shop the sign is shown correctly with the name I set, but if I close the client, or another player enters the game, the sign doesn't show. Stays like that. The second bug is when like the first. If I don't have a sign, when I close the shop, I receive the item bug the shop doesn't go away until someone clicks on it, if someone clicks the store instantly disappears. Does anyone know what is the problem? Thank you
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.