public static void Load(Clan clan, int type) { foreach (GameServerModel server in ServersXML._servers) { if (server._id != 0 && server._id != ConfigGS.serverId) { using (SendGPacket sendGpacket = new SendGPacket()) { sendGpacket.writeH((short)21); sendGpacket.writeC((byte)type); sendGpacket.writeD(clan._id); if (type == 0) { sendGpacket.writeQ(clan.owner_id); sendGpacket.writeD(clan.creationDate); sendGpacket.writeC((byte)(clan._name.Length + 1)); sendGpacket.writeS(clan._name, clan._name.Length + 1); sendGpacket.writeC((byte)(clan._info.Length + 1)); sendGpacket.writeS(clan._info, clan._info.Length + 1); } Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection); } } } }
public static void Update(Clan clan, int type) { foreach (GameServerModel server in ServersXML._servers) { if (server._id != 0 && server._id != ConfigGS.serverId) { using (SendGPacket sendGpacket = new SendGPacket()) { sendGpacket.writeH((short)22); sendGpacket.writeC((byte)type); switch (type) { case 0: sendGpacket.writeQ(clan.owner_id); break; case 1: sendGpacket.writeC((byte)(clan._name.Length + 1)); sendGpacket.writeS(clan._name, clan._name.Length + 1); break; case 2: sendGpacket.writeC((byte)clan._name_color); break; } Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection); } } } }
public static void sendAllow(string ip) { // codigo de operação - 1 byte // ipSize - 1 byte // ip UdpClient udpClient = new UdpClient("127.0.0.1", 1911); SendGPacket pk = new SendGPacket(); pk.writeC(23); pk.writeC((byte)ip.Length); pk.writeB(Encoding.ASCII.GetBytes(ip)); try { udpClient.Send(pk.mstream.ToArray(), pk.mstream.ToArray().Length); } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[Firewall] Fatal Error!"); } }
public override void run() { try { if (this._client == null || this._client._player == null) { return; } int count = 0; using (SendGPacket p = new SendGPacket()) { lock (ClanManager._clans) { for (int index = (int)this.page * 170; index < ClanManager._clans.Count; ++index) { this.WriteData(ClanManager._clans[index], p); if (++count == 170) { break; } } } this._client.SendPacket((SendPacket) new CLAN_CLIENT_CLAN_LIST_PAK(this.page, count, p.mstream.ToArray())); } } catch (Exception ex) { Logger.warning(ex.ToString()); } }
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 void Load(Account player, Friend friend, int type) { if (player == null) { return; } GameServerModel server = Game_SyncNet.GetServer(player._status); if (server == null) { return; } using (SendGPacket sendGpacket = new SendGPacket()) { sendGpacket.writeH((short)17); sendGpacket.writeQ(player.player_id); sendGpacket.writeC((byte)type); sendGpacket.writeQ(friend.player_id); if (type != 2) { sendGpacket.writeC((byte)friend.state); sendGpacket.writeC(friend.removed); } Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection); } }
/// <summary> /// /// </summary> /// <param name="player">Conta principal</param> /// <param name="friend">Amigo que será adicionado/atualizado..</param> /// <param name="type">0=Adicionar|1=Atualizar|2=Deletar</param> /// // send to Game or sync public static void Load(Account player, Friend friend, int type) { if (player == null) { return; } GameServerModel gs = Game_SyncNet.GetServer(player._status); if (gs == null) { return; } using (SendGPacket pk = new SendGPacket()) { pk.writeH(17); pk.writeQ(player.player_id); pk.writeC((byte)type); pk.writeQ(friend.player_id); if (type != 2) { pk.writeC((byte)friend.state); } Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn); } }
private void WriteRoomData(Room room, SendGPacket p) { int restrictions = 0; p.writeD(room._roomId); p.writeS(room.name, 23); p.writeH((short)room.mapId); p.writeC(room.stage4v4); p.writeC(room.room_type); p.writeC((byte)room._state); p.writeC((byte)room.getAllPlayers().Count); p.writeC((byte)room.getSlotCount()); p.writeC((byte)room._ping); p.writeC(room.weaponsFlag); if (room.random_map > 0) { restrictions += 2; } if (room.password.Length > 0) { restrictions += 4; } if (room.limit > 0 && (int)room._state > 0) { restrictions += 128; } p.writeC((byte)restrictions); p.writeC(room.special); }
private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects) { int id = room.room_type == (byte)7 || room.room_type == (byte)12 ? (room.rodada == 1 && slot._team == 1 || room.rodada == 2 && slot._team == 0 ? (room.rodada == 2 ? slot._equip._red : slot._equip._blue) : (room.TRex != slot._id ? slot._equip._dino : -1)) : (slot._team == 0 ? slot._equip._red : slot._equip._blue); int num = 0; if (effects.HasFlag((System.Enum)CupomEffects.Ketupat)) { num += 10; } if (effects.HasFlag((System.Enum)CupomEffects.HP5)) { num += 5; } if (effects.HasFlag((System.Enum)CupomEffects.HP10)) { num += 10; } if (id == -1) { pk.writeC(byte.MaxValue); pk.writeH(ushort.MaxValue); } else { pk.writeC((byte)ComDiv.getIdStatics(id,2)); pk.writeH((short)ComDiv.getIdStatics(id,4)); } pk.writeC((byte)num); pk.writeC(effects.HasFlag((System.Enum)CupomEffects.C4SpeedKit)); }
private void WriteRoomData(Room room, SendGPacket p) { int num = 0; p.writeD(room._roomId); p.writeS(room.name, 23); p.writeH((short)room.mapId); p.writeC(room.stage4v4); p.writeC(room.room_type); p.writeC((byte)room._state); p.writeC((byte)room.getAllPlayers().Count); p.writeC((byte)room.getSlotCount()); p.writeC((byte)room._ping); p.writeC(room.weaponsFlag); if (room.random_map > (byte)0) { num += 2; } if (room.password.Length > 0) { num += 4; } if (room.limit > (byte)0 && room._state > RoomState.Ready) { num += 128; } p.writeC((byte)num); p.writeC(room.special); }
public static void sendBlock(string ip, string descricao, int gravidade) { // codigo de operação - 1 byte // ipSize - 1 byte // descSize - 1 byte // ip // descricao // Gravivade - 1 Byte (0=grave|1=perigo|2=Suspeito) UdpClient udpClient = new UdpClient("127.0.0.1", 1911); SendGPacket pk = new SendGPacket(); pk.writeC(0); pk.writeC((byte)ip.Length); pk.writeC((byte)descricao.Length); pk.writeB(Encoding.ASCII.GetBytes(ip)); pk.writeB(Encoding.ASCII.GetBytes(descricao)); pk.writeC((byte)gravidade); try { udpClient.Send(pk.mstream.ToArray(), pk.mstream.ToArray().Length); } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[Firewall] Fatal Error!"); } }
public BATTLE_READYBATTLE_PAK(Room r) { this.room = r; if (ConfigGS.isTestMode && ConfigGS.udpType == SERVER_UDP_STATE.RELAY) { this.room._slots[LoggerGS.TestSlot]._playerId = 0L; this.room._slots[LoggerGS.TestSlot].state = SLOT_STATE.EMPTY; } string clientVersion = GameManager.Config.ClientVersion; using (SendGPacket pk = new SendGPacket()) { for (int index = 0; index < 16; ++index) { SLOT slot = this.room._slots[index]; if (slot.state >= SLOT_STATE.READY && slot._equip != null) { Account playerBySlot = this.room.getPlayerBySlot(slot); if (playerBySlot != null && playerBySlot._slotId == index) { this.WriteSlotInfo(slot,playerBySlot,clientVersion,pk); ++this.PlayersCount; } } } this.Data = pk.mstream.ToArray(); } }
private void WriteSlotInfo(SLOT s,Account p,string client,SendGPacket pk) { pk.writeC((byte)s._id); pk.writeD(s._equip._red); pk.writeD(s._equip._blue); pk.writeD(s._equip._helmet); pk.writeD(s._equip._beret); pk.writeD(s._equip._dino); pk.writeD(s._equip._primary); pk.writeD(s._equip._secondary); pk.writeD(s._equip._melee); pk.writeD(s._equip._grenade); pk.writeD(s._equip._special); pk.writeD(0); if (p != null) { pk.writeC((byte)p._titles.Equiped1); pk.writeC((byte)p._titles.Equiped2); pk.writeC((byte)p._titles.Equiped3); } else { pk.writeB(new byte[3]); } if (!(client == "1.15.42")) { return; } pk.writeD(0); }
public BATTLE_READYBATTLE_PAK(Room r) { room = r; if (ConfigGS.isTestMode && ConfigGS.udpType == SERVER_UDP_STATE.RELAY) { room._slots[cpuMonitor.TestSlot]._playerId = 0; room._slots[cpuMonitor.TestSlot].state = SLOT_STATE.EMPTY; } string client = ServerConfig.ClientVersion; using (SendGPacket pk = new SendGPacket()) { for (int i = 0; i < 16; i++) { SLOT slot = room._slots[i]; if ((int)slot.state >= 8 && slot._equip != null) { Account player = room.getPlayerBySlot(slot); if (player != null && player._slotId == i) { WriteSlotInfo(slot,player,client,pk); PlayersCount++; } } } Data = pk.mstream.ToArray(); } }
/* * public static void Update(Clan clan, int type) * { * foreach (GameServerModel gs in ServersXML._servers) * { * if (gs._serverId == 0 || gs._serverId == ConfigGS.serverId) * continue; * * using (SendGPacket pk = new SendGPacket()) * { * pk.writeH(22); * pk.writeC((byte)type); * if (type == 0) * pk.writeQ(clan.owner_id); * else if (type == 1) * { * pk.writeC((byte)(clan._name.Length + 1)); * pk.writeS(clan._name, clan._name.Length + 1); * } * else if (type == 2) * pk.writeC((byte)clan._name_color); * Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn); * } * } * } */ // send to game public static void Load(Clan clan, int type) { foreach (GameServerModel gs in ServersXML._servers) { if (gs._serverId == 0 || gs._serverId == ConfigGS.serverId) { continue; } using (SendGPacket pk = new SendGPacket()) { pk.writeH(21); pk.writeC((byte)type); pk.writeD(clan._id); if (type == 0) { pk.writeQ(clan.owner_id); pk.writeD(clan.creationDate); pk.writeC((byte)(clan._name.Length + 1)); pk.writeS(clan._name, clan._name.Length + 1); pk.writeC((byte)(clan._info.Length + 1)); pk.writeS(clan._info, clan._info.Length + 1); } Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn); } } }
public override void run() { try { if (_client == null || _client._player == null) { return; } int count = 0; using (SendGPacket p = new SendGPacket()) { lock (ClanManager._clans) { for (int i = (int)page * 170; i < ClanManager._clans.Count; i++) { Clan clan = ClanManager._clans[i]; WriteData(clan, p); if (++count == 170) { break; } } } _client.SendPacket(new CLAN_CLIENT_CLAN_LIST_PAK(page, count, p.mstream.ToArray())); } } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[CLAN_CLIENT_CLAN_LIST_REC.run] Erro fatal!"); } }
public static void LoadItem(Account player, ItemsModel item) { if (player == null || player._status.serverId == 0) { return; } GameServerModel gs = Game_SyncNet.GetServer(player._status); if (gs == null) { return; } using (SendGPacket pk = new SendGPacket()) { pk.writeH(18); pk.writeQ(player.player_id); pk.writeQ(item._objId); pk.writeD(item._id); pk.writeC((byte)item._equip); pk.writeC((byte)item._category); pk.writeD(item._count); Game_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn); } }
public static void UpdateGSCount(int serverId) { try { if ((DateTime.Now - Auth_SyncNet.LastSyncCount).TotalSeconds < 2.5) { return; } Auth_SyncNet.LastSyncCount = DateTime.Now; int count = LoginManager._socketList.Count; foreach (GameServerModel server in ServersXML._servers) { if (server._id == serverId) { server._LastCount = count; } else { using (SendGPacket sendGpacket = new SendGPacket()) { sendGpacket.writeH((short)15); sendGpacket.writeD(serverId); sendGpacket.writeD(count); Auth_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), server.Connection); } } } } catch (Exception ex) { Logger.warning(ex.ToString()); } }
public override void run() { try { Account player = _client._player; if (player == null) { return; } if (player.clanId == 0) { _client.SendPacket(new CLAN_REQUEST_LIST_PAK(-1)); return; } List <ClanInvite> clanInvites = PlayerManager.getClanRequestList(player.clanId); using (SendGPacket p = new SendGPacket()) { int count = 0; for (int i = (page * 13); i < clanInvites.Count; i++) { WriteData(clanInvites[i], p); if (++count == 13) { break; } } _client.SendPacket(new CLAN_REQUEST_LIST_PAK(0, count, page, p.mstream.ToArray())); } } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[CLAN_REQUEST_LIST_REC.run] Erro fatal!"); } }
private static void WriteItemsData(GoodItem good, SendGPacket p) { p.writeD(good._item._id); p.writeC((byte)good.auth_type); p.writeC((byte)good.buy_type2); p.writeC((byte)good.buy_type3); p.writeC((byte)good.title); }
private static void WriteGoodsData(GoodItem good, SendGPacket p) { p.writeD(good.id); p.writeC(1); p.writeC((byte)(good.visibility == 4 ? 4 : 1)); //Flag1 = Show icon + Buy option | Flag2 = UNK | Flag4 = Show icon + No buy option p.writeD(good.price_gold); p.writeD(good.price_cash); p.writeC((byte)good.tag); }
private void WriteData(Account member, SendGPacket p) { p.writeQ(member.player_id); p.writeS(member.player_name, 33); p.writeC((byte)member._rank); p.writeC((byte)member.clanAccess); p.writeQ(ComDiv.GetClanStatus(member._status, member._isOnline)); p.writeD(member.clanDate); p.writeC((byte)member.name_color); }
private void WriteData(Clan clan, SendGPacket p) { p.writeD(clan._id); p.writeS(clan._name, 17); p.writeC((byte)clan._rank); p.writeC((byte)PlayerManager.getClanPlayers(clan._id)); p.writeC((byte)clan.maxPlayers); p.writeD(clan.creationDate); p.writeD(clan._logo); p.writeC((byte)clan._name_color); }
public static void SendUDPRoundSync(Room room) { using (SendGPacket sendGpacket = new SendGPacket()) { sendGpacket.writeH((short)3); sendGpacket.writeD(room.UniqueRoomId); sendGpacket.writeD(room.mapId * 16 + (int)room.room_type); sendGpacket.writeC((byte)room.rodada); Game_SyncNet.SendPacket(sendGpacket.mstream.ToArray(),room.UDPServer.Connection); } }
// Send To battle public static void SendUDPRoundSync(Room room) { using (SendGPacket pk = new SendGPacket()) { pk.writeH(3); pk.writeD(room.UniqueRoomId); pk.writeD((room.mapId * 16) + room.room_type); pk.writeC((byte)room.rodada); SendPacket(pk.mstream.ToArray(),room.UDPServer._battleSyncConn); } }
public static void SendRefreshPacket(int type, long playerId, long memberId, bool isConnect, GameServerModel gs) { using (SendGPacket pk = new SendGPacket()) { pk.writeH(11); pk.writeC((byte)type); pk.writeC(isConnect); pk.writeQ(playerId); pk.writeQ(memberId); Auth_SyncNet.SendPacket(pk.mstream.ToArray(), gs._syncConn); } }
private void WritePlayerData(Account pl, SendGPacket p) { Clan clan = ClanManager.getClan(pl.clanId); p.writeD(pl.getSessionId()); p.writeD(clan._logo); p.writeS(clan._name, 17); p.writeH((short)pl.getRank()); p.writeS(pl.player_name, 33); p.writeC((byte)pl.name_color); p.writeC((byte)31); }
public static void SendRefreshPacket(int type, long playerId, long memberId, bool isConnect, GameServerModel gs) { using (SendGPacket sendGpacket = new SendGPacket()) { sendGpacket.writeH((short)11); sendGpacket.writeC((byte)type); sendGpacket.writeC(isConnect); sendGpacket.writeQ(playerId); sendGpacket.writeQ(memberId); Auth_SyncNet.SendPacket(sendGpacket.mstream.ToArray(), gs.Connection); } }
private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects) { int charaId = 0; if ((RoomType)room.room_type == RoomType.Boss || (RoomType)room.room_type == RoomType.Cross_Counter) { if (room.rodada == 1 && slot._team == 1 || room.rodada == 2 && slot._team == 0) { charaId = room.rodada == 2 ? slot._equip._red : slot._equip._blue; } else if (room.TRex == slot._id) { charaId = -1; } else { charaId = slot._equip._dino; } } else { charaId = slot._team == 0 ? slot._equip._red : slot._equip._blue; } int HPBonus = 0; if (effects.HasFlag(CupomEffects.Ketupat)) { HPBonus += 10; } if (effects.HasFlag(CupomEffects.HP5)) { HPBonus += 5; } if (effects.HasFlag(CupomEffects.HP10)) { HPBonus += 10; } if (charaId == -1) { pk.writeC(255); pk.writeH(65535); } else { pk.writeC((byte)ComDiv.getIdStatics(charaId,2)); pk.writeH((short)ComDiv.getIdStatics(charaId,4)); } pk.writeC((byte)HPBonus); pk.writeC(effects.HasFlag(CupomEffects.C4SpeedKit)); }
private byte[] GetRoomListData(int page, ref int count, List <Room> list) { using (SendGPacket p = new SendGPacket()) { for (int index = page * 15; index < list.Count; ++index) { this.WriteRoomData(list[index], p); if (++count == 15) { break; } } return(p.mstream.ToArray()); } }