//获取超时时间 public static long GetOverTime(this FiveStarRoom fiveStarRoom, int playerSeatIndex, int overTimeType) { if (fiveStarRoom.FiveStarPlayerDic[playerSeatIndex].IsLiangDao && overTimeType == FiveStarOverTimeType.PlayCardType) { return(FiveStarRoomComponent.CurrTime + 1);//如果亮倒了 出牌 就一秒时间 } if (!fiveStarRoom.RoomConfig.IsHaveOverTime) { return(0);//配置没有超时 直接返回0 } if (fiveStarRoom.FiveStarPlayerDic[playerSeatIndex].IsAI) { return(FiveStarRoomComponent.CurrTime + RandomTool.Random(1, 4));//如果是AI加个随机值 } if (overTimeType == FiveStarOverTimeType.DaPiaoType) { return(FiveStarRoomComponent.CurrTime + FiveStarOverTime.CanDaPiaoOverTime); } if (fiveStarRoom.FiveStarPlayerDic[playerSeatIndex].IsCollocation) { return(FiveStarRoomComponent.CurrTime + 1); } if (overTimeType == FiveStarOverTimeType.PlayCardType) { return(FiveStarRoomComponent.CurrTime + FiveStarOverTime.CanPlayCardOverTime); } else if (overTimeType == FiveStarOverTimeType.OperateType) { return(FiveStarRoomComponent.CurrTime + FiveStarOverTime.CanOperateOverTime); } return(0); }
public override async Task <LaGouResponseDataCollection> CollectAsync(LaGouSearchParam searchParam) { string encodedCityName = WebTool.UrlEncodeByW3C(searchParam.CityName); string encodedKeyword = WebTool.UrlEncodeByW3C(searchParam.Keyword); var jobListUri = PcWebApiProvider.GetJobListUri(encodedCityName, encodedKeyword, searchParam.SearchType); LaGouResponseDataCollection dataCollection = new LaGouResponseDataCollection(); using var browser = await PuppeteerConsole.LauncherBrowser(false); using var page = await browser.NewPageAsync(); page.Response += OnResponsed; await page.GoToAsync(jobListUri.AbsoluteUri).ConfigureAwait(false); //Get the first page directly. for (int i = 0; i < searchParam.MaxPage - 1; i++) { await Task.Delay(RandomTool.NextInt(2000, 4000)); await page.HoverAsync(NextPageElementSelector); await Task.Delay(RandomTool.NextInt(3000, 5000)); await page.ClickAsync(NextPageElementSelector); } return(dataCollection); async void OnResponsed(object sender, ResponseCreatedEventArgs args) { var rsp = args.Response; if (!rsp.Url.StartsWith(PcWebApiProvider.PositionAjaxUrlPrefix)) { return; } if (!rsp.Ok) { return; } string rspText = null; try { rspText = await rsp.TextAsync(); } catch (Exception ex) { ShowLogException(ex); return; } var data = PcWebApiProvider.CreateResponseData(rspText, out string _); if (data is null) { return; } dataCollection.AddResponseData(data); dataCollection.FillPositions(searchParam.Keyword); dataCollection.FillCompanies(searchParam.CityName); } }
//开始游戏 public static void StartGame(this FiveStarRoom fiveStarRoom) { Actor_FiveStar_StartGame actorFiveStarStart = new Actor_FiveStar_StartGame(); actorFiveStarStart.RoomConfigs = fiveStarRoom.RoomConfig.Configs; actorFiveStarStart.RoomId = fiveStarRoom.RoomId; if (fiveStarRoom.RoomType == RoomType.Match) { actorFiveStarStart.RoomId = fiveStarRoom.MathRoomId; } foreach (var player in fiveStarRoom.FiveStarPlayerDic.Values) { //因为有些对象不能进行序列化 就必须重新复制一份 actorFiveStarStart.PlayerInfos.Add(FiveStarPlayerFactory.CopySerialize(player)); } foreach (var player in fiveStarRoom.FiveStarPlayerDic) { player.Value.StartGame(actorFiveStarStart); } //第一局随机出一个休息的玩家 fiveStarRoom.NextRestSeatIndex = RandomTool.Random(1, fiveStarRoom.RoomConfig.RoomNumber); //不能为0 因为0要第一个摸牌 fiveStarRoom.SmallStartGame(); //小局开始游戏 //用来发送消息的序列化对象 放入简易对象池 不能直接销毁 因为会改变一些东西 foreach (var player in actorFiveStarStart.PlayerInfos) { FiveStarPlayerFactory.DisposeSerializePlayer(player); } }
//---------------------- // 已经登录了的用户修改密码 public async Task <bool> UpdatePwd(long?userId, string oldPwd, string pwd) { var user = dataContext.User.Where(b => b.UserId == userId).First(); IPasswordStore passwordStore = passwordStoreFactory.Instance(user); //验证旧密码 var vd = passwordStore.VerifyPassword(user.Pwd.Base64ToByteArray(), oldPwd.Base64ToByteArray(), user.Salt.Base64ToByteArray(), user.PasswordHashIterations); if (!vd) { return(vd); } //产生新的盐 var salt = RandomTool.CreatSafeSaltByteArray(16); passwordStore = passwordStoreFactory.Instance(Config.SecurityConfig); //更新用户生成密码哈希的安全策略 user.PasswordDegreeOfParallelism = Config.SecurityConfig.PasswordStoreDegreeOfParallelism; user.PasswordHashAlgorithm = Config.SecurityConfig.PasswordHashAlgorithm; user.PasswordHashIterations = Config.SecurityConfig.PasswordHashIterations; user.PasswordMemorySize = Config.SecurityConfig.PasswordStoreMemorySize; //更新盐 user.Salt = salt.ByteArrayToBase64(); //生成新的密码哈希 user.Pwd = (passwordStore.Encryption(pwd.Base64ToByteArray(), salt, user.PasswordHashIterations)).ByteArrayToBase64(); if (this.Config.SecurityConfig.LogNeedHmac) { //计算hmac user.AddMac(this.cryptographyProvider); } return(dataContext.SaveChanges() > 0); }
private static void CreateInArea() { var gos = Selection.gameObjects; const int count = 100; GameObject parent = new GameObject("AutoGenerated"); Vector3 from = new Vector3(-5000, 0, -5000); Vector3 to = new Vector3(5000, 0, 5000); for (int i = 0; i < count; i++) { var prefab = gos[RandomTool.NextInt(0, gos.Count() - 1)]; var go = GameObject.Instantiate(prefab, gos[0].transform.position + new Vector3(RandomTool.NextSingle(from.x, to.x), 0, RandomTool.NextSingle(from.z, to.z)), Quaternion.identity) as GameObject; go.transform.parent = parent.transform; } }
protected async Task <List <SpiderProxyUriEntity> > GetProxyEntitiesAsync(SpiderHttpClient webClient, HttpMethod httpMethod, IList <string> urls, int estimatedCount = 0) { var entities = estimatedCount > 0 ? new List <SpiderProxyUriEntity>(estimatedCount) : new List <SpiderProxyUriEntity>(); int urlCount = urls.Count; Task[] tasks = new Task[urlCount]; for (int i = 0; i < urlCount; i++) { tasks[i] = Task.Run(async() => { var tempList = await GetProxyEntitiesAsync(webClient, httpMethod, urls[i]); if (!tempList.IsNullOrEmpty()) { lock (entities) { entities.AddRange(tempList); } } }); await Task.Delay(RandomTool.NextIntSafely(4000, 6000)); } await Task.WhenAll(tasks); return(entities); }
public static async Task <User> Create(int minBeansNum) { if (_AiMatchUsers == null) { await InitAIUsers(); } if (++_AIUserUseIndex >= _AIUsers.Count) { _AIUserUseIndex = 0; } User userAi = _AIUsers[_AIUserUseIndex]; _IconNameUseIndex++; if (_IconNameUseIndex >= _AINames.Count || _IconNameUseIndex >= _AIIcons.Count) { _IconNameUseIndex = 0; } userAi.Icon = _AIIcons[_IconNameUseIndex]; userAi.Name = _AINames[_IconNameUseIndex]; int oughtBeansNum = minBeansNum + RandomTool.Random(1, 10) * (minBeansNum / 10); int aiAddBeansNum = (int)(oughtBeansNum - userAi.Beans); userAi.Beans = oughtBeansNum; for (int i = 0; i < _AiMatchUsers.Count; i++) { if (_AiMatchUsers[i].UserId == userAi.UserId) { _AiMatchUsers[i].BeansTotalResult += aiAddBeansNum; await Game.Scene.GetComponent <DBProxyComponent>().Save(_AiMatchUsers[i]); break; } } return(UserFactory.AIUserCopy(userAi)); }
/// <summary> /// 随机翻译多次到中文 /// </summary> /// <param name="source"></param> /// <param name="count">最多就20次</param> /// <returns></returns> public string RandomTranslateToZh(string source, int count) { if (source.IsNullOrWhiteSpace()) { return(source); } if (count <= 0) { count = 1; } else if (count >= 20) { count = 20; } BaiduTranslateAPI translator = new BaiduTranslateAPI(); for (int i = 0; i < count; i++) { source = translator.Translate(source, Language.auto, RandomTool.EnumRandomGetOne <Language>()); if (source == null) { this.InheritError(translator); return(null); } } string result = translator.Translate(source, Language.auto);//最后转为中文 if (result == null) { this.InheritError(translator); return(null); } return(result); }
// Use this for initialization void Start() { data.AddRange(RandomTool.GetRandomInt(1, 100, numberCount)); for (int dex = 0; dex < numberCount; ++dex) { Debug.Log("Before ; " + data[dex]); } }
public void InitSecret() { Console.WriteLine(" ==================== Initializing Secret Start==================== "); ConfigFileService configFileService = new ConfigFileService(); configFileService.WebConfig.SecurityConfig.Secret = RandomTool.CreatSafeRandomBase64(32); configFileService.Save(); Console.WriteLine(" ==================== Initialized Secret Successfully ==================== "); }
//延迟打漂AI打漂 public static async void AIDelayDaPiao(this FiveStarPlayer fiveStarPlayer) { if (!fiveStarPlayer.IsAI)//不是AI直接 返回 { return; } await Game.Scene.GetComponent <TimerComponent>().WaitAsync(RandomTool.Random(1, 4) * 1000); fiveStarPlayer.CollocationAIOperate(); }
/// <summary> /// Roll some rooms /// </summary> void RandomRooms() { for (int i = 0; i < roomCount; i++) { int temp1 = 0, temp2 = 0, temp3 = 0, temp4 = 0; RandomTool.Roll(ref temp1, ref temp2, width, 3, 6, ref rd); RandomTool.Roll(ref temp3, ref temp4, length, 3, 6, ref rd); CheckRoom(new Rooms(temp3, temp1, temp4, temp2)); } }
protected string GetAntiCSRFToken() { var token = HttpContext.Session.GetString("AntiCSRFToken"); if (string.IsNullOrEmpty(token)) { token = RandomTool.CreatSafeRandomHex(16); HttpContext.Session.SetString("AntiCSRFToken", token); } return(token); }
public string KouLearnAnotherName( [KouPluginArgument(Name = "歌曲名等")] string songName, [KouPluginArgument(Name = "要学的歌曲别名")] string songAnotherName) { if (songName.IsNullOrWhiteSpace() || songAnotherName.IsNullOrWhiteSpace()) { return("好好教我嘛"); } var haveTheAlias = SongAlias.SingleOrDefault(p => p.Alias == songAnotherName); if (haveTheAlias != null) { return($"可是我之前就知道{haveTheAlias.CorrespondingSong.SongTitle}可以叫做{songAnotherName}了"); } var song = SongAlias.SingleOrDefault(p => p.Alias == songName)?.CorrespondingSong; if (song == null) { var satisfiedSongs = Song.Find(s => s.SongId.ToString() == songName || s.SongTitle.Contains(songName, StringComparison.OrdinalIgnoreCase)).ToList(); if (satisfiedSongs.Count > 1) { return($"具体是以下哪一首歌呢(暂时不支持选择id):\n{satisfiedSongs.ToSetString()}"); } if (satisfiedSongs.Count == 0) { return($"找不到哪个歌叫{songName}哦..."); } song = satisfiedSongs[0]; } var sourceUser = CurrentPlatformUser.FindThis(KouContext); var dbSong = song.FindThis(KouContext); var havenHadAliases = dbSong.Aliases?.Select(p => p.Alias).ToStringJoin("、"); var success = SongAlias.Add(alias => { alias.CorrespondingSong = dbSong; alias.Alias = songAnotherName; alias.SourceUser = sourceUser; }, out var added, out var error, KouContext); if (success) { var reward = RandomTool.GenerateRandomInt(1, 2); CurrentPlatformUser.KouUser.GainCoinFree(reward); return($"学会了,{song.SongTitle}可以叫做{songAnotherName}({added.AliasID})" + $"{havenHadAliases?.Be($",我知道它还可以叫做{havenHadAliases}!")}(目前暂不会立即同步)\n" + $"[{CurrentUser.FormatGainFreeCoin(CurrentGlobalKouConfig,reward)}!]"); } return($"没学会,就突然:{error}"); }
//随机一个房间号 不与之前的重复 public static int RandomRoomId(this MatchRoomComponent matchRoomComponent) { int roomId = RandomTool.Random(10000, 99999); while (matchRoomComponent.MatchRoomDic.ContainsKey(roomId)) { roomId = RandomTool.Random(10000, 99999); Log.Info("随机生成房间号:" + roomId); } return(roomId); }
public long GetShowUserId() { if (UserId >= 1000) { return(UserId); } if (_showUserId == 0) { _showUserId = RandomTool.Random(1235, 9999); } return(_showUserId); }
public IActionResult TakeNumber() { var re = new ApiRe(); //产生一个序号 var id = idGenerator.NextId();//序号 var random = RandomTool.CreatSafeRandomBase64(16); var data = SHAEncryptHelper.Hash256Encrypt(id + random); distributedCache.SetBool("TakeNumber", true); re.Data = data; re.Ok = true; return(LeanoteJson(re)); }
// Use this for initialization void Start() { if (m_IsRandom) { data.AddRange(RandomTool.GetRandomInt(1, numberCount * 2, numberCount)); } data2.AddRange(data); //for (int dex = 0; dex < numberCount; ++dex) //{ // Debug.Log("Before ; " + data[dex]); //} Debug.Log("--------------------------------"); }
public object SendPasswordRedPacket( [KouPluginArgument(Name = "总金额", NumberMin = 1, DefaultNumberRangeError = true)] int total, [KouPluginArgument(Name = "数量", NumberMin = 1, DefaultNumberRangeError = true)] int quantity, [KouPluginArgument(Name = "口令(默认生成6位数字)")] string password = null) { if (password == "") { password = null; } if (!ValidateAvailableTime()) { return(ConveyMessage); } KouRedPacket redPacket = new KouRedPacket(CurrentPlatformUser, total, quantity, IsIdentical, password, Duration) { EndAction = RedPacketEndAction, IsCompeteInVelocity = IsCompeteInVelocity, Remark = Remark }; if (redPacket.TotalCoins / redPacket.TotalCount == 0) { return($"每人至少需要有{CurrentGlobalKouConfig.CoinFormat(1)}"); } var rest = CurrentUser.CoinFree - redPacket.TotalCoins; if (rest >= 0) { string ask = $"发送总额为{CurrentGlobalKouConfig.CoinFormat(redPacket.TotalCoins)}的{quantity}个{IsCompeteInVelocity.BeIfTrue("竞速")}红包{password?.Be($"(口令为\"{password}\")")}" + $"(成功后余额为{CurrentGlobalKouConfig.CoinFormat(rest)})\n" + $"输入\"y\"确认"; if (!SessionService.AskConfirm(ask)) { return(null); } if (IsCompeteInVelocity) { CurrentPlatformUser.SendMessage(CurrentPlatformGroup, "将随机在5~30秒内发送竞速红包"); Thread.Sleep(RandomTool.GenerateRandomInt(5000, 30000)); } if (!redPacket.Sent()) { return("发红包失败" + redPacket.ErrorMsg?.Be($",{redPacket.ErrorMsg}")); } return($"发送红包成功!{redPacket.ToString(FormatType.Customize1)}"); } return(this.ReturnNullWithError(null, ErrorCodes.Core_BankNotEnoughMoney)); }
//如果是匹配模式 并且有AI参与 public static RepeatedField <RepeatedField <int> > AIDealCards(int number) { RepeatedField <RepeatedField <int> > distrbuteCards = new RepeatedField <RepeatedField <int> >(); RepeatedField <int> initCards = new RepeatedField <int>() { mInitCards }; //获取必赢的牌 RepeatedField <int> sureWinCards = new RepeatedField <int>(); for (int i = 0; i < 4; i++) { int shunZiStart = RandomTool.Random(1, 17); while (shunZiStart == 8 || shunZiStart == 9) { shunZiStart = RandomTool.Random(1, 17); } for (int j = 0; j < 3; j++) { sureWinCards.Add(shunZiStart + j); initCards.Remove(shunZiStart + j); } } int jiangNum = RandomTool.Random(1, 22); while (sureWinCards.Contains(jiangNum)) { jiangNum = RandomTool.Random(1, 22); } sureWinCards.Add(jiangNum); sureWinCards.Add(jiangNum); initCards.Remove(jiangNum); initCards.Remove(jiangNum); int winCardIndex = RandomTool.Random(0, sureWinCards.Count); int winCard = sureWinCards[winCardIndex]; sureWinCards.Remove(winCard); sureWinCards.Add(winCard); //将牌打乱获取正常玩家的牌 initCards.RandomBrakRank(); for (int i = 0; i < number; i++) { distrbuteCards.Add(initCards.TakeOutCards(DealCardCount)); } initCards.AddRange(sureWinCards); distrbuteCards.Add(initCards); return(distrbuteCards); }
private static string GenerateToken() { StringBuilder tokenBuilder = new StringBuilder(); long tokenid = SnowFlake_Net.GenerateSnowFlakeID(); tokenBuilder.Append(tokenid.ToString("x")); tokenBuilder.Append("@"); tokenBuilder.Append(RandomTool.CreatRandomString(16)); tokenBuilder.Append("@"); tokenBuilder.Append(DateTime.Now); var token = Base64Util.ToBase64String(tokenBuilder.ToString()); return(token); }
private void CheckRecommend() { Array modeArray = Enum.GetValues(typeof(GameSystem.Mode)); List <GameSystem.Mode> lockedModesHP = new List <GameSystem.Mode>(modeArray.Length); List <GameSystem.Mode> lockedModesLP = new List <GameSystem.Mode>(modeArray.Length); foreach (GameSystem.Mode mode in modeArray) { if (PlayerProfile.LoadModeUnlock(mode) == false) { if (ArrayTool.Constains(Constant.RECOMMEND_ORDER_HIGH_PRIORITY, mode)) { lockedModesHP.Add(mode); } else if (ArrayTool.Constains(Constant.RECOMMEND_ORDER_LOW_PRIORITY, mode)) { lockedModesLP.Add(mode); } } } if (ENTER_TIMES > 0 && ENTER_TIMES % Constant.RECOMMEND_TRIGGER_TIMES == 0) { if (lockedModesHP.Count > 0) { GameSystem.GetInstance().RecommendMode = RandomTool.Element(lockedModesHP); } else if (lockedModesLP.Count > 0) { GameSystem.GetInstance().RecommendMode = RandomTool.Element(lockedModesLP); } else { return; } string title = string.Format(TextManager.GetText("recommend_mode_title"), TextManager.GetText(string.Format("mode_name_{0}", (int)GameSystem.GetInstance().RecommendMode))); string yesButtonText = string.Format(TextManager.GetText("unlock_condition"), Constant.MODE_UNLOCK_COIN[(int)GameSystem.GetInstance().RecommendMode]); GameSystem.GetInstance().gameUI.recommendConfirmMenu.SetRecommendMode(GameSystem.GetInstance().RecommendMode); GameSystem.GetInstance().gameUI.recommendConfirmMenu.SetConfirmCallback(RecommendConfirmCallback); GameSystem.GetInstance().gameUI.recommendConfirmMenu.SetContent(title, null, ConfirmStyle.YesNoClose); GameSystem.GetInstance().gameUI.recommendConfirmMenu.SetYesButtonText(yesButtonText); GameSystem.GetInstance().gameUI.recommendConfirmMenu.SetNoButtonText(TextManager.GetText("trial")); GameSystem.GetInstance().gameUI.recommendConfirmMenu.DisableNextYesSound(); GameSystem.GetInstance().gameUI.recommendConfirmMenu.DisableNextNoSound(); GameSystem.GetInstance().gameUI.recommendConfirmMenu.Show(true); } }
public void ReceiveButtonOnClick() { if (GameSystem.GetInstance().IsGiftAvailableNow) { coin = GameSystem.GetInstance().ReceiveGift(); if (GameSystem.GetInstance().IsVIP) { coin /= 2; } int endIndex = -1; int index = 0; foreach (GiftItem giftItem in giftItems) { if (giftItem.Number == coin && RandomTool.Int(2) == 1) { endIndex = index; break; } index++; } if (endIndex == -1) { index = 0; foreach (GiftItem giftItem in giftItems) { if (giftItem.Number == coin) { endIndex = index; break; } index++; } } timer = 0; currentTimes = 0; jumpTimes = 90; startIndex = endIndex - jumpTimes % giftItems.Length; UpdateJumpInterval(); if (startIndex < 0) { startIndex += giftItems.Length; } giftItemSelector.SetActive(true); startAnim = true; } }
public ServerChallenge GenServerChallenge(string tag, string requestNumber, long?userId) { //随机数 var random = RandomTool.CreatSafeRandomBase64(32); var challenge = new ServerChallenge() { Id = this.idGenerator.NextId(), UserId = userId, Tag = tag, RequestNumber = requestNumber, Random = random, UinxTime = UnixTimeUtil.GetTimeStampInInt32() }; SaveServerChallenge(challenge); return(challenge); }
// 注册 /* * 注册 [email protected] userId = "5368c1aa99c37b029d000001" * 添加 在博客上添加一篇欢迎note, note1 5368c1b919807a6f95000000 * * 将nk1(只读), nk2(可写) 分享给该用户 * 将note1 复制到用户的生活nk上 */ // 1. 添加用户 // 2. 将leanote共享给我 // [ok] public static bool Register(string email, string pwd, long fromUserId, out string Msg) { if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(pwd) || pwd.Length < 6) { Msg = "参数错误"; return(false); } if (UserService.IsExistsUser(email)) { Msg = "userHasBeenRegistered-" + email; return(false); } //产生一个盐用于保存密码 string salt = RandomTool.CreatSafeSalt(); //对用户密码做哈希运算 string genPass = SHAEncrypt_Helper.Hash256Encrypt(pwd + salt); if (string.IsNullOrEmpty(genPass)) { Msg = "密码处理过程出现错误"; return(false); } User user = new User() { UserId = SnowFlake_Net.GenerateSnowFlakeID(), Email = email, Username = email, Pwd = genPass, Salt = salt, FromUserId = fromUserId, Usn = 1 }; if (Register(user)) { Msg = "注册成功"; return(true); } else { Msg = "注册失败"; return(false); } }
public override async Task <LaGouResponseDataCollection> CollectAsync(LaGouSearchParam searchParam) { string encodedCityName = WebTool.UrlEncodeByW3C(searchParam.CityName); string encodedKeyword = WebTool.UrlEncodeByW3C(searchParam.Keyword); LaGouResponseDataCollection dataCollection = new LaGouResponseDataCollection(); using (var client = CreateHttpClient()) { await TryInitCookiesAsync(client, encodedCityName, encodedKeyword, searchParam.SearchType); await Task.Delay(100); string sid = null; using (var postContent = PcWebApiProvider.GetPositionAjaxContent(encodedKeyword, "1")) { string ajaxRsp = await PostPositionAjaxAsync(client, postContent, encodedCityName, encodedKeyword, searchParam.SearchType); var data = PcWebApiProvider.CreateResponseData(ajaxRsp, out sid); if (data != null) { dataCollection.AddResponseData(data); } } for (int i = 2; i <= searchParam.MaxPage; i++) { await Task.Delay(RandomTool.NextIntSafely(4000, 6000)); using (var postContent = PcWebApiProvider.GetPositionAjaxContent(encodedKeyword, i.ToString(), sid)) { string ajaxRsp = await PostPositionAjaxAsync(client, postContent, encodedCityName, encodedKeyword, searchParam.SearchType); var data = PcWebApiProvider.CreateResponseData(ajaxRsp, out sid); if (data != null) { dataCollection.AddResponseData(data); } } } } dataCollection.FillPositions(searchParam.Keyword); dataCollection.FillCompanies(searchParam.CityName); return(dataCollection); }
public async void PlayAnim() { if (isAnimIn) { return; } isAnimIn = true; while (gameObject.activeInHierarchy) { _LanternVector.z = (float)RandomTool.Random(LanternRange / 2, LanternRange) * RangePlus; _AigletVector.z = (float)RandomTool.Random(AigletRange / 2, AigletRange) * RangePlus; gameObject.transform.DOLocalRotate(_LanternVector, 3f); _AigletGo.transform.DOLocalRotate(_AigletVector, 3f); RangePlus = RangePlus * -1; await ETModel.Game.Scene.GetComponent <TimerComponent>().WaitAsync(2000); } isAnimIn = false; }
//直接随机出现一个抽奖物品 public static TurntableGoods RandomDarwLottery(this TurntableComponent turntableComponent, long userId) { int randNum = RandomTool.Random(0, 100);//默认概率是 100 所有物品的概率加起来也是要100 int currProbability = 0; for (int i = 0; i < turntableComponent.mTurntableGoodses.Count; i++) { currProbability += turntableComponent.mTurntableGoodses[i].Probability; if (randNum < currProbability) { if (turntableComponent.mTurntableGoodses[i].GoodsId != GoodsId.None) { UserHelp.GoodsChange(userId, turntableComponent.mTurntableGoodses[i].GoodsId , turntableComponent.mTurntableGoodses[i].Amount, GoodsChangeType.DrawLottery); //改变物品给用户服 } turntableComponent.RecordWinPrizeInfo(userId, turntableComponent.mTurntableGoodses[i]); //记录中奖信息 return(turntableComponent.mTurntableGoodses[i]); } } Log.Error("概率随机出现错误"); return(null); }
public static async Task <AccountInfo> EditRegisterCreatUser(string account) { User user = ComponentFactory.Create <User>(); user.Icon = string.Empty; user.Name = "小明" + RandomTool.Random(0, 1000); user.Beans = UserConfigComponent.Ins.InitUserBeans.Value; user.Jewel = UserConfigComponent.Ins.InitUserJewel.Value; user.UserId = ++UserConfigComponent.Ins.MaximumUserId; user.Sex = SexType.WoMan;//游客或者编辑登陆 性别默认是女 await Game.Scene.GetComponent <DBProxyComponent>().Save(user); AccountInfo accountInfo = ComponentFactory.Create <AccountInfo>(); accountInfo.UserId = user.UserId; accountInfo.Account = account; accountInfo.Password = string.Empty; accountInfo.IsStopSeal = false; await Game.Scene.GetComponent <DBProxyComponent>().Save(accountInfo); return(accountInfo); }
public JWT GetJWT(long?tokenId, string userNmae, long?userId, string group, long?exp = 31536000) { JWT_Header header = new JWT_Header() { alg = "SHA1" }; JWT_Payload payload = new JWT_Payload { tokenId = tokenId, iss = "localhost", username = userNmae, userId = userId, group = group, startTime = UnixTimeUtil.GetTimeStampInLong(), exp = exp, random = RandomTool.CreatSafeRandomBase64(8) }; StringBuilder message = new StringBuilder(); message.Append(header.alg); message.Append(payload.tokenId); message.Append(payload.iss); message.Append(payload.username); message.Append(payload.userId); message.Append(payload.group); message.Append(payload.startTime); message.Append(payload.exp); message.Append(payload.random); string password = ""; string signature = SHAEncryptHelper.Hash1Encrypt(message + password); JWT jWT = new JWT() { Header = header, Payload = payload, Signature = signature }; return(jWT); }