public void OnUserLost(uint nsId) { this._userTokenListByNsId.Remove(nsId); GSToCS.UserOffLine sUserOffLineToCs = new GSToCS.UserOffLine(); sUserOffLineToCs.Usernetid = ( int )nsId; byte[] data = sUserOffLineToCs.ToByteArray(); GS.instance.TranMsgToSession(SessionType.ClientG2C, data, 0, data.Length, ( int )GSToCS.MsgID.EMsgToCsfromGsUserOffLine, 0, 0); }
private ErrorCode OnMsgToCsfromGsUserOffLine(byte[] data, int offset, int size, int transID, int msgID, uint gcNetID) { GSToCS.UserOffLine sMsp = new GSToCS.UserOffLine(); sMsp.MergeFrom(data, offset, size); CSGSInfo csgsInfo = CS.instance.GetGSInfoByNSID(this.id); CSUser pUser = CS.instance.userMgr.GetUser(csgsInfo, ( uint )sMsp.Usernetid); if (null != pUser) { //todo //if ( pUser.GetUserBattleInfoEx().GetBattleState() == eBattleState_Free ) CS.instance.userMgr.RemoveUser(pUser); pUser.OnOffline(); } return(ErrorCode.Success); }