コード例 #1
0
 public override void Save(StreamHandler writer)
 {
     writer.WriteGuid(Entity);
     writer.WriteUInt32(Model);
     writer.WriteByte((byte)Race);
     writer.WriteByte((byte)Gender);
     writer.WriteByte((byte)Class);
     writer.WriteByte(Skin);
     writer.WriteByte(Face);
     writer.WriteByte(Hair);
     writer.WriteByte(HairColor);
     writer.WriteByte(FaceFeatures);
     writer.WriteGuid(Guild);
     writer.WriteUInt32(Head);
     writer.WriteUInt32(Shoulders);
     writer.WriteUInt32(Body);
     writer.WriteUInt32(Chest);
     writer.WriteUInt32(Waist);
     writer.WriteUInt32(Legs);
     writer.WriteUInt32(Feet);
     writer.WriteUInt32(Wrists);
     writer.WriteUInt32(Hands);
     writer.WriteUInt32(Back);
     writer.WriteUInt32(Tabard);
 }
コード例 #2
0
 public void Write(StreamHandler Writer)
 {
     Writer.WriteGuid(TargetGuid);
     Writer.WriteByte((byte)MissCondition);
     if (MissCondition == CastMissReason.Reflect)
     {
         Writer.WriteByte(ReflectResult);
     }
 }
コード例 #3
0
        public override void Save(StreamHandler writer)
        {
            writer.WriteByte((byte)ContainerSlot);
            writer.WriteByte((byte)Slot);
            writer.WriteByte(CastId);
            writer.WriteUInt32(SpellId);
            writer.WriteGuid(ItemGuid);
            writer.WriteUInt32(GlyphSlot);
            writer.WriteByte(UnkFlags);

            TargetData.Write(writer);
        }
コード例 #4
0
ファイル: UseItem.cs プロジェクト: CarlosX/Kamilla.Wow
        public override void Save(StreamHandler writer)
        {
            writer.WriteByte((byte)ContainerSlot);
            writer.WriteByte((byte)Slot);
            writer.WriteByte(CastId);
            writer.WriteUInt32(SpellId);
            writer.WriteGuid(ItemGuid);
            writer.WriteUInt32(GlyphSlot);
            writer.WriteByte(UnkFlags);

            TargetData.Write(writer);
        }
コード例 #5
0
        /// <summary>
        /// Writes the spline info into the current stream,
        /// advancing the current position by spline info's size.
        /// </summary>
        public static void WriteSplineInfo(this StreamHandler Writer, SplineInfo Info)
        {
            Writer.WriteUInt32((uint)Info.Flags);

            if ((Info.Flags & SplineFlags.FinalPoint) != SplineFlags.None)
            {
                Writer.WriteStruct <Vector3>(Info.FinalPoint);
            }

            if ((Info.Flags & SplineFlags.FinalTarget) != SplineFlags.None)
            {
                Writer.WriteGuid(Info.FinalGuid);
            }

            if ((Info.Flags & SplineFlags.FinalOrient) != SplineFlags.None)
            {
                Writer.WriteSingle(Info.FinalRotation);
            }

            Writer.WriteUInt32(Info.CurrentTime);
            Writer.WriteUInt32(Info.FullTime);
            Writer.WriteUInt32(Info.Unknown1);
            Writer.WriteSingle(Info.DurationMultiplier);
            Writer.WriteSingle(Info.UnknownFloat2);
            Writer.WriteSingle(Info.UnknownFloat3);
            Writer.WriteUInt32(Info.Unknown2);
            Writer.WriteInt32(Info.Points.Count);

            for (int i = 0; i < Info.Points.Count; ++i)
            {
                Writer.WriteStruct <Vector3>(Info.Points[i]);
            }

            Writer.WriteByte((byte)Info.SplineMode);
            Writer.WriteStruct <Vector3>(Info.EndPoint);
        }
コード例 #6
0
 protected override void PackedSave(StreamHandler writer)
 {
     writer.WriteGuid(PlayerGuid);
 }
コード例 #7
0
ファイル: ThreatClear.cs プロジェクト: CarlosX/Kamilla.Wow
 public override void Save(StreamHandler writer)
 {
     writer.WriteGuid(this.Unit);
 }
コード例 #8
0
 protected sealed override void PackedSave(StreamHandler writer)
 {
     writer.WriteGuid(this.Guid);
 }
コード例 #9
0
 public override void Save(StreamHandler writer)
 {
     writer.WriteGuid(Entity);
     writer.WriteUInt32(Model);
     writer.WriteByte((byte)Race);
     writer.WriteByte((byte)Gender);
     writer.WriteByte((byte)Class);
     writer.WriteByte(Skin);
     writer.WriteByte(Face);
     writer.WriteByte(Hair);
     writer.WriteByte(HairColor);
     writer.WriteByte(FaceFeatures);
     writer.WriteGuid(Guild);
     writer.WriteUInt32(Head);
     writer.WriteUInt32(Shoulders);
     writer.WriteUInt32(Body);
     writer.WriteUInt32(Chest);
     writer.WriteUInt32(Waist);
     writer.WriteUInt32(Legs);
     writer.WriteUInt32(Feet);
     writer.WriteUInt32(Wrists);
     writer.WriteUInt32(Hands);
     writer.WriteUInt32(Back);
     writer.WriteUInt32(Tabard);
 }
コード例 #10
0
ファイル: SpellCasting.cs プロジェクト: SkyFire/Kamilla.Wow
        /// <summary>
        /// Saves the current instance of SpellGo class to a StreamHandler.
        /// </summary>
        /// <param name="Writer">The StreamHandler to use.</param>
        public override void Save(StreamHandler Writer)
        {
            Writer.WritePackedGuid(Caster);
            Writer.WritePackedGuid(CastInvoker);
            Writer.WriteByte(CastId);
            Writer.WriteUInt32(SpellId);
            Writer.WriteUInt32((uint)Flags);
            Writer.WriteUInt32(Unk43);
            Writer.WriteUInt32(CastTime);

            Writer.WriteByte((byte)Hits.Count);
            foreach (WowGuid guid in Hits)
                Writer.WriteGuid(guid);

            Writer.WriteByte((byte)Misses.Count);
            foreach (MissData miss in Misses)
                miss.Write(Writer);

            TargetData.Write(Writer);

            if ((Flags & CastFlags.PredictedPower) != 0)
                Writer.WriteUInt32(PredictedPower);

            if ((Flags & CastFlags.RuneStates) != 0)
            {
                Writer.WriteByte((byte)RunesBefore);
                Writer.WriteByte((byte)RunesAfter);
                for (int i = 0; i < RuneCooldowns.Length; ++i)
                    Writer.WriteByte((byte)RuneCooldowns[i]);
            }

            if ((Flags & CastFlags.Unk0x00020000) != 0)
            {
                Writer.WriteSingle(Unk0x20000_Float);
                Writer.WriteUInt32(Unk0x20000_UInt32);
            }

            if ((Flags & CastFlags.Ammo) != 0)
            {
                Writer.WriteUInt32(ProjectileDisplayId);
                Writer.WriteUInt32((uint)ProjectileInventoryType);
            }

            if ((Flags & CastFlags.Unk0x00080000) != 0)
            {
                Writer.WriteUInt32(Unk0x80000_UInt32_1);
                Writer.WriteUInt32(Unk0x80000_UInt32_2);
            }

            if ((TargetData.Flags & SpellCastTargetFlags.DestLocation) != 0)
            {
                Writer.WriteByte(DestLocationCounter);
            }

            if ((TargetData.Flags & SpellCastTargetFlags.Unk4) != 0)
            {
                Writer.WriteUInt32(Unk4_Count);
                foreach (var pair in Unk4_List)
                {
                    Writer.WriteStruct(pair.Value);
                    Writer.WriteGuid(pair.Key);
                    if (pair.Key.IsEmpty)
                        break;
                }
            }
        }
コード例 #11
0
ファイル: SpellCasting.cs プロジェクト: SkyFire/Kamilla.Wow
 public void Write(StreamHandler Writer)
 {
     Writer.WriteGuid(TargetGuid);
     Writer.WriteByte((byte)MissCondition);
     if (MissCondition == CastMissReason.Reflect)
         Writer.WriteByte(ReflectResult);
 }
コード例 #12
0
        /// <summary>
        /// Saves the current ChatMessage to a stream using a StreamHandler.
        /// </summary>
        /// <param name="Writer">
        /// Instance of StreamHandler used to save the current ChatMessage to a stream.
        /// </param>
        public override void Save(StreamHandler Writer)
        {
            Writer.WriteByte((byte)m_type);
            Writer.WriteUInt32((uint)m_language);
            Writer.WriteGuid(m_senderGUID);
            Writer.WriteUInt32(m_unknownUInt32);

            switch (m_type)
            {
                case ChatMessageType.MonsterSay:
                case ChatMessageType.MonsterParty:
                case ChatMessageType.MonsterYell:
                case ChatMessageType.MonsterWhisper:
                case ChatMessageType.MonsterEmote:
                case ChatMessageType.RaidBossEmote:
                case ChatMessageType.RaidBossWhisper:
                case ChatMessageType.BattleNet:
                    Writer.WriteChatString(m_senderName ?? "<sender>");
                    Writer.WriteGuid(m_targetGUID);
                    if (!m_targetGUID.IsEmpty
                        && !m_targetGUID.IsPlayer
                        && !m_targetGUID.IsPet)
                    {
                        Writer.WriteChatString(m_targetName ?? "<target>");
                    }
                    if (m_language == Language.Addon)
                        Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                    Writer.WriteChatString(m_text ?? "<text>");
                    Writer.WriteByte((byte)m_flags);
                    if (m_type == ChatMessageType.RaidBossEmote || m_type == ChatMessageType.RaidBossWhisper)
                    {
                        Writer.WriteSingle(m_displayTime);
                        Writer.WriteBoolean(m_suspendEvent);
                    }
                    break;
                case ChatMessageType.BGSystemNeutral:
                case ChatMessageType.BGSystemAlliance:
                case ChatMessageType.BGSystemHorde:
                    Writer.WriteGuid(m_targetGUID);
                    if (!m_targetGUID.IsEmpty
                        && !m_targetGUID.IsPlayer)
                    {
                        Writer.WriteChatString(m_targetName);
                    }
                    if (m_language == Language.Addon)
                        Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                    Writer.WriteChatString(m_text ?? "<text>");
                    Writer.WriteByte((byte)m_flags);
                    break;
                case ChatMessageType.Achievement:
                case ChatMessageType.GuildAchievement:
                    Writer.WriteGuid(m_targetGUID);
                    if (m_language == Language.Addon)
                        Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                    Writer.WriteChatString(m_text ?? "<text>");
                    Writer.WriteByte((byte)m_flags);
                    Writer.WriteUInt32(m_achievementId);
                    break;
                case ChatMessageType.WhisperForeign:
                    Writer.WriteChatString(m_senderName ?? "<sender>");
                    Writer.WriteGuid(m_targetGUID);
                    if (m_language == Language.Addon)
                        Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                    Writer.WriteChatString(m_text ?? "<text>");
                    Writer.WriteByte((byte)m_flags);
                    break;
                default:
                    if (GameMasterMessage)
                        Writer.WriteChatString(m_senderName ?? "<sender>");
                    if (m_type == ChatMessageType.Channel)
                        Writer.WriteCString(m_channel ?? "<channel>");
                    Writer.WriteGuid(m_targetGUID);
                    if (m_language == Language.Addon)
                        Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                    Writer.WriteChatString(m_text ?? "<text>");
                    Writer.WriteByte((byte)m_flags);
                    break;
            }
        }
コード例 #13
0
        /// <summary>
        /// Saves the current ChatMessage to a stream using a StreamHandler.
        /// </summary>
        /// <param name="Writer">
        /// Instance of StreamHandler used to save the current ChatMessage to a stream.
        /// </param>
        public override void Save(StreamHandler Writer)
        {
            Writer.WriteByte((byte)m_type);
            Writer.WriteUInt32((uint)m_language);
            Writer.WriteGuid(m_senderGUID);
            Writer.WriteUInt32(m_unknownUInt32);

            switch (m_type)
            {
            case ChatMessageType.MonsterSay:
            case ChatMessageType.MonsterParty:
            case ChatMessageType.MonsterYell:
            case ChatMessageType.MonsterWhisper:
            case ChatMessageType.MonsterEmote:
            case ChatMessageType.RaidBossEmote:
            case ChatMessageType.RaidBossWhisper:
            case ChatMessageType.BattleNet:
                Writer.WriteChatString(m_senderName ?? "<sender>");
                Writer.WriteGuid(m_targetGUID);
                if (!m_targetGUID.IsEmpty &&
                    !m_targetGUID.IsPlayer &&
                    !m_targetGUID.IsPet)
                {
                    Writer.WriteChatString(m_targetName ?? "<target>");
                }
                if (m_language == Language.Addon)
                {
                    Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                }
                Writer.WriteChatString(m_text ?? "<text>");
                Writer.WriteByte((byte)m_flags);
                if (m_type == ChatMessageType.RaidBossEmote || m_type == ChatMessageType.RaidBossWhisper)
                {
                    Writer.WriteSingle(m_displayTime);
                    Writer.WriteBoolean(m_suspendEvent);
                }
                break;

            case ChatMessageType.BGSystemNeutral:
            case ChatMessageType.BGSystemAlliance:
            case ChatMessageType.BGSystemHorde:
                Writer.WriteGuid(m_targetGUID);
                if (!m_targetGUID.IsEmpty &&
                    !m_targetGUID.IsPlayer)
                {
                    Writer.WriteChatString(m_targetName);
                }
                if (m_language == Language.Addon)
                {
                    Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                }
                Writer.WriteChatString(m_text ?? "<text>");
                Writer.WriteByte((byte)m_flags);
                break;

            case ChatMessageType.Achievement:
            case ChatMessageType.GuildAchievement:
                Writer.WriteGuid(m_targetGUID);
                if (m_language == Language.Addon)
                {
                    Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                }
                Writer.WriteChatString(m_text ?? "<text>");
                Writer.WriteByte((byte)m_flags);
                Writer.WriteUInt32(m_achievementId);
                break;

            case ChatMessageType.WhisperForeign:
                Writer.WriteChatString(m_senderName ?? "<sender>");
                Writer.WriteGuid(m_targetGUID);
                if (m_language == Language.Addon)
                {
                    Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                }
                Writer.WriteChatString(m_text ?? "<text>");
                Writer.WriteByte((byte)m_flags);
                break;

            default:
                if (GameMasterMessage)
                {
                    Writer.WriteChatString(m_senderName ?? "<sender>");
                }
                if (m_type == ChatMessageType.Channel)
                {
                    Writer.WriteCString(m_channel ?? "<channel>");
                }
                Writer.WriteGuid(m_targetGUID);
                if (m_language == Language.Addon)
                {
                    Writer.WriteCString(m_addonPrefix ?? "<prefix>");
                }
                Writer.WriteChatString(m_text ?? "<text>");
                Writer.WriteByte((byte)m_flags);
                break;
            }
        }
コード例 #14
0
        /// <summary>
        /// Saves the current instance of SpellGo class to a StreamHandler.
        /// </summary>
        /// <param name="Writer">The StreamHandler to use.</param>
        public override void Save(StreamHandler Writer)
        {
            Writer.WritePackedGuid(Caster);
            Writer.WritePackedGuid(CastInvoker);
            Writer.WriteByte(CastId);
            Writer.WriteUInt32(SpellId);
            Writer.WriteUInt32((uint)Flags);
            Writer.WriteUInt32(Unk43);
            Writer.WriteUInt32(CastTime);

            Writer.WriteByte((byte)Hits.Count);
            foreach (WowGuid guid in Hits)
            {
                Writer.WriteGuid(guid);
            }

            Writer.WriteByte((byte)Misses.Count);
            foreach (MissData miss in Misses)
            {
                miss.Write(Writer);
            }

            TargetData.Write(Writer);

            if ((Flags & CastFlags.PredictedPower) != 0)
            {
                Writer.WriteUInt32(PredictedPower);
            }

            if ((Flags & CastFlags.RuneStates) != 0)
            {
                Writer.WriteByte((byte)RunesBefore);
                Writer.WriteByte((byte)RunesAfter);
                for (int i = 0; i < RuneCooldowns.Length; ++i)
                {
                    Writer.WriteByte((byte)RuneCooldowns[i]);
                }
            }

            if ((Flags & CastFlags.Unk0x00020000) != 0)
            {
                Writer.WriteSingle(Unk0x20000_Float);
                Writer.WriteUInt32(Unk0x20000_UInt32);
            }

            if ((Flags & CastFlags.Ammo) != 0)
            {
                Writer.WriteUInt32(ProjectileDisplayId);
                Writer.WriteUInt32((uint)ProjectileInventoryType);
            }

            if ((Flags & CastFlags.Unk0x00080000) != 0)
            {
                Writer.WriteUInt32(Unk0x80000_UInt32_1);
                Writer.WriteUInt32(Unk0x80000_UInt32_2);
            }

            if ((TargetData.Flags & SpellCastTargetFlags.DestLocation) != 0)
            {
                Writer.WriteByte(DestLocationCounter);
            }

            if ((TargetData.Flags & SpellCastTargetFlags.Unk4) != 0)
            {
                Writer.WriteUInt32(Unk4_Count);
                foreach (var pair in Unk4_List)
                {
                    Writer.WriteStruct(pair.Value);
                    Writer.WriteGuid(pair.Key);
                    if (pair.Key.IsEmpty)
                    {
                        break;
                    }
                }
            }
        }
コード例 #15
0
 public override void Save(StreamHandler writer)
 {
     writer.WriteGuid(this.Unit);
     writer.WriteGuid(this.Victim);
 }
コード例 #16
0
 protected override void PackedSave(StreamHandler writer)
 {
     writer.WriteGuid(this.Unit);
 }
コード例 #17
0
 protected override void PackedSave(StreamHandler writer)
 {
     writer.WriteGuid(PlayerGuid);
     writer.WriteGuid(GuildGuid);
 }