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;
        }
Exemple #4
0
 public AppraiseInfo()
 {
     Flags   = IdentifyResponseFlags.None;
     Success = false;
 }
Exemple #5
0
        public override void SerializeIdentifyObjectResponse(BinaryWriter writer, bool success, IdentifyResponseFlags flags = IdentifyResponseFlags.None)
        {
            flags |= IdentifyResponseFlags.WeaponProfile;

            base.SerializeIdentifyObjectResponse(writer, success, flags);

            WriteIdentifyObjectWeaponsProfile(writer, this, success);
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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);
            }
        }
Exemple #8
0
 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);
 }
Exemple #9
0
 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);
 }