Core/DBLayer: Correct a type in HandleUnFreezeCommand (lowguid)

This commit is contained in:
kaelima
2012-04-09 14:26:50 +02:00
parent 5f52cb0d8c
commit 3988e8ed96
+17 -18
View File
@@ -4593,22 +4593,21 @@ bool ChatHandler::HandleUnFreezeCommand(const char *args)
{ {
std::string name; std::string name;
Player* player; Player* player;
char *TargetName = strtok((char*)args, " "); //get entered name char* targetName = strtok((char*)args, " "); // Get entered name
if (!TargetName) //if no name entered use target
{
player = getSelectedPlayer();
if (player) //prevent crash with creature as target
name = player->GetName();
}
else // if name entered if (targetName)
{ {
name = TargetName; name = targetName;
normalizePlayerName(name); normalizePlayerName(name);
player = sObjectAccessor->FindPlayerByName(name.c_str()); player = sObjectAccessor->FindPlayerByName(name.c_str());
} }
else // If no name was entered - use target
{
player = getSelectedPlayer();
if (player)
name = player->GetName();
}
//effect
if (player) if (player)
{ {
PSendSysMessage(LANG_COMMAND_UNFREEZE, name.c_str()); PSendSysMessage(LANG_COMMAND_UNFREEZE, name.c_str());
@@ -4617,16 +4616,15 @@ bool ChatHandler::HandleUnFreezeCommand(const char *args)
player->setFactionForRace(player->getRace()); player->setFactionForRace(player->getRace());
player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); player->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
//allow movement and spells // Remove Freeze spell (allowing movement and spells)
player->RemoveAurasDueToSpell(9454); player->RemoveAurasDueToSpell(9454);
//save player // Save player
player->SaveToDB(); player->SaveToDB();
} }
else
if (!player)
{ {
if (TargetName) if (targetName)
{ {
// Check for offline players // Check for offline players
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_GUID_BY_NAME); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_GUID_BY_NAME);
@@ -4638,12 +4636,13 @@ bool ChatHandler::HandleUnFreezeCommand(const char *args)
SendSysMessage(LANG_COMMAND_FREEZE_WRONG); SendSysMessage(LANG_COMMAND_FREEZE_WRONG);
return true; return true;
} }
//if player found: delete his freeze aura
// If player found: delete his freeze aura
Field* fields = result->Fetch(); Field* fields = result->Fetch();
uint64 pguid = fields[0].GetUInt64(); uint32 lowGuid = fields[0].GetUInt32();
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_AURA_FROZEN); stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_CHAR_AURA_FROZEN);
stmt->setUInt32(0, pguid); stmt->setUInt32(0, lowGuid);
CharacterDatabase.Execute(stmt); CharacterDatabase.Execute(stmt);
PSendSysMessage(LANG_COMMAND_UNFREEZE, name.c_str()); PSendSysMessage(LANG_COMMAND_UNFREEZE, name.c_str());