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?
}