Jump to content
  • The Caller's Chamber


    gambit2312
    • Status: Completed
      Main Category: Dungeons and Raids
      Sub-Category: dungeon-boss
      Version: 0.20 Milestone: 22 Priority: High
      Implemented Version: 0.20

    The Caller's Chamber

    The Caller's Chamber, Razorfen Downs, when you hit gong nothing happens, there should be three waves appear, and then the boss but nothing happens, pitty :( version i don't know, i play on madmax servers covenant


    User Feedback

    Recommended Comments

    Presumably that is also not working on the other cores too. I'll take a look.

    ------------------------------------------------------------------------------------

    I just checked on Zero, and it is not working there either. The gong does move when you interact with it, but that's all that happens.

    The only script in the razorfen_downs.cpp file, is for npc_belnistrasz.

    Need to do a bit of research to find out what exactly happens and what is involved (number of creatures each wave, time between waves, etc.).

    Link to comment
    Share on other sites

    This is not working on Zero either. The gong will animate when you interact with it, but that's is all that happens.

    The only script in the razerfen_downs.cpp file is for npc_belnistrasz.

    Need to find out what exactly is involved here (number of waves, time between waves, etc.). I'll look into this, if nobody else steps in.

    The gong
    [B]gameobject_template[/B]: [B][COLOR="#800080"]Entry[/COLOR][/B]: 148917
    [B][COLOR="#800080"]GUID[/COLOR][/B]: 148917

    Link to comment
    Share on other sites

    After clearing the room, strike the Gong on the left side to summon 8 level 35 Tomb Fiends. Hitting the gong a second time will summon a group of 4 level 36 elite Tomb Reavers. Ringing the gong a third time will cause Tuten'kash to emerge from her cave. The gong can only be rung once the previous wave is destroyed, so if it cannot be rung chances are a nerubian has gotten caught in one of the corridors.

    Link to comment
    Share on other sites

    Thanks for the info, that will help a lot.

    I had an idea how to code it up, and your information has made it easier :)

    It's ok, I'll deal with it :D I'll change it to "in progress".

    I'll create it on Zero, then port it to the other cores.

    ----------------------------------------------------------------

    YouTube:
    [url]https://www.youtube.com/watch?v=bgXjlecqq1k[/url]

    I'll use that and others as a reference :)

    ================================

    The gong
    [B]gameobject_template[/B]: [B][COLOR="#800080"]Entry[/COLOR][/B]: 148917
    [B][COLOR="#800080"]GUID[/COLOR][/B]: 148917

    Tome Fiend
    [B]creature_template[/B]: [B][COLOR="#800080"]Entry[/COLOR][/B]: 7349

    [B]creature_ai_script[/B] required
    Ability: [url]http://www.wowhead.com/npc=7349/tomb-fiend[/url]

    Tomb Reaver
    [B]creature_template[/B]: [B][COLOR="#800080"]Entry[/COLOR][/B]: 7351

    [B]creature_ai_script[/B] required
    Abilities: [url]http://www.wowhead.com/npc=7351[/url]

    Boss: Tuten'kash
    [B]creature_template[/B]: [B][COLOR="#800080"]Entry[/COLOR][/B]: 7355

    [B]creature_ai_script[/B] required
    [url]http://www.wowhead.com/npc=7355[/url]

    Link to comment
    Share on other sites

    ******* [B][COLOR="#0000FF"][SIZE=3]SQL script to go here[/SIZE][/COLOR][/B] *******

    The abilities of all the creatures involved, need to be scripted ([B]creature_ai_scripts[/B])

    [SIZE=3][B]The gong[/B][/SIZE]

    -- assign scriptdev script to the gong

    -- Remove and re-create the gong object
    [COLOR="#0000FF"]DELETE FROM gameobject_template WHERE entry = 148917;
    INSERT INTO gameobject_template (entry, type, displayId, name, faction, flags, size, data0, data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21, data22, data23, mingold, maxgold, ScriptName) VALUES ('148917', '10', '2372', 'Gong', '0', '0', '1', '0', '0', '0', '19660800', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'go_tutenkash_gong');[/COLOR]


    [SIZE=3][B]Creature Abilites (creature_ai_scripts)[/B][/SIZE]

    [B]Tome Fiend[/B]

    -- enable scripts
    [COLOR="#0000FF"]UPDATE creature_template SET AIName= 'EventAI', ScriptName = 'npc_tomb_creature' WHERE Entry= 7349;[/COLOR]

    Poison: [url]http://www.wowhead.com/spell=744[/url]
    [COLOR="#0000FF"]DELETE FROM creature_ai_scripts WHERE creature_id = 7349;[/COLOR]
    [COLOR="#0000FF"]INSERT INTO creature_ai_scripts (id, creature_id, event_type, event_inverse_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, action1_type, action1_param1, action1_param2, action1_param3, action2_type, action2_param1, action2_param2, action2_param3, action3_type, action3_param1, action3_param2, action3_param3, comment) VALUES ('734901', '7349', '0', '0', '100', '1', '3000', '10000', '120000', '125000', '11', '744', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'Tome Fiend - Cast Poison');[/COLOR]

    [B]Tome Reaver[/B]

    -- enable scripts
    [COLOR="#0000FF"]UPDATE creature_template SET AIName= 'EventAI', ScriptName='npc_tomb_creature' WHERE Entry= 7351;[/COLOR]

    Virulent Poison: [url]http://www.wowhead.com/spell=12251[/url]
    [COLOR="#0000FF"]DELETE FROM creature_ai_scripts WHERE creature_id = 7351;[/COLOR]
    [COLOR="#0000FF"]INSERT INTO creature_ai_scripts (id, creature_id, event_type, event_inverse_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, action1_type, action1_param1, action1_param2, action1_param3, action2_type, action2_param1, action2_param2, action2_param3, action3_type, action3_param1, action3_param2, action3_param3, comment) VALUES ('735102', '7351', '0', '0', '100', '1', '2000', '5000', '10000', '20000', '11', '12251', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'Tome Reaver - Cast Virulent Poison');[/COLOR]
    Web: [url]http://www.wowhead.com/spell=745[/url]
    This one exists already

    [B]Tuten'kash[/B]

    -- enable scripts
    [COLOR="#0000FF"]UPDATE creature_template SET AIName= 'EventAI' WHERE Entry= 7355;[/COLOR]
    Web Spray: [url]http://www.wowhead.com/spell=12252[/url]
    This one exists already
    Curse of Tuten Kash: [url]http://www.wowhead.com/spell=12255[/url]
    This one exists already
    Virulent Poison: [url]http://www.wowhead.com/spell=12251[/url]
    [COLOR="#0000FF"]DELETE FROM creature_ai_scripts WHERE creature_id = 7355;[/COLOR]
    [COLOR="#0000FF"]INSERT INTO creature_ai_scripts (id, creature_id, event_type, event_inverse_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, action1_type, action1_param1, action1_param2, action1_param3, action2_type, action2_param1, action2_param2, action2_param3, action3_type, action3_param1, action3_param2, action3_param3, comment) VALUES ('735503', '7355', '0', '0', '100', '1', '2000', '5000', '10000', '20000', '11', '12251', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'Tuten Kash - Cast Virulent Poison');
    [/COLOR]

    That could be the SQL script completed.
    I'll have to get back to this later (another day, possibly), as I need to look into the spawn/despawn issue (not related to this issue).

    [B]-- Spawn Points[/B]
    -- Mob 1: 2540.479, 906.539. 46.663, 5.47
    -- Mob 2: 2541.511, 912.857, 46.216, 5.39
    -- Mob 3: 2536.703, 917.214, 46.094, 5.57
    -- Mob 4: 2530.443, 913.598, 46.083, 5.69
    -- Mob 5: 2529.833, 920.977, 45.836, 5.47
    -- Mob 6: 2524.738, 915.195, 46.248, 5.97
    -- Mob 7: 2517.829, 917.746, 46.073, 5.83
    -- Mob 8: 2512.750, 924.458, 46.504, 5.92

    -- mob path ([B]creature_movement[/B])

    Link to comment
    Share on other sites

    ******* [B][COLOR="#0000FF"][SIZE=3]ScriptDev script to go here[/SIZE][/COLOR][/B] *******

    [B]razorfen_downs.cpp[/B]
    [PHP]
    /*####
    # go_tutenkash_gong
    ####*/

    enum
    {
    GO_GONG = 148917,
    NPC_TOMB_FIEND = 7349,
    TOTAL_FIENDS = 8,
    NPC_TOMB_REAVER = 7351,
    TOTAL_REAVERS = 4,
    NPC_TUTENKASH = 7355
    };

    struct TUTENKASH_CreatureLocation
    {
    float fX, fY, fZ, fO;
    };

    static const TUTENKASH_CreatureLocation aCreatureLocation[] =
    {
    { 2540.479f, 906.539f, 46.663f, 5.47f }, // Tomb Fiend/Reaver spawn point
    { 2541.511f, 912.857f, 46.216f, 5.39f }, // Tomb Fiend/Reaver spawn point
    { 2536.703f, 917.214f, 46.094f, 5.57f }, // Tomb Fiend/Reaver spawn point
    { 2530.443f, 913.598f, 46.083f, 5.69f }, // Tomb Fiend/Reaver spawn point
    { 2529.833f, 920.977f, 45.836f, 5.47f }, // Tomb Fiend spawn point
    { 2524.738f, 915.195f, 46.248f, 5.97f }, // Tomb Fiend spawn point
    { 2517.829f, 917.746f, 46.073f, 5.83f }, // Tomb Fiend spawn point
    { 2512.750f, 924.458f, 46.504f, 5.92f } // Tomb Fiend spawn point
    };

    static const TUTENKASH_CreatureLocation aTutenkashLocation[] =
    {
    { 2493.968f, 790.974f, 39.849f, 5.92f } // Tuten'kash spawn point
    };

    // records which round of creatures we are in (Tomb Fiend, Tomb Raider, Boss)
    int iWaveNumber = 1;
    // use to kick off each wave of creatures and to prevent the event happening more than once whilst in the same instance of the dungeon
    bool bWaveInMotion = false;
    // keeps track of the number of craetures still alive in the wave
    int iTombFiendsAlive = 8;
    int iTombReaversAlive = 4;

    // used for summoning multiple numbers of creatures
    void SummonCreatures(Player* pPlayer, int NPC_ID, int iTotalToSpawn)
    {
    // used for generating a different path for each creature
    float fXdifference = 0;
    float fYdifference = 0;

    Creature* pTombCreature = NULL;

    for (int i = 0; i {
    pTombCreature = pPlayer->SummonCreature(NPC_ID, aCreatureLocation[i].fX, aCreatureLocation[i].fY, aCreatureLocation[i].fZ, aCreatureLocation[i].fO, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 7200000);
    pTombCreature->GetMotionMaster()->MovePoint(0, 2547.565, 904.983, 46.776);
    pTombCreature->GetMotionMaster()->MovePoint(0, 2547.496, 895.083, 47.736);
    pTombCreature->GetMotionMaster()->MovePoint(0, 2543.796, 884.629, 47.764);
    // randomise coordinates
    fXdifference = rand() % 3;
    fYdifference = rand() % 3;
    pTombCreature->GetMotionMaster()->MovePoint(0, 2532.118 + fXdifference, 866.656 + fYdifference, 47.678146);
    // randomise last coordinates
    fXdifference = rand() % 5;
    fYdifference = rand() % 5;
    pTombCreature->GetMotionMaster()->MovePoint(0, 2522.604 + fXdifference, 858.547 + fYdifference, 47.678673);
    pTombCreature->GetMotionMaster()->MoveIdle();
    }
    }

    bool GOUse_go_tutenkash_gong(Player* pPlayer, GameObject* pGo)
    {
    // gong will only spawn next wave if current wave has been wiped out
    if (!bWaveInMotion)
    {
    switch (iWaveNumber)
    {
    case 1:
    // spawn Tomb Fiends
    bWaveInMotion = true;
    SummonCreatures(pPlayer, NPC_TOMB_FIEND, TOTAL_FIENDS);
    break;
    case 2:
    // spawn Tomb Reavers
    bWaveInMotion = true;
    SummonCreatures(pPlayer, NPC_TOMB_REAVER, TOTAL_REAVERS);
    break;
    default:
    // spawn boss (Tuten'kash)
    bWaveInMotion = true; // last wave,so will never be set back to false, therefore this event cannot happen again
    Creature* pTutenkash = pPlayer->SummonCreature(NPC_TUTENKASH, aTutenkashLocation[0].fX, aTutenkashLocation[0].fY, aTutenkashLocation[0].fZ, aTutenkashLocation[0].fO, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 7200000);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2488.502686, 801.684021, 42.731823);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2485.428955, 815.734619, 43.195621);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2486.951904, 826.718079, 43.586765);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2496.677002, 838.880005, 45.809792);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2501.559814, 847.080750, 47.408485);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2506.661377, 855.430359, 47.678036);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2514.890869, 861.339966, 47.678036);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2526.009033, 865.386108, 47.678036);
    pTutenkash->GetMotionMaster()->MovePoint(0, 2539.416504, 874.278931, 47.711197);
    pTutenkash->GetMotionMaster()->MoveIdle();
    break;
    }
    }

    return true;
    }


    // handles AI related script for the Tomb Fiends and Tomb Reavers
    // - at present that is solely for the recording of the death of the creatures
    struct npc_tomb_creature : public ScriptedAI
    {

    npc_tomb_creature(Creature* pCreature) : ScriptedAI(pCreature)
    {
    Reset();
    }

    void Reset() override
    {
    // leaving this her for future use, just-in-case
    }

    void JustDied(Unit* pKiller) override
    {
    DEBUG_LOG(" ==== Creature dies Wave # %i", iWaveNumber);
    switch (m_creature->GetEntry())
    {
    case NPC_TOMB_FIEND:
    iTombFiendsAlive--;
    if (!iTombFiendsAlive)
    {
    bWaveInMotion = false;
    iWaveNumber = 2; // Reaver time
    }
    break;
    case NPC_TOMB_REAVER:
    iTombReaversAlive--;
    if (!iTombReaversAlive)
    {
    bWaveInMotion = false;
    iWaveNumber = 3; // boss time!!!
    }
    break;
    }

    }

    void UpdateAI(const uint32 uiDiff) override
    {
    // leaving this here for future use, just-in-case
    }

    };


    // This will count down the deaths of the mobs in each wave (Tomb Fiends and Tomb Reavers)
    CreatureAI* GetAI_npc_tomb_creature(Creature* pCreature)
    {
    return new npc_tomb_creature(pCreature);
    }

    void AddSC_razorfen_downs()
    {
    Script* pNewScript;

    pNewScript = new Script;
    pNewScript->Name = "npc_tomb_creature"; // represents both the Tomb Fiends and the Tomb Reavers
    pNewScript->GetAI = &GetAI_npc_tomb_creature;
    pNewScript->RegisterSelf();

    }[/PHP]

    [B][COLOR="#008000"]COMPLETED, TESTED, AND WORKING[/COLOR][/B] :D

    Link to comment
    Share on other sites

    ******* [B][COLOR="#0000FF"][SIZE=3]Eluna script to go here[/SIZE][/COLOR][/B] *******

    [PHP]
    -- This creates the table used to localize all variables and functions
    local TutenkashGong= {
    GO_GONG = 148917;
    NPC_TOMB_FIEND = 7349,
    TOTAL_FIENDS = 8,
    NPC_TOMB_REAVER = 7351,
    TOTAL_REAVERS = 4,
    NPC_TUTENKASH = 7355
    }

    local CreatureSpawnPoints =
    {
    { 2540.479, 906.539, 46.663, 5.47 },
    { 2541.511, 912.857, 46.216, 5.39 },
    { 2536.703, 917.214, 46.094, 5.57 },
    { 2530.443, 913.598, 46.083, 5.69 },
    { 2529.833, 920.977, 45.836, 5.47 },
    { 2524.738, 915.195, 46.248, 5.97 },
    { 2517.829, 917.746, 46.073, 5.83 },
    { 2512.750, 924.458, 46.504, 5.92 }
    }

    function TutenkashGong.SummonCreatures(player, NPC_ID, iTotalToSpawn)
    for i = 1, iTotalToSpawn, 1 do
    -- spawn creature (Tomb Fiend / Tome Reaver)
    player:SpawnCreature(NPC_ID, CreatureSpawnPoints[i][1], CreatureSpawnPoints[i][2], CreatureSpawnPoints[i][3], CreatureSpawnPoints[i][4], 2, 500000)
    end
    end

    function TutenkashGong.Gong_OnUse(event, player, go)
    -- spawn creatures
    TutenkashGong.SummonCreatures(player, TutenkashGong.NPC_TOMB_FIEND, TutenkashGong.TOTAL_FIENDS)
    -- deactivate gong
    go:SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NO_INTERACT)
    end

    -- Register the events
    RegisterGameObjectGossipEvent(TutenkashGong.GO_GONG, 1, TutenkashGong.Gong_OnUse)
    [/PHP]

    Game object interaction deactivation not tested

    Link to comment
    Share on other sites

    Now in the process of making Pull Requests for the fixes (I'll do the cores one after the other)


    [B]ZERO[/B]
    SD2 script
    [url]https://github.com/mangoszero/server/pull/281[/url]

    database (SQL scripts)
    [url]https://github.com/mangoszero/database/pull/195[/url]

    [B]ONE[/B]
    SD2 script
    [url]https://github.com/mangosone/server/pull/63[/url]

    database (SQL scripts)
    [url]https://github.com/mangosone/database/pull/11[/url]

    [B]TWO[/B]
    SD2 script
    [url]https://github.com/mangostwo/server/pull/84[/url]

    database (SQL scripts)
    [url]https://github.com/mangostwo/database/pull/5[/url]

    [B]SD3[/B]

    [url]https://github.com/mangos/SD3/pull/4[/url]

    [B][SIZE=3][COLOR="#008000"]ALL DONE[/COLOR][/SIZE][/B] :D

    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

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