mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-15 01:59:09 +00:00
Fix corrupt item cache crashes, bot whispers, trade crashes
This commit is contained in:
@@ -58,19 +58,9 @@
|
||||
#include "WorldPacket.h"
|
||||
#include "WorldSession.h"
|
||||
|
||||
class LoginQueryHolder : public CharacterDatabaseQueryHolder
|
||||
LoginQueryHolder::LoginQueryHolder(uint32 accountId, ObjectGuid guid) : m_accountId(accountId), m_guid(guid)
|
||||
{
|
||||
private:
|
||||
uint32 m_accountId;
|
||||
ObjectGuid m_guid;
|
||||
public:
|
||||
LoginQueryHolder(uint32 accountId, ObjectGuid guid)
|
||||
: m_accountId(accountId), m_guid(guid) { }
|
||||
|
||||
ObjectGuid GetGuid() const { return m_guid; }
|
||||
uint32 GetAccountId() const { return m_accountId; }
|
||||
bool Initialize();
|
||||
};
|
||||
}
|
||||
|
||||
bool LoginQueryHolder::Initialize()
|
||||
{
|
||||
@@ -561,7 +551,12 @@ void WorldSession::HandleCharCreateOpcode(WorldPacket& recvData)
|
||||
newChar->SaveToDB(characterTransaction, true, false);
|
||||
createInfo->CharCount++;
|
||||
|
||||
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_REP_REALM_CHARACTERS);
|
||||
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_DEL_REALM_CHARACTERS_BY_REALM);
|
||||
stmt->SetData(0, GetAccountId());
|
||||
stmt->SetData(1, realm.Id.Realm);
|
||||
trans->Append(stmt);
|
||||
|
||||
stmt = LoginDatabase.GetPreparedStatement(LOGIN_REP_REALM_CHARACTERS);
|
||||
stmt->SetData(0, createInfo->CharCount);
|
||||
stmt->SetData(1, GetAccountId());
|
||||
stmt->SetData(2, realm.Id.Realm);
|
||||
@@ -897,8 +892,7 @@ void WorldSession::HandlePlayerLoginFromDB(LoginQueryHolder const& holder)
|
||||
CharacterDatabase.Execute(stmt);
|
||||
|
||||
LoginDatabasePreparedStatement* loginStmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_ONLINE);
|
||||
loginStmt->SetData(0, realm.Id.Realm);
|
||||
loginStmt->SetData(1, GetAccountId());
|
||||
loginStmt->SetData(0, GetAccountId());
|
||||
LoginDatabase.Execute(loginStmt);
|
||||
|
||||
pCurrChar->SetInGameTime(GameTime::GetGameTimeMS().count());
|
||||
|
||||
Reference in New Issue
Block a user