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
|
// Switch Languages
|
||||||
// delete all languages first
|
// delete all languages first
|
||||||
|
|
||||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SKILL_LANGUAGES);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_SKILL_LANGUAGES);
|
||||||
stmt->setUInt32(0, lowGuid);
|
stmt->setUInt32(0, lowGuid);
|
||||||
trans->Append(stmt);
|
trans->Append(stmt);
|
||||||
@@ -1733,20 +1732,17 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data)
|
|||||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
|
||||||
stmt->setUInt32(0, lowGuid);
|
stmt->setUInt32(0, lowGuid);
|
||||||
|
|
||||||
|
|
||||||
// Faction specific languages
|
// Faction specific languages
|
||||||
if (team == BG_TEAM_ALLIANCE)
|
if (team == BG_TEAM_HORDE)
|
||||||
{
|
|
||||||
stmt->setUInt16(1, 98);
|
|
||||||
}
|
|
||||||
else if (team == BG_TEAM_HORDE)
|
|
||||||
{
|
|
||||||
stmt->setUInt16(1, 109);
|
stmt->setUInt16(1, 109);
|
||||||
}
|
else
|
||||||
|
stmt->setUInt16(1, 98);
|
||||||
|
|
||||||
trans->Append(stmt);
|
trans->Append(stmt);
|
||||||
|
|
||||||
// Race specific languages
|
// Race specific languages
|
||||||
|
if (race != RACE_ORC && race != RACE_HUMAN)
|
||||||
|
{
|
||||||
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
|
stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_SKILL_LANGUAGE);
|
||||||
stmt->setUInt32(0, lowGuid);
|
stmt->setUInt32(0, lowGuid);
|
||||||
|
|
||||||
@@ -1779,6 +1775,7 @@ void WorldSession::HandleCharFactionOrRaceChange(WorldPacket& recv_data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
trans->Append(stmt);
|
trans->Append(stmt);
|
||||||
|
}
|
||||||
|
|
||||||
if (recv_data.GetOpcode() == CMSG_CHAR_FACTION_CHANGE)
|
if (recv_data.GetOpcode() == CMSG_CHAR_FACTION_CHANGE)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -912,7 +912,7 @@ void WorldSession::HandleTurnInPetitionOpcode(WorldPacket & recv_data)
|
|||||||
stmt->setUInt32(0, GUID_LOPART(petitionGuid));
|
stmt->setUInt32(0, GUID_LOPART(petitionGuid));
|
||||||
trans->Append(stmt);
|
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));
|
stmt->setUInt32(0, GUID_LOPART(petitionGuid));
|
||||||
trans->Append(stmt);
|
trans->Append(stmt);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user