mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[12153] Remove unneeded InBattleGround() as it is already checked by GetBattleGround()
Also call OutdoorPvP handlers before instance script ones
This commit is contained in:
parent
a53ac2aca7
commit
c8814791e1
5 changed files with 15 additions and 19 deletions
|
|
@ -752,16 +752,16 @@ bool Creature::Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo cons
|
||||||
if (!cPos.Relocate(this))
|
if (!cPos.Relocate(this))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Notify the outdoor pvp script
|
||||||
|
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
|
||||||
|
outdoorPvP->HandleCreatureCreate(this);
|
||||||
|
|
||||||
// Notify the map's instance data.
|
// Notify the map's instance data.
|
||||||
// Only works if you create the object in it, not if it is moves to that map.
|
// Only works if you create the object in it, not if it is moves to that map.
|
||||||
// Normally non-players do not teleport to other maps.
|
// Normally non-players do not teleport to other maps.
|
||||||
if (InstanceData* iData = GetMap()->GetInstanceData())
|
if (InstanceData* iData = GetMap()->GetInstanceData())
|
||||||
iData->OnCreatureCreate(this);
|
iData->OnCreatureCreate(this);
|
||||||
|
|
||||||
// Notify the outdoor pvp script
|
|
||||||
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
|
|
||||||
outdoorPvP->HandleCreatureCreate(this);
|
|
||||||
|
|
||||||
switch (GetCreatureInfo()->rank)
|
switch (GetCreatureInfo()->rank)
|
||||||
{
|
{
|
||||||
case CREATURE_ELITE_RARE:
|
case CREATURE_ELITE_RARE:
|
||||||
|
|
|
||||||
|
|
@ -166,16 +166,16 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map* map, uint32 phaseMa
|
||||||
if (goinfo->type == GAMEOBJECT_TYPE_CAPTURE_POINT && goinfo->capturePoint.radius)
|
if (goinfo->type == GAMEOBJECT_TYPE_CAPTURE_POINT && goinfo->capturePoint.radius)
|
||||||
SetCapturePointSlider(sOutdoorPvPMgr.GetCapturePointSliderValue(goinfo->id));
|
SetCapturePointSlider(sOutdoorPvPMgr.GetCapturePointSliderValue(goinfo->id));
|
||||||
|
|
||||||
|
// Notify the outdoor pvp script
|
||||||
|
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
|
||||||
|
outdoorPvP->HandleGameObjectCreate(this);
|
||||||
|
|
||||||
// Notify the map's instance data.
|
// Notify the map's instance data.
|
||||||
// Only works if you create the object in it, not if it is moves to that map.
|
// Only works if you create the object in it, not if it is moves to that map.
|
||||||
// Normally non-players do not teleport to other maps.
|
// Normally non-players do not teleport to other maps.
|
||||||
if (InstanceData* iData = map->GetInstanceData())
|
if (InstanceData* iData = map->GetInstanceData())
|
||||||
iData->OnObjectCreate(this);
|
iData->OnObjectCreate(this);
|
||||||
|
|
||||||
// Notify the outdoor pvp script
|
|
||||||
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
|
|
||||||
outdoorPvP->HandleGameObjectCreate(this);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -344,7 +344,6 @@ void GameObject::Update(uint32 update_diff, uint32 p_time)
|
||||||
if (IsBattleGroundTrap && ok->GetTypeId() == TYPEID_PLAYER)
|
if (IsBattleGroundTrap && ok->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
// BattleGround gameobjects case
|
// BattleGround gameobjects case
|
||||||
if (((Player*)ok)->InBattleGround())
|
|
||||||
if (BattleGround* bg = ((Player*)ok)->GetBattleGround())
|
if (BattleGround* bg = ((Player*)ok)->GetBattleGround())
|
||||||
bg->HandleTriggerBuff(GetObjectGuid());
|
bg->HandleTriggerBuff(GetObjectGuid());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -735,14 +735,12 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recv_data)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pl->InBattleGround())
|
|
||||||
{
|
|
||||||
if (BattleGround* bg = pl->GetBattleGround())
|
if (BattleGround* bg = pl->GetBattleGround())
|
||||||
|
{
|
||||||
bg->HandleAreaTrigger(pl, Trigger_ID);
|
bg->HandleAreaTrigger(pl, Trigger_ID);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(pl->GetCachedZoneId()))
|
||||||
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(pl->GetCachedZoneId()))
|
|
||||||
{
|
{
|
||||||
if (outdoorPvP->HandleAreaTrigger(pl, Trigger_ID))
|
if (outdoorPvP->HandleAreaTrigger(pl, Trigger_ID))
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -566,8 +566,7 @@ void WorldSession::HandleMoverRelocation(MovementInfo& movementInfo)
|
||||||
|
|
||||||
if (movementInfo.GetPos()->z < -500.0f)
|
if (movementInfo.GetPos()->z < -500.0f)
|
||||||
{
|
{
|
||||||
if (plMover->InBattleGround()
|
if (plMover->GetBattleGround()
|
||||||
&& plMover->GetBattleGround()
|
|
||||||
&& plMover->GetBattleGround()->HandlePlayerUnderMap(_player))
|
&& plMover->GetBattleGround()->HandlePlayerUnderMap(_player))
|
||||||
{
|
{
|
||||||
// do nothing, the handle already did if returned true
|
// do nothing, the handle already did if returned true
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "12152"
|
#define REVISION_NR "12153"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue