Jump to content
  • script error in npc_prospector_anvilward


    Bjago
    • Main Category: Script (Eluna / SD3)
      Sub-Category: NPC
      Version: 22.x (Current Master Branch)

    Good evening!

    While translating my server further into my origin language I experienced the following behavior (beside the fact it almost drove me crazy finding out about where the script is hiding):

    When talking to Prospector Anvilward while having the quest 'The Dwarven Spy' (ID 8483) uncompleted the script 'npc_prospector_anvilward' adds a gossip option to the usual gossip_hello.
    Clicking on this gossip option shows another gossip text with another gossip option below (adds another gossip option). The error takes place when closing the dialogue in both situations.

    first error: the second gossip option, which should only be shown after the first gossip option is clicked, is now also shown beside the first gossip option

    second error: the first gossip option is added every time talking to the dwarf. Means the script adds the same gossip option over and over again every time talking to him.

    When talking to another NPC (e. g. Ley-Keeper Caidanis beside him) the chat resets. The function of the script after clicking the second gossip option is working as intended to!

    Hope it's clear what I'm trying to say. I attached some pictures and named them accordingly.

     

    Affected NPC: Prospector Anvilward (Entry 15420 Guid 55371) 

    Script path: \src\modules\SD3\scripts\eastern_kingdoms\eversong_woods.cpp

    Affected script name: npc_prospector_anvilward

    Affected lines: 353 - 384

    Affected code:

        bool OnGossipHello(Player* pPlayer, Creature* pCreature) override
        {
            if (pPlayer->GetQuestStatus(QUEST_THE_DWARVEN_SPY) == QUEST_STATUS_INCOMPLETE)
            {
                pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MOMENT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
            }

            pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXT_ID_MOMENT, pCreature->GetObjectGuid());
            return true;
        }

        bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction) override
        {
            pPlayer->PlayerTalkClass->ClearMenus();
            switch (uiAction)
            {
            case GOSSIP_ACTION_INFO_DEF + 1:
                pPlayer->ADD_GOSSIP_ITEM_ID(GOSSIP_ICON_CHAT, GOSSIP_ITEM_SHOW, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
                pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXT_ID_SHOW, pCreature->GetObjectGuid());
                break;
            case GOSSIP_ACTION_INFO_DEF + 2:
                pPlayer->CLOSE_GOSSIP_MENU();

                if (npc_prospector_anvilwardAI* pEscortAI = dynamic_cast<npc_prospector_anvilwardAI*>(pCreature->AI()))
                {
                    pEscortAI->Start(false, pPlayer);
                }

                break;
            }
            return true;
        }

     

    I have absolute no idea how to fix that in an appropriate way since I only have basic understanding for this language.

    Maybe it would already be sufficient to just add another "pPlayer->PlayerTalkClass->ClearMenus();" after the first query for checking the uncompleted quest?

     

    I would appreciate it getting this fixed in any further release. Thank you!

    Sorry for my bad english :)

    Kind regards

    firstgossip_normal.png

    secondgossipnormal.png

    closedaftersecondgossip_nowbesidefirstgossip.png

    closedafterfirstgossip_addsnewfirstgossip.png


    User Feedback

    Recommended Comments

    There are no comments to display.



    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

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