public static void RefreshAccount(Account player, bool isConnect) { Auth_SyncNet.UpdateGSCount(0); AccountManager.getInstance().getFriendlyAccounts(player.FriendSystem); for (int index = 0; index < player.FriendSystem._friends.Count; ++index) { Friend friend = player.FriendSystem._friends[index]; PlayerInfo player1 = friend.player; if (player1 != null) { GameServerModel server = ServersXML.getServer((int)player1._status.serverId); if (server != null) { SEND_REFRESH_ACC.SendRefreshPacket(0, player.player_id, friend.player_id, isConnect, server); } } } if (player.clan_id <= 0) { return; } for (int index = 0; index < player._clanPlayers.Count; ++index) { Account clanPlayer = player._clanPlayers[index]; if (clanPlayer != null && clanPlayer._isOnline) { GameServerModel server = ServersXML.getServer((int)clanPlayer._status.serverId); if (server != null) { SEND_REFRESH_ACC.SendRefreshPacket(1, player.player_id, clanPlayer.player_id, isConnect, server); } } } }
public static void SendLoginKickInfo(Account player) { int serverId = (int)player._status.serverId; switch (serverId) { case 0: case (int)byte.MaxValue: player.setOnlineStatus(false); break; default: GameServerModel server = ServersXML.getServer(serverId); if (server == null) { break; } using (SendGPacket sendGpacket = new SendGPacket()) { sendGpacket.writeH((short)10); sendGpacket.writeQ(player.player_id); Auth_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection); break; } } }
public static GameServerModel GetServer(int serverId) { if (serverId == (int)byte.MaxValue || serverId == ConfigGS.serverId) { return((GameServerModel)null); } return(ServersXML.getServer(serverId)); }
public static GameServerModel GetServer(short serverId) { if (serverId == 255 || serverId == ConfigGS.serverId) { return(null); } return(ServersXML.getServer(serverId)); }
public static string GetServerPlayersCount(string str) { int id = int.Parse(str.Substring(9)); GameServerModel server = ServersXML.getServer(id); if (server == null) { return(Translation.GetLabel("UsersInvalid")); } return(Translation.GetLabel("UsersCount2", (object)server._LastCount, (object)server._maxPlayers, (object)id)); }
public Room(short serverId) { gs = ServersXML.getServer(serverId); if (gs == null) { return; } _serverId = serverId; for (int i = 0; i < 16; ++i) { _players[i] = new Player(i); } for (int i = 0; i < 200; ++i) { _objects[i] = new ObjectInfo(i); } }
public Room(int serverId) { this.gs = ServersXML.getServer(serverId); if (this.gs == null) { return; } this._serverId = serverId; for (int slot = 0; slot < 16; ++slot) { this._players[slot] = new Player(slot); } for (int id = 0; id < 200; ++id) { this._objects[id] = new ObjectInfo(id); } }
private void LoginQueue() { GameServerModel server = ServersXML.getServer(0); if (server._LastCount < server._maxPlayers) { return; } if (LoginManager._loginQueue.Count >= 100) { this._client.SendPacket((SendPacket) new BASE_LOGIN_PAK(EventErrorEnum.Login_SERVER_USER_FULL, this.login, 0L)); Logger.LogLogin("Servidor cheio [" + this.login + "]"); this._client.Close(1000, false); } else { int num = LoginManager.EnterQueue(this._client); this._client.SendPacket((SendPacket) new A_LOGIN_QUEUE_PAK(num + 1, (num + 1) * 120)); } }
public static void RefreshAccount(Account player, bool isConnect) { Auth_SyncNet.UpdateAuthCount(0); AccountManager.getInstance().getFriendlyAccounts(player.FriendSystem); for (int i = 0; i < player.FriendSystem._friends.Count; i++) { Friend friend = player.FriendSystem._friends[i]; PlayerInfo info = friend.player; if (info != null) { GameServerModel gs = ServersXML.getServer(info._status.serverId); if (gs == null) { continue; } SendRefreshPacket(0, player.player_id, friend.player_id, isConnect, gs); } } if (player.clan_id > 0) { for (int i = 0; i < player._clanPlayers.Count; i++) { Account member = player._clanPlayers[i]; if (member != null && member._isOnline) { GameServerModel gs = ServersXML.getServer(member._status.serverId); if (gs == null) { continue; } SendRefreshPacket(1, player.player_id, member.player_id, isConnect, gs); } } } }
// Envia para o gameSync public static void SendLoginKickInfo(Account player) { short serverId = player._status.serverId; if (serverId != 255 && serverId != 0) { GameServerModel gs = ServersXML.getServer(serverId); if (gs == null) { return; } using (SendGPacket pk = new SendGPacket()) { pk.writeH(10); pk.writeQ(player.player_id); SendPacket(pk.mstream.ToArray(), gs._syncConn); } } else { player.setOnlineStatus(false); } }
private static void LoadPacket(byte[] buffer) { ReceiveGPacket p = new ReceiveGPacket(buffer); short opcode = p.readH(); try { switch (opcode) { case 11: //Request to sync a specific friend or clan info int type = p.readC(); int isConnect = p.readC(); long pid = p.readQ(); Account player = AccountManager.getInstance().getAccount(pid, true); if (player != null) { Account friend = AccountManager.getInstance().getAccount(p.readQ(), true); if (friend != null) { FriendState state = isConnect == 1 ? FriendState.Online : FriendState.Offline; if (type == 0) { int idx = -1; Friend frP = friend.FriendSystem.GetFriend(player.player_id, out idx); if (idx != -1 && frP != null) { friend.SendPacket(new FRIEND_UPDATE_PAK(FriendChangeState.Update, frP, state, idx)); } } else { friend.SendPacket(new CLAN_MEMBER_INFO_CHANGE_PAK(player, state)); } } } break; case 13: long playerId = p.readQ(); byte typee = p.readC(); byte[] data = p.readB(p.readUH()); Account playerr = AccountManager.getInstance().getAccount(playerId, true); if (playerr != null) { if (typee == 0) { playerr.SendPacket(data); } else { playerr.SendCompletePacket(data); } } break; case 15: short serverId = p.readH(); short count = p.readH(); GameServerModel gs = ServersXML.getServer(serverId); if (gs != null) { gs._LastCount = count; } break; case 16: Net_Clan_Sync.Load(p); break; case 17: Net_Friend_Sync.Load(p); break; case 19: Net_Player_Sync.Load(p); break; default: Printf.warning("[Auth_SyncNet] Tipo de conexão não encontrada: " + opcode); SaveLog.warning("[Auth_SyncNet] Tipo de conexão não encontrada: " + opcode); break; } } catch (Exception ex) { SaveLog.fatal("[Crash/Auth_SyncNet] opcode: " + opcode + "\r\n" + ex.ToString()); Printf.b_danger("[Auth_SyncNet.LoadPacket] Erro fatal!"); } }
private static void LoadPacket(byte[] buffer) { ReceiveGPacket p = new ReceiveGPacket(buffer); short num1 = p.readH(); try { switch (num1) { case 1: Net_Room_Pass_Portal.Load(p); break; case 2: Net_Room_C4.Load(p); break; case 3: Net_Room_Death.Load(p); break; case 4: Net_Room_HitMarker.Load(p); break; case 5: Net_Room_Sabotage_Sync.Load(p); break; case 10: Account account1 = AccountManager.getAccount(p.readQ(), true); if (account1 == null) { break; } account1.SendPacket((SendPacket) new AUTH_ACCOUNT_KICK_PAK(1)); account1.SendPacket((SendPacket) new SERVER_MESSAGE_ERROR_PAK(2147487744U)); account1.Close(1000, false); break; case 11: int num2 = (int)p.readC(); int num3 = (int)p.readC(); Account account2 = AccountManager.getAccount(p.readQ(), 0); if (account2 == null) { break; } Account account3 = AccountManager.getAccount(p.readQ(), true); if (account3 == null) { break; } FriendState friendState = num3 == 1 ? FriendState.Online : FriendState.Offline; if (num2 == 0) { int index = -1; Friend friend = account3.FriendSystem.GetFriend(account2.player_id, out index); if (index == -1 || friend == null || friend.state != 0) { break; } account3.SendPacket((SendPacket) new FRIEND_UPDATE_PAK(FriendChangeState.Update, friend, friendState, index)); break; } account3.SendPacket((SendPacket) new CLAN_MEMBER_INFO_CHANGE_PAK(account2, friendState)); break; case 13: long id1 = p.readQ(); byte num4 = p.readC(); byte[] data = p.readB((int)p.readUH()); Account account4 = AccountManager.getAccount(id1, true); if (account4 == null) { break; } if (num4 == (byte)0) { account4.SendPacket(data); break; } account4.SendCompletePacket(data); break; case 15: int id2 = p.readD(); int num5 = p.readD(); GameServerModel server = ServersXML.getServer(id2); if (server == null) { break; } server._LastCount = num5; break; case 16: Net_Clan_Sync.Load(p); break; case 17: Net_Friend_Sync.Load(p); break; case 18: Net_Inventory_Sync.Load(p); break; case 19: Net_Player_Sync.Load(p); break; case 20: Net_Server_Warning.LoadGMWarning(p); break; case 21: Net_Clan_Servers_Sync.Load(p); break; case 22: Net_Server_Warning.LoadShopRestart(p); break; case 23: Net_Server_Warning.LoadServerUpdate(p); break; case 24: Net_Server_Warning.LoadShutdown(p); break; case 31: EventLoader.ReloadEvent((int)p.readC()); Logger.warning("[Game_SyncNet] Evento re-carregado."); break; case 32: ServerConfigSyncer.GenerateConfig((int)p.readC()); Logger.warning("[Game_SyncNet] Configurações (DB) resetadas."); break; default: Logger.warning("[Game_SyncNet] Tipo de conexão não encontrada: " + (object)num1); break; } } catch (Exception ex) { Logger.error("[Crash/Game_SyncNet] Tipo: " + (object)num1 + "\r\n" + ex.ToString()); if (p == null) { return; } Logger.error("COMP: " + BitConverter.ToString(p.getBuffer())); } }
private static void LoadPacket(byte[] buffer) { ReceiveGPacket p = new ReceiveGPacket(buffer); short num1 = p.readH(); switch (num1) { case 11: int num2 = (int)p.readC(); int num3 = (int)p.readC(); Account account1 = AccountManager.getInstance().getAccount(p.readQ(), true); if (account1 == null) { break; } Account account2 = AccountManager.getInstance().getAccount(p.readQ(), true); if (account2 == null) { break; } FriendState friendState = num3 == 1 ? FriendState.Online : FriendState.Offline; if (num2 == 0) { int index = -1; Friend friend = account2.FriendSystem.GetFriend(account1.player_id, out index); if (index == -1 || friend == null) { break; } account2.SendPacket((SendPacket) new FRIEND_UPDATE_PAK(FriendChangeState.Update, friend, friendState, index)); break; } account2.SendPacket((SendPacket) new CLAN_MEMBER_INFO_CHANGE_PAK(account1, friendState)); break; case 13: long id1 = p.readQ(); byte num4 = p.readC(); byte[] data = p.readB((int)p.readUH()); Account account3 = AccountManager.getInstance().getAccount(id1, true); if (account3 == null) { break; } if (num4 == (byte)0) { account3.SendPacket(data); break; } account3.SendCompletePacket(data); break; case 15: int id2 = p.readD(); int num5 = p.readD(); GameServerModel server = ServersXML.getServer(id2); if (server == null) { break; } server._LastCount = num5; break; case 16: Net_Clan_Sync.Load(p); break; case 17: Net_Friend_Sync.Load(p); break; case 19: Net_Player_Sync.Load(p); break; case 20: Net_Server_Warning.LoadGMWarning(p); break; case 22: Net_Server_Warning.LoadShopRestart(p); break; case 23: Net_Server_Warning.LoadServerUpdate(p); break; case 24: Net_Server_Warning.LoadShutdown(p); break; case 31: EventLoader.ReloadEvent((int)p.readC()); Logger.warning("[Auth_SyncNet] Evento re-carregado."); break; case 32: ServerConfigSyncer.GenerateConfig((int)p.readC()); Logger.warning("[Auth_SyncNet] Configurações (DB) resetadas."); break; default: Logger.warning("[Auth_SyncNet] Tipo de conexão não encontrada: " + (object)num1); break; } }
private static void LoadPacket(byte[] buffer) { ReceiveGPacket p = new ReceiveGPacket(buffer); short opcode = p.readH(); //Printf.warnDark("Receive SYNC - " + opcode.ToString()); try { switch (opcode) { case 1: Net_Room_Pass_Portal.Load(p); break; case 2: // Bomba Net_Room_C4.Load(p); break; case 3: //Death Net_Room_Death.Load(p); break; case 4: Net_Room_HitMarker.Load(p); break; case 5: Net_Room_Sabotage_Sync.Load(p); break; case 10: Account player = AccountManager.getAccount(p.readQ(), true); if (player != null) { player.SendPacket(new AUTH_ACCOUNT_KICK_PAK(1)); player.SendPacket(new SERVER_MESSAGE_ERROR_PAK(0x80001000)); player.Close(1000); } break; case 11: //Request to sync a specific friend or clan info int type = p.readC(); int isConnect = p.readC(); Account player11 = AccountManager.getAccount(p.readQ(), 0); if (player11 != null) { Account friendAcc = AccountManager.getAccount(p.readQ(), true); if (friendAcc != null) { FriendState state = isConnect == 1 ? FriendState.Online : FriendState.Offline; if (type == 0) { int idx = -1; Friend friend = friendAcc.FriendSystem.GetFriend(player11.player_id, out idx); if (idx != -1 && friend != null && friend.state == 0) { friendAcc.SendPacket(new FRIEND_UPDATE_PAK(FriendChangeState.Update, friend, state, idx)); } } else { friendAcc.SendPacket(new CLAN_MEMBER_INFO_CHANGE_PAK(player11, state)); } } } break; case 13: long playerId = p.readQ(); byte type13 = p.readC(); byte[] data = p.readB(p.readUH()); Account player13 = AccountManager.getAccount(playerId, true); if (player13 != null) { if (type13 == 0) { player13.SendPacket(data); } else { player13.SendCompletePacket(data); } } break; case 15: short serverId = p.readH(); short count = p.readH(); GameServerModel gs = ServersXML.getServer(serverId); if (gs != null) { gs._LastCount = count; } break; case 16: Net_Clan_Sync.Load(p); break; case 17: Net_Friend_Sync.Load(p); break; case 18: Net_Inventory_Sync.Load(p); break; case 19: Net_Player_Sync.Load(p); break; case 21: Net_Clan_Servers_Sync.Load(p); break; case 100: ReadAPI_Cash.Load(p); break; default: Printf.warning("[Game_SyncNet] Tipo de conexão não encontrada: " + opcode); break; } } catch (Exception ex) { SaveLog.fatal("[Game_SyncNet.LoadPacket] Tipo: " + opcode + "\r\n" + ex.ToString()); Printf.b_danger("[GameSyncNet.LoadPacket] Erro fatal!"); } }