private void OnGameEvent(GameEvent evt) { switch (evt.type) { case ClientEventID.NET_CONNECTED_OPEN: { if (!m_active) { break; } long conn_idx = evt.Get <long>(0); if (!m_connectes.ContainsKey(conn_idx)) { long account_idx = this.ShareAccount(); DBClient client = new DBClient(); client.Setup(conn_idx, account_idx); m_connectes.Add(conn_idx, client); m_accounts.Add(account_idx); } } break; case ClientEventID.NET_CONNECTED_CLOSE: { if (!m_active) { break; } long conn_idx = evt.Get <long>(0); DBClient client; if (m_connectes.TryGetValue(conn_idx, out client)) { m_accounts.Remove(client.account_idx); } m_connectes.Remove(conn_idx); } break; case ClientEventID.SWITCH_PRESSURE: { ePressureType type = evt.Get <ePressureType>(0); bool is_start = evt.Get <bool>(1); if (type == ePressureType.DB && is_start) { m_pressure_info = evt.Get <sPressureDBInfo>(2); this.Start(); } else { this.Stop(); } } break; case ClientEventID.RECV_DATA: { if (!m_active) { break; } long conn_idx = evt.Get <long>(0); ushort header = evt.Get <ushort>(1); ByteArray data = evt.Get <ByteArray>(2); DBClient client; if (m_connectes.TryGetValue(conn_idx, out client)) { client.OnNetworkServer(header, data); } } break; } }
private void OnGameEvent(GameEvent evt) { switch (evt.type) { case ClientEventID.NET_CONNECTED_OPEN: { if (!m_active) { break; } long conn_idx = evt.Get <long>(0); if (!m_connectes.Contains(conn_idx)) { m_connectes.Add(conn_idx); } } break; case ClientEventID.NET_CONNECTED_CLOSE: { if (!m_active) { break; } long conn_idx = evt.Get <long>(0); m_connectes.Remove(conn_idx); } break; case ClientEventID.SWITCH_PRESSURE: { ePressureType type = evt.Get <ePressureType>(0); bool is_start = evt.Get <bool>(1); if (type == ePressureType.Net && is_start) { m_pressure_info = evt.Get <sPressureNetInfo>(2); this.Start(); } else { this.Stop(); } } break; case ClientEventID.RECV_DATA: { if (!m_active) { break; } long conn_idx = evt.Get <long>(0); ushort header = evt.Get <ushort>(1); ByteArray data = evt.Get <ByteArray>(2); if (header == gs2c.msg.ENCRYPT) { m_had_recv_encrypt = true; PacketBase packet = PacketPools.Get(header); packet.Read(data); GlobalID.ENCRYPT_KEY = (packet as gs2c.EncryptInfo).key; PacketPools.Recover(packet); } } break; } }