//获取超时时间
        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);
        }
Ejemplo n.º 2
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);
                }
            }
Ejemplo n.º 3
0
        //开始游戏
        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);
            }
        }
Ejemplo n.º 4
0
        //----------------------
        // 已经登录了的用户修改密码
        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;
        }
    }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        /// <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);
        }
Ejemplo n.º 9
0
 // 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]);
     }
 }
Ejemplo n.º 10
0
        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 ==================== ");
        }
Ejemplo n.º 11
0
        //延迟打漂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));
     }
 }
Ejemplo n.º 13
0
        protected string GetAntiCSRFToken()
        {
            var token = HttpContext.Session.GetString("AntiCSRFToken");

            if (string.IsNullOrEmpty(token))
            {
                token = RandomTool.CreatSafeRandomHex(16);
                HttpContext.Session.SetString("AntiCSRFToken", token);
            }
            return(token);
        }
Ejemplo n.º 14
0
        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}");
        }
Ejemplo n.º 15
0
        //随机一个房间号 不与之前的重复
        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);
        }
Ejemplo n.º 16
0
 public long GetShowUserId()
 {
     if (UserId >= 1000)
     {
         return(UserId);
     }
     if (_showUserId == 0)
     {
         _showUserId = RandomTool.Random(1235, 9999);
     }
     return(_showUserId);
 }
Ejemplo n.º 17
0
        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));
        }
Ejemplo n.º 18
0
 // 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("--------------------------------");
 }
Ejemplo n.º 19
0
        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));
        }
Ejemplo n.º 20
0
        //如果是匹配模式 并且有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);
        }
Ejemplo n.º 21
0
        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);
        }
Ejemplo n.º 22
0
    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);
        }
    }
Ejemplo n.º 23
0
    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;
        }
    }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
        // 注册

        /*
         * 注册 [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);
            }
        }
Ejemplo n.º 26
0
            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);
            }
Ejemplo n.º 27
0
        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;
        }
Ejemplo n.º 28
0
        //直接随机出现一个抽奖物品
        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);
        }
Ejemplo n.º 29
0
        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);
        }
Ejemplo n.º 30
0
        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);
        }