Merge branch 'master' of https://github.com/azerothcore/azerothcore-wotlk
This commit is contained in:
@@ -0,0 +1,28 @@
|
|||||||
|
-- DB update 2018_03_11_00 -> 2018_03_29_00
|
||||||
|
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||||
|
DELIMITER //
|
||||||
|
CREATE PROCEDURE updateDb ()
|
||||||
|
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';
|
||||||
|
SELECT COUNT(*) INTO @COLEXISTS
|
||||||
|
FROM information_schema.COLUMNS
|
||||||
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2018_03_11_00';
|
||||||
|
IF @COLEXISTS = 0 THEN LEAVE proc; END IF;
|
||||||
|
START TRANSACTION;
|
||||||
|
ALTER TABLE version_db_world CHANGE COLUMN 2018_03_11_00 2018_03_29_00 bit;
|
||||||
|
SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1522263653566045620'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;
|
||||||
|
--
|
||||||
|
-- START UPDATING QUERIES
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO version_db_world(sql_rev) VALUES ('1522263653566045620');
|
||||||
|
|
||||||
|
DELETE FROM `areatrigger` WHERE map IN (24,28);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- END UPDATING QUERIES
|
||||||
|
--
|
||||||
|
COMMIT;
|
||||||
|
END //
|
||||||
|
DELIMITER ;
|
||||||
|
CALL updateDb();
|
||||||
|
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||||
@@ -427,6 +427,8 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& /*recvPacket*/)
|
|||||||
trader->GetSession()->SendNotification(LANG_NOT_PARTNER_FREE_TRADE_SLOTS);
|
trader->GetSession()->SendNotification(LANG_NOT_PARTNER_FREE_TRADE_SLOTS);
|
||||||
my_trade->SetAccepted(false);
|
my_trade->SetAccepted(false);
|
||||||
his_trade->SetAccepted(false);
|
his_trade->SetAccepted(false);
|
||||||
|
delete my_spell;
|
||||||
|
delete his_spell;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!hisCanCompleteTrade)
|
else if (!hisCanCompleteTrade)
|
||||||
@@ -437,6 +439,8 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPacket& /*recvPacket*/)
|
|||||||
trader->GetSession()->SendNotification(LANG_NOT_FREE_TRADE_SLOTS);
|
trader->GetSession()->SendNotification(LANG_NOT_FREE_TRADE_SLOTS);
|
||||||
my_trade->SetAccepted(false);
|
my_trade->SetAccepted(false);
|
||||||
his_trade->SetAccepted(false);
|
his_trade->SetAccepted(false);
|
||||||
|
delete my_spell;
|
||||||
|
delete his_spell;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
* Originally written by Xinef - Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ class instance_deadmines : public InstanceMapScript
|
|||||||
{
|
{
|
||||||
case GO_FACTORY_DOOR:
|
case GO_FACTORY_DOOR:
|
||||||
if (_encounters[TYPE_RHAHK_ZOR] == DONE)
|
if (_encounters[TYPE_RHAHK_ZOR] == DONE)
|
||||||
HandleGameObject(0, true, gameobject);
|
gameobject->SetGoState(GO_STATE_ACTIVE);
|
||||||
break;
|
break;
|
||||||
case GO_IRON_CLAD_DOOR:
|
case GO_IRON_CLAD_DOOR:
|
||||||
if (_encounters[TYPE_CANNON] == DONE)
|
if (_encounters[TYPE_CANNON] == DONE)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
||||||
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
||||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||||
@@ -85,11 +85,9 @@ public:
|
|||||||
void WaypointReached(uint32 waypointId)
|
void WaypointReached(uint32 waypointId)
|
||||||
{
|
{
|
||||||
Player* player = GetPlayerForEscort();
|
Player* player = GetPlayerForEscort();
|
||||||
|
|
||||||
if (!player)
|
if (!player)
|
||||||
{
|
|
||||||
me->DespawnOrUnsummon(1);
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
switch (waypointId)
|
switch (waypointId)
|
||||||
{
|
{
|
||||||
|
|||||||
+18
@@ -51,6 +51,7 @@ public:
|
|||||||
uint64 NPC_BlackKnightVehicleGUID;
|
uint64 NPC_BlackKnightVehicleGUID;
|
||||||
uint64 NPC_BlackKnightGUID;
|
uint64 NPC_BlackKnightGUID;
|
||||||
uint64 GO_MainGateGUID;
|
uint64 GO_MainGateGUID;
|
||||||
|
uint64 GO_EnterGateGUID;
|
||||||
|
|
||||||
void Initialize()
|
void Initialize()
|
||||||
{
|
{
|
||||||
@@ -78,6 +79,7 @@ public:
|
|||||||
NPC_BlackKnightVehicleGUID = 0;
|
NPC_BlackKnightVehicleGUID = 0;
|
||||||
NPC_BlackKnightGUID = 0;
|
NPC_BlackKnightGUID = 0;
|
||||||
GO_MainGateGUID = 0;
|
GO_MainGateGUID = 0;
|
||||||
|
GO_EnterGateGUID = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsEncounterInProgress() const
|
bool IsEncounterInProgress() const
|
||||||
@@ -195,6 +197,10 @@ public:
|
|||||||
case GO_EAST_PORTCULLIS:
|
case GO_EAST_PORTCULLIS:
|
||||||
HandleGameObject(go->GetGUID(), false, go);
|
HandleGameObject(go->GetGUID(), false, go);
|
||||||
break;
|
break;
|
||||||
|
case GO_NORTH_PORTCULLIS:
|
||||||
|
HandleGameObject(go->GetGUID(), true, go);
|
||||||
|
GO_EnterGateGUID = go->GetGUID();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,6 +423,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
HandleGameObject(GO_MainGateGUID, false);
|
HandleGameObject(GO_MainGateGUID, false);
|
||||||
|
HandleGameObject(GO_EnterGateGUID, true);
|
||||||
Counter = 0;
|
Counter = 0;
|
||||||
SaveToDB();
|
SaveToDB();
|
||||||
events.Reset();
|
events.Reset();
|
||||||
@@ -503,6 +510,7 @@ public:
|
|||||||
else
|
else
|
||||||
announcer->AI()->Talk(TEXT_INTRODUCE_PALETRESS);
|
announcer->AI()->Talk(TEXT_INTRODUCE_PALETRESS);
|
||||||
}
|
}
|
||||||
|
HandleGameObject(GO_EnterGateGUID, false);
|
||||||
events.RescheduleEvent(EVENT_START_ARGENT_CHALLENGE_INTRO, 0);
|
events.RescheduleEvent(EVENT_START_ARGENT_CHALLENGE_INTRO, 0);
|
||||||
break;
|
break;
|
||||||
case INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED:
|
case INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED:
|
||||||
@@ -627,6 +635,7 @@ public:
|
|||||||
m_auiEncounter[1] = uiData;
|
m_auiEncounter[1] = uiData;
|
||||||
if( uiData == DONE )
|
if( uiData == DONE )
|
||||||
{
|
{
|
||||||
|
HandleGameObject(GO_EnterGateGUID, true);
|
||||||
InstanceProgress = INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED;
|
InstanceProgress = INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED;
|
||||||
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_RUN_MIDDLE, 0);
|
events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_RUN_MIDDLE, 0);
|
||||||
}
|
}
|
||||||
@@ -644,9 +653,15 @@ public:
|
|||||||
{
|
{
|
||||||
m_auiEncounter[2] = uiData;
|
m_auiEncounter[2] = uiData;
|
||||||
if (uiData == NOT_STARTED)
|
if (uiData == NOT_STARTED)
|
||||||
|
{
|
||||||
|
HandleGameObject(GO_EnterGateGUID, false);
|
||||||
bAchievIveHadWorse = true;
|
bAchievIveHadWorse = true;
|
||||||
|
}
|
||||||
else if( uiData == DONE )
|
else if( uiData == DONE )
|
||||||
|
{
|
||||||
|
HandleGameObject(GO_EnterGateGUID, true);
|
||||||
InstanceProgress = INSTANCE_PROGRESS_FINISHED;
|
InstanceProgress = INSTANCE_PROGRESS_FINISHED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DATA_ACHIEV_IVE_HAD_WORSE:
|
case DATA_ACHIEV_IVE_HAD_WORSE:
|
||||||
@@ -802,6 +817,7 @@ public:
|
|||||||
announcer->SetFacingTo(4.714f);
|
announcer->SetFacingTo(4.714f);
|
||||||
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
||||||
tirion->AI()->Talk(TEXT_BEGIN);
|
tirion->AI()->Talk(TEXT_BEGIN);
|
||||||
|
HandleGameObject(GO_EnterGateGUID, false);
|
||||||
}
|
}
|
||||||
for( uint8 i=0; i<3; ++i )
|
for( uint8 i=0; i<3; ++i )
|
||||||
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[1][i]) )
|
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[1][i]) )
|
||||||
@@ -955,6 +971,7 @@ public:
|
|||||||
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
||||||
tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS);
|
tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS);
|
||||||
events.PopEvent();
|
events.PopEvent();
|
||||||
|
HandleGameObject(GO_EnterGateGUID, true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVENT_RESTORE_ANNOUNCER_GOSSIP:
|
case EVENT_RESTORE_ANNOUNCER_GOSSIP:
|
||||||
@@ -972,6 +989,7 @@ public:
|
|||||||
{
|
{
|
||||||
announcer->SetFacingToObject(gate);
|
announcer->SetFacingToObject(gate);
|
||||||
HandleGameObject(GO_MainGateGUID, true, gate);
|
HandleGameObject(GO_MainGateGUID, true, gate);
|
||||||
|
HandleGameObject(GO_EnterGateGUID, false, gate);
|
||||||
}
|
}
|
||||||
if( Counter )
|
if( Counter )
|
||||||
{
|
{
|
||||||
|
|||||||
+1
@@ -135,6 +135,7 @@ enum eGameObjects
|
|||||||
GO_MAIN_GATE = 195647,
|
GO_MAIN_GATE = 195647,
|
||||||
GO_SOUTH_PORTCULLIS = 195649,
|
GO_SOUTH_PORTCULLIS = 195649,
|
||||||
GO_EAST_PORTCULLIS = 195648,
|
GO_EAST_PORTCULLIS = 195648,
|
||||||
|
GO_NORTH_PORTCULLIS = 195650,
|
||||||
|
|
||||||
GO_CHAMPIONS_LOOT = 195709,
|
GO_CHAMPIONS_LOOT = 195709,
|
||||||
GO_CHAMPIONS_LOOT_H = 195710,
|
GO_CHAMPIONS_LOOT_H = 195710,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-GPL2
|
||||||
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
||||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||||
@@ -81,7 +81,7 @@ class npc_pet_mage_mirror_image : public CreatureScript
|
|||||||
|
|
||||||
((Minion*)me)->SetFollowAngle(angle);
|
((Minion*)me)->SetFollowAngle(angle);
|
||||||
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle(), MOTION_SLOT_ACTIVE);
|
me->GetMotionMaster()->MoveFollow(owner, PET_FOLLOW_DIST, me->GetFollowAngle(), MOTION_SLOT_ACTIVE);
|
||||||
me->SetReactState(REACT_PASSIVE);
|
me->SetReactState(REACT_DEFENSIVE);
|
||||||
|
|
||||||
// Xinef: Inherit Master's Threat List (not yet implemented)
|
// Xinef: Inherit Master's Threat List (not yet implemented)
|
||||||
//owner->CastSpell((Unit*)NULL, SPELL_MAGE_MASTERS_THREAT_LIST, true);
|
//owner->CastSpell((Unit*)NULL, SPELL_MAGE_MASTERS_THREAT_LIST, true);
|
||||||
@@ -149,26 +149,19 @@ class npc_pet_mage_mirror_image : public CreatureScript
|
|||||||
if (owner && owner->GetTypeId() == TYPEID_PLAYER)
|
if (owner && owner->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
Unit* selection = owner->ToPlayer()->GetSelectedUnit();
|
Unit* selection = owner->ToPlayer()->GetSelectedUnit();
|
||||||
if (selection && selection != me->GetVictim())
|
|
||||||
{
|
|
||||||
// target has cc, search target without cc!
|
|
||||||
if (selection->HasBreakableByDamageCrowdControlAura() || !me->IsValidAttackTarget(selection))
|
|
||||||
{
|
|
||||||
EnterEvadeMode();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (selection)
|
||||||
|
{
|
||||||
me->getThreatManager().resetAllAggro();
|
me->getThreatManager().resetAllAggro();
|
||||||
me->AddThreat(selection, 1000000.0f);
|
me->AddThreat(selection, 1000000.0f);
|
||||||
|
|
||||||
if (owner->IsInCombat())
|
if (owner->IsInCombat())
|
||||||
AttackStart(selection);
|
AttackStart(selection);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!me->GetVictim() || !me->GetVictim()->IsAlive())
|
if (!owner->IsInCombat() && !me->GetVictim())
|
||||||
return;
|
EnterEvadeMode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reset()
|
void Reset()
|
||||||
@@ -190,23 +183,17 @@ class npc_pet_mage_mirror_image : public CreatureScript
|
|||||||
}
|
}
|
||||||
|
|
||||||
checktarget += diff;
|
checktarget += diff;
|
||||||
|
|
||||||
if (checktarget >= 1000)
|
if (checktarget >= 1000)
|
||||||
{
|
{
|
||||||
if (me->GetVictim()->HasBreakableByDamageCrowdControlAura() || !me->GetVictim()->IsAlive())
|
if (me->GetVictim()->HasBreakableByDamageCrowdControlAura() || !me->GetVictim()->IsAlive())
|
||||||
{
|
{
|
||||||
MySelectNextTarget();
|
MySelectNextTarget();
|
||||||
me->InterruptNonMeleeSpells(true); // Stop casting if target is C or not Alive.
|
me->InterruptNonMeleeSpells(true); // Stop casting if target is CC or not Alive.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
selectionTimer += diff;
|
|
||||||
if (selectionTimer >= 1000)
|
|
||||||
{
|
|
||||||
MySelectNextTarget();
|
|
||||||
selectionTimer = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user