wezt 95 Posted May 8, 2015 Share Posted May 8, 2015 Hello, I'd like to ask for some help with advice. I'm trying to solve my problems almost one week and have not luck with it. The core stop working after adding flame dungeon quest/map to the production server (when map finished few times (4-6)). But on development server all is fine (probably it's because of the amount of players). On dev I have FreeBSD 9.3-RELEASE i386 on prod - FreeBSD 9.3-RELEASE-p10 amd64 Binary files compiled on dev server from mainline_relased (40k) Here is some parts from logs db error log: SYSERR: May 6 18:43:01 :: Start: TABLE_POSTFIX not configured use default SYSERR: May 6 18:43:03 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Column 'name' in field list is ambiguous query: SELECT empire, pid, name, money, windate FROM monarch a, player b where a.pid=b.id SYSERR: May 6 18:46:32 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Duplicate entry '819143' for key 'pid' query: INSERT INTO guild_member VALUES(819143, 103265, 1, 0, 0) SYSERR: May 6 18:46:32 :: GuildAddMember: Query failed when getting guild member data SELECT pid, grade, is_general, offer, level, job, name FROM guild_member, player WHERE guild_id = 103265 and pid = id and pid = 819143 SYSERR: May 6 18:47:58 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Duplicate entry '819143' for key 'pid' query: INSERT INTO guild_member VALUES(819143, 103266, 1, 0, 0) SYSERR: May 6 18:47:58 :: GuildAddMember: Query failed when getting guild member data SELECT pid, grade, is_general, offer, level, job, name FROM guild_member, player WHERE guild_id = 103266 and pid = id and pid = 819143 SYSERR: May 6 19:10:09 :: Process: FDWATCH: peer null in event: ident 22 core error log SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 930125x300539 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929953x300531 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929765x300533 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928583x300587 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928594x300728 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928596x300881 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928596x301262 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928596x301410 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928604x301570 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928601x301725 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929143x302395 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929715x302383 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928927x302389 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929263x302389 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929388x302380 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929535x302367 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929871x302385 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929996x302398 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 930117x302374 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 930232x302381 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 930340x302387 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 930453x302385 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928736x300492 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 930050x301962 mapindex 41 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 928906x300491 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929071x300490 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929693x301439 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 930474x301945 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 929426x301922 mapindex 41 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000300x271009 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001939x271444 mapindex 41 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000432x270650 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000170x270661 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001897x271948 mapindex 41 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000549x272206 mapindex 41 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000277x271976 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000221x272383 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001945x272367 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001878x270614 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000386x271484 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001105x270656 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001027x271561 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000729x270671 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001504x270661 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001103x272180 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000816x271443 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1000290x271671 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 1001444x271732 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58504x121838 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58223x121722 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57906x121746 mapindex 21 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57558x122048 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58806x121791 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59321x123072 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57574x123078 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57504x121400 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59342x121294 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59335x122237 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58489x121278 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59339x122626 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57487x122422 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58506x122454 mapindex 21 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59350x121723 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57467x121775 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58047x123067 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58942x123042 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58926x121207 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58009x121226 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57502x122613 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59386x121733 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57488x121184 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57671x121176 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57838x121192 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58246x121218 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58696x121188 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59308x122482 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59390x121958 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59362x121487 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57535x122281 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57496x121603 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57804x123065 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59136x123036 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59342x122755 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59146x121210 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59325x122932 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59098x121805 mapindex 21 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57932x123072 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57693x123086 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57499x122957 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 57557x121872 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59350x122090 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58795x123044 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 58233x123016 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59038x123034 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 59235x123044 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 986665x317211 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 988493x317216 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 24930x219315 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 24436x219321 mapindex 21 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 25384x219288 mapindex 21 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 25216x219943 mapindex 21 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 25874x219341 mapindex 21 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 997624x275328 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 999422x275491 mapindex 41 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 998463x276346 mapindex 41 SYSERR: May 6 19:10:26 :: RegenNPC: Cannot create guild npc SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 999550x275256 mapindex 41 SYSERR: May 6 19:10:26 :: Show: cannot find sectree by 999107x275813 mapindex 41 SYSERR: May 6 19:10:26 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 0 mob 3596 skill 257 SYSERR: May 6 19:10:26 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 1 mob 3596 skill 258 core backtrace #0 0x2878fa73 in thr_kill () from /usr/lib32/libc.so.7 #1 0x28723a56 in pthread_sigmask () from /usr/lib32/libthr.so.3 #2 0x287242ab in raise () from /usr/lib32/libthr.so.3 #3 0x28839e1a in abort () from /usr/lib32/libc.so.7 #4 0x288877d0 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib32/libsupc++.so.1 #5 0x2888c03a in std::set_unexpected () from /usr/lib32/libsupc++.so.1 #6 0x2888c082 in std::terminate () from /usr/lib32/libsupc++.so.1 #7 0x288855e5 in __cxa_pure_virtual () from /usr/lib32/libsupc++.so.1 #8 0x08051e1a in CFSM::Update (this=0x3a0a904c) at FSM.cpp:30 #9 0x0806d268 in CHARACTER::UpdateStateMachine (this=0x3a0a9000, dwPulse=103384) at char.cpp:4127 #10 0x080b0ad4 in std::for_each<__gnu_cxx::__normal_iterator<CHARACTER**, std::vector<CHARACTER*, std::allocator<CHARACTER*> > >, std::binder2nd<std::mem_fun1_t<void, CHARACTER, unsigned int> > > (__first={_M_current = 0x3b2d3500}, __last={_M_current = 0x3b2d43c4}, __f= {<std::unary_function<CHARACTER*,void>> = {<No data fields>}, op = {<std::binary_function<CHARACTER*,unsigned int,void>> = {<No data fields>}, _M_f = {__pfn = 0x806d210 <CHARACTER::UpdateStateMachine(unsigned int)>, __delta = 0}}, value = 103384}) at stl_function.h:656 #11 0x080b0541 in CHARACTER_MANAGER::Update (this=0xffffc84c, iPulse=103384) at char_manager.cpp:700 #12 0x0825a3e8 in idle () at main.cpp:943 #13 0x0825ba91 in main (argc=1, argv=0xffffde4c) at main.cpp:609 I'm not professional c++ developer, but as far i understand crashes happened because some function didn't clean itself and after some time It goes over the memory limit (probably I'm wrong). All errors from logs also appears without new map/quest and core doesn't crash. So i suppose that my problem is in some quest functions or server files (already tried several variants for monster folder and map folder). * I didn't do any changes in those functions which are mentioned in backtrace. If it necessary I'll provide more info. Thanks in advance. Link to comment Share on other sites More sharing options...
wezt 95 Posted May 18, 2015 Author Share Posted May 18, 2015 One more time hello! I still need some advice or tips, about this problem. Since my first post I've made few changes (compiled binaries with gcc48, tried different gcc flags and even tried different sources), still same problem. Here is full backtrace from gdb http://pastebin.com/fKTcdbwx Each game.core backtrace (from different sources and compilers) has almost the same info, this +8 in each vtable ( , etc.) in #14frame. Here is output from gdb where command: (gdb) where #0 0x08535737 in thr_kill () #1 0x08527a0b in raise () #2 0x085839c5 in abort () #3 0x08502b95 in __gnu_cxx::__verbose_terminate_handler () at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/vterminate.cc:95 #4 0x084c2ec5 in __cxxabiv1::__terminate (handler=0x8502a00 &amp;lt;__gnu_cxx::__verbose_terminate_handler()&amp;gt;) at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/eh_terminate.cc:38 #5 0x084c2f1f in std::terminate () at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/eh_terminate.cc:48 #6 0x084c4512 in __cxxabiv1::__cxa_pure_virtual () at ../../.././../gcc-4.8-20150423/libstdc++-v3/libsupc++/pure.cc:50 #7 0x080555fe in CFSM::Update (this=0x3536a84c) at FSM.cpp:30 #8 0x08073f88 in CHARACTER::UpdateStateMachine (this=this@entry=0x3536a800, dwPulse=dwPulse@entry=56416) at char.cpp:4063 #9 0x080b57cd in operator() (__x=56416, __p=, this=) at /usr/local/lib/gcc48/include/c++/bits/stl_function.h:623 #10 operator() (__x=, this=) at /usr/local/lib/gcc48/include/c++/backward/binders.h:160 #11 for_each&amp;lt;__gnu_cxx::__normal_iterator &amp;gt;, std::binder2nd &amp;gt; &amp;gt; (__f=..., __last=..., __first=...) at /usr/local/lib/gcc48/include/c++/bits/stl_algo.h:4417 #12 CHARACTER_MANAGER::Update (this=0xffffc080, iPulse=iPulse@entry=56416) at char_manager.cpp:695 #13 0x0824315c in idle () at main.cpp:775 #14 0x0804e5d7 in main (argc=1, argv=0xffffde4c) at main.cpp:461 Because this line "#8 0x08073f88 in CHARACTER::UpdateStateMachine" I suppose that the problem connected to mobs but still cannot find out. Thanks in advance. Regards. 1 Link to comment Share on other sites More sharing options...
Honorable Member martysama0134 7178 Posted May 18, 2015 Honorable Member Share Posted May 18, 2015 1. Could you also post the last syslog lines before the relative core crash? 2. Have you changed somehow the design and the settings/server_attr of the a1/b1/c1 maps? 1 Check out my GitHub Link to comment Share on other sites More sharing options...
wezt 95 Posted May 18, 2015 Author Share Posted May 18, 2015 Thanks for reply and sorry for delay. 1) I didn't change any settings for a1/b1/c1 (using original files or those which were found in web) 2) Right now i have only old logs (the ones which I've saved after same crash few days ago). auth_syslog May 6 19:10:09 :: Handshake: lower than zero -28 May 6 19:10:09 :: Handshake: client_time 0 server_time 1627143 May 6 19:10:09 :: SetRemainSecs player4dw 0 type 2 May 6 19:10:09 :: BILLING: PUSH player4dw 543 type 2 May 6 19:10:09 :: BILLING: OFF player4dw key 783270870 ptr 0x291fa9e0 May 6 19:10:09 :: SetRemainSecs rewtqert 0 type 2 May 6 19:10:09 :: BILLING: PUSH rewtqert 30 type 2 May 6 19:10:09 :: BILLING: OFF rewtqert key 1507378031 ptr 0x291f9cc0 May 6 19:10:09 :: SetRemainSecs asdfasdf 0 type 2 May 6 19:10:09 :: BILLING: PUSH asdfasdf 636 type 2 May 6 19:10:09 :: BILLING: OFF asdfasdf key 1788246085 ptr 0x291fa190 May 6 19:10:09 :: SetRemainSecs asy553fg 0 type 2 May 6 19:10:09 :: BILLING: PUSH asy553fg 664 type 2 May 6 19:10:09 :: BILLING: OFF asy553fg key 507890291 ptr 0x291f9ef0 May 6 19:10:09 :: SetRemainSecs a345tgyhb 0 type 2 May 6 19:10:09 :: BILLING: PUSH a345tgyhb 664 type 2 May 6 19:10:09 :: BILLING: OFF a345tgyhb key 1287049170 ptr 0x291f9160 May 6 19:10:09 :: SetRemainSecs asdf 0 type 2 May 6 19:10:09 :: BILLING: PUSH asdf 568 type 2 May 6 19:10:09 :: BILLING: OFF asdf key 387512254 ptr 0x291fa970 May 6 19:10:09 :: SetRemainSecs sdddddddd 0 type 2 May 6 19:10:09 :: BILLING: PUSH sdddddddd 638 type 2 May 6 19:10:09 :: BILLING: OFF sdddddddd key 1242074414 ptr 0x291f9240 May 6 19:10:09 :: SetRemainSecs hhhhhhh 0 type 2 May 6 19:10:09 :: BILLING: PUSH hhhhhhh 7 type 2 May 6 19:10:09 :: BILLING: OFF hhhhhhh key 331358538 ptr 0x291faa50 May 6 19:10:09 :: SetRemainSecs iimosssdesii 0 type 2 May 6 19:10:09 :: BILLING: PUSH iimosssdesii 579 type 2 May 6 19:10:09 :: BILLING: OFF iimosssdesii key 1703653702 ptr 0x291fa4a0 May 6 19:10:09 :: AUTH_PHASE 0x28d6b000 May 6 19:10:09 :: InputAuth::Login : sacccccc(8) desc 0x28d6b000 May 6 19:10:09 :: SetLoginKey 702115956 May 6 19:10:09 :: InputAuth::Login : key 702115956:0x1e96dbb0 login sacccccc May 6 19:10:09 :: QID_AUTH_LOGIN: START 702115956 0x28d6b000 May 6 19:10:09 :: NOID May 6 19:10:09 :: FLUSH_USE_TIME: count 10 auth_syserr SYSERR: May 6 18:43:01 :: pid_init: Start of pid: 90203 SYSERR: May 6 18:43:01 :: socket_connect: HOST localhost:15000, could not connect. db_syslog May 6 19:10:03 :: eee3453eeeeeeeee 958894 270458 hair 5024 May 6 19:10:03 :: wertwer 63261 166722 hair 0 May 6 19:10:03 :: qwer 958279 268983 hair 0 May 6 19:10:03 :: wqer 977112 304169 hair 0 May 6 19:10:04 :: MarriageUpdate PID:248182 667613 LP:664304784 ST:1 May 6 19:10:04 :: MARRIAGE UPDATE PID:248182 667613 LP:664304784 ST:1 May 6 19:10:04 :: SetPlay on 753232300 qwerqwer May 6 19:10:04 :: [PLAYER_LOAD] ID werterwewewe pid 809042 gold 56127077 May 6 19:10:04 :: QID_QUEST 307 May 6 19:10:04 :: QUEST_LOAD: count 32 PID 809042 May 6 19:10:04 :: info of pLoginData1 before call ItemAwardfunction 679762240 May 6 19:10:04 :: QID_AFFECT 307 May 6 19:10:04 :: AFFECT_LOAD: count 2 PID 809042 May 6 19:10:06 :: [ 16250] return 0/0/0 async 0/0/0 May 6 19:10:08 :: SetPlay off 1653595356 asdf May 6 19:10:09 :: SetPlay off 783270870 tqew May 6 19:10:09 :: SetPlay off 1507378031 qrtwerterwt May 6 19:10:09 :: SetPlay off 1788246085 stuadsfgdsfrtmarshall2 May 6 19:10:09 :: SetPlay off 507890291 dsfggeeee May 6 19:10:09 :: SetPlay off 1287049170 eeee345435 May 6 19:10:09 :: SetPlay off 387512254 qwerqwer May 6 19:10:09 :: SetPlay off 1242074414 wqer3232332 May 6 19:10:09 :: SetPlay off 331358538 wqerwqer May 6 19:10:09 :: SetPlay off 1703653702 wqerwqerwqer May 6 19:10:09 :: Connection closed. (host: 127.0.0.1) May 6 19:10:09 :: ItemIDRange: returned. 110000001 ~ 120000000 May 6 19:10:09 :: ItemIDRange: Build: 110000001 ~ 120000000 start:115923420 SYSERR: May 6 19:10:09 :: Process: FDWATCH: peer null in event: ident 22 db_syserr SYSERR: May 6 18:47:58 :: DirectQuery: AsyncSQL::DirectQuery : mysql_query error: Duplicate entry '819143' for key 'pid' query: INSERT INTO guild_member VALUES(819143, 103266, 1, 0, 0) SYSERR: May 6 18:47:58 :: GuildAddMember: Query failed when getting guild member data SELECT pid, grade, is_general, offer, level, job, name FROM guild_member, player WHERE guild_id = 103266 and pid = id and pid = 819143 SYSERR: May 6 19:10:09 :: Process: FDWATCH: peer null in event: ident 22 channel1_core3_syslog May 6 19:10:01 :: MarriageUpdate 248182 667613 664120743 1 May 6 19:10:02 :: sadfadsaf: USE_SKILL: 107 pkVictim 0x356a9000 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6002) May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6006) May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6006) May 6 19:10:02 :: VERSION: player2 7486881150 metin2client.bin May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=679457, npc=6003) May 6 19:10:02 :: AddAffect Cursed Troll Seeress type 210 apply 0 0 flag 6 duration 4 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=792841, npc=2442) May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004) May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6005) May 6 19:10:02 :: player4: USE_SKILL: 62 pkVictim 0x0 May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133493, iDam_t -3255 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6006) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133030, iDam_t -3244 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136455, iDam_t -6497 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 129738, iDam_t 0 May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136330, iDam_t -6491 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136547, iDam_t -6502 May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 129712, iDam_t 0 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 134518, iDam_t -3280 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133378, iDam_t -3253 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 136843, iDam_t -6516 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6005) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133564, iDam_t -3257 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003) May 6 19:10:02 :: name: player4, POINT_RESIST_SWORD iDam 133155, iDam_t -3247 May 6 19:10:02 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6007) May 6 19:10:03 :: SHOW: player2 3312000x6000x0 May 6 19:10:03 :: AddAffect player2 type 215 apply 0 0 flag 28 duration 5 May 6 19:10:03 :: ENTERGAME: player2 3312000x6000x0 79.118.80.207 map_index 226 May 6 19:10:03 :: HORSE STAMINA REGEN EVENT CANCEL 0x0 May 6 19:10:03 :: HORSE STAMINA CONSUME EVENT CREATE 0x2ad1f860 May 6 19:10:03 :: SendLandList map 226 count 0 elem_size: 0 May 6 19:10:03 :: AddAffect player2 type 500 apply 0 0 flag 0 duration 7130 May 6 19:10:03 :: PREMIUM: player2 type 0 7130min May 6 19:10:03 :: AddAffect player2 type 501 apply 0 0 flag 0 duration 7130 May 6 19:10:03 :: PREMIUM: player2 type 1 7130min May 6 19:10:03 :: AddAffect player2 type 502 apply 0 0 flag 0 duration 7130 May 6 19:10:03 :: PREMIUM: player2 type 2 7130min May 6 19:10:03 :: AddAffect player2 type 503 apply 0 0 flag 0 duration 7130 May 6 19:10:03 :: PREMIUM: player2 type 3 7130min May 6 19:10:03 :: AddAffect player2 type 504 apply 0 0 flag 0 duration 7130 May 6 19:10:03 :: PREMIUM: player2 type 4 7130min May 6 19:10:03 :: AddAffect player2 type 505 apply 0 0 flag 0 duration 7130 May 6 19:10:03 :: PREMIUM: player2 type 5 7130min May 6 19:10:03 :: AddAffect player2 type 506 apply 0 0 flag 0 duration 7130 May 6 19:10:03 :: PREMIUM: player2 type 6 7130min May 6 19:10:03 :: VERSION CHECK 2147483647 2147483647 7486881150 7486881150 May 6 19:10:03 :: reallocating buffer to 4096, current 1024 May 6 19:10:03 :: PARTY P2PSetMemberLevel leader 137025 pid 137025 level 170 May 6 19:10:03 :: PONG! 1 74 May 6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=679457, npc=6004) May 6 19:10:03 :: GIVE_GOLD: player4 116237 May 6 19:10:03 :: AddAffect Ember Flame type 210 apply 0 0 flag 6 duration 4 May 6 19:10:03 :: CopyMe: USE_SKILL: 107 pkVictim 0x35c17000 May 6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6004) May 6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6002) May 6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=792841, npc=2443) May 6 19:10:03 :: QUEST_LOAD: Login pc 137025 by event May 6 19:10:03 :: QUEST timer name check_start_event_board cycle 500 pc 137025 npc 4294967295 loop? 1 May 6 19:10:03 :: QUEST add timer 0x2db73240 1 May 6 19:10:03 :: HORSE STAMINA CONSUME EVENT CANCEL 0x2ad1f860 May 6 19:10:03 :: HORSE STAMINA REGEN EVENT CREATE 0x2db73420 May 6 19:10:03 :: HorseSummon : player2 lv:170 bSummon:1 fromFar:0 May 6 19:10:03 :: RegisterRaceNumMap Dark Military Horse 20120 May 6 19:10:03 :: AddAffect player2 type 515 apply 19 12 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 13 12 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 12 12 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 15 12 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 14 12 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 6 2500 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 17 12 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 43 12 flag 0 duration 1892160000 May 6 19:10:03 :: AddAffect player2 type 515 apply 53 12 flag 0 duration 1892160000 May 6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6001) May 6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6001) May 6 19:10:03 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=6007) May 6 19:10:03 :: AddAffect Cursed Troll Seeress type 209 apply 0 0 flag 4 duration 31 May 6 19:10:04 :: SAVE: player4 776200x673900 May 6 19:10:04 :: TMarriage::Save() - RequestUpdate.bSave=1 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6008) May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002) May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006) May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6006) May 6 19:10:04 :: Handshake: client_time 1440935 server_time 1621167 name: Andwnis97 May 6 19:10:04 :: player4: USE_SKILL: 62 pkVictim 0x0 May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 130113, iDam_t 0 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 136531, iDam_t -6501 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 130217, iDam_t 0 May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 136599, iDam_t -6504 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6002) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133390, iDam_t -3253 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 129944, iDam_t 0 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133430, iDam_t -3254 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6007) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 129839, iDam_t 0 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6004) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133430, iDam_t -3254 May 6 19:10:04 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6003) May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133490, iDam_t -3255 May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 133359, iDam_t -3252 May 6 19:10:04 :: name: player4, POINT_RESIST_SWORD iDam 136246, iDam_t -6487 May 6 19:10:04 :: MarriageUpdate 248182 667613 664304784 1 May 6 19:10:04 :: P2P: Login asdfqweww May 6 19:10:04 :: SECTREE DIFFER: testtest 121x100 was 121x101 May 6 19:10:05 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=667613, npc=6001) May 6 19:10:05 :: CopyMe: USE_SKILL: 107 pkVictim 0x35c17000 May 6 19:10:05 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=248182, npc=8057) May 6 19:10:05 :: Dungeon GetMapIndex 3510002 May 6 19:10:05 :: XXX Dungeon Notice 0x2aca2700 The Metin Purgatory was destroyed. May 6 19:10:05 :: XXX Dungeon Notice 0x2aca2700 Am-heh with a new vision for the task. May 6 19:10:05 :: QUEST_DUNGEON_PURGE_AREA May 6 19:10:05 :: AddAffect type 210 apply 0 0 flag 6 duration 5 May 6 19:10:05 :: AddAffect type 210 apply 0 0 flag 6 duration 5 May 6 19:10:05 :: AddAffect type 210 apply 0 0 flag 6 duration 5 May 6 19:10:05 :: AddAffect type 210 apply 0 0 flag 6 duration 5 May 6 19:10:05 :: AddAffect type 210 apply 0 0 flag 6 duration 5 SYSERR: May 6 19:10:14 :: pid_init: Start of pid: 90507 channel1_core3_syserr SYSERR: May 6 18:59:08 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 18:59:08 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 18:59:31 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 18:59:32 :: Click: CQuestManager::Click(pid=819550, target_npc_name=Taurean) - NOT EXIST NPC RACE VNUM[20014] SYSERR: May 6 18:59:41 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 18:59:41 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 18:59:52 :: Click: CQuestManager::Click(pid=770589, target_npc_name=Wounded Soldier) - NOT EXIST NPC RACE VNUM[20393] SYSERR: May 6 19:00:42 :: Click: CQuestManager::Click(pid=679457, target_npc_name=Destiny Lock) - NOT EXIST NPC RACE VNUM[20387] SYSERR: May 6 19:01:28 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:01:28 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:01:54 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:01:54 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:02:03 :: SyncPosition: Too many SyncPosition Count(17) from Name(player1) SYSERR: May 6 19:02:06 :: SyncPosition: Too many SyncPosition Count(20) from Name(player1) SYSERR: May 6 19:02:12 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:02:12 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:02:19 :: SyncPosition: Too many SyncPosition Count(17) from Name(player1) SYSERR: May 6 19:02:20 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:02:20 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:02:33 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:02:33 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:02:49 :: UpdateSectree: null sectree name: Charron 1439399 1423513 SYSERR: May 6 19:03:32 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:03:32 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:03:36 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:03:36 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:03:49 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:03:49 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:04:21 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:04:21 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:04:27 :: IsUniqueDead: Unknown Key or Dead : door1 SYSERR: May 6 19:04:30 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:04:30 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:04:34 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:04:40 :: PointChange: BONUS exceeded over 100!! point type: 83 name: player2 amount 122 SYSERR: May 6 19:04:45 :: SyncPosition: Too many SyncPosition Count(19) from Name(player1) SYSERR: May 6 19:05:08 :: SyncPosition: Too many SyncPosition Count(19) from Name(player1) SYSERR: May 6 19:05:11 :: SyncPosition: Too many SyncPosition Count(17) from Name(player1) SYSERR: May 6 19:05:52 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:03 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:14 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:21 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:30 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:37 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:37 :: GetUniqueVid: Unknown Key or Dead: stone5_2 SYSERR: May 6 19:06:46 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:46 :: GetUniqueVid: Unknown Key or Dead: stone5_2 SYSERR: May 6 19:06:46 :: GetUniqueVid: Unknown Key or Dead: stone5_3 SYSERR: May 6 19:06:50 :: SyncPosition: Too many SyncPosition Count(19) from Name(player1) SYSERR: May 6 19:06:52 :: SyncPosition: Too many SyncPosition Count(18) from Name(player1) SYSERR: May 6 19:06:54 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:06:54 :: GetUniqueVid: Unknown Key or Dead: stone5_2 SYSERR: May 6 19:06:54 :: GetUniqueVid: Unknown Key or Dead: stone5_3 SYSERR: May 6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_2 SYSERR: May 6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_3 SYSERR: May 6 19:07:18 :: GetUniqueVid: Unknown Key or Dead: stone5_4 SYSERR: May 6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_2 SYSERR: May 6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_3 SYSERR: May 6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_4 SYSERR: May 6 19:07:24 :: GetUniqueVid: Unknown Key or Dead: stone5_5 SYSERR: May 6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_2 SYSERR: May 6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_3 SYSERR: May 6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_4 SYSERR: May 6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_5 SYSERR: May 6 19:07:35 :: GetUniqueVid: Unknown Key or Dead: stone5_6 SYSERR: May 6 19:07:43 :: SyncPosition: Too many SyncPosition Count(18) from Name(player1) SYSERR: May 6 19:07:47 :: SyncPosition: Too many SyncPosition Count(18) from Name(player1) SYSERR: May 6 19:08:00 :: IsUniqueDead: Unknown Key or Dead : door1 SYSERR: May 6 19:08:00 :: IsUniqueDead: Unknown Key or Dead : door5 SYSERR: May 6 19:08:00 :: IsUniqueDead: Unknown Key or Dead : door1 SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame Beard) from Name(player1) VICTIM(794402,651076) SYNC(794446,651012) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame Beard) from Name(player1) VICTIM(794435,651162) SYNC(794435,651162) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794233,651214) SYNC(794254,651190) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794204,651101) SYNC(794210,651135) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794377,650918) SYNC(794403,650981) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame General) from Name(player1) VICTIM(794195,651114) SYNC(794216,651144) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame Golem) from Name(player1) VICTIM(794345,651228) SYNC(794228,651129) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame King) from Name(player1) VICTIM(794238,651000) SYNC(794223,650986) SYSERR: May 6 19:08:27 :: SyncPosition: Too often SyncPosition Interval(3ms)(Ember Flame King) from Name(player1) VICTIM(794321,651216) SYNC(794321,651216) SYSERR: May 6 19:09:11 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:09:25 :: IsUniqueDead: Unknown Key or Dead : door2 SYSERR: May 6 19:09:25 :: GetUniqueVid: Unknown Key or Dead: stone5_1 SYSERR: May 6 19:09:25 :: GetUniqueVid: Unknown Key or Dead: stone5_2 SYSERR: May 6 19:09:56 :: IsUniqueDead: Unknown Key or Dead : door1 SYSERR: May 6 19:09:56 :: IsUniqueDead: Unknown Key or Dead : door2 SYSERR: May 6 19:10:14 :: pid_init: Start of pid: 90507 And also want to notice that this crashes happens only when I activated flame dungeon quest, flame_dungeon map is on core3 and a1/b1/c1 maps are on core1 (each channel has 3 cores). Here is a quest file define BLOCK_DOOR 20387 define DUNGEON_MAN 20385 define DUNGEON_MAN_DIR 0 define DUNGEON_MAP_INDEX 351 define ENTER_LIMIT_TIME 5 define ENTRY_MAN 20394 define ENTRY_MAP_INDEX 62 define FINAL_BOSS 6091 define LEVEL2_KEY 30329 define LEVEL2_STONE 20386 define LEVEL4_TARGET 6051 define LEVEL5_REALKEY 30330 define LEVEL5_STONE 20386 define LEVEL5_GEN_LIMIT 100 define LEVEL6_TARGET 8057 define LEVEL_CUT 160 define MOB_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/" define IN_DOOR 20388 define NPC_REGEN_FILE_PATH = "data/dungeon/flame_dungeon/npc.txt" define TICKET_GROUP 10033 define LIMITED_PASS_TICKET 71175 quest flame_dungeon begin state start begin function setting() return { ["bossroom_entry_pos"] = {8109,6867}, ["boss_pos"] = {686,637}, ["doors_pos"] = { {320,394}, {293,359}, {333,321}, {378,320}, {400,355}, {394,401} }, ["idoors_pos"] = { {268,447}, {234,359}, {300,264}, {454,217}, {470,355}, {467,469} }, ["doors_dir"] = {135,90,210,152,90,223}, ["idoors_dir"] = {135,90,210,135,90,239}, ["dungeon_entry_pos"] = {7762, 6739},-- 던전에 처음 들어오는 곳 ["DUNGEON_MAN_bpos"] = {690,722}, ["DUNGEON_MAN_pos"] = {354,362}, ["LEVEL2_STONE_pos"] = {195,352}, ["LEVEL4_TARGET_pos"] = {470,175}, ["LEVEL5_STONE_pos"] = { {486, 345}, {511, 336}, {525, 349}, {521, 365}, {503, 372}, {486, 365}, {500, 354} }, ["LEVEL6_TARGET_pos"] = {511,480}, ["outside_entry_pos"] = {6142,7068}, --입장시켜주는애 서있는 곳 ["YAK_pos"] = {376, 397} -- 약환 부하 } end function is_flamed(idx) -- 적룡성에 있는지 확인 return (idx >= DUNGEON_MAP_INDEX * 10000 and idx < (DUNGEON_MAP_INDEX + 1) *10000) end function make_dungeon() -- 던전 만들기 local setting = flame_dungeon.setting() d.new_jump_party(DUNGEON_MAP_INDEX, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2]) d.regen_file(NPC_REGEN_FILE_PATH) d.setf("level",0) for i=1,6 do d.set_unique("door"..i, d.spawn_mob_ac_dir(BLOCK_DOOR, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i])) d.set_unique("idoor"..i, d.spawn_mob_ac_dir(IN_DOOR, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i])) end d.setf("clear_count",0) d.setf("started",0) party.setf("dungeon_enter",0) -- 정상적으로 입장했는지? // 비정상 : 0 정상 : 1 // 튕기면 입장제한시간을 기록 안함 flame_dungeon.clear_timer(d.get_map_index()) end function go_boss() -- 보스룸 가기 local setting = flame_dungeon.setting() say("Do you want to go the Am-heh and meet your fate by the throat?") local warp = select("Yes","Maybe later") if warp == 1 then d.setf("level",17) d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2]) d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_fild_boss.txt") d.spawn_mob(FINAL_BOSS,setting.boss_pos[1],setting.boss_pos[2]) end end function level_clear() -- 레벨 깼을때, 리젠클리어, 지역클리어 d.setf("level",0) d.clear_regen() d.purge_area(750000,620000,817400,689400) -- 맵전체 -- d.purge() 사용고려 end function clear_timer(inx) -- 타이머 다지우기 clear_server_timer ("flame_dungeon_0m_left_timer", inx) clear_server_timer ("flame_dungeon_1m_left_timer", inx) clear_server_timer ("flame_dungeon_5m_left_timer", inx) clear_server_timer ("flame_dungeon_10m_left_timer", inx) clear_server_timer ("flame_dungeon_15m_left_timer", inx) clear_server_timer ("flame_dungeon_30m_left_timer", inx) clear_server_timer ("flame_dungeon_45m_left_timer", inx) clear_server_timer ("killedA1", inx) clear_server_timer ("killedA2", inx) end function map_index_compare() if flame_dungeon.is_flamed(party.getf("dungeon_index")) then return (party.getf("dungeon_index") == pc.getf("flame_dungeon","dungeon_index")) end end function entry_setting() local idx = pc.get_map_index() local setting = flame_dungeon.setting() if flame_dungeon.is_flamed(idx) then -- 던전 입장, 보스룸 입장 예외 if idx == DUNGEON_MAP_INDEX or pc.level<LEVEL_CUT then warp_to_village() elseif not flame_dungeon.map_index_compare() and party.getf("dungeon_enter") == 1 then -- 처음 던전 입장시 티켓 소모 local ticketGroup = {get_special_item_group (TICKET_GROUP)} for i=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then pc.remove_item(ticketGroup[i], ticketGroup[i+1]) break end end pc.setf("flame_dungeon","dungeon_index", d.get_map_index()) pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- 던전 나갔을 때 밖으로 튕기게함 else pc.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- 던전 나갔을 때 밖으로 튕기게함 end elseif not d.find(pc.getf("flame_dungeon","dungeon_index")) or not party.is_party() then pc.setf("flame_dungeon","dungeon_index",0) end end when login begin if pc.get_map_index() == DUNGEON_MAP_INDEX then warp_to_village() end end when logout begin local idx = pc.get_map_index() if flame_dungeon.is_flamed(idx) and flame_dungeon.map_index_compare() then pc.setf("flame_dungeon","exit_time",get_global_time()) -- 인스턴스 안에서의 마지막 시간을 기록, 근데 시간제한 때문에 or 그냥 튕긴거면 안기록 end end when ENTRY_MAN.chat."Test map" with pc.is_gm() begin local setting = flame_dungeon.setting() pc.warp(776200, 673900) end when ENTRY_MAN.chat."Razador Tower" with pc.level>=LEVEL_CUT begin local setting = flame_dungeon.setting() if party.is_party() then local party_dungeon_idx = party.getf("dungeon_index") if d.find(party_dungeon_idx) then local canPass = false if flame_dungeon.map_index_compare() and get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then canPass = true elseif party.getf("dungeon_enter") == 0 and get_global_time() - pc.getf("flame_dungeon","exit_time") > ENTER_LIMIT_TIME * 60 then local ticketGroup = {get_special_item_group (TICKET_GROUP)} for idx=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then canPass = true break end end end if canPass then local dungeon_level = d.getf_from_map_index("level", party_dungeon_idx) if dungeon_level == 17 then -- 보스 pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party_dungeon_idx) else pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party_dungeon_idx) end else -- 5분 초과하여 재 입장 불가 say_title(mob_name(ENTRY_MAN)) say("To go through the throat of the Am-heh, you should have Passage Ticket.") end else -- 처음 입장 조건. if party.is_leader() then say("Would you like to enter the Razador Fortress?") local warp = select("Yes", "Maybe later") if warp == 1 then local pids = {party.get_member_pids()} local noTicketMembers = {} local notEnoughLevelMembers = {} local ticketCheck = true local levelCheck = true local ticketGroup = {get_special_item_group (TICKET_GROUP)} for i, pid in next, pids, nil do q.begin_other_pc_block(pid) local canPass = false for idx=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then canPass = true break end end if not canPass then table.insert(noTicketMembers, pc.get_name()) ticketCheck = false end if pc.level < LEVEL_CUT then table.insert(notEnoughLevelMembers, pc.get_name()) levelCheck = false end q.end_other_pc_block() end if not ticketCheck then say_title(mob_name(ENTRY_MAN)) say("Caveat! To enter the Razador Tower, the transition of all group members are required to have tickets. Passes non-members:") for i, name in next, noTicketMembers, nil do say(color(1,1,0), " "..name) end if levelCheck then return else wait() end end if not levelCheck then say_title(mob_name(ENTRY_MAN)) say("Caveat! To enter the Razador Tower, all group members must have reached Level 170. Required level of non-members:") for i, name in next, notEnoughLevelMembers, nil do say(color(1,1,0), " "..name) end return end if ticketCheck and levelCheck then if party.is_map_member_flag_lt("exit_time", get_global_time() - ENTER_LIMIT_TIME * 60 ) then flame_dungeon.make_dungeon() party.setf("dungeon_index", d.get_map_index()) party.setf("flame_dungeon_boss_kill_count", 0) else --say("test : 파티원의 입장 제한시간이 끝나지 않았습니다.") local time_left = (ENTER_LIMIT_TIME * 60 - (get_global_time() - pc.getf("flame_dungeon","exit_time"))) / 60 say("Razador Tower unexpired term of your yet to be able to login. Come back in " .. round(time_left) .. " minute(s)") end end end else say("Only group leaders can be found in an entry permit.") end end else say("I appreciate your courage. However, the Razador Tower can not go alone. Established a strong group and come back later.") end end when ENTRY_MAN.chat."Reset enter limit time" with pc.is_gm() begin pc.setf("flame_dungeon","exit_time",get_global_time() - ENTER_LIMIT_TIME * 60) say("Done") end when DUNGEON_MAN.chat."Test Boss Room" with pc.is_gm() begin flame_dungeon.go_boss() end when DUNGEON_MAN.chat."Test server timer!" with pc.is_gm() begin server_timer("test1", 1, d.get_map_index()) say("Done") end when DUNGEON_MAN.chat."Reset test timer!" with pc.is_gm() begin clear_server_timer("test1", d.get_map_index()) clear_server_timer("test2", d.get_map_index()) say("Done") end -- <<<< 던전 진행>>>> -- when DUNGEON_MAN.chat."Am-heh Awakening" begin -- '0x'는 x번째 레벨 퀘스트 받을 수 있는 상태 , '1x'는 x번째 레벨 퀘스트 진행중 if npc.lock() then local setting = flame_dungeon.setting() if d.getf("started") == 0 then --say(t('locale.flame_dungeon._230_say')) --say(t('locale.flame_dungeon._240_say')) say("Am-heh Awakening?") say("Razador Castle was closed for an hour to others.") wait() d.setf("started",1) -- 파티원이 튕겨버렸는데 자기만 남아서 exit timer가 리셋되면 안되니깐 다음레벨을 눌렀을때를 시작할때로 봄 server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index()) --d.notice(t('locale.flame_dungeon._250_notice')) --d.notice(t('locale.flame_dungeon._170_notice')) d.notice("Time Left: 60 Minutes") d.notice("When finished you will be expelled from the time the castle as a group.") local pids = {party.get_member_pids()} local ticketGroup = {get_special_item_group (TICKET_GROUP)} for i, pid in next, pids, nil do q.begin_other_pc_block(pid) local canPass = false for idx=1, table.getn(ticketGroup),2 do if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then canPass = true pc.remove_item(ticketGroup[idx], ticketGroup[idx+1]) pc.setf("flame_dungeon","dungeon_index", d.get_map_index()) break end end if not canPass then pc.setf("flame_dungeon","dungeon_index", 0) warp_to_village() end q.end_other_pc_block() end party.setf("dungeon_enter",1) end if d.getf("level") == 0 then --레벨을 클리어했으면 if d.getf("clear_count") == 6 then -- 방 여섯개 했으면 보스방 d.setf("level",7) else local rand = number(1,6)--랜덤에서 방문체크는 따로 배열없이 방의 문의 열려있는지로 체크함 local setlev = 0 d.setf("level",7) for i=1,50 do setlev = setlev + 1 if setlev > 6 then setlev = 1 end if not d.is_unique_dead("door"..setlev) then rand = rand - 1 if rand == 0 then d.setf("level",setlev) d.setf("clear_count",d.getf("clear_count")+1) break end end end end end if d.getf("level") == 1 then say("Mission: Venture into the ring of demons and emerge as winner.") d.notice("Mission: Venture into the ring of demons and emerge as winner.") d.kill_unique("door1") d.kill_unique("idoor1") d.setf("level",11) d.regen_file (MOB_REGEN_FILE_PATH.."fd_a.txt") server_timer("killedA1", 12, d.get_map_index()) elseif d.getf("level") == 11 then say_title("Remaining: " .. d.count_monster()) elseif d.getf("level") == 2 then say("Task: Find the golden gear and thus solves the hidden mechanism in the stele of Isfetaus.") d.notice("Task: Find the golden gear and thus solves the hidden mechanism in the stele of Isfetaus.") d.spawn_mob(LEVEL2_STONE, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- 봉인석 소환 d.kill_unique("door2") d.kill_unique("idoor2") d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_b.txt") d.setf("level",12) elseif d.getf("level") == 12 then say("Will you be the mechanism in the stele of Isfet can only be initiated with the golden gear wheel. Return Back when the task was fulfilled.") elseif d.getf("level") == 3 then say("Mission: Venture into the ring of demons and emerge as winner.") d.notice("Mission: Venture into the ring of demons and emerge as winner.") d.kill_unique("door3") d.kill_unique("idoor3") d.setf("level",13) d.regen_file (MOB_REGEN_FILE_PATH.."fd_c.txt") server_timer("killedA1", 12, d.get_map_index()) elseif d.getf("level") == 13 then say_title("Remaining: "..d.count_monster()) elseif d.getf("level") == 4 then -- 474 178 say("Task: Defeat Ignitor, guards the embers.") d.notice("Task: Defeat Ignitor, guards the embers.") d.setf("level",14) d.kill_unique("door4") d.kill_unique("idoor4") d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_d.txt") d.spawn_mob(LEVEL4_TARGET,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- 타겟몬스터 소한 elseif d.getf("level") == 14 then say("Ignitor not yet been defeated. Fortify yourself or receive eternal damnation. Return if the task is accomplished.") elseif d.getf("level") == 5 then -- 510 355 say("Mission: Find the Maat stones and place them in the correct order in seven stelae ISFET.") say("If you use the Stone of Maat in the wrong stele, a stone will break.") d.notice("Mission: Find the Maat stones and place them in the correct order in seven stelae ISFET.") d.notice("If you use the Stone of Maat in the wrong stele, a stone will break.") d.kill_unique("door5") d.kill_unique("idoor5") d.setf("level",15) d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") local vis = { 0,0,0,0,0,0,0} for i=1,7 do vis[i] = 0 end for i = 1, 7 do -- 랜덤하게 돌소환 local ran = number(1,7) local st = 0 for j = 1, 50 do st = st + 1 if st > 7 then st = 1 end if vis[st] == 0 then ran = ran - 1 if ran == 0 then vis[st] = 1 d.set_unique("stone5_"..st, d.spawn_mob(LEVEL5_STONE, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2])) break end end end end elseif d.getf("level") == 15 then say("To err is human! So choose wisely to solve the mystery. Return if the task is accomplished.") elseif d.getf("level") == 6 then -- 507 490 say("Task: Just who is not afraid of the scorching heat, will destroy the Metin purgatory.") d.notice("Task: Just who is not afraid of the scorching heat, will destroy the Metin purgatory.") d.setf("level",16) d.kill_unique("door6") d.kill_unique("idoor6") d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_f.txt") d.spawn_mob(LEVEL6_TARGET, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- 타겟오브젝트 소환 elseif d.getf("level") == 16 then say("Let's put Metin Purgatory in ashes. Back if the task is accomplished.") elseif d.getf("level") == 7 then flame_dungeon.go_boss() else say(" ") end npc.unlock() end end when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin local i = number(1, 100) -- 100분의 1 확률로 열쇠드랍 if i == 1 then game.drop_item (LEVEL2_KEY, 1) end end when LEVEL2_STONE.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == LEVEL2_KEY and d.getf("level") == 12 begin local i = number(1, 5) -- 5분의 1 확률로 진짜 열쇠 if i == 1 then npc.purge() item.remove() d.notice("You've finished the task, ") d.notice("Am-heh with a new vision for the task.") flame_dungeon.level_clear() else item.remove() say("This piece is false and was destroyed. Find the original.") end end when LEVEL4_TARGET.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin d.notice("You've finished the task, ") d.notice("Am-heh with a new vision for the task.") flame_dungeon.level_clear() end when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin local i = number(1, 30) -- 30분의 1 확률로 열쇠드랍 if i == 1 then game.drop_item (LEVEL5_REALKEY, 1) end end when LEVEL5_STONE.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == LEVEL5_REALKEY and d.getf("level") == 15 begin local setting = flame_dungeon.setting() if npc.get_vid() == d.get_unique_vid("stone5_1") then -- 첫번째 꺼는 선행되어야 할 일이 필요없으니 찾자마자 제거해줌 npc.purge() item.remove() say("That was a wise choice. Now destroyed the next tele.") d.setf("stonekill",2) -- 2번 돌을 죽여라 if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end elseif npc.get_vid() == d.get_unique_vid("stone5_2") then if d.getf("stonekill") == 2 then -- 2번돌을 죽일 차롄데 2번돌에게 열쇠를 먹였을 때 npc.purge() item.remove() say("That was a wise choice. Now destroyed the next tele.") d.setf("stonekill",3) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say("Wrong sequence. The Stone of Maat was thereby destroyed.") end elseif npc.get_vid() == d.get_unique_vid("stone5_3") then if d.getf("stonekill") == 3 then npc.purge() item.remove() say("That was a wise choice. Now destroyed the next tele.") d.setf("stonekill",4) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say("Wrong sequence. The Stone of Maat was thereby destroyed.") end elseif npc.get_vid() == d.get_unique_vid("stone5_4") then if d.getf("stonekill") == 4 then npc.purge() item.remove() say("That was a wise choice. Now destroyed the next tele.") d.setf("stonekill",5) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say("Wrong sequence. The Stone of Maat was thereby destroyed.") end elseif npc.get_vid() == d.get_unique_vid("stone5_5") then if d.getf("stonekill") == 5 then npc.purge() item.remove() say("That was a wise choice. Now destroyed the next tele.") d.setf("stonekill",6) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say("Wrong sequence. The Stone of Maat was thereby destroyed.") end elseif npc.get_vid() == d.get_unique_vid("stone5_6") then if d.getf("stonekill") == 6 then npc.purge() item.remove() say("That was a wise choice. Now destroyed the next tele.") d.setf("stonekill",7) if d.count_monster() < LEVEL5_GEN_LIMIT then d.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt") end else item.remove() say("Wrong sequence. The Stone of Maat was thereby destroyed.") end else if d.getf("stonekill") == 7 then npc.purge() item.remove() d.notice("You've finished the task, ") d.notice("Am-heh with a new vision for the task.") flame_dungeon.level_clear() else item.remove() say("Wrong sequence. The Stone of Maat was thereby destroyed.") end end end when LEVEL6_TARGET.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin d.notice("You've finished the task, ") d.notice("Am-heh with a new vision for the task.") flame_dungeon.level_clear() end when FINAL_BOSS.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin notice_all("Razador was destroyed.") server_timer("dungeon_end_timer", 60,d.get_map_index()) flame_dungeon.level_clear() -- 파티원 중, 야마천 잡는 퀘스트(104렙, 105렙 퀘스트) 진행중인 사람이 있으면 퀘스트 클리어 되도록. if party.is_party() then party.setf("flame_dungeon_boss_kill_count", 1) end end --START TIMERS PART when flame_dungeon_45m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 45 minute(s) ") server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg()) end end when flame_dungeon_30m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 30 minute(s) ") server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg()) end end when flame_dungeon_15m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 15 minute(s) ") server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg()) end end when flame_dungeon_5m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 5 minute(s) ") server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg()) end end when flame_dungeon_1m_left_timer.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 1 minute(s) ") server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg()) end end when flame_dungeon_0m_left_timer.server_timer begin local setting = flame_dungeon.setting() if d.select(get_server_timer_arg()) then d.notice("Time expired.") server_timer("dungeon_end_timer",10,get_server_timer_arg()) end end when dungeon_end_timer.server_timer begin -- 종료 타이머 (끝나고 나가는거) local setting = flame_dungeon.setting() if d.select(get_server_timer_arg()) then flame_dungeon.clear_timer(d.get_map_index()) d.set_warp_location(ENTRY_MAP_INDEX, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) d.exit_all() end end when killedA1.server_timer begin -- 타이머 돌리기1 (level1,level3) if d.select(get_server_timer_arg()) then if d.count_monster() <= 1 then -- 1레벨 몬스터 전멸시 d.notice("You've defeated all the demons, ") d.notice("Am-heh with a new vision for the task.") d.setf("level",0) else server_timer ("killedA2", 6, get_server_timer_arg()) end end end when killedA2.server_timer begin -- 타이머 돌리기2 (1과 2 번갈아가면서 돌아감) if d.select(get_server_timer_arg()) then if d.count_monster() <= 1 then -- 1레벨 몬스터 전멸시 d.notice("You've defeated all the demons, ") d.notice("Am-heh with a new vision for the task.") d.setf("level",0) else server_timer ("killedA1", 6, get_server_timer_arg()) end end end when test1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("server timer test1") d.notice("server timer test1") server_timer ("test2", 1, get_server_timer_arg()) end end when test2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("server timer test2") d.notice("server timer test2") server_timer ("test1", 1, get_server_timer_arg()) end end --END TIMERS PART end end Thank in advance. Regards. ==== UPDATE 1 ==== Ehh, I didn't noticed this message in logs "AddAffect type 210 apply 0 0 flag 6 duration 5", crashes happens directly after it. In source this line looks like this: sys_log(1, "AddAffect %s type %d apply %d %d flag %u duration %d", GetName(), dwType, bApplyOn, lApplyValue, dwFlag, lDuration); So message from logs means that the game cannot get name for character/mob (if I'm right) -> character/mob = NULL I've added in CHARACTER::AddAffect this(1): if (!GetName()) { sys_err("Character::AddAffect false GetName(), type %d", dwType); return true; } Wonder if it will crash again, I'll let you know later. ==== UPDATE 2 ==== Well when I've added in AddAffect code 1 (see above), channed crashed without this error "AddAffect type 210 apply 0 0 flag 6 duration 5". I've bactraced the code and I've stoped on CHARACTER::Attak, - added there this if(2): bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType) { if (test_server) sys_log(0, "[TEST_SERVER] Attack : %s type %d, MobBattleType %d", GetName(), bType, !GetMobBattleType() ? 0 : GetMobAttackRange()); //PROF_UNIT puAttack("Attack"); if (!CanMove()) return false; if(!pkVictim) //added for check if victim exist(2) { sys_err("CHARACTER::Attack FALSE pkVictim, char_battle.cpp:191"); return false; } Core get crashed, nothing suspicious in logs Link to comment Share on other sites More sharing options...
Micha aka xCPx 336 Posted May 27, 2015 Share Posted May 27, 2015 try to replace this: d.purge_area(750000,620000,817400,689400) with another command. for me it looks like there is an kind of overflow in there ... I think it´s because of the huge area you wanna clear. The more players are online and get in flame dungeon, the more mobs are there and the greater the array or dictionary gets where the pointers to the monsters in that area are located. For example ( simply an example i cannot look the function from my mobiles correctly): If in d.purge_area or an subscending function there is an array with the size of 32767 is defined as the temporary space for the monsters and each flame dungeon has 2000 mobs at the moment. If the dungeon is opened 10x then 2000 * 10 = 20 000 = < 32767 ---> everythng is fine but if it´s opened 20x then 2000 * 20 = 40 000 = > 32767 ---> Memory overflow ---> Core crashes. Link to comment Share on other sites More sharing options...
wezt 95 Posted June 2, 2015 Author Share Posted June 2, 2015 Hi, thanks for reply. I've tried to crash the core with next lines in quest: function level_clear() d.setf("level",0) d.clear_regen() --d.purge_area(750000,620000,817400,689400) -- doesn't crash dev server d.kill_all() -- crash server only when amount of spawned mobs goes over 20k d.regen_file("locale/germany/map/metin2_map_n_flame_01/regen_full.txt") d.regen_file("locale/germany/map/metin2_map_n_flame_01/regen_full.txt") end when test1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("server timer test1") d.notice("flame_dungeon.level_clear()") flame_dungeon.level_clear() server_timer ("test2", 1, get_server_timer_arg()) end end when test2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("server timer test2") d.notice("flame_dungeon.level_clear()") flame_dungeon.level_clear() server_timer ("test1", 1, get_server_timer_arg()) end end Also I've moved forward little bit (thanks to @martysama0134 ). And from gdb I've found that somehow destroyed characters (mobs) still exist as objects. Were add several lines in void CHARACTER::UpdateStateMachine(DWORD dwPulse) void CHARACTER::UpdateStateMachine(DWORD dwPulse) { //start added lines if (!this) return; if (!this->m_pkMobData && !IsPC()) { sys_err("UpdateStateMachine %s doesn't have m_pkMobData", GetName()); Destroy(); return; } //end added lines if (dwPulse < m_dwNextStatePulse) return; if (IsDead()) return; Update(); m_dwNextStatePulse = dwPulse + m_dwStateDuration; //sys_log(0,"UpdateStateMachine %s", GetName()); } And after core crashed in CHARACTER::ClearTarget (gdb) where #0 0x0808aadb in std::tr1::__detail::_Hashtable_iterator_base<CHARACTER*, false>::_M_incr (this=0xffff9858) at /usr/local/lib/gcc5/include/c++/tr1/hashtable_policy.h:215 #1 0x08088ddf in std::tr1::__detail::_Hashtable_iterator<CHARACTER*, true, false>::operator++ (this=0xffff9858) at /usr/local/lib/gcc5/include/c++/tr1/hashtable_policy.h:300 #2 0x0808007d in CHARACTER::ClearTarget (this=0x30341000) at char.cpp:5037 #3 0x080735e0 in CHARACTER::Destroy (this=0x30341000) at char.cpp:451 #4 0x0807d900 in CHARACTER::UpdateStateMachine (this=0x30341000, dwPulse=128944) at char.cpp:4063 #5 0x080c7bf5 in std::mem_fun1_t<void, CHARACTER, unsigned int>::operator() (this=0xffff996c, __p=0x30341000, __x=128944) at /usr/local/lib/gcc5/include/c++/bits/stl_function.h:1020 #6 0x080c6dc4 in std::binder2nd<std::mem_fun1_t<void, CHARACTER, unsigned int> >::operator() (this=0xffff996c, __x=@0x2a08339c: 0x30341000) at /usr/local/lib/gcc5/include/c++/backward/binders.h:164 #7 0x080c5a3c in std::for_each<__gnu_cxx::__normal_iterator<CHARACTER**, std::vector<CHARACTER*, std::allocator<CHARACTER*> > >, std::binder2nd<std::mem_fun1_t<void, CHARACTER, unsigned int> > > (__first=..., __last=..., __f=...) at /usr/local/lib/gcc5/include/c++/bits/stl_algo.h:3767 #8 0x080c3ec4 in CHARACTER_MANAGER::Update (this=0xffffd174, iPulse=128944) at char_manager.cpp:695 #9 0x08290f77 in idle () at main.cpp:775 #10 0x0828ff2f in main (argc=1, argv=0xffffd7b0) at main.cpp:461 1 Link to comment Share on other sites More sharing options...
wezt 95 Posted June 16, 2015 Author Share Posted June 16, 2015 Hello, I've found solution for my problem. And I'd like to share it with you (probably will be useful for someone) The problem was in d.purge_area() , somehow when this function triggered in quest-file and if player used skills at same time, the core allows to use skills on nonexistent (already purged) characters. So I've changed just one row in questlua_dungeon.cpp in struct FPurgeArea and now all works well. //M2_DESTROY_CHARACTER(pChar); // was changed to pChar->Dead(); This topic could be closed. #SOLVED 6 Link to comment Share on other sites More sharing options...
Flourine 106 Posted May 8, 2021 Share Posted May 8, 2021 (edited) On 6/16/2015 at 1:16 PM, wezt said: Hello, I've found solution for my problem. And I'd like to share it with you (probably will be useful for someone) The problem was in d.purge_area() , somehow when this function triggered in quest-file and if player used skills at same time, the core allows to use skills on nonexistent (already purged) characters. So I've changed just one row in questlua_dungeon.cpp in struct FPurgeArea and now all works well. Hidden Content This topic could be closed. #SOLVED Not solved. You did the leak. I dont recommend to solve it that way. Be aware of using that "fix" Edited May 8, 2021 by Flourine Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now