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:
@@ -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;
|
||||
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user