Added new command: .modify gender male/female - Turns selected player into a male or female

No relog needed

Signed-off-by: dythzer <micke223@gmail.com>

Add help and mangos strings. Allow accept partly types male/female arg values.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
dythzer 2008-10-27 13:44:36 +01:00 committed by VladimirMangos
parent 7b9e86e3f3
commit acf6f5d5ce
8 changed files with 89 additions and 2 deletions

View file

@ -6155,3 +6155,63 @@ bool ChatHandler::HandleSendMessageCommand(const char* args)
PSendSysMessage(LANG_SENDMESSAGE,name.c_str(),msg_str);
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;
}