mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[8304] Move standup code to login, remove other not needed data change at save.
Now players saved as-is without any modifications.
This commit is contained in:
parent
359229100e
commit
8af151eee7
3 changed files with 30 additions and 64 deletions
|
|
@ -836,6 +836,9 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder * holder)
|
||||||
sLog.outChar("Account: %d (IP: %s) Login Character:[%s] (guid:%u)",
|
sLog.outChar("Account: %d (IP: %s) Login Character:[%s] (guid:%u)",
|
||||||
GetAccountId(),IP_str.c_str(),pCurrChar->GetName() ,pCurrChar->GetGUIDLow());
|
GetAccountId(),IP_str.c_str(),pCurrChar->GetName() ,pCurrChar->GetGUIDLow());
|
||||||
|
|
||||||
|
if(!pCurrChar->IsStandState() && !pCurrChar->hasUnitState(UNIT_STAT_STUNNED))
|
||||||
|
pCurrChar->SetStandState(UNIT_STAND_STATE_STAND);
|
||||||
|
|
||||||
m_playerLoading = false;
|
m_playerLoading = false;
|
||||||
delete holder;
|
delete holder;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15503,23 +15503,9 @@ void Player::SaveToDB()
|
||||||
// first save/honor gain after midnight will also update the player's honor fields
|
// first save/honor gain after midnight will also update the player's honor fields
|
||||||
UpdateHonorFields();
|
UpdateHonorFields();
|
||||||
|
|
||||||
int is_save_resting = HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0;
|
|
||||||
//save, far from tavern/city
|
|
||||||
//save, but in tavern/city
|
|
||||||
sLog.outDebug("The value of player %s at save: ", m_name.c_str());
|
sLog.outDebug("The value of player %s at save: ", m_name.c_str());
|
||||||
outDebugValues();
|
outDebugValues();
|
||||||
|
|
||||||
// save state (after auras removing), if aura remove some flags then it must set it back by self)
|
|
||||||
uint32 tmp_bytes = GetUInt32Value(UNIT_FIELD_BYTES_1);
|
|
||||||
uint32 tmp_flags = GetUInt32Value(UNIT_FIELD_FLAGS);
|
|
||||||
uint32 tmp_displayid = GetDisplayId();
|
|
||||||
|
|
||||||
// Set player sit state to standing on save, also stealth and shifted form
|
|
||||||
SetByteValue(UNIT_FIELD_BYTES_1, 0, UNIT_STAND_STATE_STAND);
|
|
||||||
RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
|
|
||||||
|
|
||||||
bool inworld = IsInWorld();
|
|
||||||
|
|
||||||
CharacterDatabase.BeginTransaction();
|
CharacterDatabase.BeginTransaction();
|
||||||
|
|
||||||
CharacterDatabase.PExecute("DELETE FROM characters WHERE guid = '%u'",GetGUIDLow());
|
CharacterDatabase.PExecute("DELETE FROM characters WHERE guid = '%u'",GetGUIDLow());
|
||||||
|
|
@ -15574,66 +15560,47 @@ void Player::SaveToDB()
|
||||||
|
|
||||||
ss << "', ";
|
ss << "', ";
|
||||||
|
|
||||||
ss << m_taxi; // string with TaxiMaskSize numbers
|
ss << m_taxi << ", "; // string with TaxiMaskSize numbers
|
||||||
|
|
||||||
ss << ", ";
|
ss << (IsInWorld() ? 1 : 0) << ", ";
|
||||||
ss << (inworld ? 1 : 0);
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << m_cinematic << ", ";
|
||||||
ss << m_cinematic;
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << m_Played_time[PLAYED_TIME_TOTAL] << ", ";
|
||||||
ss << m_Played_time[PLAYED_TIME_TOTAL];
|
ss << m_Played_time[PLAYED_TIME_LEVEL] << ", ";
|
||||||
ss << ", ";
|
|
||||||
ss << m_Played_time[PLAYED_TIME_LEVEL];
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << finiteAlways(m_rest_bonus) << ", ";
|
||||||
ss << finiteAlways(m_rest_bonus);
|
ss << (uint64)time(NULL) << ", ";
|
||||||
ss << ", ";
|
ss << (HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_RESTING) ? 1 : 0) << ", ";
|
||||||
ss << (uint64)time(NULL);
|
//save, far from tavern/city
|
||||||
ss << ", ";
|
//save, but in tavern/city
|
||||||
ss << is_save_resting;
|
ss << m_resetTalentsCost << ", ";
|
||||||
ss << ", ";
|
ss << (uint64)m_resetTalentsTime << ", ";
|
||||||
ss << m_resetTalentsCost;
|
|
||||||
ss << ", ";
|
|
||||||
ss << (uint64)m_resetTalentsTime;
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << finiteAlways(m_movementInfo.t_x) << ", ";
|
||||||
ss << finiteAlways(m_movementInfo.t_x);
|
ss << finiteAlways(m_movementInfo.t_y) << ", ";
|
||||||
ss << ", ";
|
ss << finiteAlways(m_movementInfo.t_z) << ", ";
|
||||||
ss << finiteAlways(m_movementInfo.t_y);
|
ss << finiteAlways(m_movementInfo.t_o) << ", ";
|
||||||
ss << ", ";
|
|
||||||
ss << finiteAlways(m_movementInfo.t_z);
|
|
||||||
ss << ", ";
|
|
||||||
ss << finiteAlways(m_movementInfo.t_o);
|
|
||||||
ss << ", ";
|
|
||||||
if (m_transport)
|
if (m_transport)
|
||||||
ss << m_transport->GetGUIDLow();
|
ss << m_transport->GetGUIDLow();
|
||||||
else
|
else
|
||||||
ss << "0";
|
ss << "0";
|
||||||
|
ss << ", ";
|
||||||
|
|
||||||
ss << ", ";
|
ss << m_ExtraFlags << ", ";
|
||||||
ss << m_ExtraFlags;
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << uint32(m_stableSlots) << ", "; // to prevent save uint8 as char
|
||||||
ss << uint32(m_stableSlots); // to prevent save uint8 as char
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << uint32(m_atLoginFlags) << ", ";
|
||||||
ss << uint32(m_atLoginFlags);
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << GetZoneId() << ", ";
|
||||||
ss << GetZoneId();
|
|
||||||
|
|
||||||
ss << ", ";
|
ss << (uint64)m_deathExpireTime << ", '";
|
||||||
ss << (uint64)m_deathExpireTime;
|
|
||||||
|
|
||||||
ss << ", '";
|
ss << m_taxi.SaveTaxiDestinationsToString() << "', ";
|
||||||
ss << m_taxi.SaveTaxiDestinationsToString();
|
ss << "'0', "; // arena_pending_points
|
||||||
ss << "', '0', ";
|
ss << GetBattleGroundId() << ", ";
|
||||||
ss << GetBattleGroundId();
|
ss << GetBGTeam() << ", ";
|
||||||
ss << ", ";
|
|
||||||
ss << GetBGTeam();
|
|
||||||
ss << ", ";
|
|
||||||
ss << m_bgEntryPoint.mapid << ", "
|
ss << m_bgEntryPoint.mapid << ", "
|
||||||
<< finiteAlways(m_bgEntryPoint.coord_x) << ", "
|
<< finiteAlways(m_bgEntryPoint.coord_x) << ", "
|
||||||
<< finiteAlways(m_bgEntryPoint.coord_y) << ", "
|
<< finiteAlways(m_bgEntryPoint.coord_y) << ", "
|
||||||
|
|
@ -15660,10 +15627,6 @@ void Player::SaveToDB()
|
||||||
|
|
||||||
CharacterDatabase.CommitTransaction();
|
CharacterDatabase.CommitTransaction();
|
||||||
|
|
||||||
// restore state (before aura apply, if aura remove flag then aura must set it ack by self)
|
|
||||||
SetUInt32Value(UNIT_FIELD_BYTES_1, tmp_bytes);
|
|
||||||
SetUInt32Value(UNIT_FIELD_FLAGS, tmp_flags);
|
|
||||||
|
|
||||||
// save pet (hunter pet level and experience and all type pets health/mana).
|
// save pet (hunter pet level and experience and all type pets health/mana).
|
||||||
if(Pet* pet = GetPet())
|
if(Pet* pet = GetPet())
|
||||||
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
|
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8303"
|
#define REVISION_NR "8304"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue