public GameEventIdentifyObjectResponse(Session session, uint objectId, WorldObject obj) : base(GameEventType.IdentifyObjectResponse, GameMessageGroup.Group09, session) { // TODO - Send Actual Properties Writer.Write(objectId); // Check if item is WorldObject or a DebugObject System.Type type = obj.GetType(); IdentifyResponseFlags flags = IdentifyResponseFlags.None; // We will send some debug properties if this is a true DebugObject if (type.Name == "DebugObject") { flags = IdentifyResponseFlags.StringStatsTable; Writer.Write((uint)flags); // Flags Writer.Write(1u); // Success bool // Write a simple debug strings. Thanks to Pea for this idea. Writer.Write(1u + (1 << 16)); // One String, + table size Writer.Write(16u); // Long Description String string debugOutput = "baseAceObjectId: " + objectId.ToString() + " (0x" + objectId.ToString("X") + ")"; debugOutput += "\n" + "weenieClassId: " + obj.WeenieClassid.ToString() + " (0x" + obj.WeenieClassid.ToString("X") + ")"; Writer.WriteString16L(debugOutput); } else { Writer.Write((uint)flags); // Flags Writer.Write(0u); // Success bool (fail) } }
public GameEventIdentifyObjectResponse(Session session, WorldObject obj, bool success) : base(GameEventType.IdentifyObjectResponse, GameMessageGroup.Group09, session) { IdentifyResponseFlags flags = IdentifyResponseFlags.None; Writer.Write(obj.Guid.Full); obj.SerializeIdentifyObjectResponse(Writer, success, flags); }
/// <summary> /// Constructs the bitflags for appraising a WorldObject /// </summary> private void BuildFlags() { if (PropertiesInt.Count > 0) Flags |= IdentifyResponseFlags.IntStatsTable; if (PropertiesInt64.Count > 0) Flags |= IdentifyResponseFlags.Int64StatsTable; if (SpellBook.Count > 0) Flags |= IdentifyResponseFlags.SpellBook; if (ResistHighlight != 0) Flags |= IdentifyResponseFlags.ResistEnchantmentBitfield; if (NPCLooksLikeObject) return; if (PropertiesBool.Count > 0) Flags |= IdentifyResponseFlags.BoolStatsTable; if (PropertiesFloat.Count > 0) Flags |= IdentifyResponseFlags.FloatStatsTable; if (PropertiesString.Count > 0) Flags |= IdentifyResponseFlags.StringStatsTable; if (PropertiesDID.Count > 0) Flags |= IdentifyResponseFlags.DidStatsTable; if (ArmorProfile != null) Flags |= IdentifyResponseFlags.ArmorProfile; if (CreatureProfile != null) Flags |= IdentifyResponseFlags.CreatureProfile; if (WeaponProfile != null) Flags |= IdentifyResponseFlags.WeaponProfile; if (HookProfile != null) Flags |= IdentifyResponseFlags.HookProfile; if (ArmorHighlight != 0) Flags |= IdentifyResponseFlags.ArmorEnchantmentBitfield; if (WeaponHighlight != 0) Flags |= IdentifyResponseFlags.WeaponEnchantmentBitfield; if (ArmorLevels != null) Flags |= IdentifyResponseFlags.ArmorLevels; }
public AppraiseInfo() { Flags = IdentifyResponseFlags.None; Success = false; }
public override void SerializeIdentifyObjectResponse(BinaryWriter writer, bool success, IdentifyResponseFlags flags = IdentifyResponseFlags.None) { flags |= IdentifyResponseFlags.WeaponProfile; base.SerializeIdentifyObjectResponse(writer, success, flags); WriteIdentifyObjectWeaponsProfile(writer, this, success); }
public override void SerializeIdentifyObjectResponse(BinaryWriter writer, bool success, IdentifyResponseFlags flags = IdentifyResponseFlags.None) { bool hideCreatureProfile = NpcLooksLikeObject ?? false; if (!hideCreatureProfile) { flags |= IdentifyResponseFlags.CreatureProfile; } base.SerializeIdentifyObjectResponse(writer, success, flags); if (!hideCreatureProfile) { WriteIdentifyObjectCreatureProfile(writer, this, success); } }
public override void SerializeIdentifyObjectResponse(BinaryWriter writer, bool success, IdentifyResponseFlags flags = IdentifyResponseFlags.None) { if (GetProperty(PropertyInt.ArmorType).HasValue) { flags |= IdentifyResponseFlags.ArmorProfile; } base.SerializeIdentifyObjectResponse(writer, success, flags); if (flags.HasFlag(IdentifyResponseFlags.ArmorProfile)) { WriteIdentifyObjectArmorProfile(writer, this, success); } }
public override void SerializeIdentifyObjectResponse(BinaryWriter writer, bool success, IdentifyResponseFlags flags = IdentifyResponseFlags.None) { WriteIdentifyObjectHeader(writer, idFlags, true); // Always succeed in assessing a coin. WriteIdentifyObjectIntProperties(writer, idFlags, CoinPropertiesInt); }
public override void SerializeIdentifyObjectResponse(BinaryWriter writer, bool success, IdentifyResponseFlags flags = IdentifyResponseFlags.None) { WriteIdentifyObjectHeader(writer, idFlags, true); // Always succeed in assessing a scroll. WriteIdentifyObjectIntProperties(writer, idFlags, ScrollPropertiesInt); WriteIdentifyObjectStringsProperties(writer, idFlags, ScrollPropertiesString); WriteIdentifyObjectSpellIdProperties(writer, idFlags, ScrollPropertiesSpellId); }