diff options
author | AriDEV <aridev666@gmail.com> | 2014-12-27 01:55:27 +0000 |
---|---|---|
committer | Nayd <dnpd.dd@gmail.com> | 2014-12-27 01:55:27 +0000 |
commit | ae681a96ccf6ce746c2365b993681ec71ff632a7 (patch) | |
tree | ec4ce3781256e1fdf48fd4e7e4d7618a26e1cc1d /src | |
parent | 1f58c5313b6252d9dbe436f0539eb4a08056bcfb (diff) |
Server/Currency: Implement Apexis Crystals
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DataStores/DBCEnums.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 | ||||
-rw-r--r-- | src/server/game/World/World.cpp | 14 | ||||
-rw-r--r-- | src/server/game/World/World.h | 2 | ||||
-rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 16 |
5 files changed, 42 insertions, 0 deletions
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 9aefb440d98..3187b5f9f77 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -611,6 +611,7 @@ enum CurrencyTypes CURRENCY_TYPE_VALOR_POINTS = 396, CURRENCY_TYPE_CONQUEST_META_ARENA = 483, CURRENCY_TYPE_CONQUEST_META_RBG = 484, + CURRENCY_TYPE_APEXIS_CRYSTALS = 823, }; #endif diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 367f1f57d3a..9129aca8078 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1039,6 +1039,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac SetUInt32Value(PLAYER_FIELD_COINAGE, sWorld->getIntConfig(CONFIG_START_PLAYER_MONEY)); SetCurrency(CURRENCY_TYPE_HONOR_POINTS, sWorld->getIntConfig(CONFIG_CURRENCY_START_HONOR_POINTS)); + SetCurrency(CURRENCY_TYPE_APEXIS_CRYSTALS, sWorld->getIntConfig(CONFIG_CURRENCY_START_APEXIS_CRYSTALS)); SetCurrency(CURRENCY_TYPE_JUSTICE_POINTS, sWorld->getIntConfig(CONFIG_CURRENCY_START_JUSTICE_POINTS)); SetCurrency(CURRENCY_TYPE_CONQUEST_POINTS, sWorld->getIntConfig(CONFIG_CURRENCY_START_CONQUEST_POINTS)); @@ -7302,6 +7303,7 @@ uint32 Player::GetCurrencyWeekCap(CurrencyTypesEntry const* currency) const uint32 Player::GetCurrencyTotalCap(CurrencyTypesEntry const* currency) const { + // @TODO: Possibly use caps from CurrencyTypes.dbc uint32 cap = currency->MaxQty; switch (currency->ID) @@ -7313,6 +7315,13 @@ uint32 Player::GetCurrencyTotalCap(CurrencyTypesEntry const* currency) const cap = honorcap; break; } + case CURRENCY_TYPE_APEXIS_CRYSTALS: + { + uint32 apexiscap = sWorld->getIntConfig(CONFIG_CURRENCY_MAX_APEXIS_CRYSTALS); + if (apexiscap > 0) + cap = apexiscap; + break; + } case CURRENCY_TYPE_JUSTICE_POINTS: { uint32 justicecap = sWorld->getIntConfig(CONFIG_CURRENCY_MAX_JUSTICE_POINTS); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index eddad11e593..5c8706da09c 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -851,6 +851,20 @@ void World::LoadConfigSettings(bool reload) } m_int_configs[CONFIG_CURRENCY_MAX_HONOR_POINTS] *= 100; //precision mod + m_int_configs[CONFIG_CURRENCY_START_APEXIS_CRYSTALS] = sConfigMgr->GetIntDefault("Currency.StartApexisCrystals", 0); + if (int32(m_int_configs[CONFIG_CURRENCY_START_APEXIS_CRYSTALS]) < 0) + { + TC_LOG_ERROR("server.loading", "Currency.StartApexisCrystals (%i) must be >= 0, set to default 0.", m_int_configs[CONFIG_CURRENCY_START_APEXIS_CRYSTALS]); + m_int_configs[CONFIG_CURRENCY_START_APEXIS_CRYSTALS] = 0; + } + m_int_configs[CONFIG_CURRENCY_MAX_APEXIS_CRYSTALS] = sConfigMgr->GetIntDefault("Currency.MaxApexisCrystals", 20000); + if (int32(m_int_configs[CONFIG_CURRENCY_MAX_APEXIS_CRYSTALS]) < 0) + { + TC_LOG_ERROR("server.loading", "Currency.MaxApexisCrystals (%i) can't be negative. Set to default 20000.", m_int_configs[CONFIG_CURRENCY_MAX_APEXIS_CRYSTALS]); + m_int_configs[CONFIG_CURRENCY_MAX_APEXIS_CRYSTALS] = 20000; + } + m_int_configs[CONFIG_CURRENCY_MAX_APEXIS_CRYSTALS] *= 100; //precision mod + m_int_configs[CONFIG_CURRENCY_START_JUSTICE_POINTS] = sConfigMgr->GetIntDefault("Currency.StartJusticePoints", 0); if (int32(m_int_configs[CONFIG_CURRENCY_START_JUSTICE_POINTS]) < 0) { diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 7f583da894b..8f77ab786c7 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -229,6 +229,8 @@ enum WorldIntConfigs CONFIG_START_PLAYER_LEVEL, CONFIG_START_HEROIC_PLAYER_LEVEL, CONFIG_START_PLAYER_MONEY, + CONFIG_CURRENCY_START_APEXIS_CRYSTALS, + CONFIG_CURRENCY_MAX_APEXIS_CRYSTALS, CONFIG_CURRENCY_START_JUSTICE_POINTS, CONFIG_CURRENCY_MAX_JUSTICE_POINTS, CONFIG_CURRENCY_START_HONOR_POINTS, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 11c081bea44..3e3a04aee55 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -3250,6 +3250,22 @@ Currency.StartHonorPoints = 0 Currency.MaxHonorPoints = 4000 # +# Currency.StartApexisCrystals +# Amount of Apexis Crystals that new players will start with +# Default: 0 (with precision) +# + +Currency.StartApexisCrystals = 0 + +# +# Currency.MaxApexisCrystals +# Amount Apexis Crystals a player can have +# Default: 20000 +# + +Currency.MaxApexisCrystals = 20000 + +# # Currency.StartJusticePoints # Amount of justice points that new players will start with # Default: 0 (with precision) |