[Trial of the Champion] not start #658

Closed
click opened this Issue May 16, 2011 · 14 comments

Comments

Projects
None yet
8 participants
@click
Member

click commented May 16, 2011

I was Protestant prejudice of the trial champion, is from 5 to normal or heroic 5, just before the start NPC and turn the 3 groups of soldiers entering the arena. then I take the shield with a spear, but
Bug 1: I speel from the 3 to use the spear
Bug: the soldiers do not attack me then do not start Levento ..
or tried to talk it over with the NPC before but does not make me do anything.
could you help me?
Thank you very much

@click

This comment has been minimized.

Show comment Hide comment
@click

click May 16, 2011

Member

Author: telsamat
this instance is not completed by TC team

Member

click commented May 16, 2011

Author: telsamat
this instance is not completed by TC team

@Poli93

This comment has been minimized.

Show comment Hide comment
@Poli93

Poli93 Oct 16, 2011

Confirmed.

Poli93 commented Oct 16, 2011

Confirmed.

@Betaman2k

This comment has been minimized.

Show comment Hide comment
@Betaman2k

Betaman2k Feb 14, 2012

Heya
core: 3d9ff95
TDB: latest full DB from u
Patches:NO

The instance totall buggy, all NPC are friendly, u can not run the instance

Heya
core: 3d9ff95
TDB: latest full DB from u
Patches:NO

The instance totall buggy, all NPC are friendly, u can not run the instance

@digz6666

This comment has been minimized.

Show comment Hide comment
@digz6666

digz6666 Sep 27, 2012

My fix for the Trial of Champion event, but it doesn't give achievement.
Mounted fight, all boss events and spells, summon memory, drops are working as it should.

Tested with following:
Source: 9004580
Database: TDB 335.49

Author: Batbayar <digz6666@gmail.com>  2012-09-25 22:06:45
Committer: Batbayar <digz6666@gmail.com>  2012-09-25 22:06:45
Parent: f92946e128ed44de21c97900b0a935c7c55fcd65 (Core/Misc: Fix some mem-leaks and uninitialized variables.)
Branch: master
Follows: TDB335.49
Precedes: 

    trial of champion fix.

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp 
index d77c84b..d010bfb 100644
@@ -47,7 +47,6 @@ enum eSpells
     SPELL_HOLY_NOVA             = 66546,
     SPELL_SHIELD                = 66515,
     SPELL_CONFESS               = 66680,
-    SPELL_SUMMON_MEMORY         = 66545,

     //Memory
     SPELL_OLD_WOUNDS            = 66620,
@@ -55,9 +54,35 @@ enum eSpells
     SPELL_SHADOWS_PAST          = 66619,
     SPELL_SHADOWS_PAST_H        = 67678,
     SPELL_WAKING_NIGHTMARE      = 66552,
-    SPELL_WAKING_NIGHTMARE_H    = 67677
+    SPELL_WAKING_NIGHTMARE_H    = 67677,
+};
+const uint32 summonMemory[] = {
+    66543,
+    66705,
+    66706,
+    66707,
+    66708,
+    66709,
+    66710,
+    66711,
+    66712,
+    66713,
+    66714,
+    66704,
+    66703,
+    66702,
+    66691,
+    66692,
+    66694,
+    66695,
+    66696,
+    66697,
+    66698,
+    66699,
+    66700,
+    66701,
+    66715,
 };
-
 class OrientationCheck : public std::unary_function<Unit*, bool>
 {
     public:
@@ -338,7 +363,7 @@ public:
                 me->InterruptNonMeleeSpells(true);
                 DoCastAOE(SPELL_HOLY_NOVA, false);
                 DoCast(me, SPELL_SHIELD);
-                DoCastAOE(SPELL_SUMMON_MEMORY, false);
+                DoCastAOE(summonMemory[urand(0, 24)], false);
                 DoCastAOE(SPELL_CONFESS, false);

                 bHealth = true;
@@ -377,6 +402,10 @@ public:
             uiOldWoundsTimer = 12000;
             uiShadowPastTimer = 5000;
             uiWakingNightmare = 7000;
+            me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+            me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+            me->SetReactState(REACT_DEFENSIVE);
+            me->setFaction(14);
         }

         void UpdateAI(const uint32 uiDiff)

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp 
index f3b6078..306a479 100644
@@ -108,6 +108,7 @@ void AggroAllPlayers(Creature* temp)

             if (player->isAlive())
             {
+                temp->setFaction(14);
                 temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
                 temp->SetReactState(REACT_AGGRESSIVE);
                 temp->SetInCombatWith(player);

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp 
index 310dd10..5a9fb92 100644
@@ -27,7 +27,7 @@ EndScriptData */
 #include "trial_of_the_champion.h"

 #define MAX_ENCOUNTER  4
-
+const Position BlackKnightPos = {758.135620f, 639.459778f, 411.722473f, 0.808736f};
 class instance_trial_of_the_champion : public InstanceMapScript
 {
 public:
@@ -206,7 +206,9 @@ public:
                         {
                             pBoss->GetMotionMaster()->MovePoint(0, 746.88f, 618.74f, 411.06f);
                             pBoss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                            pBoss->setFaction(14);
                             pBoss->SetReactState(REACT_AGGRESSIVE);
+                            pBoss->AI()->DoZoneInCombat();
                         }
                     }
                     break;
@@ -217,6 +219,16 @@ public:
                         pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f);
                         pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
                         pAnnouncer->SummonGameObject(instance->IsHeroic()? GO_EADRIC_LOOT_H : GO_EADRIC_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000);
+
+                        if(Creature* knightVehicle = pAnnouncer->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0)){
+                            knightVehicle->SetReactState(REACT_PASSIVE);
+                            if(Creature* bKnight = knightVehicle->SummonCreature(35451, BlackKnightPos)){
+                                bKnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                                bKnight->setFaction(14);
+                                bKnight->SetReactState(REACT_AGGRESSIVE);
+                                bKnight->AI()->DoZoneInCombat();
+                            }
+                        }
                     }
                     break;
                 case BOSS_ARGENT_CHALLENGE_P:
@@ -224,8 +236,20 @@ public:
                     if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID))
                     {
                         pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f);
-                        pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+                        pAnnouncer->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
                         pAnnouncer->SummonGameObject(instance->IsHeroic()? GO_PALETRESS_LOOT_H : GO_PALETRESS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000);
+
+                        if(Creature* knightVehicle = pAnnouncer->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0)){
+
+                            knightVehicle->SetReactState(REACT_PASSIVE);
+                            if(Creature* bKnight = knightVehicle->SummonCreature(35451, BlackKnightPos)){
+                                bKnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                                bKnight->setFaction(14);
+                                bKnight->SetReactState(REACT_AGGRESSIVE);
+                                bKnight->AI()->DoZoneInCombat();
+                                pAnnouncer->DespawnOrUnsummon();
+                            }
+                        }
                     }
                     break;
             }

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp 
index a248851..ecb0c8b 100644
@@ -40,8 +40,8 @@ EndContentData */
 /*######
 ## npc_announcer_toc5
 ######*/
-
-const Position SpawnPosition = {746.261f, 657.401f, 411.681f, 4.65f};
+const Position BlackKnightPos = {758.135620f, 639.459778f, 411.722473f, 0.808736f};
+const Position SpawnPosition  = {746.261f, 657.401f, 411.681f, 4.65f};

 class npc_announcer_toc5 : public CreatureScript
 {
@@ -311,12 +311,24 @@ public:
             {
                 for (uint8 i = 0; i < 3; ++i)
                 {
-                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_LIGHWIELDER, SpawnPosition))
+                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_LIGHWIELDER, SpawnPosition)){
                         pTrash->AI()->SetData(i, 0);
-                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_MONK, SpawnPosition))
+                        pTrash->setFaction(14);
+                        pTrash->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
+                        pTrash->SetReactState(REACT_DEFENSIVE);
+                    }
+                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_MONK, SpawnPosition)){
                         pTrash->AI()->SetData(i, 0);
-                    if (Creature* pTrash = me->SummonCreature(NPC_PRIESTESS, SpawnPosition))
+                        pTrash->setFaction(14);
+                        pTrash->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
+                        pTrash->SetReactState(REACT_DEFENSIVE);
+                    }
+                    if (Creature* pTrash = me->SummonCreature(NPC_PRIESTESS, SpawnPosition)){
                         pTrash->AI()->SetData(i, 0);
+                        pTrash->setFaction(14);
+                        pTrash->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
+                        pTrash->SetReactState(REACT_DEFENSIVE);
+                    }
                 }
             }
         }
@@ -358,45 +370,40 @@ public:
             {
                 if (instance->GetData(BOSS_ARGENT_CHALLENGE_E) == NOT_STARTED && instance->GetData(BOSS_ARGENT_CHALLENGE_P) == NOT_STARTED)
                 {
-                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == NOT_STARTED)
+                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == NOT_STARTED){
                         me->AI()->SetData(DATA_START, 0);
+                    }

-                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == DONE)
+                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == DONE){
                         DoStartArgentChampionEncounter();
-                }
+                    }
+                }else{
+                    if(Creature* knightVehicle = me->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0)){
+
+                        knightVehicle->SetReactState(REACT_PASSIVE);

-               if ((instance->GetData(BOSS_GRAND_CHAMPIONS) == DONE &&
-                   instance->GetData(BOSS_ARGENT_CHALLENGE_E) == DONE) ||
-                   instance->GetData(BOSS_ARGENT_CHALLENGE_P) == DONE)
-                    me->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0);
+                        if(Creature* bKnight = knightVehicle->SummonCreature(35451, BlackKnightPos)){
+                            bKnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                            bKnight->setFaction(14);
+                            bKnight->SetReactState(REACT_AGGRESSIVE);
+                            bKnight->AI()->DoZoneInCombat();
+                        }
+                    }
+                }
             }
         }

         void AggroAllPlayers(Creature* temp)
         {
             Map::PlayerList const &PlList = me->GetMap()->GetPlayers();
-
+            temp->setFaction(14);
+            temp->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+            temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+            temp->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
+            temp->SetReactState(REACT_AGGRESSIVE);
+            temp->AI()->DoZoneInCombat();
             if (PlList.isEmpty())
                 return;
-
-            for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
-            {
-                if (Player* player = i->getSource())
-                {
-                    if (player->isGameMaster())
-                        continue;
-
-                    if (player->isAlive())
-                    {
-                        temp->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
-                        temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
-                        temp->SetReactState(REACT_AGGRESSIVE);
-                        temp->SetInCombatWith(player);
-                        player->SetInCombatWith(temp);
-                        temp->AddThreat(player, 0.0f);
-                    }
-                }
-            }
         }

        void UpdateAI(const uint32 uiDiff)
---------------------- src/server/game/AI/CreatureAI.cpp ----------------------
index e586811..f20c928 100755
@@ -77,8 +77,10 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN

     if (!creature->HasReactState(REACT_PASSIVE) && !creature->getVictim())
     {
+       creature->SetReactState(REACT_AGGRESSIVE);
+        creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
         sLog->outError(LOG_FILTER_GENERAL, "DoZoneInCombat called for creature that has empty threat list (creature entry = %u)", creature->GetEntry());
-        return;
+        //return;
     }

     Map::PlayerList const& playerList = map->GetPlayers();
@@ -97,7 +99,7 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN
             {
                 creature->SetInCombatWith(player);
                 player->SetInCombatWith(creature);
-                creature->AddThreat(player, 0.0f);
+                creature->AddThreat(player, 1.0f);
             }

             /* Causes certain things to never leave the threat list (Priest Lightwell, etc):

World database fixes:

UPDATE `creature_template` SET `spell1` = '66479', `spell2` = '68282', `spell3` = '62575', `spell4` = '62552' WHERE `entry` = '36557';
UPDATE `creature_template` SET `spell1` = '66479', `spell2` = '68282', `spell3` = '62575', `spell4` = '62552' WHERE `entry` = '36558';
UPDATE `creature_template` SET `spell1` = '66479', `spell2` = '68282', `spell3` = '62575', `spell4` = '62552' WHERE `entry` = '36559';
UPDATE `creature_template` SET `pickpocketloot` = '33498' WHERE `entry` = '33498';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33316';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33217';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33318';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33219';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33320';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33321';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33322';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33323';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33324';

UPDATE creature_template set minlevel=82, maxlevel=82, faction_H=14, faction_A=14, ScriptName='npc_memory', difficulty_entry_1=0, exp=2, mindmg=488, maxdmg=642, attackpower=782, dmg_multiplier=7.5, dynamicflags=8, minrangedmg=363, maxrangedmg=521, rangedattackpower=121 
WHERE entry in (35519,35527,35521,35522,35520,35523,35524,35534,35528,35529,35525,35032,35543,35537,35533,35540,35542,35536,35532,35539,35051,35544,35541,35535,35538,35050,35043,35531,35530,35030,35046,35028,35029,35039,35047,35045,35048,35049,35038,35034,35040,35042,35031,35037,35044,35041,35036,35033,35052,34942);

UPDATE creature_template set minlevel=80, maxlevel=80, exp=2, difficulty_entry_1=0, faction_H=16, faction_A=16, mindmg=422, maxdmg=586, attackpower=642, dmg_multiplier=7.5, baseattacktime=2000, dynamicflags=8, minrangedmg=345, maxrangedmg=509, rangedattackpower=103, ScriptName='npc_argent_soldier' 
WHERE entry in (35305, 35306, 35307, 35308, 35309, 35310);

INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES ('34735', '63070', '1', '0');
UPDATE `creature` SET `npcflag` = '16777216' WHERE `guid` = '34735';

INSERT INTO `pickpocketing_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`)
VALUES ('33498', '45082', '100', '1', '0', '1', '1');

My fix for the Trial of Champion event, but it doesn't give achievement.
Mounted fight, all boss events and spells, summon memory, drops are working as it should.

Tested with following:
Source: 9004580
Database: TDB 335.49

Author: Batbayar <digz6666@gmail.com>  2012-09-25 22:06:45
Committer: Batbayar <digz6666@gmail.com>  2012-09-25 22:06:45
Parent: f92946e128ed44de21c97900b0a935c7c55fcd65 (Core/Misc: Fix some mem-leaks and uninitialized variables.)
Branch: master
Follows: TDB335.49
Precedes: 

    trial of champion fix.

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp 
index d77c84b..d010bfb 100644
@@ -47,7 +47,6 @@ enum eSpells
     SPELL_HOLY_NOVA             = 66546,
     SPELL_SHIELD                = 66515,
     SPELL_CONFESS               = 66680,
-    SPELL_SUMMON_MEMORY         = 66545,

     //Memory
     SPELL_OLD_WOUNDS            = 66620,
@@ -55,9 +54,35 @@ enum eSpells
     SPELL_SHADOWS_PAST          = 66619,
     SPELL_SHADOWS_PAST_H        = 67678,
     SPELL_WAKING_NIGHTMARE      = 66552,
-    SPELL_WAKING_NIGHTMARE_H    = 67677
+    SPELL_WAKING_NIGHTMARE_H    = 67677,
+};
+const uint32 summonMemory[] = {
+    66543,
+    66705,
+    66706,
+    66707,
+    66708,
+    66709,
+    66710,
+    66711,
+    66712,
+    66713,
+    66714,
+    66704,
+    66703,
+    66702,
+    66691,
+    66692,
+    66694,
+    66695,
+    66696,
+    66697,
+    66698,
+    66699,
+    66700,
+    66701,
+    66715,
 };
-
 class OrientationCheck : public std::unary_function<Unit*, bool>
 {
     public:
@@ -338,7 +363,7 @@ public:
                 me->InterruptNonMeleeSpells(true);
                 DoCastAOE(SPELL_HOLY_NOVA, false);
                 DoCast(me, SPELL_SHIELD);
-                DoCastAOE(SPELL_SUMMON_MEMORY, false);
+                DoCastAOE(summonMemory[urand(0, 24)], false);
                 DoCastAOE(SPELL_CONFESS, false);

                 bHealth = true;
@@ -377,6 +402,10 @@ public:
             uiOldWoundsTimer = 12000;
             uiShadowPastTimer = 5000;
             uiWakingNightmare = 7000;
+            me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+            me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+            me->SetReactState(REACT_DEFENSIVE);
+            me->setFaction(14);
         }

         void UpdateAI(const uint32 uiDiff)

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp 
index f3b6078..306a479 100644
@@ -108,6 +108,7 @@ void AggroAllPlayers(Creature* temp)

             if (player->isAlive())
             {
+                temp->setFaction(14);
                 temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
                 temp->SetReactState(REACT_AGGRESSIVE);
                 temp->SetInCombatWith(player);

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp 
index 310dd10..5a9fb92 100644
@@ -27,7 +27,7 @@ EndScriptData */
 #include "trial_of_the_champion.h"

 #define MAX_ENCOUNTER  4
-
+const Position BlackKnightPos = {758.135620f, 639.459778f, 411.722473f, 0.808736f};
 class instance_trial_of_the_champion : public InstanceMapScript
 {
 public:
@@ -206,7 +206,9 @@ public:
                         {
                             pBoss->GetMotionMaster()->MovePoint(0, 746.88f, 618.74f, 411.06f);
                             pBoss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                            pBoss->setFaction(14);
                             pBoss->SetReactState(REACT_AGGRESSIVE);
+                            pBoss->AI()->DoZoneInCombat();
                         }
                     }
                     break;
@@ -217,6 +219,16 @@ public:
                         pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f);
                         pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
                         pAnnouncer->SummonGameObject(instance->IsHeroic()? GO_EADRIC_LOOT_H : GO_EADRIC_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000);
+
+                        if(Creature* knightVehicle = pAnnouncer->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0)){
+                            knightVehicle->SetReactState(REACT_PASSIVE);
+                            if(Creature* bKnight = knightVehicle->SummonCreature(35451, BlackKnightPos)){
+                                bKnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                                bKnight->setFaction(14);
+                                bKnight->SetReactState(REACT_AGGRESSIVE);
+                                bKnight->AI()->DoZoneInCombat();
+                            }
+                        }
                     }
                     break;
                 case BOSS_ARGENT_CHALLENGE_P:
@@ -224,8 +236,20 @@ public:
                     if (Creature* pAnnouncer = instance->GetCreature(uiAnnouncerGUID))
                     {
                         pAnnouncer->GetMotionMaster()->MovePoint(0, 748.309f, 619.487f, 411.171f);
-                        pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+                        pAnnouncer->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
                         pAnnouncer->SummonGameObject(instance->IsHeroic()? GO_PALETRESS_LOOT_H : GO_PALETRESS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000);
+
+                        if(Creature* knightVehicle = pAnnouncer->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0)){
+
+                            knightVehicle->SetReactState(REACT_PASSIVE);
+                            if(Creature* bKnight = knightVehicle->SummonCreature(35451, BlackKnightPos)){
+                                bKnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                                bKnight->setFaction(14);
+                                bKnight->SetReactState(REACT_AGGRESSIVE);
+                                bKnight->AI()->DoZoneInCombat();
+                                pAnnouncer->DespawnOrUnsummon();
+                            }
+                        }
                     }
                     break;
             }

 src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp 
index a248851..ecb0c8b 100644
@@ -40,8 +40,8 @@ EndContentData */
 /*######
 ## npc_announcer_toc5
 ######*/
-
-const Position SpawnPosition = {746.261f, 657.401f, 411.681f, 4.65f};
+const Position BlackKnightPos = {758.135620f, 639.459778f, 411.722473f, 0.808736f};
+const Position SpawnPosition  = {746.261f, 657.401f, 411.681f, 4.65f};

 class npc_announcer_toc5 : public CreatureScript
 {
@@ -311,12 +311,24 @@ public:
             {
                 for (uint8 i = 0; i < 3; ++i)
                 {
-                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_LIGHWIELDER, SpawnPosition))
+                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_LIGHWIELDER, SpawnPosition)){
                         pTrash->AI()->SetData(i, 0);
-                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_MONK, SpawnPosition))
+                        pTrash->setFaction(14);
+                        pTrash->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
+                        pTrash->SetReactState(REACT_DEFENSIVE);
+                    }
+                    if (Creature* pTrash = me->SummonCreature(NPC_ARGENT_MONK, SpawnPosition)){
                         pTrash->AI()->SetData(i, 0);
-                    if (Creature* pTrash = me->SummonCreature(NPC_PRIESTESS, SpawnPosition))
+                        pTrash->setFaction(14);
+                        pTrash->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
+                        pTrash->SetReactState(REACT_DEFENSIVE);
+                    }
+                    if (Creature* pTrash = me->SummonCreature(NPC_PRIESTESS, SpawnPosition)){
                         pTrash->AI()->SetData(i, 0);
+                        pTrash->setFaction(14);
+                        pTrash->RemoveFlag(UNIT_FIELD_FLAGS,UNIT_FLAG_NON_ATTACKABLE);
+                        pTrash->SetReactState(REACT_DEFENSIVE);
+                    }
                 }
             }
         }
@@ -358,45 +370,40 @@ public:
             {
                 if (instance->GetData(BOSS_ARGENT_CHALLENGE_E) == NOT_STARTED && instance->GetData(BOSS_ARGENT_CHALLENGE_P) == NOT_STARTED)
                 {
-                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == NOT_STARTED)
+                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == NOT_STARTED){
                         me->AI()->SetData(DATA_START, 0);
+                    }

-                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == DONE)
+                    if (instance->GetData(BOSS_GRAND_CHAMPIONS) == DONE){
                         DoStartArgentChampionEncounter();
-                }
+                    }
+                }else{
+                    if(Creature* knightVehicle = me->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0)){
+
+                        knightVehicle->SetReactState(REACT_PASSIVE);

-               if ((instance->GetData(BOSS_GRAND_CHAMPIONS) == DONE &&
-                   instance->GetData(BOSS_ARGENT_CHALLENGE_E) == DONE) ||
-                   instance->GetData(BOSS_ARGENT_CHALLENGE_P) == DONE)
-                    me->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0);
+                        if(Creature* bKnight = knightVehicle->SummonCreature(35451, BlackKnightPos)){
+                            bKnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+                            bKnight->setFaction(14);
+                            bKnight->SetReactState(REACT_AGGRESSIVE);
+                            bKnight->AI()->DoZoneInCombat();
+                        }
+                    }
+                }
             }
         }

         void AggroAllPlayers(Creature* temp)
         {
             Map::PlayerList const &PlList = me->GetMap()->GetPlayers();
-
+            temp->setFaction(14);
+            temp->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
+            temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
+            temp->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
+            temp->SetReactState(REACT_AGGRESSIVE);
+            temp->AI()->DoZoneInCombat();
             if (PlList.isEmpty())
                 return;
-
-            for (Map::PlayerList::const_iterator i = PlList.begin(); i != PlList.end(); ++i)
-            {
-                if (Player* player = i->getSource())
-                {
-                    if (player->isGameMaster())
-                        continue;
-
-                    if (player->isAlive())
-                    {
-                        temp->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
-                        temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
-                        temp->SetReactState(REACT_AGGRESSIVE);
-                        temp->SetInCombatWith(player);
-                        player->SetInCombatWith(temp);
-                        temp->AddThreat(player, 0.0f);
-                    }
-                }
-            }
         }

        void UpdateAI(const uint32 uiDiff)
---------------------- src/server/game/AI/CreatureAI.cpp ----------------------
index e586811..f20c928 100755
@@ -77,8 +77,10 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN

     if (!creature->HasReactState(REACT_PASSIVE) && !creature->getVictim())
     {
+       creature->SetReactState(REACT_AGGRESSIVE);
+        creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
         sLog->outError(LOG_FILTER_GENERAL, "DoZoneInCombat called for creature that has empty threat list (creature entry = %u)", creature->GetEntry());
-        return;
+        //return;
     }

     Map::PlayerList const& playerList = map->GetPlayers();
@@ -97,7 +99,7 @@ void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToN
             {
                 creature->SetInCombatWith(player);
                 player->SetInCombatWith(creature);
-                creature->AddThreat(player, 0.0f);
+                creature->AddThreat(player, 1.0f);
             }

             /* Causes certain things to never leave the threat list (Priest Lightwell, etc):

World database fixes:

UPDATE `creature_template` SET `spell1` = '66479', `spell2` = '68282', `spell3` = '62575', `spell4` = '62552' WHERE `entry` = '36557';
UPDATE `creature_template` SET `spell1` = '66479', `spell2` = '68282', `spell3` = '62575', `spell4` = '62552' WHERE `entry` = '36558';
UPDATE `creature_template` SET `spell1` = '66479', `spell2` = '68282', `spell3` = '62575', `spell4` = '62552' WHERE `entry` = '36559';
UPDATE `creature_template` SET `pickpocketloot` = '33498' WHERE `entry` = '33498';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33316';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33217';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33318';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33219';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33320';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33321';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33322';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33323';
UPDATE `creature_template` SET `ScriptName` = 'generic_vehicleAI_toc5' WHERE `entry` = '33324';

UPDATE creature_template set minlevel=82, maxlevel=82, faction_H=14, faction_A=14, ScriptName='npc_memory', difficulty_entry_1=0, exp=2, mindmg=488, maxdmg=642, attackpower=782, dmg_multiplier=7.5, dynamicflags=8, minrangedmg=363, maxrangedmg=521, rangedattackpower=121 
WHERE entry in (35519,35527,35521,35522,35520,35523,35524,35534,35528,35529,35525,35032,35543,35537,35533,35540,35542,35536,35532,35539,35051,35544,35541,35535,35538,35050,35043,35531,35530,35030,35046,35028,35029,35039,35047,35045,35048,35049,35038,35034,35040,35042,35031,35037,35044,35041,35036,35033,35052,34942);

UPDATE creature_template set minlevel=80, maxlevel=80, exp=2, difficulty_entry_1=0, faction_H=16, faction_A=16, mindmg=422, maxdmg=586, attackpower=642, dmg_multiplier=7.5, baseattacktime=2000, dynamicflags=8, minrangedmg=345, maxrangedmg=509, rangedattackpower=103, ScriptName='npc_argent_soldier' 
WHERE entry in (35305, 35306, 35307, 35308, 35309, 35310);

INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES ('34735', '63070', '1', '0');
UPDATE `creature` SET `npcflag` = '16777216' WHERE `guid` = '34735';

INSERT INTO `pickpocketing_loot_template` (`entry`, `item`, `ChanceOrQuestChance`, `lootmode`, `groupid`, `mincountOrRef`, `maxcount`)
VALUES ('33498', '45082', '100', '1', '0', '1', '1');
@Aokromes

This comment has been minimized.

Show comment Hide comment
@Aokromes

Aokromes Sep 27, 2012

Member
Member

Aokromes commented Sep 27, 2012

@Aokromes Aokromes closed this Sep 27, 2012

@NeKroZ

This comment has been minimized.

Show comment Hide comment
@NeKroZ

NeKroZ Sep 28, 2012

digz6666, tested?

NeKroZ commented Sep 28, 2012

digz6666, tested?

@digz6666

This comment has been minimized.

Show comment Hide comment
@digz6666

digz6666 Sep 28, 2012

Yes. My friend manages 1 private server. Me and my another friend helps him to fix bugs.
i can make 1 video of the instance.

Yes. My friend manages 1 private server. Me and my another friend helps him to fix bugs.
i can make 1 video of the instance.

@ghost

This comment has been minimized.

Show comment Hide comment
@ghost

ghost Sep 19, 2013

Does this still work ?

ghost commented Sep 19, 2013

Does this still work ?

@digz6666

This comment has been minimized.

Show comment Hide comment
@digz6666

digz6666 Sep 22, 2013

@Maxxgold Outdated for now, I can update to new revision and maybe I can do some pull request.
On the pull request we can discuss and fix things.

@Maxxgold Outdated for now, I can update to new revision and maybe I can do some pull request.
On the pull request we can discuss and fix things.

@ghost

This comment has been minimized.

Show comment Hide comment
@ghost

ghost Sep 22, 2013

@digz6666 That would be awesome if you could fix this. I really love this instance. : )

ghost commented Sep 22, 2013

@digz6666 That would be awesome if you could fix this. I really love this instance. : )

@ghost

This comment has been minimized.

Show comment Hide comment
@ghost

ghost Oct 1, 2013

@diz6666 Any update on this : )

ghost commented Oct 1, 2013

@diz6666 Any update on this : )

@cshaaa

This comment has been minimized.

Show comment Hide comment
@cshaaa

cshaaa Feb 8, 2015

@digz6666 ,do you have the fix to the latest core?

cshaaa commented Feb 8, 2015

@digz6666 ,do you have the fix to the latest core?

@cshaaa

This comment has been minimized.

Show comment Hide comment
@cshaaa

cshaaa Feb 8, 2015

@digz6666 i have tried it on the latest core b69fd4,but it does not work now.

cshaaa commented Feb 8, 2015

@digz6666 i have tried it on the latest core b69fd4,but it does not work now.

@lainimer

This comment has been minimized.

Show comment Hide comment
@lainimer

lainimer Feb 12, 2015

any news?

any news?

@Aokromes Aokromes locked and limited conversation to collaborators Feb 13, 2015

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.