diff options
author | megamage <none@none> | 2008-11-25 16:36:50 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-11-25 16:36:50 -0600 |
commit | f6ea784eda445794bf99ba2b9f97012ea4009f59 (patch) | |
tree | 97ed434b569dd1194854908cd3fe67a9129a5e8b /src/game/Level3.cpp | |
parent | 52f2e35d65af17abfd9499232398bab338db78e1 (diff) |
*Update to Mangos 6848. Source: Mangos.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Level3.cpp')
-rw-r--r-- | src/game/Level3.cpp | 125 |
1 files changed, 70 insertions, 55 deletions
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 1fb799cde6b..43cdb2ab319 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -5673,9 +5673,23 @@ bool ChatHandler::HandleWritePDumpCommand(const char *args) if(!file || !p2) return false; - uint32 guid = objmgr.GetPlayerGUIDByName(p2); - if(!guid) + uint32 guid; + // character name can't start from number + if (isNumeric(p2[0])) guid = atoi(p2); + else + { + std::string name = p2; + + if (!normalizePlayerName (name)) + { + SendSysMessage (LANG_PLAYER_NOT_FOUND); + SetSentErrorMessage (true); + return false; + } + + guid = objmgr.GetPlayerGUIDByName(name); + } if(!objmgr.GetPlayerAccountIdByGUID(guid)) { @@ -6548,31 +6562,11 @@ bool ChatHandler::HandleSendMessageCommand(const char* args) return true; } -bool ChatHandler::HandlePlayAllCommand(const char* args) +bool ChatHandler::HandleModifyGenderCommand(const char *args) { if(!*args) return false; - uint32 soundId = atoi((char*)args); - - if(!sSoundEntriesStore.LookupEntry(soundId)) - { - PSendSysMessage(LANG_SOUND_NOT_EXIST, soundId); - SetSentErrorMessage(true); - return false; - } - - WorldPacket data(SMSG_PLAY_SOUND, 4); - data << uint32(soundId) << m_session->GetPlayer()->GetGUID(); - sWorld.SendGlobalMessage(&data); - - PSendSysMessage(LANG_COMMAND_PLAYED_TO_ALL, soundId); - return true; -} - -bool ChatHandler::HandleModifyGenderCommand(const char *args) -{ - if(!*args) return false; Player *player = getSelectedPlayer(); if(!player) @@ -6582,54 +6576,75 @@ bool ChatHandler::HandleModifyGenderCommand(const char *args) return false; } - std::string gender = (char*)args; + char const* gender_str = (char*)args; + int gender_len = strlen(gender_str); + uint32 displayId = player->GetNativeDisplayId(); + char const* gender_full = NULL; + uint32 new_displayId = displayId; + Gender gender; - if(gender == "male") // MALE + if(!strncmp(gender_str,"male",gender_len)) // MALE { if(player->getGender() == GENDER_MALE) - { - PSendSysMessage("%s is already male", player->GetName()); - SetSentErrorMessage(true); - return false; - } - - // Set gender - player->SetByteValue(UNIT_FIELD_BYTES_0, 2, GENDER_MALE); - // Change display ID - player->SetDisplayId(player->getRace() == RACE_BLOODELF ? displayId+1 : displayId-1); - player->SetNativeDisplayId(player->getRace() == RACE_BLOODELF ? displayId+1 : displayId-1); + return true; - ChatHandler(player).PSendSysMessage("Gender changed. You are now a man!"); - PSendSysMessage("Gender changed for %s", player->GetName()); - return true; + gender_full = "male"; + new_displayId = player->getRace() == RACE_BLOODELF ? displayId+1 : displayId-1; + gender = GENDER_MALE; } - else if(gender == "female") // FEMALE + else if (!strncmp(gender_str,"female",gender_len)) // FEMALE { if(player->getGender() == GENDER_FEMALE) - { - PSendSysMessage("%s is already female", player->GetName()); - SetSentErrorMessage(true); - return false; - } - - // Set gender - player->SetByteValue(UNIT_FIELD_BYTES_0, 2, GENDER_FEMALE); - // Change display ID - player->SetDisplayId(player->getRace() == RACE_BLOODELF ? displayId-1 : displayId+1); - player->SetNativeDisplayId(player->getRace() == RACE_BLOODELF ? displayId-1 : displayId+1); + return true; - ChatHandler(player).PSendSysMessage("Gender changed. You are now a woman!"); - PSendSysMessage("Gender changed for %s", player->GetName()); - return true; + gender_full = "female"; + new_displayId = player->getRace() == RACE_BLOODELF ? displayId-1 : displayId+1; + gender = GENDER_FEMALE; } else { - PSendSysMessage("You must use male or female as gender."); + SendSysMessage(LANG_MUST_MALE_OR_FEMALE); + SetSentErrorMessage(true); + return false; + } + + // Set gender + player->SetByteValue(UNIT_FIELD_BYTES_0, 2, gender); + + // Change display ID + player->SetDisplayId(new_displayId); + player->SetNativeDisplayId(new_displayId); + + PSendSysMessage(LANG_YOU_CHANGE_GENDER, player->GetName(),gender_full); + if (needReportToTarget(player)) + ChatHandler(player).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full,GetName()); + return true; +} + +/*------------------------------------------ + *-------------TRINITY---------------------- + *-------------------------------------*/ + +bool ChatHandler::HandlePlayAllCommand(const char* args) +{ + if(!*args) + return false; + + uint32 soundId = atoi((char*)args); + + if(!sSoundEntriesStore.LookupEntry(soundId)) + { + PSendSysMessage(LANG_SOUND_NOT_EXIST, soundId); SetSentErrorMessage(true); return false; } + WorldPacket data(SMSG_PLAY_SOUND, 4); + data << uint32(soundId) << m_session->GetPlayer()->GetGUID(); + sWorld.SendGlobalMessage(&data); + + PSendSysMessage(LANG_COMMAND_PLAYED_TO_ALL, soundId); return true; } |