Beispiel #1
0
            public void ReadFromFile(BinaryReader reader)
            {
                uint RegenerationOffset = reader.ReadUInt32();
                uint NumRegeneration    = reader.ReadUInt32();
                uint NumRegeneration2   = reader.ReadUInt32();

                Regeneration = new float[NumRegeneration];

                uint DamageTimeoutOffset = reader.ReadUInt32();
                uint NumDamageTimeout0   = reader.ReadUInt32();
                uint NumDamageTimeout1   = reader.ReadUInt32();

                DamageTimeout = new float[NumDamageTimeout0];

                uint SizeOffset       = reader.ReadUInt32();
                uint NumSizeElements0 = reader.ReadUInt32();
                uint NumSizeElements1 = reader.ReadUInt32();

                Size = new float[NumSizeElements0];

                uint DamageGoesOverOffset = reader.ReadUInt32();
                uint NumDamageGoesOver    = reader.ReadUInt32();
                uint NumDamageGoesOver2   = reader.ReadUInt32();

                DamageGoesOver = new bool[NumDamageGoesOver];

                uint NoDmgTimeAfterSegmentDownOffset = reader.ReadUInt32();
                uint NumNoDmgTimeAfterSegmentDown0   = reader.ReadUInt32();
                uint NumNoDmgTimeAfterSegmentDown1   = reader.ReadUInt32();

                NoDmgTimeAfterSegmentDown = new float[NumNoDmgTimeAfterSegmentDown0];

                uint EffectNameOffset = reader.ReadUInt32();
                uint NumEffectName0   = reader.ReadUInt32();
                uint NumEffectName1   = reader.ReadUInt32();

                EffectName = new XBinHashName[NumEffectName0];

                uint EffectMaxOpacityOffset = reader.ReadUInt32();
                uint NumEffectMaxOpacity0   = reader.ReadUInt32();
                uint NumEffectMaxOpacity1   = reader.ReadUInt32();

                EffectMaxOpacity = new float[NumEffectMaxOpacity0];

                IsArmour = Convert.ToBoolean(reader.ReadUInt32());
            }
        public void ReadFromFile(BinaryReader reader)
        {
            unk0 = reader.ReadInt32();
            uint count1 = reader.ReadUInt32();
            uint count2 = reader.ReadUInt32();

            ImpactGroups = new ParticleNamesItem[count1];
            for (int i = 0; i < ImpactGroups.Length; i++)
            {
                ParticleNamesItem NewGroup = new ParticleNamesItem();
                NewGroup.InitialShot    = XBinHashName.ConstructAndReadFromFile(reader);
                NewGroup.Headshot       = XBinHashName.ConstructAndReadFromFile(reader);
                NewGroup.GrazingShot    = XBinHashName.ConstructAndReadFromFile(reader);
                NewGroup.KillShot       = XBinHashName.ConstructAndReadFromFile(reader);
                NewGroup.SplashDiameter = reader.ReadSingle();
                NewGroup.SplashHardness = reader.ReadSingle();
                NewGroup.SplashStrength = reader.ReadSingle();
                NewGroup.ShotDiameter   = reader.ReadSingle();
                NewGroup.ShotHardness   = reader.ReadSingle();
                NewGroup.ShotStrength   = reader.ReadSingle();
                ImpactGroups[i]         = NewGroup;
            }
        }
Beispiel #3
0
            public void ReadArrayData(BinaryReader reader)
            {
                // store the data from the file
                for (int i = 0; i < Regeneration.Length; i++)
                {
                }

                for (int i = 0; i < DamageTimeout.Length; i++)
                {
                }

                for (int i = 0; i < Size.Length; i++)
                {
                    Size[i] = reader.ReadSingle();
                }

                for (int i = 0; i < DamageGoesOver.Length; i++)
                {
                }

                for (int i = 0; i < NoDmgTimeAfterSegmentDown.Length; i++)
                {
                }

                for (int i = 0; i < EffectName.Length; i++)
                {
                    XBinHashName NewHashName = new XBinHashName();
                    NewHashName.ReadFromFile(reader);
                    EffectName[i] = NewHashName;
                }

                for (int i = 0; i < EffectMaxOpacity.Length; i++)
                {
                    EffectMaxOpacity[i] = reader.ReadSingle();
                }
            }
        public void ReadFromFile(BinaryReader reader)
        {
            unk0 = reader.ReadInt32();
            uint count1 = reader.ReadUInt32();
            uint count2 = reader.ReadUInt32();

            unk1 = reader.ReadInt32();

            DamageZones = new HumanDamageZoneItem[count1];
            for (int i = 0; i < DamageZones.Length; i++)
            {
                HumanDamageZoneItem NewItem = new HumanDamageZoneItem();
                NewItem.ItemID                          = reader.ReadUInt32();
                NewItem.StunGroupOffset                 = reader.ReadUInt32();
                NewItem.StunGroupLength0                = reader.ReadUInt32();
                NewItem.StunGroupLength1                = reader.ReadUInt32();
                NewItem.DamageZoneName                  = StringHelpers.ReadStringBuffer(reader, 32).Trim('\0');
                NewItem.Health                          = reader.ReadInt32();
                NewItem.DamageMultiplexBody             = reader.ReadSingle();
                NewItem.ArmorBodyVal                    = reader.ReadSingle();
                NewItem.SneakDmgBodyMult                = reader.ReadSingle();
                NewItem.SneakDmgLowerBodyMult           = reader.ReadSingle();
                NewItem.DamageMultiplexHead             = reader.ReadSingle();
                NewItem.ArmorHeadVal                    = reader.ReadSingle();
                NewItem.SneakDmgHeadMult                = reader.ReadSingle();
                NewItem.ArmorHandsVal                   = reader.ReadSingle();
                NewItem.SneakDmgHandsMult               = reader.ReadSingle();
                NewItem.DamageMultiplexLegs             = reader.ReadSingle();
                NewItem.ArmorLegsVal                    = reader.ReadSingle();
                NewItem.SneakDmgLegsMult                = reader.ReadSingle();
                NewItem.DamageMultiplexHands            = reader.ReadSingle();
                NewItem.EachHitStunHealthLevelThreshold = reader.ReadSingle();
                NewItem.SingleHitStunHealthThreshold    = reader.ReadSingle();
                NewItem.WeaponImpactGroupName           = XBinHashName.ConstructAndReadFromFile(reader);
                DamageZones[i]                          = NewItem;
            }

            for (int i = 0; i < DamageZones.Length; i++)
            {
                HumanDamageZoneItem DamageZone = DamageZones[i];
                DamageZone.StunGroups = new StunGroup[DamageZone.StunGroupLength0];

                for (int x = 0; x < DamageZone.StunGroupLength0; x++)
                {
                    StunGroup NewGroup = new StunGroup();
                    NewGroup.BodyListOffset        = reader.ReadUInt32();
                    NewGroup.BodyListOffsetLength0 = reader.ReadUInt32();
                    NewGroup.BodyListOffsetLength1 = reader.ReadUInt32();
                    NewGroup.DamageToStun          = reader.ReadSingle();
                    NewGroup.DamageTimeWindow      = reader.ReadSingle();
                    DamageZone.StunGroups[x]       = NewGroup;
                }

                for (int x = 0; x < DamageZone.StunGroupLength0; x++)
                {
                    StunGroup Group = DamageZone.StunGroups[x];
                    Group.BodyPartList = new EBodyPartType[Group.BodyListOffsetLength0];
                    for (int z = 0; z < Group.BodyPartList.Length; z++)
                    {
                        Group.BodyPartList[z] = (EBodyPartType)reader.ReadUInt32();
                    }
                }
            }
        }
 public HumanDamageZoneItem()
 {
     StunGroups            = new StunGroup[0];
     WeaponImpactGroupName = new XBinHashName();
 }