mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 00:18:43 +01:00
*Update to Mangos 6848. Source: Mangos.
--HG-- branch : trunk
This commit is contained in:
@@ -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,6 +6562,70 @@ bool ChatHandler::HandleSendMessageCommand(const char* args)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleModifyGenderCommand(const char *args)
|
||||
{
|
||||
if(!*args)
|
||||
return false;
|
||||
|
||||
Player *player = getSelectedPlayer();
|
||||
|
||||
if(!player)
|
||||
{
|
||||
PSendSysMessage(LANG_NO_PLAYER);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
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(!strncmp(gender_str,"male",gender_len)) // MALE
|
||||
{
|
||||
if(player->getGender() == GENDER_MALE)
|
||||
return true;
|
||||
|
||||
gender_full = "male";
|
||||
new_displayId = player->getRace() == RACE_BLOODELF ? displayId+1 : displayId-1;
|
||||
gender = GENDER_MALE;
|
||||
}
|
||||
else if (!strncmp(gender_str,"female",gender_len)) // FEMALE
|
||||
{
|
||||
if(player->getGender() == GENDER_FEMALE)
|
||||
return true;
|
||||
|
||||
gender_full = "female";
|
||||
new_displayId = player->getRace() == RACE_BLOODELF ? displayId-1 : displayId+1;
|
||||
gender = GENDER_FEMALE;
|
||||
}
|
||||
else
|
||||
{
|
||||
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)
|
||||
@@ -6570,69 +6648,6 @@ bool ChatHandler::HandlePlayAllCommand(const char* args)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleModifyGenderCommand(const char *args)
|
||||
{
|
||||
if(!*args) return false;
|
||||
Player *player = getSelectedPlayer();
|
||||
|
||||
if(!player)
|
||||
{
|
||||
PSendSysMessage(LANG_NO_PLAYER);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string gender = (char*)args;
|
||||
uint32 displayId = player->GetNativeDisplayId();
|
||||
|
||||
if(gender == "male") // 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);
|
||||
|
||||
ChatHandler(player).PSendSysMessage("Gender changed. You are now a man!");
|
||||
PSendSysMessage("Gender changed for %s", player->GetName());
|
||||
return true;
|
||||
}
|
||||
else if(gender == "female") // 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);
|
||||
|
||||
ChatHandler(player).PSendSysMessage("Gender changed. You are now a woman!");
|
||||
PSendSysMessage("Gender changed for %s", player->GetName());
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
PSendSysMessage("You must use male or female as gender.");
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ChatHandler::HandleFreezeCommand(const char *args)
|
||||
{
|
||||
std::string name;
|
||||
|
||||
Reference in New Issue
Block a user