Example #1
0
 public StartRound(Entities.Room r)
     : base((ushort)Enums.Packets.GamePacket)
 {
     Append(1);
     Append(-1);
     Append(r.ID);
     Append(1);
     Append(5); // TYPE
     Append(0);
     Append(r.CurrentGameMode.CurrentRoundTeamA());
     Append(r.CurrentGameMode.CurrentRoundTeamB());
     Append(1);
     Append(0);
     Append(5);
     Append(0);
     Append(0);
     Append(-1);
     Append(0);
     Append(0);
     Append(800000);
     Append(-184460);
     Append(800000);
     Append(1200000);
     Append(-900000);
     Append(1200000);
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append(0);
     Append(0);
     Append("DS05");
 }
Example #2
0
        protected override void Process(Entities.User u)
        {
            if (u.Authorized)
            {
                if (u.Room == null)
                {
                    Objects.Channel channel = Managers.ChannelManager.Instance.Get(u.Channel);

                    uint   roomId       = GetuInt(1);
                    string roomPassword = GetString(2);

                    if (channel.Rooms.ContainsKey(roomId))
                    {
                        Entities.Room r = null;
                        if (channel.Rooms.TryGetValue(roomId, out r))
                        {
                            if (!r.AddSpectator(u))
                            {
                                u.Send(new Packets.RoomSpectate(Packets.RoomSpectate.ErrorCodes.MaxSpectators));
                            }
                        }
                    }
                }
            }
            else
            {
                u.Disconnect();
            }
        }
Example #3
0
 public RoomCreation(Entities.Room r)
     : base((ushort)Enums.Packets.RoomCreation)
 {
     Append(Core.Constants.Error_OK);
     Append(0);
     addRoomInfo(r);
 }
 public VehicleSpawn(Entities.Room r, Entities.Vehicle Vehicle) : base(30000)
 {
     Append(1);
     Append(-1);
     Append(r.ID);
     Append(2);
     Append(151);
     Append(0);
     Append(1);
     Append(Vehicle.MapID);
     Append(500);
     Append(0);
     Append(1);
     Append(0);
     Append(15);
     Append(1);
     Append(5);
     Append(1);
     Append(1090909);
     Append(-60401);
     Append(1090909);
     Append(4256.2275);
     Append(1100.4197);
     Append(3323.0078);
     Append(-229.4619);
     Append(-33.1609);
     Append(-190.3880);
     Append(0);
     Append(0);
     Append("DU02");
 }
Example #5
0
        public void Remove(Entities.Room r)
        {
            Entities.Room rm;
            if (Rooms.ContainsKey(r.ID))
            {
                Rooms.TryRemove(r.ID, out rm);

                byte roomPage   = (byte)Math.Floor((decimal)(r.ID / 8));
                var  targetList = this.Users.Select(n => n.Value).Where(n => n.RoomListPage == roomPage && n.Room == null);
                if (targetList.Count() > 0)
                {
                    byte[] outBuffer = new Packets.RoomUpdate(r.ID).BuildEncrypted();
                    foreach (Entities.User u in targetList)
                    {
                        if (u.LastRoomId == r.ID)
                        {
                            u.LastRoomId = -1;
                        }
                        else
                        {
                            u.Send(outBuffer);
                        }
                    }
                }
            }

            lock (scanLock)
            {
                if (takenRoomIds.Contains((int)r.ID))
                {
                    takenRoomIds.Remove((int)r.ID);
                }
            }
        }
        public Scoreboard(Entities.Room r)
            : base((ushort)Enums.Packets.Scoreboard)
        {
            Append(Core.Constants.Error_OK);

            if (r.Mode == Enums.Mode.Explosive)
            {
                Append(r.CurrentGameMode.CurrentRoundTeamA());
                Append(r.CurrentGameMode.CurrentRoundTeamB());
            }
            else
            {
                Append(0);
                Append(0);
            }

            Append(r.CurrentGameMode.ScoreboardA());
            Append(r.CurrentGameMode.ScoreboardB());

            Entities.Player[] players = r.Players.Values.Where(p => p != null).ToArray();
            Append(players.Length);
            foreach (Entities.Player p in players)
            {
                Append(p.Id);
                Append(p.Kills);
                Append(p.Deaths);
                Append(p.Flags);
                Append(p.Assists + p.Points);
                Append(0);
            }
        }
        public MapData(Entities.Room r)
            : base((ushort)Enums.Packets.MapData)
        {
            Append(Core.Constants.Error_OK);

            sbyte[] flags = r.Flags;
            Append(flags.Length);
            for (byte i = 0; i < flags.Length; i++)
            {
                Append(flags[i]);
            }
            Append(900);     // ?

            lock (r._playerLock) {
                Append(r.Players.Count);
                foreach (Entities.Player p in r.Players.Values)
                {
                    Append(p.Id);          // Slot
                    Append(-1);            // ?
                    Append(p.Kills);       // Kills
                    Append(p.Deaths);      // Deaths
                    Append((byte)p.Class); // Class
                    Append(p.Health);
                    Append(-1);            // Vehicle ID
                    Append(-1);            // Vehicle Seat
                }
            }

            // TODO: Moved Vehicles :)
            Append(0);
        }
 public EndRound(Entities.Room r, Enums.Team winningTeam)
     : base((ushort)Enums.Packets.GamePacket)
 {
     Append(1);
     Append(-1);
     Append(r.ID);
     Append(1);
     Append(6);                 // TYPE
     Append(0);                 // ?
     Append(1);                 // ?
     Append((byte)winningTeam); // Winning Team ID
     Append(r.CurrentGameMode.CurrentRoundTeamA());
     Append(r.CurrentGameMode.CurrentRoundTeamB());
     Append(5); // Remaining Rounds?
     Append(0);
     Append(92);
     Append(-1);
     Append(0);
     Append(0);
     Append(1200000);
     Append(-900000);
     Append(1200000);
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append(0);
     Append(0);
     Append("DS05");
 }
Example #9
0
        private void addRoomInfo(Entities.Room r)
        {
            // ROOM INFORMATION //
            Append(r.ID);                           // Room Id
            Append(1);                              // ?
            Append((byte)r.State);                  // Room state: 1 = Waiting | 2 = Playing
            Append(r.Master);                       // The slot index of the room master.
            Append(r.Displayname);                  // The name of the room that will displayed in the roomlist.
            Append(r.HasPassword);                  // Tells the client if the room has a password.
            Append(r.MaximumPlayers);               // The maximum player count that is allowed in the room.
            Append(r.Players.Count);                // The current player count that is currently in the room.
            Append(r.Map);                          // The current map that is selected.
            Append((r.Mode == 0) ? r.Setting : 0);  // CQC Rounds
            Append((r.Mode > 0) ? r.Setting : 0);   // FFA & TDM Kills
            Append(0);                              // Time left?
            Append((byte)r.Mode);                   // The current game mode of the room.
            Append(4);                              // ?
            Append(r.IsJoinable);                   // This is the join state of the room. 0 = Unjoinable | 1 = Joinable
            Append(0);                              // ?
            Append(r.Supermaster);                  // Does the room have the supermaster buf enabled? 0 = NO | 1 = YES
            Append(r.Type);                         // Room Type, Unused in chapter 1.
            Append(r.LevelLimit);                   // This is the value of the level limit.
            Append(r.FriendlyFire);                 // Indicates if the room is a premium only room. 0 = NO | 1 = YES
            Append(r.EnableVoteKick);               // Indicates if the vote kick function is enabled. 0 = NO | 1 = YES
            Append(r.AutoStart);                    // Indicates if the auto start function is enabled. 0 = NO | 1 = YES
            Append(0);                              // This was a number of average ping (before patch G1-17).
            Append(r.PingLimit);                    // This is the value of the ping limit. 1 = GREEN , 2 = YELLOW, 3 = ALL.

            // CLAN BLOCK
            Append(r.isClanWar);                 // Is clan war? -1 = NO  >0 = YES
            // IF ENABLED ADD 2 BLOCKS WITH BOTH OF THE CLAN IDS.
        }
Example #10
0
 public VehicleExplode(Entities.Room r, Entities.Vehicle v)
     : base(30000)
 {
     Append(1);
     Append(-1);   // Sender
     Append(r.ID); // Room id
     Append(2);
     Append(153);
     Append(0);
     Append(1);
     Append(0);
     Append(v.MapID);   // Target
     Append(0);
     Append(2);
     Append(0);
     Append(7);
     Append(2);
     Append(0);
     Append(1);
     Append(100);
     Append(0);
     Append(0);
     // Coords //
     Append(0);
     Append(0);
     Append(0);
     // End Coords //
     Append(0);
     Append(0);
     Append(0);
     Append(0);
     Append(0);
     Append("FFFF");
 }
Example #11
0
 public RoomUpdate(Entities.Room r, bool isUpdate)
     : base((ushort)Game.Enums.Packets.RoomListUpdate)
 {
     Append(r.ID);
     Append((byte)(isUpdate ? Enums.RoomUpdateType.Update:Enums.RoomUpdateType.Create));
     addRoomInfo(r);
 }
 private void CBoxRoom_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (CBoxRoom.SelectedIndex == 0)
     {
         if (CBoxRoom.Text.Equals(""))
         {
             MessageBox.Show("Не может быть пустым", "Ошибка!",
                             MessageBoxButton.OK, MessageBoxImage.Error);
             CBoxRoom.SelectedItem = null;
             return;
         }
         if (AppData.Context.Rooms.Where(p => p.NumberOfRoom == CBoxRoom.Text).ToList().Count != 0)
         {
             MessageBox.Show("Уже существует!", "Ошибка!",
                             MessageBoxButton.OK, MessageBoxImage.Error);
             CBoxRoom.SelectedItem = AppData.Context.Rooms.Where(p => p.NumberOfRoom == CBoxRoom.Text).ToList().FirstOrDefault();
             return;
         }
         Entities.Room room = new Entities.Room()
         {
             NumberOfRoom = CBoxRoom.Text
         };
         AppData.Context.Rooms.Add(room);
         AppData.Context.SaveChanges();
         Update();
         CBoxRoom.SelectedItem = room;
     }
 }
Example #13
0
 public RoomJoin(byte slot, Entities.Room r)
     : base((ushort)Enums.Packets.RoomJoin)
 {
     Append(Core.Constants.Error_OK);
     Append(slot);
     addRoomInfo(r);
 }
Example #14
0
        public override void Initilize(Entities.Room room)
        {
            base.Initilize(room);

            // Validate based on the room setting here.
            intCurrentLeaderKills = 0;
            intMaximumKills       = 10 + (5 * room.Setting);
        }
Example #15
0
 public static RoomModel Convert(Entities.Room room)
 {
     return(new RoomModel
     {
         RoomId = room.RoomId,
         SecretKey = room.SecretKey,
         Voting = room.CanVote
     });
 }
Example #16
0
        public bool Add(Entities.Room r)
        {
            if (!Rooms.ContainsKey(r.ID))
            {
                return(Rooms.TryAdd(r.ID, r));
            }

            return(false);
        }
Example #17
0
        public override void Initilize(Entities.Room room)
        {
            base.Initilize(room);

            Room.DownTick = 3600000;
            _derbTicks    = _niuTicks = Constants.TDMTickets[Room.Setting];
            Initilized    = true;
            FreezeTick    = false;
        }
Example #18
0
 private void KickPlayer(Entities.Room Room, int _target)
 {
     foreach (Entities.Player Target in Room.Players.Values)
     {
         if (Target.Id == _target)
         {
             Target.User.Send(new Packets.RoomKick(_target));
         }
     }
 }
        public override void Initilize(Entities.Room room)
        {
            base.Initilize(room);

            // Validate based on the room setting here.
            intMaximumKills = 10 + (5 * room.Setting);
            Room.DownTick   = 3600000;
            Initilized      = true;
            FreezeTick      = false;
            blnFirstSpawn   = true;
        }
 public RoomLeave(Entities.User u, byte oldSlot, Entities.Room r)
     : base((ushort)Enums.Packets.RoomLeave)
 {
     Append(Core.Constants.Error_OK);
     Append(u.SessionID);     // SessionID
     Append(oldSlot);         // Position in Room
     Append(r.Players.Count); // Remaining player count
     Append(r.Master);        // Master Slot
     Append(u.XP);            // XP
     Append(u.Money);         // Dinar
 }
Example #21
0
        public override void Initilize(Entities.Room room)
        {
            base.Initilize(room);

            _zombies   = new ConcurrentDictionary <byte, Entities.Zombie>();
            blnStarted = blnPreparingWave = blnDoSpawnCheck = false;

            ushtZombiesSpawned = ushtTotalZombiesSpawned = 0;
            ushtSleepTime      = 15;

            SetupSpawnTable();
        }
Example #22
0
        public override void Initilize(Entities.Room room)
        {
            base.Initilize(room);
            // Validate based on the room setting here.
            currentRound = 0;
            teamRounds   = new byte[] { 0, 0 };
            limitRound   = Constants.RoundLimits[Room.Setting];

            Initilized = true;
            PrepareRound(true);
            roundActive = true;
        }
 public override void Initilize(Entities.Room room)
 {
     base.Initilize(room);
     _derbTicks          = _niuTicks = 999;
     _derbFlags          = _niuFlags = 1;
     _timeCount          = Room.DownTick = 3600000;
     _mainFlagProtection = 300000;
     _derbSlowDown       = 0;
     _niuSlowDown        = 0;
     Initilized          = true;
     FreezeTick          = false;
 }
Example #24
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            List <Entities.Room> rooms = AppData.Context.Rooms.ToList();
            var room = new Entities.Room
            {
                NumberOfRoom = "All"
            };

            rooms.Insert(0, room);
            CBFilter.ItemsSource   = rooms;
            CBFilter.SelectedIndex = 0;
            Update();
        }
Example #25
0
 public GameTick(Entities.Room r)
     : base((ushort)Enums.Packets.GameTick)
 {
     Append(r.UpTick);   // Spawn Counter
     Append(r.DownTick); // Time Left
     Append(r.CurrentGameMode.CurrentRoundTeamA());
     Append(r.CurrentGameMode.CurrentRoundTeamB());
     Append(r.CurrentGameMode.ScoreboardA());
     Append(r.CurrentGameMode.ScoreboardB());
     Append(2);  // ?
     Append(0);  // Conquest related
     Append(30); // Conquest related
 }
        private Entities.Room CreateTestRoom(RoomViewModel model)
        {
            var created = new Entities.Room
            {
                Id          = (rooms.Count + 1).ToString(),
                Capacity    = 5,
                Description = "Description for room 1",
                LocationId  = "1",
                Name        = "Test Room 2"
            };

            rooms.Add(created);

            return(created);
        }
Example #27
0
        public EndGame(Entities.Room r, Entities.Player[] players, Enums.Team winningTeam)
            : base((ushort)Enums.Packets.EndGame)
        {
            int[] teamKills  = new int[] { 0, 0 };
            int[] teamDeaths = new int[] { 0, 0 };

            teamKills[(byte)Enums.Team.Derbaran]  = players.Where(n => n.Team == Enums.Team.Derbaran).Sum(n => n.Kills);
            teamKills[(byte)Enums.Team.NIU]       = players.Where(n => n.Team == Enums.Team.NIU).Sum(n => n.Kills);
            teamDeaths[(byte)Enums.Team.Derbaran] = players.Where(n => n.Team == Enums.Team.Derbaran).Sum(n => n.Deaths);
            teamDeaths[(byte)Enums.Team.NIU]      = players.Where(n => n.Team == Enums.Team.NIU).Sum(n => n.Deaths);

            Append(Core.Constants.Error_OK);

            if (r.CurrentGameMode != null)                     //random crash
            {
                Append(r.CurrentGameMode.CurrentRoundTeamA()); //DERBARAN ROUNDS
                Append(r.CurrentGameMode.CurrentRoundTeamB()); //NIU ROUNDS
            }
            else
            {
                Fill(2, 0);
                Log.Instance.WriteDev("FFA Crash stopped"); //TODO
            }


            Append(teamKills[(byte)Enums.Team.Derbaran]);
            Append(teamDeaths[(byte)Enums.Team.Derbaran]);
            Append(teamKills[(byte)Enums.Team.NIU]);
            Append(teamDeaths[(byte)Enums.Team.NIU]);
            Append(0);
            Append(0);
            Append(players.Length);
            for (byte i = 0; i < players.Length; i++)
            {
                Entities.Player plr = players[i];
                Append(plr.Id);          // Slot
                Append(plr.Kills);       // Kills
                Append(plr.Deaths);      // Deaths
                Append(plr.Flags);       //Flags
                Append(plr.Points);      // Points
                Append(plr.MoneyEarned); // Dinar earned
                Append(plr.XPEarned);    // Exp earned
                Append(plr.User.XP);     // Player Exp
            }

            Append(r.Master);
        }
Example #28
0
 public Mission(Entities.Room r)
     : base(30000) {
     Append(1); // Success
     Append(-1); // ??
     Append(r.ID); // Room ID
     Append(2);
     Append(403); // Sub id?
     Append(0);
     Append(1);
     Append(3);
     Append(363);
     Append(0);
     Append(1);
     Append(0);
     Append(0);
     Append(0);
     Append(0);
 }
Example #29
0
 protected override void Process(Entities.User u)
 {
     if (u.Authorized)
     {
         if (u.Room != null)
         {
             Entities.Room r       = u.Room;
             byte          _target = GetByte(0);
             foreach (Entities.Player Player in r.Players.Values)
             {
                 if (r.Master == Player.Id && Player.User == u)
                 {
                     KickPlayer(r, _target);
                 }
             }
         }
     }
 }
        private void Update()
        {
            var rooms = AppData.Context.Rooms.ToList();
            var posts = AppData.Context.Posts.ToList();
            var room  = new Entities.Room()
            {
                NumberOfRoom = "Добавить новый кабинет"
            };
            var post = new Entities.Post()
            {
                NameOfPost = "Добавить новую должность"
            };

            rooms.Insert(0, room);
            posts.Insert(0, post);
            CBoxPost.ItemsSource = posts;
            CBoxRoom.ItemsSource = rooms;
        }