Jump to content
  • The Endless Hunger (Death Knight Quest) broken


    crazzymann12
    • Status: Completed
      Main Category: Script (Eluna / SD3)
      Sub-Category: Quest
      Version: 21.14 Milestone: 21 Priority: New
      Implemented Version: 21.14

    You can start the quest, but cannot do the tasks to complete it

    You attempt to free a prisoner to kill and prisoner does not turn hostile or run free. The continuation of the quest requires this to happen. The quest chain for death knights also requires this to happen.


    User Feedback

    Recommended Comments

    There may be a another way to fix this but the only way I have found is to go into the database for quest "12848" and edit the requirements to zero so that as soon as he gives it to you it is complete and you just turn it back in. You will also need to do this for quest "12636" The eye of Acherus because it crashes the server for some reason. Hopefully I can find a real fix soon but this will get you past those two quests.

    Link to comment
    Share on other sites

    Oh ok. Thanks for letting me know. I figure that was probably an area of high interest that others have pursued quite a bit anyways, but when I finish some of the low level scans that I've been doing I'll have to go back to it. Thanks so much for the heads up!

    Link to comment
    Share on other sites

    The last half of 2016 I spent some time doing a lot of updates to the DK area, sadly there are some things that a beyond my knowledge to fix..  But to answer your question...  There is a lot that is scripted but on the other hand there is about as much that is not across all areas of Wrath, not just DK area

    Link to comment
    Share on other sites

    I didn't feel like trying to figure out why the conversion of ObjectGuid to a UINT32 and then back to an ObjectGuid doesn't work, so instead I just modified this line:

                    ai->ReceiveAIEvent(AI_EVENT_CUSTOM_C, (Creature *)pGo, pPlayer, pGo->GetGUIDLow());
     

    And this case statement:

                case AI_EVENT_CUSTOM_C: // notify me; @TODO inplement normal ObjectGuid transfer between scripts
                    {
                    if(GameObject *pGo = (GameObject*)sender)
                        NotifyMe(invoker, pGo);
                    /*ObjectGuid guid = ObjectGuid(HIGHGUID_GAMEOBJECT, 0, data);
                    if (GameObject *pGo = this->m_creature->GetMap()->GetGameObject(guid))
                        NotifyMe(invoker, pGo);*/
                    break;
                    }
     

    Now it works.

    Link to comment
    Share on other sites

    The suggested fix may work, but it is a hack around the limitations of the send/receive AI event functionality. Instead of casting gameobject to a creature ReceiveAIEvent could be expanded to cover WorldObject as sender. @Gutterboy

    I would suggest either trying to rework the send/receive AI event system to allow WorldObject as sender or similar, or then we can use this kind of approach:

    diff --git a/scripts/eastern_kingdoms/scarlet_enclave/ebon_hold.cpp b/scripts/eastern_kingdoms/scarlet_enclave/ebon_hold.cpp
    index 30b970c..f51a194 100644
    --- a/scripts/eastern_kingdoms/scarlet_enclave/ebon_hold.cpp
    +++ b/scripts/eastern_kingdoms/scarlet_enclave/ebon_hold.cpp
    @@ -1001,8 +1001,9 @@ struct npc_unworthy_initiate_anchor : public CreatureScript
                     RegisterCloseInitiate(sender);
                     break;
                 case AI_EVENT_CUSTOM_C: // notify me; @TODO inplement normal ObjectGuid transfer between scripts
    +                if (const GameObjectData* godata = sObjectMgr.GetGOData(data))
                     {
    -                ObjectGuid guid = ObjectGuid(HIGHGUID_GAMEOBJECT, 0, data);
    +                ObjectGuid guid = ObjectGuid(HIGHGUID_GAMEOBJECT, godata->id, data);
                     if (GameObject *pGo = m_creature->GetMap()->GetGameObject(guid))
                         NotifyMe(invoker, pGo);
                     break;

     

    @Necrovoice The locations are around
    SD3\scripts\eastern_kingdoms\scarlet_enclave\ebon_hold.cpp(1003)
    SD3\scripts\eastern_kingdoms\scarlet_enclave\ebon_hold.cpp(1245)

     

    It should be noted that I did not test these changes in game.

    Link to comment
    Share on other sites

    I'll be the first to admit, it was a hack.  I just tested your code and it works.  Much better than my hack.  I'm not at all familiar with the code and to be honest, it has been over 15 years since I wrote any C++...back in my Baldur's gate modding days.  However, at least we got the ball moving on this bug.

    • Like 1
    Link to comment
    Share on other sites

    In the logs it shows this:
    2019-09-21 18:11:35 WORLD: CMSG_USE_ITEM packet, bagIndex: 255, slot: 86, cast_count: 5, spellid: 54669, Item: 40732, glyphIndex: 0, unk_flags: 0, data length = 33

    - from when using the key to try to unlock the chains. But still does nothing.

    Link to comment
    Share on other sites

    Changed Status to Completed

    Changed Version to 21.14 (Master Branch)

    Changed Implemented Version to 21.14 (Master Branch)

    Changed Milestone to 21 (Current)

    Changed Main Category to Script (Eluna / SD3)

    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