Allow Wintergrasp honor rewards to be customized. Please update your trinitycore.conf.

--HG--
branch : trunk
This commit is contained in:
Machiavelli
2009-09-11 17:51:32 +02:00
parent f6ace3aa0a
commit 5bd67d1b4b
6 changed files with 98 additions and 9 deletions
+38 -7
View File
@@ -292,6 +292,10 @@ bool OPvPWintergrasp::SetupOutdoorPvP()
m_wartime = false;
m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME) * MINUTE * IN_MILISECONDS;
if(sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR))
for(int i = 0; i < WG_REWARD_EVENT_MAX; ++i)
m_customHonorReward[i] = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_0 + i);
RegisterZone(ZONE_WINTERGRASP);
return true;
}
@@ -317,7 +321,16 @@ void OPvPWintergrasp::ProcessEvent(GameObject *obj, uint32 eventId)
state->damageState = DAMAGE_DAMAGED;
if(state->type == BUILDING_TOWER)
LieutenantCastSpell(m_defender, SPELL_DAMAGED_TOWER);
{
if(sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR))
{
for(PlayerSet::const_iterator itr = m_players[m_defender].begin(); itr != m_players[m_defender].end(); ++itr)
if((*itr)->HasAura(SPELL_LIEUTENANT) && ((*itr)->getLevel() > 69))
(*itr)->ModifyHonorPoints(m_customHonorReward[DAMAGED_TOWER]);
}
else
LieutenantCastSpell(m_defender, SPELL_DAMAGED_TOWER);
}
}
else if(eventId == obj->GetGOInfo()->building.destroyedEvent)
{
@@ -336,7 +349,14 @@ void OPvPWintergrasp::ProcessEvent(GameObject *obj, uint32 eventId)
else
{
--m_towerCount;
LieutenantCastSpell(m_defender, SPELL_DESTROYED_TOWER);
if(sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR))
{
for(PlayerSet::const_iterator itr = m_players[m_defender].begin(); itr != m_players[m_defender].end(); ++itr)
if((*itr)->HasAura(SPELL_LIEUTENANT) && ((*itr)->getLevel() > 69))
(*itr)->ModifyHonorPoints(m_customHonorReward[DESTROYED_TOWER]);
}
else
LieutenantCastSpell(m_defender, SPELL_DESTROYED_TOWER);
}
}
}
@@ -901,11 +921,22 @@ void OPvPWintergrasp::EndBattle()
{
if((*itr)->HasAura(SPELL_LIEUTENANT))
{
(*itr)->CastSpell(*itr, team == m_defender ? SPELL_VICTORY_REWARD : SPELL_DEFEAT_REWARD, true);
for(uint32 i = 0; i < intactNum; ++i)
(*itr)->CastSpell(*itr, SPELL_INTACT_BUILDING, true);
for(uint32 i = 0; i < damagedNum; ++i)
(*itr)->CastSpell(*itr, SPELL_DAMAGED_BUILDING, true);
if(!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR))
{
(*itr)->CastSpell(*itr, team == m_defender ? SPELL_VICTORY_REWARD : SPELL_DEFEAT_REWARD, true);
for(uint32 i = 0; i < intactNum; ++i)
(*itr)->CastSpell(*itr, SPELL_INTACT_BUILDING, true);
for(uint32 i = 0; i < damagedNum; ++i)
(*itr)->CastSpell(*itr, SPELL_DAMAGED_BUILDING, true);
}
else if(sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR))
{
(*itr)->ModifyHonorPoints( team == m_defender ? m_customHonorReward[WIN_BATTLE] : m_customHonorReward[LOSE_BATTLE] );
for(uint32 i = 0; i < intactNum; ++i)
(*itr)->ModifyHonorPoints(m_customHonorReward[INTACT_BUILDING]);
for(uint32 i = 0; i < damagedNum; ++i)
(*itr)->ModifyHonorPoints(m_customHonorReward[DAMAGED_BUILDING]);
}
}
REMOVE_RANK_AURAS(*itr);
}
+12
View File
@@ -50,6 +50,17 @@ enum WintergraspSpell
SPELL_SHUTDOWN_VEHICLE = 21247,
};
enum WintergraspRewardEvent
{
WIN_BATTLE,
LOSE_BATTLE,
DAMAGED_TOWER,
DESTROYED_TOWER,
DAMAGED_BUILDING,
INTACT_BUILDING,
WG_REWARD_EVENT_MAX
};
#define MAX_VEHICLE_PER_WORKSHOP 4
const uint32 WG_KEEP_CM = 0; //Need data
@@ -202,6 +213,7 @@ class OPvPWintergrasp : public OutdoorPvP
uint32 m_clock[5];
uint32 m_workshopCount[2];
uint32 m_towerCount;
uint32 m_customHonorReward[WG_REWARD_EVENT_MAX];
SiegeWorkshop *GetWorkshop(uint32 lowguid) const;
SiegeWorkshop *GetWorkshopByEngGuid(uint32 lowguid) const;
+8
View File
@@ -1161,6 +1161,14 @@ void World::LoadConfigSettings(bool reload)
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.StartTime", 30);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.BattleTime", 30);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.Interval", 150);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR] = sConfig.GetBoolDefault("OutdoorPvP.Wintergrasp.CustomHonorRewards", false);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_0] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.CustomHonorBattleWin", 0);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_1] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.CustomHonorBattleLose", 0);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_2] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.CustomHonorDamageTower", 0);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_3] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.CustomHonorDestroyedTower", 0);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_4] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.CustomHonorDamagedBuilding", 0);
m_configs[CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_5] = sConfig.GetIntDefault("OutdoorPvP.Wintergrasp.CustomHonorIntactBuilding", 0);
m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false);
m_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false);
m_configs[CONFIG_INTERVAL_LOG_UPDATE] = sConfig.GetIntDefault("RecordUpdateTimeDiffInterval", 60000);
+7
View File
@@ -240,6 +240,13 @@ enum WorldConfigs
CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME,
CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME,
CONFIG_OUTDOORPVP_WINTERGRASP_INTERVAL,
CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR,
CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_0,
CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_1,
CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_2,
CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_3,
CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_4,
CONFIG_OUTDOORPVP_WINTERGRASP_CUSTOM_HONOR_5,
CONFIG_NO_RESET_TALENT_COST,
CONFIG_SHOW_KICK_IN_WORLD,
CONFIG_INTERVAL_LOG_UPDATE,