コード例 #1
0
        protected override void Read(OnlineReader Sender)
        {
            int ListRoomUpdatesCount = Sender.ReadInt32();

            for (int i = 0; i < ListRoomUpdatesCount; ++i)
            {
                string RoomID = Sender.ReadString();
                bool   IsDead = Sender.ReadBoolean();

                if (IsDead)
                {
                    ListRoomUpdates.Add(new ServerRoomInformations(RoomID, IsDead));
                }
                else
                {
                    string Name               = Sender.ReadString();
                    string RoomType           = Sender.ReadString();
                    string RoomSubtype        = Sender.ReadString();
                    bool   IsPlaying          = Sender.ReadBoolean();
                    byte   MinPlayer          = Sender.ReadByte();
                    byte   MaxPlayer          = Sender.ReadByte();
                    byte   CurrentClientCount = Sender.ReadByte();

                    ListRoomUpdates.Add(new ServerRoomInformations(RoomID, Name, RoomType, RoomSubtype, IsPlaying, MinPlayer, MaxPlayer, CurrentClientCount));
                }
            }
        }
コード例 #2
0
 protected override void Read(OnlineReader Sender)
 {
     MapName           = Sender.ReadString();
     MapType           = Sender.ReadString();
     MapPath           = Sender.ReadString();
     MinNumberOfPlayer = Sender.ReadByte();
     MaxNumberOfPlayer = Sender.ReadByte();
 }
コード例 #3
0
        protected override void Read(OnlineReader Sender)
        {
            RoomID    = Sender.ReadString();
            RoomExist = Sender.ReadBoolean();

            if (RoomExist)
            {
                CurrentPlayerCount = Sender.ReadByte();
                MinNumberOfPlayer  = Sender.ReadByte();
                MaxNumberOfPlayer  = Sender.ReadByte();
            }
        }
コード例 #4
0
        protected override void Read(OnlineReader Sender)
        {
            LocalPlayerIndex = Sender.ReadByte();

            int ArraySquadLength = Sender.ReadInt32();

            ArrayNewSquad = new SquadLoadout[ArraySquadLength];
            for (int S = 0; S < ArraySquadLength; ++S)
            {
                int           UnitsInSquad = Sender.ReadInt32();
                UnitLoadout[] ArrayNewUnit = new UnitLoadout[UnitsInSquad];
                for (int U = 0; U < UnitsInSquad; ++U)
                {
                    string UnitTypeName = Sender.ReadString();
                    string RelativePath = Sender.ReadString();

                    int      ArrayCharacterLength = Sender.ReadInt32();
                    string[] ArrayNewCharacter    = new string[UnitsInSquad];
                    for (int C = 0; C < ArrayCharacterLength; ++C)
                    {
                        ArrayNewCharacter[C] = Sender.ReadString();
                    }

                    ArrayNewUnit[S] = new UnitLoadout(UnitTypeName, RelativePath, ArrayNewCharacter);
                }

                ArrayNewSquad[S] = new SquadLoadout(ArrayNewUnit);
            }
        }
コード例 #5
0
            protected override void Read(OnlineReader Sender)
            {
                WeaponCount    = Sender.ReadByte();
                ArrayCanAttack = new bool[WeaponCount];

                for (int W = 0; W < WeaponCount; W++)
                {
                    ArrayCanAttack[W] = Sender.ReadBoolean();
                }
            }
コード例 #6
0
            public Squad GetOnlineSquad(OnlineReader ActivePlayer, out int SquadPlayerIndex)
            {
                SquadPlayerIndex = ActivePlayer.ReadInt32();
                float  SquadPositionX       = ActivePlayer.ReadFloat();
                float  SquadPositionY       = ActivePlayer.ReadFloat();
                float  SquadPositionZ       = ActivePlayer.ReadFloat();
                string ActiveSquadSquadName = ActivePlayer.ReadString();

                byte UnitsInSquad = ActivePlayer.ReadByte();

                Unit NewLeader = null, NewWingmanA = null, NewWingmanB = null;

                if (UnitsInSquad >= 1)
                {
                    string UnitTypeName   = ActivePlayer.ReadString();
                    string UnitName       = ActivePlayer.ReadString();
                    int    CharacterCount = ActivePlayer.ReadInt32();

                    NewLeader = Unit.FromType(UnitTypeName, UnitName, Map.Content, Map.DicUnitType, Map.DicRequirement, Map.DicEffect);
                    NewLeader.ArrayCharacterActive = new Character[CharacterCount];

                    for (int C = 0; C < CharacterCount; C++)
                    {
                        NewLeader.ArrayCharacterActive[C] = new Character(ActivePlayer.ReadString(), Map.Content, Map.DicRequirement, Map.DicEffect);
                    }

                    //Initialise the Unit stats.
                    NewLeader.Init();
                }
                if (UnitsInSquad >= 2)
                {
                    string UnitTypeName   = ActivePlayer.ReadString();
                    string UnitName       = ActivePlayer.ReadString();
                    int    CharacterCount = ActivePlayer.ReadInt32();

                    NewWingmanA = Unit.FromType(UnitTypeName, UnitName, Map.Content, Map.DicUnitType, Map.DicRequirement, Map.DicEffect);
                    NewWingmanA.ArrayCharacterActive = new Character[CharacterCount];

                    for (int C = 0; C < CharacterCount; C++)
                    {
                        NewWingmanA.ArrayCharacterActive[C] = new Character(ActivePlayer.ReadString(), Map.Content, Map.DicRequirement, Map.DicEffect);
                    }

                    //Initialise the Unit stats.
                    NewWingmanA.Init();
                }
                if (UnitsInSquad >= 3)
                {
                    string UnitTypeName   = ActivePlayer.ReadString();
                    string UnitName       = ActivePlayer.ReadString();
                    int    CharacterCount = ActivePlayer.ReadInt32();

                    NewWingmanB = Unit.FromType(UnitTypeName, UnitName, Map.Content, Map.DicUnitType, Map.DicRequirement, Map.DicEffect);
                    NewWingmanB.ArrayCharacterActive = new Character[CharacterCount];

                    for (int C = 0; C < CharacterCount; C++)
                    {
                        NewWingmanB.ArrayCharacterActive[C] = new Character(ActivePlayer.ReadString(), Map.Content, Map.DicRequirement, Map.DicEffect);
                    }

                    //Initialise the Unit stats.
                    NewWingmanB.Init();
                }

                Squad NewSquad = new Squad(ActiveSquadSquadName, NewLeader, NewWingmanA, NewWingmanB);

                Map.SpawnSquad(SquadPlayerIndex, NewSquad, 0, new Vector3(SquadPositionX, SquadPositionY, SquadPositionZ));

                return(NewSquad);
            }
コード例 #7
0
 protected override void Read(OnlineReader Sender)
 {
     Position = new Vector2(Sender.ReadFloat(), Sender.ReadFloat());
     Speed    = new Vector2(Sender.ReadFloat(), Sender.ReadFloat());
     VFXType  = Sender.ReadByte();
 }
コード例 #8
0
 protected override void Read(OnlineReader Host)
 {
     Position = new Vector2(Host.ReadFloat(), Host.ReadFloat());
     Speed    = new Vector2(Host.ReadFloat(), Host.ReadFloat());
     VFXType  = (VFXTypes)Host.ReadByte();
 }