Jump to content
  • http://www.wowhead.com/quest=5624


    Ammon
    • Status: Completed
      Main Category: Core / Mangos Daemon
      Sub-Category: Quest
      Version: 0.20 Milestone: 20 Priority: Normal
      Implemented Version: 0.20

    http://www.wowhead.com/quest=5624

    Сan not perform the quest Garments of the Light.I can't heal Guard Roberts.Character heals itself.


    User Feedback

    Recommended Comments

    12 hours ago, Necrovoice said:

    It works on m1 and M2 if that helps you. 

    1 hour ago, Olion said:

    This refactoring commit was inaccurate and had killed the

    
    Player::TalkedToCreature(

     method giving KC. To fix it, remove this line containing

    
    { continue; }

    which was erroneously left of a removed conditional operator.

    Sorry i didint see this commit, i will try apply and see if works. Tnx Olion and Necrovoice :D

    Link to comment
    Share on other sites

    10 hours ago, Olion said:

    This is your custom logging in the SD3 script. Just take the original npcs_special.cpp and change only Player.cpp as described above.

    Cleam git clone, made changes but still same problem.

     

    #0  0x00007ffff5861cfb in vfprintf () from /lib64/libc.so.6
    #1  0x0000555556611d0b in vutf8printf (out=0x7ffff5bb75a0 <_IO_2_1_stdout_>, str=0x555556bd77f7 "Player GUID : %s", ap=0x7fffed1766a0) at /home/jefferson/wowserver/getmangos/serverZero/src/shared/Utilities/Util.cpp:495
    #2  0x0000555556609fa2 in Log::outString (this=0x555557184fc0, str=0x555556bd77f7 "Player GUID : %s") at /home/jefferson/wowserver/getmangos/serverZero/src/shared/Log/Log.cpp:398
    #3  0x00005555568f5a4d in npc_garments_of_quests::npc_garments_of_questsAI::SpellHit (this=0x7fffc6838fc0, pCaster=0x7fffc6c3b300, pSpell=0x7fffe32b5290)
        at /home/jefferson/wowserver/getmangos/serverZero/src/modules/SD3/scripts/world/npcs_special.cpp:1108
    #4  0x00005555563ac63d in Spell::DoAllEffectOnTarget (this=0x7fffd4262f20, target=0x7fffd4003620) at /home/jefferson/wowserver/getmangos/serverZero/src/game/WorldHandlers/Spell.cpp:1128
    #5  0x00005555563b3366 in Spell::handle_immediate (this=0x7fffd4262f20) at /home/jefferson/wowserver/getmangos/serverZero/src/game/WorldHandlers/Spell.cpp:2891
    #6  0x00005555563b31e4 in Spell::cast (this=0x7fffd4262f20, skipCheck=false) at /home/jefferson/wowserver/getmangos/serverZero/src/game/WorldHandlers/Spell.cpp:2871
    #7  0x00005555563b40c3 in Spell::update (this=0x7fffd4262f20, difftime=100) at /home/jefferson/wowserver/getmangos/serverZero/src/game/WorldHandlers/Spell.cpp:3101
    #8  0x00005555563bfe5d in SpellEvent::Execute (this=0x7fffd40053c0, e_time=21275, p_time=100) at /home/jefferson/wowserver/getmangos/serverZero/src/game/WorldHandlers/Spell.cpp:6410
    #9  0x0000555556615842 in EventProcessor::Update (this=0x7fffc6c3b478, p_time=100) at /home/jefferson/wowserver/getmangos/serverZero/src/framework/Utilities/EventProcessor.cpp:53
    #10 0x00005555561b1e66 in Unit::Update (this=0x7fffc6c3b300, update_diff=100, p_time=100) at /home/jefferson/wowserver/getmangos/serverZero/src/game/Object/Unit.cpp:318
    #11 0x00005555560db577 in Player::Update (this=0x7fffc6c3b300, update_diff=100, p_time=100) at /home/jefferson/wowserver/getmangos/serverZero/src/game/Object/Player.cpp:1149
    #12 0x00005555562e2edd in WorldObject::UpdateHelper::Update (this=0x7fffed176d20, time_diff=100) at /home/jefferson/wowserver/getmangos/serverZero/src/game/Object/Object.h:467
    #13 0x00005555563171b1 in Map::Update (this=0x55555b3d1530, t_diff=@0x7fffc71b8f50: 100) at /home/jefferson/wowserver/getmangos/serverZero/src/game/WorldHandlers/Map.cpp:534
    #14 0x00005555564c6480 in MapUpdateRequest::call (this=0x7fffc71b8f30) at /home/jefferson/wowserver/getmangos/serverZero/src/game/Maps/MapUpdater.cpp:50
    #15 0x000055555660d547 in DelayExecutor::svc (this=0x55555b510450) at /home/jefferson/wowserver/getmangos/serverZero/src/shared/Threading/DelayExecutor.cpp:67
    #16 0x00007ffff773eac4 in ACE_Task_Base::svc_run (args=0x55555b510450) at /home/jefferson/wowserver/getmangos/serverZero/dep/acelite/ace/Task.cpp:260
    #17 0x00007ffff773f2d2 in ACE_Thread_Adapter::invoke_i (this=0x55555b510c20) at /home/jefferson/wowserver/getmangos/serverZero/dep/acelite/ace/Thread_Adapter.cpp:161
    #18 0x00007ffff773f164 in ACE_Thread_Adapter::invoke (this=0x55555b510c20) at /home/jefferson/wowserver/getmangos/serverZero/dep/acelite/ace/Thread_Adapter.cpp:96
    #19 0x00007ffff7654edf in ace_thread_adapter (args=0x55555b510c20) at /home/jefferson/wowserver/getmangos/serverZero/dep/acelite/ace/Base_Thread_Adapter.cpp:126
    #20 0x00007ffff5bc3280 in start_thread () from /lib64/libpthread.so.0
    #21 0x00007ffff5906f9d in clone () from /lib64/libc.so.6

     

    Link to comment
    Share on other sites

    Alright, let's analyze the log together. We start, for example, from record #4.

    Spell.cpp:1128 :

    { ((Creature*)unit)->AI()->SpellHit(m_caster, m_spellInfo); }

    The SpellHit method appears on the next record, #3, as a deeper one in the calling sequence. npcs_special.cpp:1108 :

    ((Player*)pCaster)->TalkedToCreature(m_creature->GetEntry(), m_creature->GetObjectGuid());

    The next method in the stack trace (from record #2), Log::outString(), is not referenced here. But wait, maybe one of the two RHS methods, GetEntry() or GetObjectGuid(), was compiled inline and calls the log? Look at Object.h:

    150   ObjectGuid const& GetObjectGuid() const { return GetGuidValue(OBJECT_FIELD_GUID); }
    155   uint32 GetEntry() const { return GetUInt32Value(OBJECT_FIELD_ENTRY); }

    None of the methods is defined as virtual, they may not be (and actually are not) overridden. Also, these methods are far too popular to have any logging inside. The Player::TalkedToCreature() method is too long to be auto-inlined by any sane compiler (and does not contain logging anyway). The only conclusion left to us, is that some s**t happened at npcs_special.cpp:1108.

    At this point I cannot help further except by a hint. Do "a fresh clone" only into an empty directory, not forgetting --recursive parameter.

    P.S. The usual cause of such crash is the difference between std::string and C string. The later is awaited by any C print(). So, to print GUID for example, you need the c_str() conversion:

    GetGuidStr().c_str();

     

    Link to comment
    Share on other sites

    Oh olion i got It. Realy thanks for class here about game structure. Yep i figure out the error as vprintf its a mesa with C strings and std strings. I really apreceiated u Lost ir time explaing tô me . Now i Will delete repo and clone again with This args you Said.

    Link to comment
    Share on other sites

    There were no doubts.

    Now, if you just commit the Player.cpp change since 1) you've tested that and 2) no need to catch the developer who broke the method if he doesn't read the bugtracker.

    Btw the last fix to the script was mine, two and a half years ago. There was SetPvP() method missing which disallowed player's positive casts on the mobs. The same effect must be achievable with a `creature_template`.`UnitFlags` setting though. Also, OOC health regen is disabled through `creature_template`.`RegenerateStats`.

    Link to comment
    Share on other sites



    Guest
    This is now closed for further comments

×
×
  • 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