/// <summary> /// 业务逻辑处理 /// </summary> /// <returns>false:中断后面的方式执行并返回Error</returns> public override bool TakeAction() { string key = CryptoHelper.MD5_Encrypt("" + _serverId + _tstamp + GlobalDefine.LoginSwitch_Key, Encoding.UTF8); if (key == _word && !ServerHelper.IsExistRS(_serverId)) { var freeUserId = ServerHelper.GetFreeRSUserId(); if (freeUserId > 0) { Current.Bind(new SessionUser() { UserId = freeUserId, PassportId = string.Format("RoomS-{0}", _serverId) }); //设置忽略锁 Current.SetIgoreLock(true, actionId); ServerHelper.AddRS(_serverId, Current); _packet.Ret = 1; } else { TraceLog.WriteError("所有给其它服分配的UserId已用完!"); } } else { _packet.Ret = 0; } // SendLoginResult(); // IsNotRespond = true; return(true); }