Core/Player: add helper methods GetNativeGender/SetNativeGender/SetGender

Port From (https://github.com/TrinityCore/TrinityCore/commit/27886c7f5d6cfc221ea67aab210f96859d725e05)
This commit is contained in:
hondacrx
2021-12-26 19:51:26 -05:00
parent 39dd51370f
commit 6d73a59f63
23 changed files with 69 additions and 64 deletions
@@ -553,7 +553,7 @@ namespace Game.Achievements
//! Since no common attributes were found, (not even in titleRewardFlags field) //! Since no common attributes were found, (not even in titleRewardFlags field)
//! we explicitly check by ID. Maybe in the future we could move the achievement_reward //! we explicitly check by ID. Maybe in the future we could move the achievement_reward
//! condition fields to the condition system. //! condition fields to the condition system.
uint titleId = reward.TitleId[achievement.Id == 1793 ? (int)_owner.GetNativeSex() : (_owner.GetTeam() == Team.Alliance ? 0 : 1)]; uint titleId = reward.TitleId[achievement.Id == 1793 ? (int)_owner.GetNativeGender() : (_owner.GetTeam() == Team.Alliance ? 0 : 1)];
if (titleId != 0) if (titleId != 0)
{ {
CharTitlesRecord titleEntry = CliDB.CharTitlesStorage.LookupByKey(titleId); CharTitlesRecord titleEntry = CliDB.CharTitlesStorage.LookupByKey(titleId);
@@ -668,7 +668,7 @@ namespace Game.Achievements
Guild guild = Global.GuildMgr.GetGuildById(_owner.GetGuildId()); Guild guild = Global.GuildMgr.GetGuildById(_owner.GetGuildId());
if (guild) if (guild)
{ {
BroadcastTextBuilder say_builder = new(_owner, ChatMsg.GuildAchievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetGender(), _owner, achievement.Id); BroadcastTextBuilder say_builder = new(_owner, ChatMsg.GuildAchievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetNativeGender(), _owner, achievement.Id);
var say_do = new LocalizedDo(say_builder); var say_do = new LocalizedDo(say_builder);
guild.BroadcastWorker(say_do, _owner); guild.BroadcastWorker(say_do, _owner);
} }
@@ -685,7 +685,7 @@ namespace Game.Achievements
// if player is in world he can tell his friends about new achievement // if player is in world he can tell his friends about new achievement
else if (_owner.IsInWorld) else if (_owner.IsInWorld)
{ {
BroadcastTextBuilder _builder = new(_owner, ChatMsg.Achievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetGender(), _owner, achievement.Id); BroadcastTextBuilder _builder = new(_owner, ChatMsg.Achievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetNativeGender(), _owner, achievement.Id);
var _localizer = new LocalizedDo(_builder); var _localizer = new LocalizedDo(_builder);
var _worker = new PlayerDistWorker(_owner, WorldConfig.GetFloatValue(WorldCfg.ListenRangeSay), _localizer); var _worker = new PlayerDistWorker(_owner, WorldConfig.GetFloatValue(WorldCfg.ListenRangeSay), _localizer);
Cell.VisitWorldObjects(_owner, _worker, WorldConfig.GetFloatValue(WorldCfg.ListenRangeSay)); Cell.VisitWorldObjects(_owner, _worker, WorldConfig.GetFloatValue(WorldCfg.ListenRangeSay));
+2 -2
View File
@@ -1758,7 +1758,7 @@ namespace Game.Achievements
return false; return false;
break; break;
case ModifierTreeType.PlayerNativeGender: // 98 case ModifierTreeType.PlayerNativeGender: // 98
if (referencePlayer.GetNativeSex() != (Gender)reqValue) if (referencePlayer.GetNativeGender() != (Gender)reqValue)
return false; return false;
break; break;
case ModifierTreeType.PlayerSkillEqualOrGreaterThan: // 99 case ModifierTreeType.PlayerSkillEqualOrGreaterThan: // 99
@@ -3395,7 +3395,7 @@ namespace Game.Achievements
return false; return false;
case ModifierTreeType.PlayerSpellShapeshiftFormCreatureDisplayInfoSelection: // 308 case ModifierTreeType.PlayerSpellShapeshiftFormCreatureDisplayInfoSelection: // 308
{ {
ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(referencePlayer.GetRace(), referencePlayer.GetNativeSex(), (ShapeShiftForm)secondaryAsset); ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(referencePlayer.GetRace(), referencePlayer.GetNativeGender(), (ShapeShiftForm)secondaryAsset);
if (formModelData == null) if (formModelData == null)
return false; return false;
@@ -49,7 +49,7 @@ namespace Game.Chat
{ {
if (target.HasTitle(titleInfo)) if (target.HasTitle(titleInfo))
{ {
string name = (target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()]; string name = (target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()];
if (string.IsNullOrEmpty(name)) if (string.IsNullOrEmpty(name))
continue; continue;
+1 -1
View File
@@ -1589,7 +1589,7 @@ namespace Game.Chat
mapId = target.GetMapId(); mapId = target.GetMapId();
areaId = target.GetAreaId(); areaId = target.GetAreaId();
alive = target.IsAlive() ? handler.GetCypherString(CypherStrings.Yes) : handler.GetCypherString(CypherStrings.No); alive = target.IsAlive() ? handler.GetCypherString(CypherStrings.Yes) : handler.GetCypherString(CypherStrings.No);
gender = target.GetNativeSex(); gender = target.GetNativeGender();
} }
// get additional information from DB // get additional information from DB
else else
+1 -1
View File
@@ -601,7 +601,7 @@ namespace Game.Chat
// Set gender // Set gender
target.SetGender(gender); target.SetGender(gender);
target.SetNativeSex(gender); target.SetNativeGender(gender);
// Change display ID // Change display ID
target.InitDisplayIds(); target.InitDisplayIds();
+3 -3
View File
@@ -64,7 +64,7 @@ namespace Game.Chat.Commands
target.SetTitle(titleInfo); // to be sure that title now known target.SetTitle(titleInfo); // to be sure that title now known
target.SetChosenTitle(titleInfo.MaskID); target.SetChosenTitle(titleInfo.MaskID);
handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()], tNameLink); handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()], tNameLink);
return true; return true;
} }
@@ -102,7 +102,7 @@ namespace Game.Chat.Commands
string tNameLink = handler.GetNameLink(target); string tNameLink = handler.GetNameLink(target);
string titleNameStr = string.Format((target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); string titleNameStr = string.Format((target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName());
target.SetTitle(titleInfo); target.SetTitle(titleInfo);
handler.SendSysMessage(CypherStrings.TitleAddRes, id, titleNameStr, tNameLink); handler.SendSysMessage(CypherStrings.TitleAddRes, id, titleNameStr, tNameLink);
@@ -146,7 +146,7 @@ namespace Game.Chat.Commands
string tNameLink = handler.GetNameLink(target); string tNameLink = handler.GetNameLink(target);
string titleNameStr = string.Format((target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); string titleNameStr = string.Format((target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName());
handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink); handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink);
+1 -1
View File
@@ -99,7 +99,7 @@ namespace Game.Conditions
break; break;
case ConditionTypes.Gender: case ConditionTypes.Gender:
if (player != null) if (player != null)
condMeets = player.GetGender() == (Gender)ConditionValue1; condMeets = player.GetNativeGender() == (Gender)ConditionValue1;
break; break;
case ConditionTypes.Skill: case ConditionTypes.Skill:
if (player != null) if (player != null)
+1 -1
View File
@@ -1846,7 +1846,7 @@ namespace Game
if (condition.Gender >= 0 && (int)player.GetGender() != condition.Gender) if (condition.Gender >= 0 && (int)player.GetGender() != condition.Gender)
return false; return false;
if (condition.NativeGender >= 0 && player.GetNativeSex() != (Gender)condition.NativeGender) if (condition.NativeGender >= 0 && player.GetNativeGender() != (Gender)condition.NativeGender)
return false; return false;
if (condition.PowerType != -1 && condition.PowerTypeComp != 0) if (condition.PowerType != -1 && condition.PowerTypeComp != 0)
+1 -1
View File
@@ -86,7 +86,7 @@ namespace Game.DataStorage
guildGuid = guild.GetGUID(); guildGuid = guild.GetGUID();
_whoListStorage.Add(new WhoListPlayerInfo(player.GetGUID(), player.GetTeam(), player.GetSession().GetSecurity(), player.GetLevel(), _whoListStorage.Add(new WhoListPlayerInfo(player.GetGUID(), player.GetTeam(), player.GetSession().GetSecurity(), player.GetLevel(),
player.GetClass(), player.GetRace(), player.GetZoneId(), (byte)player.GetNativeSex(), player.IsVisible(), player.GetClass(), player.GetRace(), player.GetZoneId(), (byte)player.GetNativeGender(), player.IsVisible(),
player.IsGameMaster(), playerName, guildName, guildGuid)); player.IsGameMaster(), playerName, guildName, guildGuid));
} }
} }
+3 -3
View File
@@ -2725,7 +2725,7 @@ namespace Game.Entities
SetCustomizations(customizations, false); SetCustomizations(customizations, false);
SetInventorySlotCount(inventorySlots); SetInventorySlotCount(inventorySlots);
SetBankBagSlotCount(bankSlots); SetBankBagSlotCount(bankSlots);
SetNativeSex(gender); SetNativeGender(gender);
SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.Inebriation), drunk); SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.Inebriation), drunk);
SetPlayerFlags(playerFlags); SetPlayerFlags(playerFlags);
SetPlayerFlagsEx(playerFlagsEx); SetPlayerFlagsEx(playerFlagsEx);
@@ -3393,7 +3393,7 @@ namespace Game.Entities
stmt.AddValue(index++, GetName()); stmt.AddValue(index++, GetName());
stmt.AddValue(index++, (byte)GetRace()); stmt.AddValue(index++, (byte)GetRace());
stmt.AddValue(index++, (byte)GetClass()); stmt.AddValue(index++, (byte)GetClass());
stmt.AddValue(index++, (byte)GetNativeSex()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect stmt.AddValue(index++, (byte)GetNativeGender()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
stmt.AddValue(index++, GetLevel()); stmt.AddValue(index++, GetLevel());
stmt.AddValue(index++, m_activePlayerData.XP); stmt.AddValue(index++, m_activePlayerData.XP);
stmt.AddValue(index++, GetMoney()); stmt.AddValue(index++, GetMoney());
@@ -3517,7 +3517,7 @@ namespace Game.Entities
stmt.AddValue(index++, GetName()); stmt.AddValue(index++, GetName());
stmt.AddValue(index++, (byte)GetRace()); stmt.AddValue(index++, (byte)GetRace());
stmt.AddValue(index++, (byte)GetClass()); stmt.AddValue(index++, (byte)GetClass());
stmt.AddValue(index++, (byte)GetNativeSex()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect stmt.AddValue(index++, (byte)GetNativeGender()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect
stmt.AddValue(index++, GetLevel()); stmt.AddValue(index++, GetLevel());
stmt.AddValue(index++, m_activePlayerData.XP); stmt.AddValue(index++, m_activePlayerData.XP);
stmt.AddValue(index++, GetMoney()); stmt.AddValue(index++, GetMoney());
+5 -5
View File
@@ -249,7 +249,7 @@ namespace Game.Entities
SetCustomizations(createInfo.Customizations); SetCustomizations(createInfo.Customizations);
SetRestState(RestTypes.XP, ((GetSession().IsARecruiter() || GetSession().GetRecruiterId() != 0) ? PlayerRestState.RAFLinked : PlayerRestState.NotRAFLinked)); SetRestState(RestTypes.XP, ((GetSession().IsARecruiter() || GetSession().GetRecruiterId() != 0) ? PlayerRestState.RAFLinked : PlayerRestState.NotRAFLinked));
SetRestState(RestTypes.Honor, PlayerRestState.NotRAFLinked); SetRestState(RestTypes.Honor, PlayerRestState.NotRAFLinked);
SetNativeSex(createInfo.Sex); SetNativeGender(createInfo.Sex);
SetInventorySlotCount(InventorySlots.DefaultSize); SetInventorySlotCount(InventorySlots.DefaultSize);
// set starting level // set starting level
@@ -4453,7 +4453,7 @@ namespace Game.Entities
flags |= CorpseFlags.FFAPvP; flags |= CorpseFlags.FFAPvP;
corpse.SetRace((byte)GetRace()); corpse.SetRace((byte)GetRace());
corpse.SetSex((byte)GetNativeSex()); corpse.SetSex((byte)GetNativeGender());
corpse.SetClass((byte)GetClass()); corpse.SetClass((byte)GetClass());
corpse.SetCustomizations(m_playerData.Customizations); corpse.SetCustomizations(m_playerData.Customizations);
corpse.SetFlags(flags); corpse.SetFlags(flags);
@@ -5329,7 +5329,7 @@ namespace Game.Entities
public void InitDisplayIds() public void InitDisplayIds()
{ {
ChrModelRecord model = Global.DB2Mgr.GetChrModel(GetRace(), GetNativeSex()); ChrModelRecord model = Global.DB2Mgr.GetChrModel(GetRace(), GetNativeGender());
if (model == null) if (model == null)
{ {
Log.outError(LogFilter.Player, $"Player {GetGUID()} has incorrect race/gender pair. Can't init display ids."); Log.outError(LogFilter.Player, $"Player {GetGUID()} has incorrect race/gender pair. Can't init display ids.");
@@ -7380,8 +7380,8 @@ namespace Game.Entities
} }
} }
public Gender GetNativeSex() { return (Gender)(byte)m_playerData.NativeSex; } public Gender GetNativeGender() { return (Gender)(byte)m_playerData.NativeSex; }
public void SetNativeSex(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.NativeSex), (byte)sex); } public void SetNativeGender(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.NativeSex), (byte)sex); }
public void SetPvpTitle(byte pvpTitle) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PvpTitle), pvpTitle); } public void SetPvpTitle(byte pvpTitle) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PvpTitle), pvpTitle); }
public void SetArenaFaction(byte arenaFaction) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.ArenaFaction), arenaFaction); } public void SetArenaFaction(byte arenaFaction) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.ArenaFaction), arenaFaction); }
public void ApplyModFakeInebriation(int mod, bool apply) { ApplyModUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.FakeInebriation), mod, apply); } public void ApplyModFakeInebriation(int mod, bool apply) { ApplyModUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.FakeInebriation), mod, apply); }
+4 -1
View File
@@ -1203,7 +1203,7 @@ namespace Game.Entities
} }
} }
ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(GetRace(), thisPlayer.GetNativeSex(), form); ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(GetRace(), thisPlayer.GetNativeGender(), form);
if (formModelData != null) if (formModelData != null)
{ {
bool useRandom = false; bool useRandom = false;
@@ -1698,6 +1698,9 @@ namespace Game.Entities
public Gender GetGender() { return (Gender)(byte)m_unitData.Sex; } public Gender GetGender() { return (Gender)(byte)m_unitData.Sex; }
public void SetGender(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Sex), (byte)sex); } public void SetGender(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Sex), (byte)sex); }
public virtual Gender GetNativeGender() { return GetGender(); }
public virtual void SetNativeGender(Gender gender) { SetGender(gender); }
public uint GetDisplayId() { return m_unitData.DisplayID; } public uint GetDisplayId() { return m_unitData.DisplayID; }
public virtual void SetDisplayId(uint modelId, float displayScale = 1f) public virtual void SetDisplayId(uint modelId, float displayScale = 1f)
{ {
+1 -1
View File
@@ -2510,7 +2510,7 @@ namespace Game.Guilds
m_name = player.GetName(); m_name = player.GetName();
m_level = (byte)player.GetLevel(); m_level = (byte)player.GetLevel();
m_class = player.GetClass(); m_class = player.GetClass();
_gender = player.GetNativeSex(); _gender = player.GetNativeGender();
m_zoneId = player.GetZoneId(); m_zoneId = player.GetZoneId();
m_accountId = player.GetSession().GetAccountId(); m_accountId = player.GetSession().GetAccountId();
m_achievementPoints = player.GetAchievementPoints(); m_achievementPoints = player.GetAchievementPoints();
+3 -3
View File
@@ -559,7 +559,7 @@ namespace Game
{ {
Log.outInfo(LogFilter.Player, "Account: {0} (IP: {1}) Create Character: {2} {3}", GetAccountId(), GetRemoteAddress(), createInfo.Name, newChar.GetGUID().ToString()); Log.outInfo(LogFilter.Player, "Account: {0} (IP: {1}) Create Character: {2} {3}", GetAccountId(), GetRemoteAddress(), createInfo.Name, newChar.GetGUID().ToString());
Global.ScriptMgr.OnPlayerCreate(newChar); Global.ScriptMgr.OnPlayerCreate(newChar);
Global.CharacterCacheStorage.AddCharacterCacheEntry(newChar.GetGUID(), GetAccountId(), newChar.GetName(), (byte)newChar.GetNativeSex(), (byte)newChar.GetRace(), (byte)newChar.GetClass(), (byte)newChar.GetLevel(), false); Global.CharacterCacheStorage.AddCharacterCacheEntry(newChar.GetGUID(), GetAccountId(), newChar.GetName(), (byte)newChar.GetNativeGender(), (byte)newChar.GetRace(), (byte)newChar.GetClass(), (byte)newChar.GetLevel(), false);
SendCharCreate(ResponseCodes.CharCreateSuccess, newChar.GetGUID()); SendCharCreate(ResponseCodes.CharCreateSuccess, newChar.GetGUID());
} }
@@ -1379,9 +1379,9 @@ namespace Game
_player.ModifyMoney(-cost); _player.ModifyMoney(-cost);
_player.UpdateCriteria(CriteriaType.MoneySpentAtBarberShop, (ulong)cost); _player.UpdateCriteria(CriteriaType.MoneySpentAtBarberShop, (ulong)cost);
if (_player.GetNativeSex() != (Gender)packet.NewSex) if (_player.GetNativeGender() != (Gender)packet.NewSex)
{ {
_player.SetNativeSex((Gender)packet.NewSex); _player.SetNativeGender((Gender)packet.NewSex);
_player.InitDisplayIds(); _player.InitDisplayIds();
_player.RestoreDisplayId(false); _player.RestoreDisplayId(false);
} }
@@ -233,7 +233,7 @@ namespace Game.Networking.Packets
GUID = player.GetGUID(); GUID = player.GetGUID();
SpecializationID = player.GetPrimarySpecialization(); SpecializationID = player.GetPrimarySpecialization();
Name = player.GetName(); Name = player.GetName();
GenderID = (byte)player.GetNativeSex(); GenderID = (byte)player.GetNativeGender();
Race = (byte)player.GetRace(); Race = (byte)player.GetRace();
ClassID = (byte)player.GetClass(); ClassID = (byte)player.GetClass();
@@ -616,7 +616,7 @@ namespace Game.Networking.Packets
BnetAccountID = player.GetSession().GetBattlenetAccountGUID(); BnetAccountID = player.GetSession().GetBattlenetAccountGUID();
Name = player.GetName(); Name = player.GetName();
RaceID = player.GetRace(); RaceID = player.GetRace();
Sex = player.GetNativeSex(); Sex = player.GetNativeGender();
ClassID = player.GetClass(); ClassID = player.GetClass();
Level = (byte)player.GetLevel(); Level = (byte)player.GetLevel();
+24 -23
View File
@@ -1380,6 +1380,7 @@ namespace Game.Spells
// special case (spell specific functionality) // special case (spell specific functionality)
if (GetMiscValue() == 0) if (GetMiscValue() == 0)
{ {
bool isFemale = target.GetNativeGender() == Gender.Female;
switch (GetId()) switch (GetId())
{ {
// Orb of Deception // Orb of Deception
@@ -1392,43 +1393,43 @@ namespace Game.Spells
{ {
// Blood Elf // Blood Elf
case Race.BloodElf: case Race.BloodElf:
target.SetDisplayId(target.GetGender() == Gender.Female ? 17830 : 17829u); target.SetDisplayId(isFemale ? 17830 : 17829u);
break; break;
// Orc // Orc
case Race.Orc: case Race.Orc:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10140 : 10139u); target.SetDisplayId(isFemale ? 10140 : 10139u);
break; break;
// Troll // Troll
case Race.Troll: case Race.Troll:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10134 : 10135u); target.SetDisplayId(isFemale ? 10134 : 10135u);
break; break;
// Tauren // Tauren
case Race.Tauren: case Race.Tauren:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10147 : 10136u); target.SetDisplayId(isFemale ? 10147 : 10136u);
break; break;
// Undead // Undead
case Race.Undead: case Race.Undead:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10145 : 10146u); target.SetDisplayId(isFemale ? 10145 : 10146u);
break; break;
// Draenei // Draenei
case Race.Draenei: case Race.Draenei:
target.SetDisplayId(target.GetGender() == Gender.Female ? 17828 : 17827u); target.SetDisplayId(isFemale ? 17828 : 17827u);
break; break;
// Dwarf // Dwarf
case Race.Dwarf: case Race.Dwarf:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10142 : 10141u); target.SetDisplayId(isFemale ? 10142 : 10141u);
break; break;
// Gnome // Gnome
case Race.Gnome: case Race.Gnome:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10149 : 10148u); target.SetDisplayId(isFemale ? 10149 : 10148u);
break; break;
// Human // Human
case Race.Human: case Race.Human:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10138 : 10137u); target.SetDisplayId(isFemale ? 10138 : 10137u);
break; break;
// Night Elf // Night Elf
case Race.NightElf: case Race.NightElf:
target.SetDisplayId(target.GetGender() == Gender.Female ? 10144 : 10143u); target.SetDisplayId(isFemale ? 10144 : 10143u);
break; break;
default: default:
break; break;
@@ -1451,43 +1452,43 @@ namespace Game.Spells
{ {
// Blood Elf // Blood Elf
case Race.BloodElf: case Race.BloodElf:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25043 : 25032u); target.SetDisplayId(isFemale ? 25043 : 25032u);
break; break;
// Orc // Orc
case Race.Orc: case Race.Orc:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25050 : 25039u); target.SetDisplayId(isFemale ? 25050 : 25039u);
break; break;
// Troll // Troll
case Race.Troll: case Race.Troll:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25052 : 25041u); target.SetDisplayId(isFemale ? 25052 : 25041u);
break; break;
// Tauren // Tauren
case Race.Tauren: case Race.Tauren:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25051 : 25040u); target.SetDisplayId(isFemale ? 25051 : 25040u);
break; break;
// Undead // Undead
case Race.Undead: case Race.Undead:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25053 : 25042u); target.SetDisplayId(isFemale ? 25053 : 25042u);
break; break;
// Draenei // Draenei
case Race.Draenei: case Race.Draenei:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25044 : 25033u); target.SetDisplayId(isFemale ? 25044 : 25033u);
break; break;
// Dwarf // Dwarf
case Race.Dwarf: case Race.Dwarf:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25045 : 25034u); target.SetDisplayId(isFemale ? 25045 : 25034u);
break; break;
// Gnome // Gnome
case Race.Gnome: case Race.Gnome:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25035 : 25046u); target.SetDisplayId(isFemale ? 25035 : 25046u);
break; break;
// Human // Human
case Race.Human: case Race.Human:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25037 : 25048u); target.SetDisplayId(isFemale ? 25037 : 25048u);
break; break;
// Night Elf // Night Elf
case Race.NightElf: case Race.NightElf:
target.SetDisplayId(target.GetGender() == Gender.Female ? 25038 : 25049u); target.SetDisplayId(isFemale ? 25038 : 25049u);
break; break;
default: default:
break; break;
@@ -1501,15 +1502,15 @@ namespace Game.Spells
// Honor the Dead // Honor the Dead
case 65386: case 65386:
case 65495: case 65495:
target.SetDisplayId(target.GetGender() == Gender.Male ? 29203 : 29204u); target.SetDisplayId(isFemale ? 29204 : 29203u);
break; break;
// Darkspear Pride // Darkspear Pride
case 75532: case 75532:
target.SetDisplayId(target.GetGender() == Gender.Male ? 31737 : 31738u); target.SetDisplayId(isFemale ? 31738 : 31737u);
break; break;
// Gnomeregan Pride // Gnomeregan Pride
case 75531: case 75531:
target.SetDisplayId(target.GetGender() == Gender.Male ? 31654 : 31655u); target.SetDisplayId(isFemale ? 31655 : 31654u);
break; break;
default: default:
break; break;
+3 -2
View File
@@ -3270,7 +3270,8 @@ namespace Game.Entities
58121, // Torch 58121, // Torch
43109, // Throw Torch 43109, // Throw Torch
58552, // Return to Orgrimmar 58552, // Return to Orgrimmar
58533 // Return to Stormwind 58533, // Return to Stormwind
21855 // Challenge Flag
}, spellInfo => }, spellInfo =>
{ {
spellInfo.MaxAffectedTargets = 1; spellInfo.MaxAffectedTargets = 1;
@@ -4860,7 +4861,7 @@ namespace Game.Entities
public bool IsFitToRequirements(Player player, uint newZone, uint newArea) public bool IsFitToRequirements(Player player, uint newZone, uint newArea)
{ {
if (gender != Gender.None) // not in expected gender if (gender != Gender.None) // not in expected gender
if (player == null || gender != player.GetGender()) if (player == null || gender != player.GetNativeGender())
return false; return false;
if (raceMask != 0) // not in expected race if (raceMask != 0) // not in expected race
+3 -3
View File
@@ -758,7 +758,7 @@ namespace Scripts.Spells.Generic
Unit target = GetTarget(); Unit target = GetTarget();
if (target.IsTypeId(TypeId.Player)) if (target.IsTypeId(TypeId.Player))
{ {
if (target.GetGender() == Gender.Male) if (target.GetNativeGender() == Gender.Male)
target.SetDisplayId(ModelIds.GoblinMale); target.SetDisplayId(ModelIds.GoblinMale);
else else
target.SetDisplayId(ModelIds.GoblinFemale); target.SetDisplayId(ModelIds.GoblinFemale);
@@ -1348,7 +1348,7 @@ namespace Scripts.Spells.Generic
Player player = GetHitPlayer(); Player player = GetHitPlayer();
if (player) if (player)
{ {
Gender gender = player.GetGender(); Gender gender = player.GetNativeGender();
uint spellId = GetSpellInfo().Id; uint spellId = GetSpellInfo().Id;
switch (spellId) switch (spellId)
@@ -2240,7 +2240,7 @@ namespace Scripts.Spells.Generic
Player target = GetHitPlayer(); Player target = GetHitPlayer();
if (target) if (target)
{ {
Gender gender = target.GetGender(); Gender gender = target.GetNativeGender();
if (gender == Gender.Male) if (gender == Gender.Male)
caster.CastSpell(target, SpellIds.OrcDisguiseMale, true); caster.CastSpell(target, SpellIds.OrcDisguiseMale, true);
else else
+2 -2
View File
@@ -233,7 +233,7 @@ namespace Scripts.Spells.Holiday
Player target = GetHitPlayer(); Player target = GetHitPlayer();
if (target) if (target)
{ {
Gender gender = target.GetGender(); Gender gender = target.GetNativeGender();
uint spellId = SpellIds.TrickBuff; uint spellId = SpellIds.TrickBuff;
switch (RandomHelper.URand(0, 5)) switch (RandomHelper.URand(0, 5))
{ {
@@ -327,7 +327,7 @@ namespace Scripts.Spells.Holiday
Unit target = GetHitUnit(); Unit target = GetHitUnit();
uint spellId; uint spellId;
bool female = target.GetGender() == Gender.Female; bool female = target.GetNativeGender() == Gender.Female;
switch (GetSpellInfo().Id) switch (GetSpellInfo().Id)
{ {
+3 -3
View File
@@ -1739,9 +1739,9 @@ namespace Scripts.Spells.Items
switch (RandomHelper.URand(1, 2)) switch (RandomHelper.URand(1, 2))
{ {
// Flip Out - ninja // Flip Out - ninja
case 1: spellId = (caster.GetGender() == Gender.Male ? SpellIds.FlipOutMale : SpellIds.FlipOutFemale); break; case 1: spellId = (caster.GetNativeGender() == Gender.Male ? SpellIds.FlipOutMale : SpellIds.FlipOutFemale); break;
// Yaaarrrr - pirate // Yaaarrrr - pirate
case 2: spellId = (caster.GetGender() == Gender.Male ? SpellIds.YaaarrrrMale : SpellIds.YaaarrrrFemale); break; case 2: spellId = (caster.GetNativeGender() == Gender.Male ? SpellIds.YaaarrrrMale : SpellIds.YaaarrrrFemale); break;
} }
caster.CastSpell(caster, spellId, true); caster.CastSpell(caster, spellId, true);
} }
@@ -3186,7 +3186,7 @@ namespace Scripts.Spells.Items
if (target) if (target)
{ {
target.HandleEmoteCommand(Emote.OneshotTrain); target.HandleEmoteCommand(Emote.OneshotTrain);
EmotesTextSoundRecord soundEntry = Global.DB2Mgr.GetTextSoundEmoteFor((uint)TextEmotes.Train, target.GetRace(), target.GetGender(), target.GetClass()); EmotesTextSoundRecord soundEntry = Global.DB2Mgr.GetTextSoundEmoteFor((uint)TextEmotes.Train, target.GetRace(), target.GetNativeGender(), target.GetClass());
if (soundEntry != null) if (soundEntry != null)
target.PlayDistanceSound(soundEntry.SoundId); target.PlayDistanceSound(soundEntry.SoundId);
} }
+1 -1
View File
@@ -820,7 +820,7 @@ namespace Scripts.Spells.Quest
Player target = GetHitPlayer(); Player target = GetHitPlayer();
if (target) if (target)
{ {
target.CastSpell(target, target.GetGender() == Gender.Male ? SpellIds.MaleDisguise : SpellIds.FemaleDisguise, true); target.CastSpell(target, target.GetNativeGender() == Gender.Male ? SpellIds.MaleDisguise : SpellIds.FemaleDisguise, true);
target.CastSpell(target, SpellIds.GenericDisguise, true); target.CastSpell(target, SpellIds.GenericDisguise, true);
} }
} }
+1 -1
View File
@@ -914,7 +914,7 @@ namespace Scripts.World.GameObjects
Creature target = ScriptedAI.GetClosestCreatureWithEntry(player, CreatureIds.OuthouseBunny, 3.0f); Creature target = ScriptedAI.GetClosestCreatureWithEntry(player, CreatureIds.OuthouseBunny, 3.0f);
if (target) if (target)
{ {
target.GetAI().SetData(1, (uint)player.GetGender()); target.GetAI().SetData(1, (uint)player.GetNativeGender());
me.CastSpell(target, SpellIds.IndisposedIii); me.CastSpell(target, SpellIds.IndisposedIii);
} }
me.CastSpell(player, SpellIds.Indisposed); me.CastSpell(player, SpellIds.Indisposed);