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); } }
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(); }
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); } }
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); } }
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); } }
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(); }