mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
[11794] Add support to start timed achievements in BGs
Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
This commit is contained in:
parent
0eff04c161
commit
dc5595a91f
12 changed files with 30 additions and 1 deletions
|
|
@ -1165,6 +1165,13 @@ void BattleGround::StartBattleGround()
|
||||||
sBattleGroundMgr.AddBattleGround(GetInstanceID(), GetTypeID(), this);
|
sBattleGroundMgr.AddBattleGround(GetInstanceID(), GetTypeID(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BattleGround::StartTimedAchievement(AchievementCriteriaTypes type, uint32 entry)
|
||||||
|
{
|
||||||
|
for (BattleGroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
|
||||||
|
if (Player* pPlayer = GetBgMap()->GetPlayer(itr->first))
|
||||||
|
pPlayer->GetAchievementMgr().StartTimedAchievementCriteria(type, entry);
|
||||||
|
}
|
||||||
|
|
||||||
void BattleGround::AddPlayer(Player *plr)
|
void BattleGround::AddPlayer(Player *plr)
|
||||||
{
|
{
|
||||||
// remove afk from player
|
// remove afk from player
|
||||||
|
|
|
||||||
|
|
@ -381,6 +381,8 @@ class BattleGround
|
||||||
|
|
||||||
void StartBattleGround();
|
void StartBattleGround();
|
||||||
|
|
||||||
|
void StartTimedAchievement(AchievementCriteriaTypes type, uint32 entry);
|
||||||
|
|
||||||
/* Location */
|
/* Location */
|
||||||
void SetMapId(uint32 MapID) { m_MapId = MapID; }
|
void SetMapId(uint32 MapID) { m_MapId = MapID; }
|
||||||
uint32 GetMapId() const { return m_MapId; }
|
uint32 GetMapId() const { return m_MapId; }
|
||||||
|
|
|
||||||
|
|
@ -174,6 +174,9 @@ void BattleGroundAB::StartingEventOpenDoors()
|
||||||
SpawnBGObject(m_BgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + buff + i * 3], RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + buff + i * 3], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
OpenDoorEvent(BG_EVENT_DOOR);
|
OpenDoorEvent(BG_EVENT_DOOR);
|
||||||
|
|
||||||
|
// Players that join battleground after start are not eligible to get achievement.
|
||||||
|
StartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, BG_AB_EVENT_START_BATTLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundAB::AddPlayer(Player *plr)
|
void BattleGroundAB::AddPlayer(Player *plr)
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,7 @@ enum BG_AB_Sounds
|
||||||
#define BG_AB_ABBGWeekendHonorTicks 200
|
#define BG_AB_ABBGWeekendHonorTicks 200
|
||||||
#define BG_AB_NotABBGWeekendReputationTicks 200
|
#define BG_AB_NotABBGWeekendReputationTicks 200
|
||||||
#define BG_AB_ABBGWeekendReputationTicks 150
|
#define BG_AB_ABBGWeekendReputationTicks 150
|
||||||
|
#define BG_AB_EVENT_START_BATTLE 9158
|
||||||
|
|
||||||
// Tick intervals and given points: case 0,1,2,3,4,5 captured nodes
|
// Tick intervals and given points: case 0,1,2,3,4,5 captured nodes
|
||||||
const uint32 BG_AB_TickIntervals[6] = {0, 12000, 9000, 6000, 3000, 1000};
|
const uint32 BG_AB_TickIntervals[6] = {0, 12000, 9000, 6000, 3000, 1000};
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,9 @@ void BattleGroundAV::StartingEventOpenDoors()
|
||||||
UpdateWorldState(BG_AV_SHOW_A_SCORE, 1);
|
UpdateWorldState(BG_AV_SHOW_A_SCORE, 1);
|
||||||
|
|
||||||
OpenDoorEvent(BG_EVENT_DOOR);
|
OpenDoorEvent(BG_EVENT_DOOR);
|
||||||
|
|
||||||
|
// Players that join battleground after start are not available to get achievement.
|
||||||
|
StartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, BG_AV_EVENT_START_BATTLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundAV::AddPlayer(Player *plr)
|
void BattleGroundAV::AddPlayer(Player *plr)
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,8 @@
|
||||||
#define BG_AV_REP_OWNED_MINE 24
|
#define BG_AV_REP_OWNED_MINE 24
|
||||||
#define BG_AV_REP_OWNED_MINE_HOLIDAY 36
|
#define BG_AV_REP_OWNED_MINE_HOLIDAY 36
|
||||||
|
|
||||||
|
#define BG_AV_EVENT_START_BATTLE 9166
|
||||||
|
|
||||||
enum BG_AV_Sounds
|
enum BG_AV_Sounds
|
||||||
{
|
{
|
||||||
BG_AV_SOUND_NEAR_LOSE = 8456, // not confirmed yet
|
BG_AV_SOUND_NEAR_LOSE = 8456, // not confirmed yet
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,9 @@ void BattleGroundEY::StartingEventOpenDoors()
|
||||||
uint8 buff = urand(0, 2);
|
uint8 buff = urand(0, 2);
|
||||||
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + buff + i * 3], RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + buff + i * 3], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Players that join battleground after start are not eligible to get achievement.
|
||||||
|
StartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, BG_EY_EVENT_START_BATTLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundEY::AddPoints(Team team, uint32 Points)
|
void BattleGroundEY::AddPoints(Team team, uint32 Points)
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,7 @@ enum EYBattleGroundObjectTypes
|
||||||
|
|
||||||
#define BG_EY_NotEYWeekendHonorTicks 330
|
#define BG_EY_NotEYWeekendHonorTicks 330
|
||||||
#define BG_EY_EYWeekendHonorTicks 200
|
#define BG_EY_EYWeekendHonorTicks 200
|
||||||
|
#define BG_EY_EVENT_START_BATTLE 13180
|
||||||
|
|
||||||
enum BG_EY_Score
|
enum BG_EY_Score
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,9 @@
|
||||||
|
|
||||||
class BattleGround;
|
class BattleGround;
|
||||||
|
|
||||||
|
#define BG_SA_EVENT_START_BATTLE_1 23748 // Ally / Horde likely
|
||||||
|
#define BG_SA_EVENT_START_BATTLE_2 21702
|
||||||
|
|
||||||
class BattleGroundSAScore : public BattleGroundScore
|
class BattleGroundSAScore : public BattleGroundScore
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,9 @@ void BattleGroundWS::StartingEventOpenDoors()
|
||||||
SpawnEvent(WS_EVENT_SPIRITGUIDES_SPAWN, 0, true);
|
SpawnEvent(WS_EVENT_SPIRITGUIDES_SPAWN, 0, true);
|
||||||
SpawnEvent(WS_EVENT_FLAG_A, 0, true);
|
SpawnEvent(WS_EVENT_FLAG_A, 0, true);
|
||||||
SpawnEvent(WS_EVENT_FLAG_H, 0, true);
|
SpawnEvent(WS_EVENT_FLAG_H, 0, true);
|
||||||
|
|
||||||
|
// Players that join battleground after start are not eligible to get achievement.
|
||||||
|
StartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, BG_WS_EVENT_START_BATTLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundWS::AddPlayer(Player *plr)
|
void BattleGroundWS::AddPlayer(Player *plr)
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
#define BG_WS_FLAG_RESPAWN_TIME (23*IN_MILLISECONDS)
|
#define BG_WS_FLAG_RESPAWN_TIME (23*IN_MILLISECONDS)
|
||||||
#define BG_WS_FLAG_DROP_TIME (10*IN_MILLISECONDS)
|
#define BG_WS_FLAG_DROP_TIME (10*IN_MILLISECONDS)
|
||||||
#define BG_WS_TIME_LIMIT (25*MINUTE*IN_MILLISECONDS)
|
#define BG_WS_TIME_LIMIT (25*MINUTE*IN_MILLISECONDS)
|
||||||
|
#define BG_WS_EVENT_START_BATTLE 8563
|
||||||
|
|
||||||
enum BG_WS_Sound
|
enum BG_WS_Sound
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "11793"
|
#define REVISION_NR "11794"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue