Example #1
0
 public override void RunImplement()
 {
     try
     {
         Account player = client.SessionPlayer;
         Room    room   = player != null ? player.room : null;
         if (mapName.Length > 3 && room != null && MapsXML.CheckInfo(room.mapId, mapName) && room.IsPreparing() && room.GetSlot(player.slotId, out Slot slot) && slot.state == SlotStateEnum.LOAD)
         {
             room.StartCounter(0, player, slot);
             room.ChangeSlotState(slot, SlotStateEnum.RENDEZVOUS, true);
             room.mapName = mapName;
             if (slot.Id == room.leaderSlot)
             {
                 room.sessionPort = BattleManager.GetSessionPort();
                 Logger.Warning("PORTA: " + room.sessionPort);
                 room.state = RoomStateEnum.Rendezvous;
                 room.UpdateRoomInfo();
             }
         }
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
Example #2
0
 private byte[] GetRoomListData(Account player, ref int count, List <Room> list)
 {
     using (PacketWriter send = new PacketWriter())
     {
         for (int i = player.lastRoomPage * 15; i < list.Count; i++)
         {
             Room room = list[i];
             if (MapsXML.CheckId(room.mapId))
             {
                 byte restrictions = 0;
                 send.WriteD(room.roomId);
                 if (room.KickedPlayersVote.Contains(player.playerId))
                 {
                     send.WriteS("[Batalha inacessível]", 23);
                 }
                 else
                 {
                     send.WriteS(room.roomName, 23);
                 }
                 send.WriteH((ushort)room.mapId);
                 send.WriteC(room.stage4vs4);
                 send.WriteC((byte)room.mode);
                 send.WriteC((byte)room.state);
                 send.WriteC(room.GetAllPlayersCount());
                 send.WriteC(room.GetSlotCount());
                 send.WriteC(room.ping);
                 send.WriteC(room.weaponsFlag);
                 if (room.randomMap > 0)
                 {
                     restrictions += 2;
                 }
                 if (room.password.Length > 0)
                 {
                     restrictions += 4;
                 }
                 if (room.limit > 0 && room.state > RoomStateEnum.Ready)
                 {
                     restrictions += 128;
                 }
                 send.WriteC(restrictions);
                 send.WriteC((byte)room.modeSpecial);
             }
             if (count++ == 15)
             {
                 break;
             }
         }
         return(send.memorystream.ToArray());
     }
 }
        private static void Main(string[] args)
        {
            Printf.blue("[Licença de uso]", false);
            Printf.blue("[+] Esta é uma versão compilada para Project Bloodi!!!", false);
            Printf.blue("[+] https://github.com/luisfeliperm", false);
            Printf.info("\n\n\n Iniciando servidor...", false);
            Thread.Sleep(5000);
            Console.Clear();

            Console.Title      = "PointBlank - Auth";
            SaveLog.aplication = "auth";
            SaveLog.checkDirectorys();

            StringBuilder txtHeader = new StringBuilder();

            txtHeader.Append(@"=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=").Append('\n');
            txtHeader.Append(@"             S E R V E R     A U T H").Append('\n');
            txtHeader.Append(@"").Append('\n');
            txtHeader.Append(@" + [UDP3 Private]").Append('\n');
            txtHeader.Append(@" + Release 2019").Append('\n');
            txtHeader.Append(@" + ...Version: 4.0.0").Append('\n');
            txtHeader.Append(@" + Distro @luisfeliperm").Append('\n');
            txtHeader.Append(@" + [email protected]").Append('\n');
            txtHeader.Append(@"=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine(txtHeader.ToString());

            // Validações
            System.Reflection.Assembly assembly    = System.Reflection.Assembly.GetExecutingAssembly();
            FileVersionInfo            fileVersion = FileVersionInfo.GetVersionInfo(assembly.Location);

            if (!Compatible.Check(fileVersion.FileVersion, "auth") || !ServerLicense.check() || !ServerPasswd.Compare(args))
            {
                Console.ReadKey();
                return;
            }

            // Threads Essentials
            ConfigGA.Load();
            ConfigMaps.Load();
            ServerConfig.Load();
            EventLoader.LoadAll();
            DirectxMD5.Load();
            BasicInventoryXML.Load();
            ServersXML.Load();
            MissionCardXML.LoadBasicCards(2);
            MapsXML.Load();
            ShopManager.Load(2);
            CupomEffectManager.LoadCupomFlags();
            MissionsXML.Load();
            Auth_SyncNet.Start();
            bool started = LoginManager.Start();

            if (ConfigGA.isTestMode)
            {
                Printf.info("[WARN] Modo teste ligado", false);
            }

            Printf.info("[INFO] Started in " + DateTime.Now.ToString("yy/MM/dd HH:mm:ss"), false);

            if (started)
            {
                cpuMonitor.updateRAM2();
            }
            Process.GetCurrentProcess().WaitForExit();
        }
Example #4
0
 public override void RunImplement()
 {
     try
     {
         string log = $"roomId: {roomId} " +
                      $"roomName: {roomName} " +
                      $"mapId: {mapId} " +
                      $"stage4vs4: {stage4vs4} " +
                      $"stageType: {stageType} " +
                      $"state: {state} " +
                      $"players: {players} " +
                      $"slots: {slots} " +
                      $"ping: {ping} " +
                      $"weaponsFlag: {weaponsFlag} " +
                      $"randomMap: {randomMap} " +
                      $"modeSpecial: {modeSpecial} " +
                      $"leaderName: {leaderName} " +
                      $"killTime: {killTime} " +
                      $"limit: {limit} " +
                      $"seeConf: {seeConf} " +
                      $"balancing: {balancing} " +
                      $"aiCount: {aiCount} " +
                      $"aiLevel: {aiLevel}";
         Logger.DebugPacket(GetType().Name, log);
         //if (roomId >= 0 && roomId <= Settings.MaxRoomsPerChannel && roomName.Length > 0 && stage4vs4 >= 0 && stage4vs4 <= 1 && stageType >= RoomTypeEnum.Tutorial && stageType <= RoomTypeEnum.Escort && leaderName.Length > Settings.NickMinLength && limit >= 0 && limit <= 1 && balancing >= 0 && balancing <= 2)
         //{
         //}
         Logger.DebugPacket(GetType().Name, $"RoomId: {roomId} RoomName: {roomName} MapId: {mapId} Stage4vs4: {stage4vs4} StageType: {stageType} State: {state} Players: {players} Slots: {slots} Ping: {ping} WeaponsFlag: {weaponsFlag} RandomMap: {randomMap} ModeSpecial: {modeSpecial} LeaderName: {leaderName} KillTime: {killTime} Limit: {limit} SeeConf: {seeConf} Balancing: {balancing} AiCount: {aiCount} AiLevel: {aiLevel}");
         Account player = client.SessionPlayer;
         Room    room   = player != null ? player.room : null;
         if (leaderName != player.nickname)
         {
             Logger.Warning($" [PROTOCOL_ROOM_CHANGE_INFO_REQ] Nome do lider incorreto! Leader: {leaderName} Player: {player.nickname}");
         }
         if (room.roomId != roomId)
         {
             Logger.Warning($" [PROTOCOL_ROOM_CHANGE_INFO_REQ] Id da sala incorreto! RoomId: {roomId} SalaId: {room.roomId}");
         }
         if (room != null && room.roomId == roomId && leaderName == player.nickname && room.leaderSlot == player.slotId && room.state == state && room.state == RoomStateEnum.Ready && MapsXML.CheckId(mapId))
         {
             string oldName = room.roomName;
             room.roomName    = roomName;
             room.mapId       = mapId;
             room.stage4vs4   = stage4vs4;
             room.ping        = ping;
             room.randomMap   = randomMap;
             room.modeSpecial = modeSpecial;
             room.leaderName  = leaderName;
             room.killtime    = killTime;
             room.limit       = limit;
             room.seeConf     = seeConf;
             room.balancing   = (BalancingTeamEnum)balancing;
             room.aiCount     = aiCount;
             room.aiLevel     = aiLevel;
             if (stageType != room.mode || weaponsFlag != room.weaponsFlag || oldName != roomName && TournamentRulesManager.CheckRoomRule(oldName.ToUpper()) || TournamentRulesManager.CheckRoomRule(roomName.ToUpper()))
             {
                 room.mode = stageType;
                 if (!room.isModePorrada)
                 {
                     room.weaponsFlag = weaponsFlag;
                 }
                 int count = 0;
                 for (int i = 0; i < 16; i++)
                 {
                     Slot slot = room.slots[i];
                     if (slot.state == SlotStateEnum.READY)
                     {
                         slot.state = SlotStateEnum.NORMAL;
                         count++;
                     }
                 }
                 if (count > 0)
                 {
                     room.UpdateSlotsInfo();
                 }
             }
             room.UpdateRoomInfo();
         }
         else
         {
             Logger.Warning($"[{GetType().Name}] NÃO FOI POSSIVEL ALTERAR AS INFORMAÇÕES DA SALA [!] RoomId ({room.roomId}/{roomId}) LeaderName ({leaderName}/{player.nickname}) LeaderSlot ({room.leaderSlot}/{player.slotId}) RoomState ({room.state}/{state})");
         }
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
Example #5
0
 public override void RunImplement()
 {
     try
     {
         Account player = client.SessionPlayer;
         Room    room   = player != null ? player.room : null;
         if (room == null)
         {
             Logger.Warning($" [Game] [{GetType().Name}] Room is null.");
             client.Close(0, false);
             return;
         }
         if (room.stage4vs4 != stage4vs4 || room.mode != roomType || room.mapId != mapId || !MapsXML.CheckId(mapId))
         {
             client.SendCompletePacket(PackageDataManager.PROTOCOL_SERVER_MESSAGE_KICK_BATTLE_PLAYER_0x8000100A_ACK);
             room.ChangeSlotState(player.slotId, SlotStateEnum.NORMAL, true);
             room.BattleEndPlayersCount(room.IsBotMode());
             return;
         }
         Slot slot = room.slots[player.slotId];
         if (!room.IsPreparing() || slot.state < SlotStateEnum.LOAD)
         {
             client.SendCompletePacket(PackageDataManager.PROTOCOL_BATTLE_STARTBATTLE_ACK);
             room.ChangeSlotState(slot, SlotStateEnum.NORMAL, true);
             room.BattleEndPlayersCount(room.IsBotMode());
             slot.StopTiming();
             return;
         }
         Account leader = room.GetLeader();
         if (leader == null)
         {
             client.SendCompletePacket(PackageDataManager.PROTOCOL_SERVER_MESSAGE_KICK_BATTLE_PLAYER_0x8000100B_ACK);
             client.SendPacket(new PROTOCOL_BATTLE_LEAVEP2PSERVER_ACK(player, 0));
             room.ChangeSlotState(slot, SlotStateEnum.NORMAL, true);
             room.BattleEndPlayersCount(room.IsBotMode());
             slot.StopTiming();
             return;
         }
         if (player.localIP == new byte[4] || player.localIP.Length == 0 || player.ipAddress.GetAddressBytes() == new byte[4] || player.ipAddress.GetAddressBytes().Length == 0)
         {
             client.SendCompletePacket(PackageDataManager.PROTOCOL_SERVER_MESSAGE_KICK_BATTLE_PLAYER_0x80001008_ACK);
             client.SendPacket(new PROTOCOL_BATTLE_LEAVEP2PSERVER_ACK(player, 0));
             room.ChangeSlotState(slot, SlotStateEnum.NORMAL, true);
             room.BattleEndPlayersCount(room.IsBotMode());
             slot.StopTiming();
             return;
         }
         client.SessionPort = room.sessionPort;
         FirewallSecurity.AddRuleUdp(client.GetIPAddress(), client.SessionPort);
         byte UdpType = (byte)Settings.UdpType;
         if (slot.Id == room.leaderSlot)
         {
             room.state = RoomStateEnum.PreBattle;
             room.UpdateRoomInfo();
             room.GenerateRoomSeed();
             //room.LoadHitParts();
         }
         room.ChangeSlotState(slot, SlotStateEnum.PRESTART, true);
         client.SendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK(player, leader, true, UdpType));
         if (slot.Id != room.leaderSlot)
         {
             leader.SendPacket(new PROTOCOL_BATTLE_PRESTARTBATTLE_ACK(player, leader, false, UdpType));
         }
         room.StartCounter(1, player, slot);
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
Example #6
0
 public override void RunImplement()
 {
     try
     {
         Logger.DebugPacket(GetType().Name, $"RoomName: {roomName} MapId: {mapId} Stage4vs4: {stage4vs4} StageType: {stageType} Ping: {ping} WeaponsFlag: {weaponsFlag} RandomMap: {randomMap} ModeSpecial: {modeSpecial} AiCount: {aiCount} AiLevel: {aiLevel} roomId: {roomId} state: {state} players: {players} slots: {slots}");
         Account player = client.SessionPlayer;
         Room    room   = player != null ? player.room : null;
         if (room == null || room.state != state || room.state != RoomStateEnum.Ready || room.leaderSlot != player.slotId || !MapsXML.CheckId(mapId))
         {
             return;
         }
         string oldName = room.roomName;
         room.roomName    = roomName;
         room.mapId       = mapId;
         room.stage4vs4   = stage4vs4;
         room.ping        = ping;
         room.randomMap   = randomMap;
         room.modeSpecial = modeSpecial;
         room.aiCount     = aiCount;
         room.aiLevel     = aiLevel;
         if (stageType != room.mode || weaponsFlag != room.weaponsFlag || oldName != roomName && TournamentRulesManager.CheckRoomRule(oldName.ToUpper()) || TournamentRulesManager.CheckRoomRule(roomName.ToUpper()))
         {
             room.mode = stageType;
             if (!room.isModePorrada)
             {
                 room.weaponsFlag = weaponsFlag;
             }
             int count = 0;
             for (int i = 0; i < 16; i++)
             {
                 Slot slot = room.slots[i];
                 if (slot.state == SlotStateEnum.READY)
                 {
                     slot.state = SlotStateEnum.NORMAL;
                     count++;
                 }
             }
             if (count > 0)
             {
                 room.UpdateSlotsInfo();
             }
         }
         room.UpdateRoomInfo();
     }
     catch (Exception ex)
     {
         PacketLog(ex);
     }
 }
Example #7
0
        private static void Main(string[] args)
        {
            {
                Application.Run((Form) new ip());
            }
            Console.Clear();
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(Programm.CurrentDomainOnUnhandledException);
            Console.Title     = "Iniciando o Point Blank Auth Server...";
            Logger.StartedFor = "auth";
            Logger.checkDirectorys();
            StringUtil stringUtil = new StringUtil();

            stringUtil.AppendLine("               ________  _____  __      ______ _______          ");
            stringUtil.AppendLine("              / ____/  |/  / / / /     / /  / / /  / /          ");
            stringUtil.AppendLine("             / __/ / /|_/ / / / /     / /__/_/ /__/ /           ");
            stringUtil.AppendLine("            / /___/ /  / / /_/ / _   / /    / /  / /            ");
            stringUtil.AppendLine("                                                                ");
            DateTime dateTime1 = ComDiv.GetLinkerTime(Assembly.GetExecutingAssembly(), (TimeZoneInfo)null);
            string   str       = dateTime1.ToString("dd/MM/yyyy HH:mm");

            stringUtil.AppendLine("             Data de Inicialização: " + str + "                 ");
            Logger.info(stringUtil.getString());
            ConfigGA.Load();
            ConfigMaps.Load();
            ServerConfigSyncer.GenerateConfig(ConfigGA.configId);
            EventLoader.LoadAll();
            DirectXML.Start();
            BasicInventoryXML.Load();
            ServersXML.Load();
            MissionCardXML.LoadBasicCards(2);
            MapsXML.Load();
            RegionXML.Load();
            ShopManager.Load(2);
            CupomEffectManager.LoadCupomFlags();
            MissionsXML.Load();
            bool flag1 = true;

            foreach (string text in args)
            {
                // if (ComDiv.gen5(text) == "e5cb4b8a5474496fb2f2cddb5dbb07a7")
                if (ComDiv.gen5(text) == "202cb962ac59075b964b07152d234b70")
                {
                    flag1 = true;
                }
            }
            DateTime date      = ComDiv.GetDate();
            DateTime dateTime2 = date;

            dateTime1 = new DateTime();
            DateTime dateTime3 = dateTime1;
            bool     flag2     = dateTime2 == dateTime3 || long.Parse(date.ToString("yyMMddHHmmss")) >= 181024000000L;

            Auth_SyncNet.Start();
            if (flag1)
            {
                bool flag3 = LoginManager.Start();
                Logger.warning("[Servidor] Hospedado: " + ConfigGB.EncodeText.EncodingName);
                Logger.warning("[Servidor] Modo: " + (ConfigGA.isTestMode ? "Testes" : "Público"));
                Logger.warning(Programm.StartSuccess());
                if (flag3)
                {
                    LoggerGA.updateRAM2();
                }
            }
            Process.GetCurrentProcess().WaitForExit();
        }