[8072] First step to get rid of data blob.

Adds new fields gender, level, xp, money, playerBytes, playerBytes2 and playerFlags to characters table.

    The update will not work if your database contains characters with an old data field (not fitting to the actual client version).

    It's recommended to backup your character database before applying this patch.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-06-27 17:39:51 -05:00
parent 02a5c2fcc6
commit d9ec2d2196
16 changed files with 237 additions and 185 deletions

View File

@@ -4668,11 +4668,7 @@ void ChatHandler::HandleCharacterLevel(Player* player, uint64 player_guid, uint3
else
{
// update level and XP at level, all other will be updated at loading
Tokens values;
Player::LoadValuesArrayFromDB(values,player_guid);
Player::SetUInt32ValueInArray(values,UNIT_FIELD_LEVEL,newlevel);
Player::SetUInt32ValueInArray(values,PLAYER_XP,0);
Player::SaveValuesArrayInDB(values,player_guid);
CharacterDatabase.PExecute("UPDATE characters SET level = '%u', xp = 0 WHERE guid = '%u'", newlevel, GUID_LOPART(player_guid));
}
}
@@ -4697,7 +4693,7 @@ bool ChatHandler::HandleCharacterLevelCommand(const char* args)
if(!extractPlayerTarget(nameStr,&target,&target_guid,&target_name))
return false;
int32 oldlevel = target ? target->getLevel() : Player::GetUInt32ValueFromDB(UNIT_FIELD_LEVEL,target_guid);
int32 oldlevel = target ? target->getLevel() : Player::GetLevelFromDB(target_guid);
int32 newlevel = levelStr ? atoi(levelStr) : oldlevel;
if(newlevel < 1)
@@ -4736,7 +4732,7 @@ bool ChatHandler::HandleLevelUpCommand(const char* args)
if(!extractPlayerTarget(nameStr,&target,&target_guid,&target_name))
return false;
int32 oldlevel = target ? target->getLevel() : Player::GetUInt32ValueFromDB(UNIT_FIELD_LEVEL,target_guid);
int32 oldlevel = target ? target->getLevel() : Player::GetLevelFromDB(target_guid);
int32 addlevel = levelStr ? atoi(levelStr) : 1;
int32 newlevel = oldlevel + addlevel;