示例#1
0
        public PACKET_AUTOSTART(Virtual_Objects.Room.virtualRoom Room)
        {
            //C=>991597 30000 0 1 1 1 1 0 0 0 0 0 0 0 0 0
            //S=>991474 30000 1 0 1 1 4 1 0 5 0 0 0 0 0 0 0
            //S=>991475 30000 1 0 1 1 4 1 0 5 0 0 0 0 0 0 0

            //C=>957670 30000 0 0 1 1 1 0 0 0 0 0 0 0 0 0
            //S=>957566 30000 1 0 0 1 4 1 0 71 0 0 0 0 0 0 0
            foreach (virtualUser User in Room.Players)
            {
                Room.Channel    = User.Channel;
                Room.RoomStatus = 2;
                //Room.LobbyChange = true;
                //User.currentVehicle = null;
            }

            base.newPacket(30000);
            base.addBlock(1);
            base.addBlock(Room.ID);
            base.addBlock(1);
            base.addBlock(1);
            base.addBlock(4);
            base.addBlock(1);
            base.addBlock(0);
            base.addBlock(Room.MapID);
            base.addBlock(0);
            base.addBlock(0);
            base.addBlock(0);
            base.addBlock(0);
            base.addBlock(0);
            base.addBlock(0);
            base.addBlock(0);
        }
示例#2
0
        public RoomDataNewRound(Virtual_Objects.Room.virtualRoom Room, int WinningTeam, bool Prepare)
        {
            int Code = (Prepare == true ? 6 : 5);

            newPacket(30000);
            addBlock(1);//Success
            addBlock(-1);
            addBlock(Room.ID);
            addBlock(1);
            addBlock(Code);
            addBlock(0);
            addBlock(1);
            addBlock(WinningTeam);
            addBlock(Room.cDerbRounds);
            addBlock(Room.cNiuRounds);
            addBlock(5);
            addBlock(0);
            addBlock(92);
            addBlock(-1);
            addBlock(0);
            addBlock(0);
            addBlock(1200000);
            addBlock(-900000);
            addBlock(1200000);
            addBlock("778.0000");
            addBlock("32.0000");
            addBlock("1438.0000");
            addBlock("49.0000");
            addBlock("-275.0000");
            addBlock("-108.0000");
            addBlock(0);
            addBlock(0);
            addBlock("DS05");
        }
示例#3
0
 public override void Handle(virtualUser User)
 {
     try
     {
         //if (User.Room.RoomType == 1 && User.Room.RoomStatus == 2) return;
         Virtual_Objects.Room.virtualRoom Room = User.Room;
         if (Room.Channel == 3 && Room.Mode == 12)
         {
             if (User.IsEscapeZombie)
             {
                 Room.EscapeZombie--;
             }
             else
             {
                 Room.EscapeHuman--;
             }
         }
         if (User.isSpectating)
         {
             User.Room.removeSpectator(User);
             return;
         }
         if (User.Room != null)
         {
             User.Room.RemoveUser(User.RoomSlot);
         }
         User.Alive        = false; //FreeWar : Test Per Bug CQC
         User.BackedToRoom = false;
         User.send(new Packets.PACKET_ROOM_LIST(User, User.Page));
     }
     catch (Exception ex)
     {
         Log.AppendError(ex.Message);
     }
 }
示例#4
0
        public PACKET_SCORE_BOARD(ReBornWarRock_PServer.GameServer.Virtual_Objects.User.virtualUser User)
        {
            Virtual_Objects.Room.virtualRoom Room = User.Room;

            newPacket(30032);
            addBlock(1);
            addBlock(Room.cDerbRounds);
            addBlock(Room.cNiuRounds);
            if (Room.Mode == 1)
            {
                addBlock(Room.FFAKillPoints);
                addBlock(Room.highestKills);
            }
            else
            {
                addBlock(Room.KillsDeberanLeft);
                addBlock(Room.KillsNIULeft);
            }
            addBlock(Room.PlayerCount);
            foreach (ReBornWarRock_PServer.GameServer.Virtual_Objects.User.virtualUser RoomUser in Room.Players)
            {
                addBlock(RoomUser.RoomSlot);
                addBlock(RoomUser.rKills);
                addBlock(RoomUser.rDeaths);
                addBlock(RoomUser.rFlags);
                addBlock(RoomUser.rPoints);
                addBlock(0); // Assist in chapter 1
            }
        }
示例#5
0
        public PACKET_END_GAME_AI(Virtual_Objects.Room.virtualRoom Room)
        {
            //30048 1 1 1555000 1 0 688 1 0 2328 1446 1049 43537 0 0 110 TimeAttack Win Hidden Stage
            //30048 1 0 112000 1 0 0 5 0 0 0 0 201684 0 0 110 Lose First Stage
            newPacket(30048);
            addBlock(1);
            if (Room.Mode == 11)
            {
                if (Room.ZombieDifficulty == 0)
                {
                    if (Room.Destructed)
                    {
                        addBlock(1);
                    }
                    else
                    {
                        addBlock(0);
                    }
                    Room.Zombies.Clear();
                }
                else
                {
                    if (Room.BossKilled)
                    {
                        addBlock(1);
                    }
                    else
                    {
                        addBlock(0);
                    }
                    Room.Zombies.Clear();
                }
            }
            else
            {
                addBlock(Room.Wave >= 22 ? 1 : 0);
                Room.Zombies.Clear();
            }
            addBlock(Room.RoundTimeSpent);
            ArrayList Players = Room.Players;

            addBlock(Players.Count); // Player count
            foreach (virtualUser Player in Players)
            {
                //688 1 0 2328 1446 1049 43537 0
                //0    5    0    0     0     0 201684 0
                addBlock(Player.RoomSlot);    // Slot
                addBlock(Player.rKills);      // Kills
                addBlock(Player.rDeaths);     // Deaths
                addBlock(Player.rFlags);      //Flags
                addBlock(Player.rPoints);     // Points
                addBlock(Player.DinarEarned); // Dinar
                addBlock(Player.ExpEarned);   // Exp
                addBlock(Player.Exp);         // Player Exp
                addBlock(0);                  //
                addBlock(0);                  //addBlock("1-0-0-0-" + Player.EndGameWord + "-0000000");
            }
            addBlock(Room.RoomMasterSlot);
            addBlock(110);
        }
示例#6
0
 public PACKET_CREATE_ROOM(Virtual_Objects.Room.virtualRoom currentRoom)
 {
     newPacket(29440);
     addBlock(1);
     addBlock(0);
     addRoomInfo(currentRoom);
 }
示例#7
0
 public PACKET_UPDATE_ROOM(Virtual_Objects.Room.virtualRoom Room)
 {
     newPacket(29200);
     addBlock(Room.ID);
     addBlock(1);
     addRoomInfo(Room);
 }
示例#8
0
 public PACKET_ROOMLIST_UPDATE(Virtual_Objects.Room.virtualRoom Room, int currentRoomExist = 1)
 {
     //29200 76 1 76 2 2 0 Aufgeht's! 0 8 2 43 0 0 2 2 3 1 0 1 0 0 0 1 0 30 0 -1
     newPacket(29200);
     addBlock(Room.ID);
     addBlock(currentRoomExist);
     if (currentRoomExist != 2)
     {
         addRoomInfo(Room);
     }
 }
示例#9
0
        public PACKET_3(int Num4, Virtual_Objects.Room.virtualRoom Room)
        {
            //S=> 834542789 31507 0 0 1 6 0 0 -1 0

            newPacket(31507);
            addBlock(0);
            addBlock(0);
            addBlock(Room.ID);
            addBlock(Num4);
            addBlock(0);
            addBlock(0);
            addBlock(-1);
            addBlock(0);
        }
示例#10
0
 public InitializeNewRound(Virtual_Objects.Room.virtualRoom Room)
 {
     newPacket(30000);
     addBlock(1);       // Success
     addBlock(-1);      // ??
     addBlock(Room.ID); // Room ID
     addBlock(2);
     addBlock(403);     // Sub id?
     addBlock(0);
     addBlock(1);
     addBlock(3);
     addBlock(363);
     addBlock(0);
     addBlock(1);
     addBlock(0);
     addBlock(0);
     addBlock(0);
     addBlock(0);
 }
示例#11
0
 public PACKET_ROOM_UPDATE(Virtual_Objects.Room.virtualRoom currentRoom)
 {
     newPacket(29201);
     addBlock(currentRoom.ID);
     addBlock(currentRoom.Name);
     addBlock(currentRoom.EnablePassword);
     addBlock(currentRoom.Password);
     addBlock(currentRoom.MaxPlayers);
     addBlock(currentRoom.Ping);
     addBlock(currentRoom.LevelLimit);
     addBlock(currentRoom.Rounds);
     addBlock(currentRoom.ZombieDifficulty);
     addBlock(currentRoom.Rounds);
     addBlock(currentRoom.TimeLimit);
     addBlock(currentRoom.Ping);
     addBlock(currentRoom.AutoStart);
     addBlock(currentRoom.MapID);
     addBlock(currentRoom.Mode);
 }
示例#12
0
        public override void Handle(virtualUser User)
        {
            int currentRoomID = Convert.ToInt32(getBlock(0));

            Virtual_Objects.Room.virtualRoom currentRoom = User.Room;
            if (currentRoom.RoomStatus == 1)
            {
                currentRoom.Name = getBlock(1);
                if (currentRoom.Name.StartsWith("E|") && User.Rank > 2 && currentRoom.RoomType == 3)
                {
                    currentRoom.Name = currentRoom.Name.Substring(2);
                }
                currentRoom.EnablePassword   = Convert.ToInt32(getBlock(2));
                currentRoom.Password         = getBlock(3);
                currentRoom.MaxPlayers       = Convert.ToInt32(getBlock(6));
                currentRoom.ZombieDifficulty = Convert.ToInt32(getBlock(8));
                if (currentRoom.Mode == 0)
                {
                    currentRoom.Rounds = Convert.ToInt32(getBlock(7));
                }
                else
                {
                    currentRoom.Rounds = Convert.ToInt32(getBlock(9));
                }
                currentRoom.TimeLimit  = Convert.ToInt32(getBlock(10));
                currentRoom.Ping       = Convert.ToInt32(getBlock(11));
                currentRoom.MapID      = Convert.ToInt32(getBlock(13));
                currentRoom.LevelLimit = Convert.ToInt32(getBlock(5));
                currentRoom.NewMode    = Convert.ToInt32(getBlock(15));
                currentRoom.SubNewMode = Convert.ToInt32(getBlock(16));
                currentRoom.send(new Packets.PACKET_ROOM_UPDATE(User.Room));
            }
            foreach (virtualUser _User in UserManager.getUsersInChannel(currentRoom.Channel, false))
            {
                if (_User.Page == Math.Floor(Convert.ToDecimal(currentRoom.ID / 14)))
                {
                    _User.send(new Packets.PACKET_ROOMLIST_UPDATE(currentRoom));
                }
            }
        }
示例#13
0
 public PACKET_TIMEATTACK_STAGE(Virtual_Objects.Room.virtualRoom Room, int Stage, int ZombieCount)
 {
     newPacket(30053);
     addBlock(Stage);
     addBlock(ZombieCount);
 }
示例#14
0
 public static void ZombieListing(Virtual_Objects.Room.virtualRoom Room)
 {
     //Room.spa
 }
示例#15
0
 public PACKET_JOIN_ROOM(ReBornWarRock_PServer.GameServer.Virtual_Objects.User.virtualUser User, Virtual_Objects.Room.virtualRoom Room)
 {
     newPacket(29456);
     addBlock(1);
     addBlock(User.RoomSlot);
     addRoomInfo(Room);
 }
示例#16
0
 public PACKET_SPECTATE_ROOM(ReBornWarRock_PServer.GameServer.Virtual_Objects.User.virtualUser User, Virtual_Objects.Room.virtualRoom Room) // Join
 {
     newPacket(29488);
     addBlock(1);
     addBlock(1);
     addBlock(32 + User.SpectatorID);
     addRoomInfo(Room);
 }
示例#17
0
 public PACKET_ROOM_UDP_SPECTATE(ReBornWarRock_PServer.GameServer.Virtual_Objects.User.virtualUser User, Virtual_Objects.Room.virtualRoom Room) // Leave UDP
 {
     newPacket(29953);
     addBlock(1);
     addBlock(0);
     addBlock(User.SpectatorID);
     addBlock(User.UserID);
     addBlock(User.SessionID);
     addBlock(User.Nickname);
     addBlock(999);
 }
示例#18
0
 public PACKET_TIMEATTACK_NEWSTAGE(Virtual_Objects.Room.virtualRoom Room, int Stage)
 {
     newPacket(30053);
     addBlock(Stage);
 }