Core/DBLayer: Fixed some crashes caused by incorrect prepared statements usage
Closes #5934
This commit is contained in:
@@ -1724,7 +1724,6 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data)
|
||||
|
||||
// Switch Languages
|
||||
// delete all languages first
|
||||
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SKILL_LANGUAGES);
|
||||
stmt->setUInt32(0, lowGuid);
|
||||
trans->Append(stmt);
|
||||
@@ -1733,20 +1732,17 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data)
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
|
||||
stmt->setUInt32(0, lowGuid);
|
||||
|
||||
|
||||
// Faction specific languages
|
||||
if (team == BG_TEAM_ALLIANCE)
|
||||
{
|
||||
stmt->setUInt16(1, 98);
|
||||
}
|
||||
else if (team == BG_TEAM_HORDE)
|
||||
{
|
||||
if (team == BG_TEAM_HORDE)
|
||||
stmt->setUInt16(1, 109);
|
||||
}
|
||||
else
|
||||
stmt->setUInt16(1, 98);
|
||||
|
||||
trans->Append(stmt);
|
||||
|
||||
// Race specific languages
|
||||
if (race != RACE_ORC && race != RACE_HUMAN)
|
||||
{
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
|
||||
stmt->setUInt32(0, lowGuid);
|
||||
|
||||
@@ -1779,6 +1775,7 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data)
|
||||
}
|
||||
|
||||
trans->Append(stmt);
|
||||
}
|
||||
|
||||
if (recv_data.GetOpcode() == CMSG_CHAR_FACTION_CHANGE)
|
||||
{
|
||||
|
||||
@@ -912,7 +912,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data)
|
||||
stmt->setUInt32(0, GUID_LOPART(petitionGuid));
|
||||
trans->Append(stmt);
|
||||
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE);
|
||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PETITION_SIGNATURE_BY_GUID);
|
||||
stmt->setUInt32(0, GUID_LOPART(petitionGuid));
|
||||
trans->Append(stmt);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user