Example #1
0
 static void world_NetStateDisconnect(object sender, NetStateDisconnectEventArgs e)
 {
     //  网络连接断开
     if (e.NetState != null)
     {
         Logs.Info("{0} close socket.", e.NetState.Serial);
     }
 }
Example #2
0
        private void RunTaskNetStateDisconnect(NetState netState)
        {
            m_netStateManager.InternalRemoveNetState(netState.Serial);

            //  通知业务逻辑有客户端连接上来可以做一些初始化
            //  或者判断是否允许本次连接
            var tempEV = NetStateDisconnect;

            if (tempEV != null)
            {
                var arg = new NetStateDisconnectEventArgs
                {
                    NetState = netState,
                };
                tempEV(this, arg);
            }

            netState.ExitWorld();
            netState.Dispose();
        }
Example #3
0
        private void OnNetStateDisconnect(object sender, NetStateDisconnectEventArgs e)
        {
            var netState = e.NetState;
            if (netState.IsVerifyLogin && netState.BizId > 0)
            {

                //  标示玩家已经登陆过游戏,离线时会触发一系列的操作
                var player = (Player)netState.Player;
                Logs.Info("{0} net disconnect.", player.Name);

                player.LastLogoffTime = OneServer.NowTime;
                var onlineTime = player.LastLogoffTime - player.LastLoginTime;
                player.OnlineTime += (int)onlineTime.TotalSeconds;

                WorldEntityManager.OnlinePlayers.Remove(player.Id);

                PlayerEvents.OnExitGame(player);

                //  这里暂时是同步写文件了
                DB.GameDB.UpdateEntity(player);
            }
            else
            {
                Logs.Info("not login account net disconnect.");
            }
        }
Example #4
0
        private void RunTaskNetStateDisconnect(NetState netState)
        {
            m_netStateManager.InternalRemoveNetState(netState.Serial);

            //  通知业务逻辑有客户端连接上来可以做一些初始化
            //  或者判断是否允许本次连接
            var tempEV = NetStateDisconnect;
            if (tempEV != null)
            {
                var arg = new NetStateDisconnectEventArgs
                {
                    NetState = netState,
                };
                tempEV(this, arg);
            }

            netState.ExitWorld();
            netState.Dispose();
        }