feat(Core/conf): Move arena charters cost to config (#2790)

Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
This commit is contained in:
IntelligentQuantum
2020-05-04 14:31:19 +04:30
committed by GitHub
parent dc0891a2f5
commit c9b7c75e1e
4 changed files with 37 additions and 19 deletions

View File

@@ -31,14 +31,6 @@ enum CharterItemIDs
ARENA_TEAM_CHARTER_5v5 = 23562
};
enum CharterCosts
{
GUILD_CHARTER_COST = 1000,
ARENA_TEAM_CHARTER_2v2_COST = 800000,
ARENA_TEAM_CHARTER_3v3_COST = 1200000,
ARENA_TEAM_CHARTER_5v5_COST = 2000000
};
void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recvData)
{
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
@@ -101,7 +93,7 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recvData)
return;
charterid = GUILD_CHARTER;
cost = GUILD_CHARTER_COST;
cost = sWorld->getIntConfig(CONFIG_CHARTER_COST_GUILD);
type = GUILD_CHARTER_TYPE;
}
else
@@ -117,17 +109,17 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recvData)
{
case 1:
charterid = ARENA_TEAM_CHARTER_2v2;
cost = ARENA_TEAM_CHARTER_2v2_COST;
cost = sWorld->getIntConfig(CONFIG_CHARTER_COST_ARENA_2v2);
type = ARENA_TEAM_CHARTER_2v2_TYPE;
break;
case 2:
charterid = ARENA_TEAM_CHARTER_3v3;
cost = ARENA_TEAM_CHARTER_3v3_COST;
cost = sWorld->getIntConfig(CONFIG_CHARTER_COST_ARENA_3v3);
type = ARENA_TEAM_CHARTER_3v3_TYPE;
break;
case 3:
charterid = ARENA_TEAM_CHARTER_5v5;
cost = ARENA_TEAM_CHARTER_5v5_COST;
cost = sWorld->getIntConfig(CONFIG_CHARTER_COST_ARENA_5v5);
type = ARENA_TEAM_CHARTER_5v5_TYPE;
break;
default:
@@ -211,7 +203,7 @@ void WorldSession::HandlePetitionBuyOpcode(WorldPacket & recvData)
CharacterDatabase.EscapeString(name);
SQLTransaction trans = CharacterDatabase.BeginTransaction();
if (petition)
{
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
@@ -499,14 +491,14 @@ void WorldSession::HandlePetitionSignOpcode(WorldPacket & recvData)
}
}
uint32 signs = signatures->signatureMap.size();
if (++signs > type) // client signs maximum
return;
// Client doesn't allow to sign petition two times by one character, but not check sign by another character from same account
// not allow sign another player from already sign player account
bool found = false;
for (SignatureMap::const_iterator itr = signatures->signatureMap.begin(); itr != signatures->signatureMap.end(); ++itr)
if (itr->second == GetAccountId())
@@ -895,7 +887,7 @@ void WorldSession::SendPetitionShowList(uint64 guid)
data << uint32(1); // index
data << uint32(GUILD_CHARTER); // charter entry
data << uint32(CHARTER_DISPLAY_ID); // charter display id
data << uint32(GUILD_CHARTER_COST); // charter cost
data << uint32(sWorld->getIntConfig(CONFIG_CHARTER_COST_GUILD)); // charter cost
data << uint32(0); // unknown
data << uint32(sWorld->getIntConfig(CONFIG_MIN_PETITION_SIGNS)); // required signs
}
@@ -906,21 +898,21 @@ void WorldSession::SendPetitionShowList(uint64 guid)
data << uint32(1); // index
data << uint32(ARENA_TEAM_CHARTER_2v2); // charter entry
data << uint32(CHARTER_DISPLAY_ID); // charter display id
data << uint32(ARENA_TEAM_CHARTER_2v2_COST); // charter cost
data << uint32(sWorld->getIntConfig(CONFIG_CHARTER_COST_ARENA_2v2)); // charter cost
data << uint32(2); // unknown
data << uint32(2); // required signs?
// 3v3
data << uint32(2); // index
data << uint32(ARENA_TEAM_CHARTER_3v3); // charter entry
data << uint32(CHARTER_DISPLAY_ID); // charter display id
data << uint32(ARENA_TEAM_CHARTER_3v3_COST); // charter cost
data << uint32(sWorld->getIntConfig(CONFIG_CHARTER_COST_ARENA_3v3)); // charter cost
data << uint32(3); // unknown
data << uint32(3); // required signs?
// 5v5
data << uint32(3); // index
data << uint32(ARENA_TEAM_CHARTER_5v5); // charter entry
data << uint32(CHARTER_DISPLAY_ID); // charter display id
data << uint32(ARENA_TEAM_CHARTER_5v5_COST); // charter cost
data << uint32(sWorld->getIntConfig(CONFIG_CHARTER_COST_ARENA_5v5)); // charter cost
data << uint32(5); // unknown
data << uint32(5); // required signs?
}

View File

@@ -788,6 +788,11 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_MIN_PET_NAME] = 2;
}
m_int_configs[CONFIG_CHARTER_COST_GUILD] = sConfigMgr->GetIntDefault("Guild.CharterCost", 1000);
m_int_configs[CONFIG_CHARTER_COST_ARENA_2v2] = sConfigMgr->GetIntDefault("ArenaTeam.CharterCost.2v2", 800000);
m_int_configs[CONFIG_CHARTER_COST_ARENA_3v3] = sConfigMgr->GetIntDefault("ArenaTeam.CharterCost.3v3", 1200000);
m_int_configs[CONFIG_CHARTER_COST_ARENA_5v5] = sConfigMgr->GetIntDefault("ArenaTeam.CharterCost.5v5", 2000000);
m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED] = sConfigMgr->GetIntDefault("CharacterCreating.Disabled", 0);
m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED_RACEMASK] = sConfigMgr->GetIntDefault("CharacterCreating.Disabled.RaceMask", 0);
m_int_configs[CONFIG_CHARACTER_CREATING_DISABLED_CLASSMASK] = sConfigMgr->GetIntDefault("CharacterCreating.Disabled.ClassMask", 0);

View File

@@ -353,6 +353,10 @@ enum WorldIntConfigs
CONFIG_ICC_BUFF_ALLIANCE,
CONFIG_ITEMDELETE_QUALITY,
CONFIG_ITEMDELETE_ITEM_LEVEL,
CONFIG_CHARTER_COST_GUILD,
CONFIG_CHARTER_COST_ARENA_2v2,
CONFIG_CHARTER_COST_ARENA_3v3,
CONFIG_CHARTER_COST_ARENA_5v5,
CONFIG_WAYPOINT_MOVEMENT_STOP_TIME_FOR_PLAYER,
INT_CONFIG_VALUE_COUNT
};
@@ -377,6 +381,7 @@ enum Rates
RATE_DROP_ITEM_LEGENDARY,
RATE_DROP_ITEM_ARTIFACT,
RATE_DROP_ITEM_REFERENCED,
RATE_DROP_ITEM_REFERENCED_AMOUNT,
RATE_SELLVALUE_ITEM_POOR,
RATE_SELLVALUE_ITEM_NORMAL,

View File

@@ -988,6 +988,22 @@ MinCharterName = 2
MinPetName = 2
#
# Guild.CharterCost
# ArenaTeam.CharterCost.2v2
# ArenaTeam.CharterCost.3v3
# ArenaTeam.CharterCost.5v5
# Description: Amount of money (in Copper) the petitions costs.
# Default: 1000 - (10 Silver)
# 800000 - (80 Gold)
# 1200000 - (120 Gold)
# 2000000 - (200 Gold)
Guild.CharterCost = 1000
ArenaTeam.CharterCost.2v2 = 800000
ArenaTeam.CharterCost.3v3 = 1200000
ArenaTeam.CharterCost.5v5 = 2000000
#
# MaxWhoListReturns
# Description: Set the max number of players returned in the /who list and interface.