Jump to content

D Q

Members
  • Posts

    28
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Everything posted by D Q

  1. It's just about quest items, but also affecting trade items like herbals. I don't know of any quick fix that checks trade items.
  2. @Meltie Thanks for the quick response... I would love to contribute. But TBH, I am not very certain I understand the intention of that piece of the code. Only spotted the obvious "prof" part. Might create a PR and discuss further.
  3. Looking at the commit that changed this code https://github.com/mangosone/server/commit/360ddbdf862780c35664d44e15f9de9a3be13dab#diff-60492af07b2ca76bed925294d27c48cab25f8db3a33423e3db010c3d800e8b68L4460 I guess it should be like below. But I am not very familiar with the objects either. bool prof = SpellMgr::IsProfessionSpell(trainer_spell->spell); // if we use || here all profession skills are "red" if (prof && trainer_spell->reqLevel && (trainer_spell->reqLevel) < reqLevel) { return TRAINER_SPELL_RED; } // check skill requirement // I am not sure, but the previous version checks !prof. Similarly, if we have "prof || xxxx" here, all profession skills are red if (!prof || trainer_spell->reqSkill && GetBaseSkillValue(trainer_spell->reqSkill) < trainer_spell->reqSkillValue) { return TRAINER_SPELL_RED; } @Fyre, sorry for tagging you here. But looks like you are the author of that commit. can you take a look?
  4. I see similar issue on TBC too.
  5. My server is TBC, based on latest master. My character is now lv8. All the profession skills, including fishing, first aid, cooking, etc are show as unavailable to me. Is there any known issue or did I miss anything. Thanks
  6. I had exactly same issue and the solution worked The trick is you have to find all the "updates" between A and B and apply them one by one.
  7. I think I found another bug related to looting. Here's how I reproduce it: Create two bots(I believe it's also the same issue with real players, but I don't have a friend to play with me ) Have them all accept a quest to collect some items change the loot mode to master loot. Whenever you or the bots try to loot the quest item, you will get the error "Cannot loot this right now". Workaround: just change to other loot mode when you are working on that quest Potential fix: I am not sure if I understand the code correctly, but the following fix works so far(for couple of hours of playing) @@ -144,8 +144,14 @@ void WorldSession::HandleAutostoreLootItemOpcode(WorldPacket& recv_data) } case MASTER_LOOT: { - if((item->winner && item->winner != player->GetObjectGuid()) || (!item->winner && !item->is_underthreshold && !item->freeforall)) + if((item->winner && item->winner != player->GetObjectGuid()) + || (!item->winner && !item->is_underthreshold && !item->freeforall && !qitem)) { + // below is just to show the item flags for debugging. + sLog.outError("winner=%s, player=%s, is_underthreshold=%d, freeforall=%d", + item->winner.GetString().c_str(), + player->GetObjectGuid().GetString().c_str(), + item->is_underthreshold, + item->freeforall); player->SendEquipError(EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW, NULL, NULL, item->itemid); return; }
  8. I found it.... The bloody function `SayAction::Execute` does not have return at the end. Can somebody fix it or guide me how to raise a PR?
  9. My TBC server crashed under following conditions: log on as a warrior add two bots (won't crash if I don't add bots) one priest, one mage charge into 2+ creatures, and enter batlle server will crash in a second or two. My build is based on: commit ffcd98e4d8bfb565c72e03c724fa99bc88a0eb5a (HEAD -> master, tag: v22.03.45, origin/master, origin/HEAD) Author: Antz <[email protected]> Date: Wed Nov 8 22:37:51 2023 +0000 Fix Gentoo build of openSSL3.x. Thanks to @Shaorin for pointing I can reproduce the crash very consistently/easily. Console: Setting lesser delay 0 -> 100 Correct --- AI Tick --- Correct T:aoe Correct T:enemy too close for spell Correct T:shadow word: pain on attacker Correct PUSH:say::aoe - 99.000000 (trigger) Correct PUSH:fade - 50.000000 (trigger) Correct PUSH:flee - 49.000000 (trigger) Correct PUSH:shadow word: pain on attacker - 11.000000 (trigger) Correct A:say::aoe - PREREQ munmap_chunk(): invalid pointer Aborted (core dumped) world-server.log doesn't print anything after startup. For weird reasons, the coredump was not generated. I will try my best to get the coredump, but no guarantee.(any advise?) Got the core dump now But I have the crash log. _home_mangos_mangos_one_bin_mangosd.1002.crash The crashing thread is : Core was generated by `./mangosd'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=22407811872320) at ./nptl/pthread_kill.c:44 44 ./nptl/pthread_kill.c: No such file or directory. [Current thread is 1 (Thread 0x146139aab640 (LWP 13664))] (gdb) bt #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=22407811872320) at ./nptl/pthread_kill.c:44 #1 __pthread_kill_internal (signo=6, threadid=22407811872320) at ./nptl/pthread_kill.c:78 #2 __GI___pthread_kill (threadid=22407811872320, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 #3 0x000014613c3b1476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #4 0x000014613c3977f3 in __GI_abort () at ./stdlib/abort.c:79 #5 0x000014613c3f8676 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x14613c54ab77 "%s\n") at ../sysdeps/posix/libc_fatal.c:155 #6 0x000014613c40fcfc in malloc_printerr (str=str@entry=0x14613c54d210 "munmap_chunk(): invalid pointer") at ./malloc/malloc.c:5664 #7 0x000014613c40ffdc in munmap_chunk (p=<optimized out>) at ./malloc/malloc.c:3060 #8 0x000014613c41449a in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3381 #9 0x0000557ea2c14b7a in ai::SayAction::Execute(ai::Event) () #10 0x0000557ea2baeceb in ai::Engine::ListenAndExecute(ai::Action*, ai::Event) () #11 0x0000557ea2bb2e37 in ai::Engine::DoNextAction(Unit*, int) () #12 0x0000557ea2b21e39 in PlayerbotAI::DoNextAction() () #13 0x0000557ea2b29e08 in PlayerbotAIBase::UpdateAI(unsigned int) () #14 0x0000557ea289ed69 in Player::Update(unsigned int, unsigned int) () #15 0x0000557ea29d13d7 in Map::Update(unsigned int const&) () #16 0x0000557ea2d03759 in MapUpdateRequest::call() () #17 0x0000557ea309f2a1 in DelayExecutor::svc() () #18 0x0000557ea30eeb55 in ACE_Task_Base::svc_run(void*) () #19 0x0000557ea310a07d in ACE_Thread_Adapter::invoke() () #20 0x000014613c403ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #21 0x000014613c495660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Workaround: bool SayAction::Execute(Event event) { + return true; I will dump more logs within SayAction::Execute and narrow down the issue tmr. core.13650.tgz
  10. My TBC server crashed under following conditions: log on as a warrior add two bots (won't crash if I don't add bots) one priest, one mage charge into 2+ creatures server will crash in a second or two. My build is based on: commit ffcd98e4d8bfb565c72e03c724fa99bc88a0eb5a (HEAD -> master, tag: v22.03.45, origin/master, origin/HEAD) Author: Antz <[email protected]> Date: Wed Nov 8 22:37:51 2023 +0000 Fix Gentoo build of openSSL3.x. Thanks to @Shaorin for pointing I can reproduce the crash very consistently. Console: Setting lesser delay 0 -> 100 Correct --- AI Tick --- Correct T:aoe Correct T:enemy too close for spell Correct T:shadow word: pain on attacker Correct PUSH:say::aoe - 99.000000 (trigger) Correct PUSH:fade - 50.000000 (trigger) Correct PUSH:flee - 49.000000 (trigger) Correct PUSH:shadow word: pain on attacker - 11.000000 (trigger) Correct A:say::aoe - PREREQ munmap_chunk(): invalid pointer Aborted (core dumped) world-server.log doesn't print anything after startup. For weird reasons, the coredump was not generated. I will But I have the crash log. _home_mangos_mangos_one_bin_mangosd.1002.crash
  11. Hmm... Maybe I am looking at the wrong path, but this doesn't look(read) right. bag space has to be smaller than 80? possible target is empty? bool LootAvailableTrigger::IsActive() { return AI_VALUE(bool, "has available loot") && AI_VALUE(uint8, "bag space") < 80 && (AI_VALUE2(float, "distance", "loot target") <= INTERACTION_DISTANCE || AI_VALUE(list<ObjectGuid>, "possible targets").empty()); }
  12. I would like to ask the bots to collect nearby quest items that normally requires an "open"/right-click action, followed by casting bar. I tried to follow ike3's doc, but it did not work. https://ike3.github.io/mangosbot-docs/doc/playerbot/Looting.html I also traced the code briefly, and looks like there's some issue to get the game object to the bot's looting list, even though I tried right clicking and cancel etc. Any idea/comment is much appreciated. I would also love to learn how the code work around this area too. Thanks
  13. Just saw this one almost 10 yrs ago: @shaorin , is this still working? What do you mean by "changed my database language to chinese"? Sorry for bringing the decade old topic again.
  14. If tried the following: Install the translations to the DB by following the "Translation" part in changed mangosd.conf RealmZone = 16 DBC.Locale = 4 restart mangosd Login again But it did not work What did I miss?
  15. I made one on OCI too(let's keep it low, or Oracle will start banning mangos lol). I worked around the memory issue using swap file. It's slow, but it works. Once it's built, I just save the binary away for next time.
  16. Anyway, I got it for you from my server. (gdb) thread apply all bt Thread 6 (Thread 0x7f77cb2a4640 (LWP 80744)): #0 0x00007f77cc5337f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f77cb2a3dd0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78 #1 0x00007f77cc538677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 #2 0x00005596168aaeef in ACE_Based::Thread::Sleep(unsigned long) () #3 0x00005596168a185a in SqlDelayThread::run() () #4 0x00005596168aaa5d in ACE_Based::Thread::ThreadTask(void*) () #5 0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #6 0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 5 (Thread 0x7f77bbfff640 (LWP 80747)): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x559619075af0) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x559619075af0) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x559619075af0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f77cc4e1a41 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559619075a90, cond=0x559619075ac8) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x559619075ac8, mutex=0x559619075a90) at ./nptl/pthread_cond_wait.c:627 #5 0x00005596168b84b5 in ACE_Condition<ACE_Thread_Mutex>::wait(ACE_Time_Value const*) () #6 0x00005596168b7842 in ACE_Activation_Queue::dequeue(ACE_Time_Value*) () #7 0x00005596168a9dc5 in DelayExecutor::svc() () #8 0x00005596168fa435 in ACE_Task_Base::svc_run(void*) () #9 0x0000559616915c9f in ACE_Thread_Adapter::invoke() () #10 0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #11 0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 4 (Thread 0x7f77c898a640 (LWP 80746)): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x559619075a--Type <RET> fo--Typ--Typ--Type <---Ty----Typ--Type --Ty----Ty--Type <RET> for more, q to quit, c to continue without paging-- f0) at ./nptl/futex-internal.c:57 #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x559619075af0) at ./nptl/futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x559619075af0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 #3 0x00007f77cc4e1a41 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559619075a90, cond=0x559619075ac8) at ./nptl/pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x559619075ac8, mutex=0x559619075a90) at ./nptl/pthread_cond_wait.c:627 #5 0x00005596168b84b5 in ACE_Condition<ACE_Thread_Mutex>::wait(ACE_Time_Value const*) () #6 0x00005596168b7842 in ACE_Activation_Queue::dequeue(ACE_Time_Value*) () #7 0x00005596168a9dc5 in DelayExecutor::svc() () #8 0x00005596168fa435 in ACE_Task_Base::svc_run(void*) () #9 0x0000559616915c9f in ACE_Thread_Adapter::invoke() () #10 0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #11 0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 3 (Thread 0x7f77cc2a6640 (LWP 80738)): #0 0x00007f77cc5337f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f77cc2a5dd0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78 #1 0x00007f77cc538677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 #2 0x00005596168aaeef in ACE_Based::Thread::Sleep(unsigned long) () #3 0x00005596168a185a in SqlDelayThread::run() () #4 0x00005596168aaa5d in ACE_Based::Thread::ThreadTask(void*) () #5 0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #6 0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 2 (Thread 0x7f77cbaa5640 (LWP 80741)): #0 0x00007f77cc5337f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f77cbaa4dd0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78 #1 0x00007f77cc538677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 #2 0x00005596168aaeef in ACE_Based::Thread::Sleep(unsigned long) () #3 0x00005596168a185a in SqlDelayThread::run() () #4 0x00005596168aaa5d in ACE_Based::Thread::ThreadTask(void*) () #5 0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #6 0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 1 (Thread 0x7f77cc2c2740 (LWP 80735)): #0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74 #1 0x0000559616345e55 in RandomPlayerbotFactory::CreateRandomBotName[abi:cxx11](unsigned char) () #2 0x0000559616346257 in RandomPlayerbotFactory::CreateRandomBot(unsigned char) () #3 0x0000559616348abf in RandomPlayerbotFactory::CreateRandomBots() () #4 0x0000559616336e35 in PlayerbotAIConfig::Initialize() () #5 0x00005596162a77f0 in World::SetInitialWorldSettings() () #6 0x0000559615fc0e91 in main () Thread 1 should be the crashing thread.
  17. you just need to load the coredump to gdb. https://stackoverflow.com/questions/5115613/core-dump-file-analysis
  18. coredump and binary, compressed My server is ubuntu 22.04 My build is based on ffcd98e4d8bfb565c72e03c724fa99bc88a0eb5a debug-rndbot-crash.tgz
  19. hmm, the coredump itself is already 200+MB. And it doesn't make sense without the mangos binary(and probably the same server environment) I am using. So do you still need the whole thing? I mean I can run gdb on my machine to get whatever you need.
  20. The backtrace I posted above was from gdb. What other information do you need?
  21. By reading the code, I used a workaround by setting random bot to 0. So that we don't run into the crashing code at all. But it would be fun to have som random bots AiPlayerbot.RandomBotAccountCount = 0 for (int accountNumber = 0; accountNumber < sPlayerbotAIConfig.randomBotAccountCount; ++accountNumber) { // ...... RandomPlayerbotFactory factory(accountId); for (uint8 cls = CLASS_WARRIOR; cls < MAX_CLASSES; ++cls) { if (cls != 10 && cls != 6) { factory.CreateRandomBot(cls); <==== crashing from here } }
  22. Initializing AI Playerbot by ike3, based on the original Playerbot by blueboy Creating new random bot for class 1 Segmentation fault (core dumped) When I enable aiplayerbot, mangod would crash at startup as above. I can't find anything useful from world-server.log. backtrace from the coredump Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `./mangosd'. Program terminated with signal SIGSEGV, Segmentation fault. #0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74 74 ../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory. [Current thread is 1 (Thread 0x7f77cc2c2740 (LWP 80735))] (gdb) bt #0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74 #1 0x0000559616345e55 in RandomPlayerbotFactory::CreateRandomBotName[abi:cxx11](unsigned char) () #2 0x0000559616346257 in RandomPlayerbotFactory::CreateRandomBot(unsigned char) () #3 0x0000559616348abf in RandomPlayerbotFactory::CreateRandomBots() () #4 0x0000559616336e35 in PlayerbotAIConfig::Initialize() () #5 0x00005596162a77f0 in World::SetInitialWorldSettings() () #6 0x0000559615fc0e91 in main () Do we have any known bug in this area? Thanks
  23. Updated all the way to 22_1_1, and it works like charm. Thank you all for the help!
  24. Oh, sorry. I unpacked it and found the right patches. I will have a try and let you know. Thanks @PargeLenis
×
×
  • Create New...

Important Information

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. Privacy Policy Terms of Use