aboutsummaryrefslogtreecommitdiff
path: root/src/game/Level3.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2008-11-25 16:36:50 -0600
committermegamage <none@none>2008-11-25 16:36:50 -0600
commitf6ea784eda445794bf99ba2b9f97012ea4009f59 (patch)
tree97ed434b569dd1194854908cd3fe67a9129a5e8b /src/game/Level3.cpp
parent52f2e35d65af17abfd9499232398bab338db78e1 (diff)
*Update to Mangos 6848. Source: Mangos.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Level3.cpp')
-rw-r--r--src/game/Level3.cpp125
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;
}