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


    crazzymann12
    • Status: Confirmed
      Main Category: Quests
      Sub-Category: Quest
      Version: 22.1 Milestone: 20 Priority: New
      Related to:
      Implemented Version: 0.20

    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.

    Share this comment


    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!

    Share this comment


    Link to comment
    Share on other sites

    The Endless Hunger (12848) is still imposible to complete. As well as Death's Challenge (12733). Is MangosTwo still so poorly scripted or its just DK chain? (no insult, just wandering) 

    Share this comment


    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

    Share this comment


    Link to comment
    Share on other sites

    It seems to be scripted already in sd3 if anyone wanted to see where the break is.  

    Share this comment


    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.

    Share this comment


    Link to comment
    Share on other sites

    But lets back up and pretend I know what im doing with c++   where did you add the case statement .
    😖

    Share this comment


    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.

    Share this comment


    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

    Share this comment


    Link to comment
    Share on other sites


    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×