*Update to Mangos 6848. Source: Mangos.

--HG--
branch : trunk
This commit is contained in:
megamage
2008-11-25 16:36:50 -06:00
parent 52f2e35d65
commit f6ea784eda
22 changed files with 402 additions and 244 deletions

View File

@@ -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;