Updated to 8.2.0.31429 (scripts disabled atm, they still need updated)

Code Port from TrinityCore https://github.com/TrinityCore/TrinityCore
Casc from WoW-Tools https://github.com/WoW-Tools/CASCExplorer
This commit is contained in:
hondacrx
2019-08-14 11:20:42 -04:00
parent e4d500f4b5
commit 125e3b3ac7
232 changed files with 12268 additions and 14670 deletions
@@ -65,9 +65,9 @@ namespace Game.Chat
LocaleConstant localeIdx = Global.WorldMgr.GetAvailableDbcLocale(locale);
ChannelNotifyJoined notify = new ChannelNotifyJoined();
//notify->ChannelWelcomeMsg = "";
//notify.ChannelWelcomeMsg = "";
notify.ChatChannelID = (int)_source.GetChannelId();
//notify->InstanceID = 0;
//notify.InstanceID = 0;
notify.ChannelFlags = _source.GetFlags();
notify.Channel = _source.GetName(localeIdx);
return notify;
+2 -2
View File
@@ -750,7 +750,7 @@ namespace Game.Chat
var ipBytes = System.Net.IPAddress.Parse(handler.GetSession().GetRemoteAddress()).GetAddressBytes();
Array.Reverse(ipBytes);
PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
/*PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
stmt.AddValue(0, BitConverter.ToUInt32(ipBytes, 0));
SQLResult result = DB.Login.Query(stmt);
@@ -767,7 +767,7 @@ namespace Game.Chat
{
handler.SendSysMessage("[IP2NATION] Table empty");
Log.outDebug(LogFilter.Server, "[IP2NATION] Table empty");
}
}*/
}
else if (param == "off")
{
@@ -285,7 +285,8 @@ namespace Game.Chat.Commands
}
[CommandGroup("lock", RBACPermissions.CommandBnetAccount, true)]
class LockCommands {
class LockCommands
{
[Command("country", RBACPermissions.CommandBnetAccountLockCountry, true)]
static bool HandleLockCountryCommand(StringArguments args, CommandHandler handler)
{
@@ -300,7 +301,7 @@ namespace Game.Chat.Commands
{
if (param == "on")
{
PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
/*PreparedStatement stmt = DB.Login.GetPreparedStatement(LoginStatements.SEL_LOGON_COUNTRY);
var ipBytes = System.Net.IPAddress.Parse(handler.GetSession().GetRemoteAddress()).GetAddressBytes();
Array.Reverse(ipBytes);
stmt.AddValue(0, BitConverter.ToUInt32(ipBytes, 0));
@@ -318,7 +319,7 @@ namespace Game.Chat.Commands
{
handler.SendSysMessage("[IP2NATION] Table empty");
Log.outDebug(LogFilter.Server, "[IP2NATION] Table empty");
}
}*/
}
else if (param == "off")
{
@@ -52,7 +52,7 @@ namespace Game.Chat
if (string.IsNullOrEmpty(name))
continue;
string activeStr = target.GetUInt32Value(PlayerFields.ChosenTitle) == titleInfo.MaskID
string activeStr = target.m_playerData.PlayerTitle == titleInfo.MaskID
? handler.GetCypherString(CypherStrings.Active) : "";
string titleNameStr = string.Format(name.ConvertFormatSyntax(), targetName);
@@ -600,7 +600,7 @@ namespace Game.Chat
if (!int.TryParse(daysStr, out keepDays) || keepDays < 0)
return false;
}
// config option value 0 -> disabled and can't be used
// config option value 0 . disabled and can't be used
else if (keepDays <= 0)
return false;
@@ -777,7 +777,7 @@ namespace Game.Chat
{
player.GiveLevel((uint)newLevel);
player.InitTalentForLevel();
player.SetUInt32Value(ActivePlayerFields.Xp, 0);
player.SetXP(0);
if (handler.needReportToTarget(player))
{
+2 -2
View File
@@ -245,9 +245,9 @@ namespace Game.Chat.Commands
for (ushort i = 0; i < PlayerConst.ExploredZonesSize; ++i)
{
if (flag != 0)
handler.GetSession().GetPlayer().SetFlag(ActivePlayerFields.ExploredZones + i, 0xFFFFFFFF);
handler.GetSession().GetPlayer().AddExploredZones(i, 0xFFFFFFFFFFFFFFFF);
else
handler.GetSession().GetPlayer().SetFlag(ActivePlayerFields.ExploredZones + i, 0);
handler.GetSession().GetPlayer().RemoveExploredZones(i, 0xFFFFFFFFFFFFFFFF);
}
return true;
-237
View File
@@ -435,78 +435,6 @@ namespace Game.Chat
return true;
}
[Command("getitemvalue", RBACPermissions.CommandDebugGetitemvalue)]
static bool HandleDebugGetItemValueCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
if (!ulong.TryParse(args.NextString(), out ulong guid))
return false;
if (!uint.TryParse(args.NextString(), out uint index))
return false;
Item item = handler.GetSession().GetPlayer().GetItemByGuid(ObjectGuid.Create(HighGuid.Item, guid));
if (!item)
return false;
if (index >= item.valuesCount)
return false;
uint value = item.GetUInt32Value(index);
handler.SendSysMessage("Item {0}: value at {1} is {2}", guid, index, value);
return true;
}
[Command("getvalue", RBACPermissions.CommandDebugGetvalue)]
static bool HandleDebugGetValueCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
string fieldStr = args.NextString();
string valueStr = args.NextString();
if (string.IsNullOrEmpty(fieldStr))
return false;
Unit target = handler.getSelectedUnit();
if (!target)
{
handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
return false;
}
if (!uint.TryParse(fieldStr, out uint field))
return false;
ObjectGuid guid = target.GetGUID();
if (field >= target.valuesCount)
{
handler.SendSysMessage(CypherStrings.TooBigIndex, field, guid.ToString(), target.valuesCount);
return false;
}
if (!bool.TryParse(valueStr, out bool isInt32))
isInt32 = true;
if (isInt32)
{
uint value = target.GetUInt32Value(field);
handler.SendSysMessage(CypherStrings.GetUintField, guid.ToString(), field, value);
}
else
{
float value = target.GetFloatValue(field);
handler.SendSysMessage(CypherStrings.GetFloatField, guid.ToString(), field, value);
}
return true;
}
[Command("hostil", RBACPermissions.CommandDebugHostil)]
static bool HandleDebugHostileRefListCommand(StringArguments args, CommandHandler handler)
{
@@ -570,31 +498,6 @@ namespace Game.Chat
return true;
}
[Command("Mod32Value", RBACPermissions.CommandDebugMod32value)]
static bool HandleDebugMod32ValueCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
uint field = args.NextUInt32();
int value = args.NextInt32();
if (field >= handler.GetSession().GetPlayer().valuesCount)
{
handler.SendSysMessage(CypherStrings.TooBigIndex, field, handler.GetSession().GetPlayer().GetGUID().ToString(), handler.GetSession().GetPlayer().valuesCount);
return false;
}
uint currentValue = handler.GetSession().GetPlayer().GetUInt32Value(field);
currentValue += (uint)value;
handler.GetSession().GetPlayer().SetUInt32Value(field, currentValue);
handler.SendSysMessage(CypherStrings.Change32bitField, field, currentValue);
return true;
}
[Command("moveflags", RBACPermissions.CommandDebugMoveflags)]
static bool HandleDebugMoveflagsCommand(StringArguments args, CommandHandler handler)
{
@@ -794,103 +697,6 @@ namespace Game.Chat
return true;
}
[Command("setbit", RBACPermissions.CommandDebugSetbit)]
static bool HandleDebugSet32BitCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
WorldObject target = handler.GetSelectedObject();
if (!target)
{
handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
return false;
}
uint field = args.NextUInt32();
uint val = args.NextUInt32();
if (val > 32) //uint = 32 bits
return false;
uint value = (uint)(val != 0 ? 1 << ((int)val - 1) : 0);
target.SetUInt32Value(field, value);
handler.SendSysMessage(CypherStrings.Set32bitField, field, value);
return true;
}
[Command("setitemvalue", RBACPermissions.CommandDebugSetitemvalue)]
static bool HandleDebugSetItemValueCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
if (!ulong.TryParse(args.NextString(), out ulong guid))
return false;
if (!uint.TryParse(args.NextString(), out uint index))
return false;
if (!uint.TryParse(args.NextString(), out uint value))
return false;
Item item = handler.GetSession().GetPlayer().GetItemByGuid(ObjectGuid.Create(HighGuid.Item, guid));
if (!item)
return false;
if (index >= item.valuesCount)
return false;
item.SetUInt32Value(index, value);
return true;
}
[Command("setvalue", RBACPermissions.CommandDebugSetvalue)]
static bool HandleDebugSetValueCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
WorldObject target = handler.GetSelectedObject();
if (!target)
{
handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
return false;
}
ObjectGuid guid = target.GetGUID();
uint field = args.NextUInt32();
if (field >= target.valuesCount)
{
handler.SendSysMessage(CypherStrings.TooBigIndex, field, guid.ToString(), target.valuesCount);
return false;
}
string valueStr = args.NextString();
if (!bool.TryParse(args.NextString(), out bool isInt32))
isInt32 = true;
if (isInt32)
{
if (!uint.TryParse(valueStr, out uint value))
return false;
target.SetUInt32Value(field, value);
handler.SendSysMessage(CypherStrings.SetUintField, guid.ToString(), field, value);
}
else
{
if (!float.TryParse(valueStr, out float value))
return false;
target.SetFloatValue(field, value);
handler.SendSysMessage(CypherStrings.SetFloatField, guid.ToString(), field, value);
}
return true;
}
[Command("setvid", RBACPermissions.CommandDebugSetvid)]
static bool HandleDebugSetVehicleIdCommand(StringArguments args, CommandHandler handler)
{
@@ -992,49 +798,6 @@ namespace Game.Chat
return true;
}
[Command("update", RBACPermissions.CommandDebugUpdate)]
static bool HandleDebugUpdateCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
Unit unit = handler.getSelectedUnit();
if (!unit)
{
handler.SendSysMessage(CypherStrings.SelectCharOrCreature);
return false;
}
uint updateIndex = args.NextUInt32();
//check updateIndex
if (unit.IsTypeId(TypeId.Player))
{
if (updateIndex >= (int)PlayerFields.End)
return true;
}
else if (updateIndex >= (int)UnitFields.End)
return true;
uint value;
string valueStr = args.NextString();
if (string.IsNullOrEmpty(valueStr))
{
value = unit.GetUInt32Value(updateIndex);
handler.SendSysMessage(CypherStrings.Update, unit.GetGUID().ToString(), updateIndex, value);
return true;
}
if (!uint.TryParse(valueStr, out value))
return false;
handler.SendSysMessage(CypherStrings.UpdateChange, unit.GetGUID().ToString(), updateIndex, value);
unit.SetUInt32Value(updateIndex, value);
return true;
}
[Command("uws", RBACPermissions.CommandDebugUws)]
static bool HandleDebugUpdateWorldStateCommand(StringArguments args, CommandHandler handler)
{
@@ -625,19 +625,34 @@ namespace Game.Chat
if (string.IsNullOrEmpty(state))
return false;
if (!int.TryParse(state, out int objectState))
if (!uint.TryParse(state, out uint objectState))
return false;
if (objectType < 4)
obj.SetByteValue(GameObjectFields.Bytes1, (byte)objectType, (byte)objectState);
else if (objectType == 4)
obj.SendCustomAnim((uint)objectState);
else if (objectType == 5)
switch (objectType)
{
if (objectState < 0 || objectState > (uint)GameObjectDestructibleState.Rebuilding)
return false;
case 0:
obj.SetGoState((GameObjectState)objectState);
break;
case 1:
obj.SetGoType((GameObjectTypes)objectState);
break;
case 2:
obj.SetGoArtKit((byte)objectState);
break;
case 3:
obj.SetGoAnimProgress(objectState);
break;
case 4:
obj.SendCustomAnim(objectState);
break;
case 5:
if (objectState < 0 || objectState > (uint)GameObjectDestructibleState.Rebuilding)
return false;
obj.SetDestructibleState((GameObjectDestructibleState)objectState);
obj.SetDestructibleState((GameObjectDestructibleState)objectState);
break;
default:
break;
}
handler.SendSysMessage("Set gobject type {0} state {1}", objectType, objectState);
+1 -1
View File
@@ -103,7 +103,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(args, out target, out targetGuid))
return false;
uint guildId = target != null ? target.GetGuildId() : Player.GetGuildIdFromDB(targetGuid);
ulong guildId = target != null ? target.GetGuildId() : Player.GetGuildIdFromDB(targetGuid);
if (guildId == 0)
return false;
+1 -1
View File
@@ -834,7 +834,7 @@ namespace Game.Chat
string knownStr = target && target.HasTitle(titleInfo) ? handler.GetCypherString(CypherStrings.Known) : "";
string activeStr = target && target.GetUInt32Value(PlayerFields.ChosenTitle) == titleInfo.MaskID
string activeStr = target && target.m_playerData.PlayerTitle == titleInfo.MaskID
? handler.GetCypherString(CypherStrings.Active) : "";
string titleNameStr = string.Format(name.ConvertFormatSyntax(), targetName);
+13 -15
View File
@@ -345,7 +345,7 @@ namespace Game.Chat
return false;
}
Item item = playerTarget.StoreNewItem(dest, itemId, true, ItemEnchantment.GenerateItemRandomPropertyId(itemId), null, 0, bonusListIDs);
Item item = playerTarget.StoreNewItem(dest, itemId, true, ItemEnchantmentManager.GenerateItemRandomBonusListId(itemId), null, 0, bonusListIDs);
// remove binding (let GM give it to another player later)
if (player == playerTarget)
@@ -420,7 +420,7 @@ namespace Game.Chat
InventoryResult msg = playerTarget.CanStoreNewItem(ItemConst.NullBag, ItemConst.NullSlot, dest, template.Value.GetId(), 1);
if (msg == InventoryResult.Ok)
{
Item item = playerTarget.StoreNewItem(dest, template.Value.GetId(), true, ItemRandomEnchantmentId.Empty, null, 0, bonusListIDs);
Item item = playerTarget.StoreNewItem(dest, template.Value.GetId(), true, 0, null, 0, bonusListIDs);
// remove binding (let GM give it to another player later)
if (player == playerTarget)
@@ -451,7 +451,7 @@ namespace Game.Chat
{
if (args.Empty())
{
if (handler.GetSession().GetPlayer().HasFlag(PlayerFields.Flags, PlayerFlags.Developer))
if (handler.GetSession().GetPlayer().HasPlayerFlag(PlayerFlags.Developer))
handler.GetSession().SendNotification(CypherStrings.DevOn);
else
handler.GetSession().SendNotification(CypherStrings.DevOff);
@@ -462,14 +462,14 @@ namespace Game.Chat
if (argstr == "on")
{
handler.GetSession().GetPlayer().SetFlag(PlayerFields.Flags, PlayerFlags.Developer);
handler.GetSession().GetPlayer().HasPlayerFlag(PlayerFlags.Developer);
handler.GetSession().SendNotification(CypherStrings.DevOn);
return true;
}
if (argstr == "off")
{
handler.GetSession().GetPlayer().RemoveFlag(PlayerFields.Flags, PlayerFlags.Developer);
handler.GetSession().GetPlayer().RemovePlayerFlag(PlayerFlags.Developer);
handler.GetSession().SendNotification(CypherStrings.DevOff);
return true;
}
@@ -1181,16 +1181,15 @@ namespace Game.Chat
return false;
}
int offset = area.AreaBit / 32;
uint offset = (uint)area.AreaBit / 64;
if (offset >= PlayerConst.ExploredZonesSize)
{
handler.SendSysMessage(CypherStrings.BadValue);
return false;
}
uint val = (1u << (area.AreaBit % 32));
uint currFields = playerTarget.GetUInt32Value(ActivePlayerFields.ExploredZones + offset);
playerTarget.SetUInt32Value(ActivePlayerFields.ExploredZones + offset, (currFields | val));
ulong val = 1ul << (area.AreaBit % 64);
playerTarget.AddExploredZones(offset, val);
handler.SendSysMessage(CypherStrings.ExploreArea);
return true;
@@ -1222,16 +1221,15 @@ namespace Game.Chat
return false;
}
int offset = area.AreaBit / 32;
uint offset = (uint)area.AreaBit / 64;
if (offset >= PlayerConst.ExploredZonesSize)
{
handler.SendSysMessage(CypherStrings.BadValue);
return false;
}
uint val = (1u << (area.AreaBit % 32));
uint currFields = playerTarget.GetUInt32Value(ActivePlayerFields.ExploredZones + offset);
playerTarget.SetUInt32Value(ActivePlayerFields.ExploredZones + offset, (currFields ^ val));
uint val = (1u << (area.AreaBit % 64));
playerTarget.RemoveExploredZones(offset, val);
handler.SendSysMessage(CypherStrings.UnexploreArea);
return true;
@@ -1404,7 +1402,7 @@ namespace Game.Chat
mapId = target.GetMapId();
areaId = target.GetAreaId();
alive = target.IsAlive() ? handler.GetCypherString(CypherStrings.Yes) : handler.GetCypherString(CypherStrings.No);
gender = (Gender)target.GetByteValue(PlayerFields.Bytes3, PlayerFieldOffsets.Bytes3OffsetGender);
gender = (Gender)(byte)target.m_playerData.NativeSex;
}
// get additional information from DB
else
@@ -1996,7 +1994,7 @@ namespace Game.Chat
}
go.ModifyHealth(-damage, player);
handler.SendSysMessage(CypherStrings.GameobjectDamaged, go.GetName(), guidLow, -damage, go.m_goValue.Building.Health);
handler.SendSysMessage(CypherStrings.GameobjectDamaged, go.GetName(), guidLow, -damage, go.GetGoValue().Building.Health);
}
return true;
+15 -59
View File
@@ -122,22 +122,22 @@ namespace Game.Chat
if (!uint.TryParse(pfactionid, out uint factionid))
{
uint _factionid = target.getFaction();
uint _flag = target.GetUInt32Value(UnitFields.Flags);
ulong _npcflag = target.GetUInt64Value(UnitFields.NpcFlags);
uint _dyflag = target.GetUInt32Value(ObjectFields.DynamicFlags);
uint _factionid = target.GetFaction();
uint _flag = target.m_unitData.Flags;
ulong _npcflag = (ulong)target.m_unitData.NpcFlags[0] << 32 | target.m_unitData.NpcFlags[1];
uint _dyflag = target.m_objectData.DynamicFlags;
handler.SendSysMessage(CypherStrings.CurrentFaction, target.GetGUID().ToString(), _factionid, _flag, _npcflag, _dyflag);
return true;
}
if (!uint.TryParse(args.NextString(), out uint flag))
flag = target.GetUInt32Value(UnitFields.Flags);
flag = target.m_unitData.Flags;
if (!ulong.TryParse(args.NextString(), out ulong npcflag))
npcflag = target.GetUInt64Value(UnitFields.NpcFlags);
npcflag = (ulong)target.m_unitData.NpcFlags[0] << 32 | target.m_unitData.NpcFlags[1];
if (!uint.TryParse(args.NextString(), out uint dyflag))
dyflag = target.GetUInt32Value(ObjectFields.DynamicFlags);
dyflag = target.m_objectData.DynamicFlags;
if (!CliDB.FactionTemplateStorage.ContainsKey(factionid))
{
@@ -148,9 +148,10 @@ namespace Game.Chat
handler.SendSysMessage(CypherStrings.YouChangeFaction, target.GetGUID().ToString(), factionid, flag, npcflag, dyflag);
target.SetFaction(factionid);
target.SetUInt32Value(UnitFields.Flags, flag);
target.SetUInt64Value(UnitFields.NpcFlags, npcflag);
target.SetUInt32Value(ObjectFields.DynamicFlags, dyflag);
target.SetUnitFlags((UnitFlags)flag);
target.SetNpcFlags((NPCFlags)(npcflag & 0xFFFFFFFF));
target.SetNpcFlags2((NPCFlags2)(npcflag >> 32));
target.SetDynamicFlags((UnitDynFlags)dyflag);
return true;
}
@@ -217,7 +218,7 @@ namespace Game.Chat
NotifyModification(handler, target, CypherStrings.YouChangeSize, CypherStrings.YoursSizeChanged, Scale);
Creature creatureTarget = target.ToCreature();
if (creatureTarget)
creatureTarget.SetFloatValue(UnitFields.DisplayScale, Scale);
creatureTarget.SetDisplayId(creatureTarget.GetDisplayId(), Scale);
else
target.SetObjectScale(Scale);
return true;
@@ -322,51 +323,6 @@ namespace Game.Chat
return true;
}
[Command("bit", RBACPermissions.CommandModifyBit)]
static bool HandleModifyBitCommand(StringArguments args, CommandHandler handler)
{
if (args.Empty())
return false;
Unit target = handler.getSelectedUnit();
if (!target)
{
handler.SendSysMessage(CypherStrings.NoCharSelected);
return false;
}
// check online security
if (target.IsTypeId(TypeId.Player) && handler.HasLowerSecurity(target.ToPlayer(), ObjectGuid.Empty))
return false;
ushort field = args.NextUInt16();
int bit = args.NextInt32();
if (field < (int)ObjectFields.End || field >= target.valuesCount)
{
handler.SendSysMessage(CypherStrings.BadValue);
return false;
}
if (bit < 1 || bit > 32)
{
handler.SendSysMessage(CypherStrings.BadValue);
return false;
}
if (target.HasFlag(field, (1 << (bit - 1))))
{
target.RemoveFlag(field, (1 << (bit - 1)));
handler.SendSysMessage(CypherStrings.RemoveBit, bit, field);
}
else
{
target.SetFlag(field, (1 << (bit - 1)));
handler.SendSysMessage(CypherStrings.SetBit, bit, field);
}
return true;
}
[Command("honor", RBACPermissions.CommandModifyHonor)]
static bool HandleModifyHonorCommand(StringArguments args, CommandHandler handler)
{
@@ -591,7 +547,7 @@ namespace Game.Chat
return false;
uint anim_id = args.NextUInt32();
handler.GetSession().GetPlayer().SetUInt32Value(UnitFields.NpcEmotestate, anim_id);
handler.GetSession().GetPlayer().SetEmoteState((Emote)anim_id);
return true;
}
@@ -637,8 +593,8 @@ namespace Game.Chat
}
// Set gender
target.SetByteValue(UnitFields.Bytes0, 3, (byte)gender);
target.SetByteValue(PlayerFields.Bytes3, PlayerFieldOffsets.Bytes3OffsetGender, (byte)gender);
target.SetGender(gender);
target.SetNativeSex(gender);
// Change display ID
target.InitDisplayIds();
+17 -16
View File
@@ -44,8 +44,8 @@ namespace Game.Chat
CreatureTemplate cInfo = target.GetCreatureTemplate();
uint faction = target.getFaction();
ulong npcflags = target.GetUInt64Value(UnitFields.NpcFlags);
uint faction = target.GetFaction();
ulong npcflags = (ulong)target.m_unitData.NpcFlags[0] << 32 | target.m_unitData.NpcFlags[1];
uint mechanicImmuneMask = cInfo.MechanicImmuneMask;
uint displayid = target.GetDisplayId();
uint nativeid = target.GetNativeDisplayId();
@@ -63,22 +63,22 @@ namespace Game.Chat
handler.SendSysMessage(CypherStrings.NpcinfoHealth, target.GetCreateHealth(), target.GetMaxHealth(), target.GetHealth());
handler.SendSysMessage(CypherStrings.NpcinfoInhabitType, cInfo.InhabitType);
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags, target.GetUInt32Value(UnitFields.Flags));
foreach (uint value in Enum.GetValues(typeof(UnitFlags)))
if (target.GetUInt32Value(UnitFields.Flags).HasAnyFlag(value))
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags, target.m_unitData.Flags);
foreach (UnitFlags value in Enum.GetValues(typeof(UnitFlags)))
if (target.HasUnitFlag(value))
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags)value, value);
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags2, target.GetUInt32Value(UnitFields.Flags2));
foreach (uint value in Enum.GetValues(typeof(UnitFlags2)))
if (target.GetUInt32Value(UnitFields.Flags2).HasAnyFlag(value))
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags2, target.m_unitData.Flags2);
foreach (UnitFlags2 value in Enum.GetValues(typeof(UnitFlags2)))
if (target.HasUnitFlag2(value))
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags2)value, value);
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags3, target.GetUInt32Value(UnitFields.Flags3));
foreach (uint value in Enum.GetValues(typeof(UnitFlags3)))
if (target.GetUInt32Value(UnitFields.Flags3).HasAnyFlag(value))
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags3, target.m_unitData.Flags3);
foreach (UnitFlags3 value in Enum.GetValues(typeof(UnitFlags3)))
if (target.HasUnitFlag3(value))
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags3)value, value);
handler.SendSysMessage(CypherStrings.NpcinfoDynamicFlags, target.GetUInt32Value(ObjectFields.DynamicFlags));
handler.SendSysMessage(CypherStrings.NpcinfoDynamicFlags, target.GetDynamicFlags());
handler.SendSysMessage(CypherStrings.CommandRawpawntimes, defRespawnDelayStr, curRespawnDelayStr);
handler.SendSysMessage(CypherStrings.NpcinfoLoot, cInfo.LootId, cInfo.PickPocketId, cInfo.SkinLootId);
handler.SendSysMessage(CypherStrings.NpcinfoDungeonId, target.GetInstanceId());
@@ -243,7 +243,7 @@ namespace Game.Chat
return false;
}
target.SetUInt32Value(UnitFields.NpcEmotestate, emote);
target.SetEmoteState((Emote)emote);
return true;
}
@@ -402,13 +402,13 @@ namespace Game.Chat
uint level = (creatureTarget.getLevel() < (player.getLevel() - 5)) ? (player.getLevel() - 5) : creatureTarget.getLevel();
// prepare visual effect for levelup
pet.SetUInt32Value(UnitFields.Level, level - 1);
pet.SetLevel(level - 1);
// add to world
pet.GetMap().AddToMap(pet.ToCreature());
// visual effect for levelup
pet.SetUInt32Value(UnitFields.Level, level);
pet.SetLevel(level);
// caster have pet now
player.SetMinion(pet, true);
@@ -685,7 +685,8 @@ namespace Game.Chat
return false;
}
creature.SetUInt64Value(UnitFields.NpcFlags, npcFlags);
creature.SetNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF));
creature.SetNpcFlags2((NPCFlags2)(npcFlags >> 32));
PreparedStatement stmt = DB.World.GetPreparedStatement(WorldStatements.UPD_CREATURE_NPCFLAG);
stmt.AddValue(0, npcFlags);
+4 -4
View File
@@ -63,8 +63,8 @@ namespace Game.Chat
creatureTarget.RemoveCorpse();
creatureTarget.SetHealth(0); // just for nice GM-mode view
pet.SetGuidValue(UnitFields.CreatedBy, player.GetGUID());
pet.SetUInt32Value(UnitFields.FactionTemplate, player.getFaction());
pet.SetCreatorGUID(player.GetGUID());
pet.SetFaction(player.GetFaction());
if (!pet.InitStatsForLevel(creatureTarget.getLevel()))
{
@@ -74,7 +74,7 @@ namespace Game.Chat
}
// prepare visual effect for levelup
pet.SetUInt32Value(UnitFields.Level, creatureTarget.getLevel() - 1);
pet.SetLevel(creatureTarget.getLevel() - 1);
pet.GetCharmInfo().SetPetNumber(Global.ObjectMgr.GeneratePetNumber(), true);
// this enables pet details window (Shift+P)
@@ -84,7 +84,7 @@ namespace Game.Chat
pet.GetMap().AddToMap(pet.ToCreature());
// visual effect for levelup
pet.SetUInt32Value(UnitFields.Level, creatureTarget.getLevel());
pet.SetLevel(creatureTarget.getLevel());
player.SetMinion(pet, true);
pet.SavePetToDB(PetSaveMode.AsCurrent);
+6 -6
View File
@@ -395,12 +395,12 @@ namespace Game.Chat
return true;
}
[Command("item_enchantment_template", RBACPermissions.CommandReloadItemEnchantmentTemplate, true)]
static bool HandleReloadItemEnchantementsCommand(StringArguments args, CommandHandler handler)
[Command("item_random_bonus_list_template", RBACPermissions.CommandReloadItemRandomBonusListTemplate, true)]
static bool HandleReloadItemRandomBonusListTemplatesCommand(StringArguments args, CommandHandler handler)
{
Log.outInfo(LogFilter.Server, "Re-Loading Item Random Enchantments Table...");
ItemEnchantment.LoadRandomEnchantmentsTable();
handler.SendGlobalGMSysMessage("DB table `item_enchantment_template` reloaded.");
Log.outInfo(LogFilter.Server, "Re-Loading Random item bonus list definitions...");
ItemEnchantmentManager.LoadItemRandomBonusListTemplates();
handler.SendGlobalGMSysMessage("DB table `item_random_bonus_list_template` reloaded.");
return true;
}
@@ -1015,7 +1015,7 @@ namespace Game.Chat
static bool HandleReloadAllItemCommand(StringArguments args, CommandHandler handler)
{
HandleReloadPageTextsCommand(null, handler);
HandleReloadItemEnchantementsCommand(null, handler);
HandleReloadItemRandomBonusListTemplatesCommand(null, handler);
return true;
}
+6 -7
View File
@@ -51,8 +51,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(args, out target))
return false;
target.SetUInt32Value(ActivePlayerFields.Kills, 0);
target.SetUInt32Value(ActivePlayerFields.LifetimeHonorableKills, 0);
target.ResetHonorStats();
target.UpdateCriteria(CriteriaTypes.EarnHonorableKill);
return true;
@@ -74,18 +73,18 @@ namespace Game.Chat
player.SetShapeshiftForm(ShapeShiftForm.None);
player.setFactionForRace(player.GetRace());
player.SetUInt32Value(UnitFields.DisplayPower, (uint)powerType);
player.SetPowerType(powerType);
// reset only if player not in some form;
if (player.GetShapeshiftForm() == ShapeShiftForm.None)
player.InitDisplayIds();
player.SetByteValue(UnitFields.Bytes2, UnitBytes2Offsets.PvpFlag, (byte)UnitBytes2Flags.PvP);
player.SetPvpFlags(UnitPVPStateFlags.PvP);
player.SetUInt32Value(UnitFields.Flags, (uint)UnitFlags.PvpAttackable);
player.SetUnitFlags(UnitFlags.PvpAttackable);
//-1 is default value
player.SetUInt32Value(ActivePlayerFields.WatchedFactionIndex, 0xFFFFFFFF);
player.SetWatchedFactionIndex(0xFFFFFFFF);
return true;
}
@@ -110,7 +109,7 @@ namespace Game.Chat
target.InitStatsForLevel(true);
target.InitTaxiNodesForLevel();
target.InitTalentForLevel();
target.SetUInt32Value(ActivePlayerFields.Xp, 0);
target.SetXP(0);
target._ApplyAllLevelScaleItemMods(true);
+6 -6
View File
@@ -62,7 +62,7 @@ namespace Game.Chat.Commands
string tNameLink = handler.GetNameLink(target);
target.SetTitle(titleInfo); // to be sure that title now known
target.SetUInt32Value(PlayerFields.ChosenTitle, titleInfo.MaskID);
target.SetChosenTitle(titleInfo.MaskID);
handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()], tNameLink);
return true;
@@ -150,9 +150,9 @@ namespace Game.Chat.Commands
handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink);
if (!target.HasTitle(target.GetUInt32Value(PlayerFields.ChosenTitle)))
if (!target.HasTitle(target.m_playerData.PlayerTitle))
{
target.SetUInt32Value(PlayerFields.ChosenTitle, 0);
target.SetChosenTitle(0);
handler.SendSysMessage(CypherStrings.CurrentTitleReset, tNameLink);
}
@@ -189,12 +189,12 @@ namespace Game.Chat.Commands
titles &= ~titles2; // remove not existed titles
target.SetUInt64Value(ActivePlayerFields.KnownTitles, titles);
target.SetKnownTitles(0, titles);
handler.SendSysMessage(CypherStrings.Done);
if (!target.HasTitle(target.GetUInt32Value(PlayerFields.ChosenTitle)))
if (!target.HasTitle(target.m_playerData.PlayerTitle))
{
target.SetUInt32Value(PlayerFields.ChosenTitle, 0);
target.SetChosenTitle(0);
handler.SendSysMessage(CypherStrings.CurrentTitleReset, handler.GetNameLink(target));
}