Пример #1
0
        public override bool TakeAction()
        {
            UserBasisCache dest = UserHelper.FindUserBasis(Uid);

            if (dest == null)
            {
                return(true);
            }
            FriendApplyData apply = GetFriends.FindFriendApply(Uid);

            if (apply == null)
            {
                return(true);
            }

            receipt            = new JPFriendApplyData();
            receipt.UserId     = Uid;
            receipt.NickName   = dest.NickName;
            receipt.Profession = dest.Profession;
            receipt.AvatarUrl  = dest.AvatarUrl;
            receipt.UserLv     = dest.UserLv;
            //receipt.FightValue = dest.FightingValue;
            receipt.VipLv     = dest.VipLv;
            receipt.ApplyTime = apply.ApplyDate;

            GameSession fsession = GameSession.Get(dest.UserID);

            receipt.IsOnline = fsession != null && fsession.Connected;
            return(true);
        }
Пример #2
0
 public WebSocketApi(string uri)
 {
     _client        = new Client(uri);
     _login         = new Login(_client);
     _changePwd     = new ChangePwd(_client);
     _forgotPwd     = new ForgotPwd(_client);
     _resetPwd      = new ResetPwd(_client);
     _validMail     = new ValidMail(_client);
     _register      = new Register(_client);
     _getFriends    = new GetFriends(_client);
     _getPFriends   = new GetPendingFriends(_client);
     _removeFriend  = new RemoveFriend(_client);
     _addFriend     = new AddFriend(_client);
     _confirmFriend = new ConfirmFriend(_client);
 }
Пример #3
0
        public override bool TakeAction()
        {
            UserFriendsCache destFriends = UserHelper.FindUserFriends(destuid);

            if (GetFriends.IsHaveFriend(destuid))
            {
                GetFriends.RemoveFriend(destuid);
            }
            if (destFriends.IsHaveFriend(Current.UserId))
            {
                destFriends.RemoveFriend(Current.UserId);
            }

            PushMessageHelper.FriendRemoveNotification(GameSession.Get(destuid), Current.UserId);
            receipt = destuid;

            return(true);
        }
Пример #4
0
        public WebSocketApi(string uri)
        {
            _client = new Client(uri);
            var dataExchange = new DataExchange(_client);

            _login         = new Login(dataExchange);
            _changePwd     = new ChangePwd(dataExchange);
            _forgotPwd     = new ForgotPwd(dataExchange);
            _resetPwd      = new ResetPwd(dataExchange);
            _validMail     = new ValidMail(dataExchange);
            _register      = new Register(dataExchange);
            _getFriends    = new GetFriends(dataExchange);
            _getPFriends   = new GetPendingFriends(dataExchange);
            _removeFriend  = new RemoveFriend(dataExchange);
            _addFriend     = new AddFriend(dataExchange);
            _confirmFriend = new ConfirmFriend(dataExchange);
            _logger        = LoggerFactory.GetLogger();
        }
Пример #5
0
        public override bool TakeAction()
        {
            UserBasisCache   dest        = UserHelper.FindUserBasis(destuid);
            UserFriendsCache destFriends = UserHelper.FindUserFriends(destuid);

            FriendApplyData apply = GetFriends.FindFriendApply(destuid);

            if (apply == null)
            {
                receipt = RequestFriendResult.NoApply;
                return(true);
            }

            if (result == EventStatus.Good)
            {
                if (GetFriends.IsFriendNumFull())
                {
                    receipt = RequestFriendResult.FriendNumFull;
                }
                else if (GetFriends.IsHaveFriend(destuid))
                {
                    receipt = RequestFriendResult.HadFriend;
                }
                else if (destFriends.IsFriendNumFull())
                {
                    receipt = RequestFriendResult.DestFriendNumFull;
                }
                else
                {
                    receipt = RequestFriendResult.OK;

                    GetFriends.AddFriend(destuid);

                    destFriends.AddFriend(Current.UserId);

                    PushMessageHelper.NewFriendNotification(GameSession.Get(destuid), Current.UserId);
                    PushMessageHelper.NewFriendNotification(Current, destuid);
                }
            }
            GetFriends.ApplyList.Remove(apply);


            return(true);
        }
Пример #6
0
        public override bool TakeAction()
        {
            UserBasisCache   dest        = UserHelper.FindUserBasis(destuid);
            UserFriendsCache destFriends = UserHelper.FindUserFriends(destuid);


            if (GetFriends.IsFriendNumFull())
            {
                receipt = RequestFriendResult.FriendNumFull;
            }
            else if (destFriends.IsFriendNumFull())
            {
                receipt = RequestFriendResult.DestFriendNumFull;
            }
            else if (GetFriends.IsHaveFriend(destuid))
            {
                receipt = RequestFriendResult.HadFriend;
            }
            else if (destFriends.IsHaveFriendApply(Current.UserId))
            {
                receipt = RequestFriendResult.HadApply;
            }
            else
            {
                receipt = RequestFriendResult.OK;

                destFriends.AddFriendApply(Current.UserId);
                var session = GameSession.Get(destuid);
                PushMessageHelper.NewFriendRequestNotification(GameSession.Get(destuid), Current.UserId);

                //GetFriends.AddFriend(destuid);

                //destFriends.AddFriend(Current.UserId);

                //PushMessageHelper.NewFriendNotification(GameSession.Get(destuid), Current.UserId);
                //PushMessageHelper.NewFriendNotification(Current, destuid);
            }

            return(true);
        }
Пример #7
0
        public override bool TakeAction()
        {
            receipt     = new RobData();
            receipt.Rob = GetLottery.Rob;

            var rob = UserHelper.FindUserBasis(GetLottery.Rob.RivalUid);

            receipt.Rob.RivalLevel = rob.UserLv;
            var lotterycfg = new ShareCacheStruct <Config_Lottery>().Find(t => (t.Type == LotteryAwardType.Rob));

            if (lotterycfg == null)
            {
                return(false);
            }
            receipt.TodayRobList = GetFriends.TodayRobList.ToList();
            foreach (var v in GetFriends.FriendsList)
            {
                JPFriendRobData friendrob = new JPFriendRobData()
                {
                    UserId = v.UserId,
                };
                if (v.RobGold.Equals("0"))
                {
                    var enemy = GetEnemys.FindEnemy(v.UserId);
                    if (enemy != null && !enemy.RobGold.Equals("0"))
                    {
                        v.RobGold = enemy.RobGold;
                        continue;
                    }
                    var        rival      = UserHelper.FindUserBasis(v.UserId);
                    int        baseValue  = lotterycfg.Content.ToInt();
                    int        goldMin    = baseValue / 4;
                    int        goldmax    = random.Next(baseValue - goldMin) + goldMin;
                    BigInteger targetGold = Math.Ceiling(rival.UserLv / 50.0).ToInt() * goldmax;
                    v.RobGold = targetGold.ToString();
                }
                friendrob.Gold = v.RobGold;
                receipt.FriendRobList.Add(friendrob);
            }
            foreach (var v in GetEnemys.EnemyList)
            {
                JPEnemyRobData enemyrob = new JPEnemyRobData()
                {
                    UserId = v.UserId,
                };
                if (v.RobGold.Equals("0"))
                {
                    var friend = GetFriends.FindFriend(v.UserId);
                    if (friend != null && !friend.RobGold.Equals("0"))
                    {
                        v.RobGold = friend.RobGold;
                        continue;
                    }
                    var        rival      = UserHelper.FindUserBasis(v.UserId);
                    int        baseValue  = lotterycfg.Content.ToInt();
                    int        goldMin    = baseValue / 4;
                    int        goldmax    = random.Next(baseValue - goldMin) + goldMin;
                    BigInteger targetGold = Math.Ceiling(rival.UserLv / 50.0).ToInt() * goldmax;
                    v.RobGold = targetGold.ToString();
                }
                enemyrob.Gold = v.RobGold;
                receipt.EnemyRobList.Add(enemyrob);
            }

            return(true);
        }
Пример #8
0
        public Task Start(int playerIndex)
        {
            return(Task.Run(async() =>
            {
                var httpClientMain = new HttpClient();

                var reqLogin = new Login();
                reqLogin.request.account = $"LoadTester{playerIndex}@BNO";
                //reqLogin.request.password = "";
                var resLogin = await reqLogin.PostAsyncXXX(Global.ApiServerUri);

                if (resLogin.StatusCode != System.Net.HttpStatusCode.OK || string.IsNullOrEmpty(resLogin.Payload.token))
                {
                    Console.WriteLine(playerIndex + " : Login Error");
                    return;
                }

                Console.WriteLine(playerIndex + " : Login");

                if (resLogin.Payload.initialLevel == 0)
                {
                    var reqSetFirstOnetime = new SetFirstOnetime();
                    reqSetFirstOnetime.request.playerName = $"LoadTester{playerIndex}";
                    var resSetFirstOnetime = await reqSetFirstOnetime.PostAsyncXXX(Global.ApiServerUri, resLogin.Payload.token);
                }

                var keep = true;
                var b =
                    Task.Run(async() =>
                {
                    var httpClient = new HttpClient();

                    while (true)
                    {
                        var reqHandShake = new HandShack();
                        var resHandShake = await reqHandShake.PostAsyncXXX(Global.ApiServerUri, resLogin.Payload.token);

                        //Console.WriteLine(reqLogin.request.password + ":PushCode=\"" + resHandShake.pushCode + "\"");
                        //Console.WriteLine(resHandShake.pushCode);

                        if (resHandShake.StatusCode != System.Net.HttpStatusCode.OK ||
                            resHandShake.Payload.pushCode == new evoapi.ProtocolModels.HandShake.Close.Response().pushCode ||
                            resHandShake.Payload.pushCode == new evoapi.ProtocolModels.HandShake.Unauthorized.Response().pushCode)
                        {
                            Console.WriteLine(playerIndex + ":" + resHandShake.Payload.pushCode);
                            keep = false;
                            break;
                        }
                    }
                });


                var reqMasterDataGet = new MasterDataGet();
                var resMasterDataGet = await reqMasterDataGet.PostAsyncXXX(Global.ApiServerUri, resLogin.Payload.token);

                var reqGetFriends = new GetFriends();
                var resGetFriends = await reqGetFriends.PostAsyncXXX(Global.ApiServerUri, resLogin.Payload.token);

                //var reqEntryPlayer = new EntryPlayer();
                //reqEntryPlayer.request.matchType = evolib.Battle.MatchType.Casual;
                //var resEntryPlayer = await reqEntryPlayer.PostAsync(httpClientMain, resLogin.token);


                while (keep)
                {
                    await Task.Delay(1000);
                }
            }));
        }
Пример #9
0
        public override bool TakeAction()
        {
            receipt        = new RobReceipt();
            receipt.Result = false;

            if (GetLottery.RobTimes <= 0)
            {
                return(true);
            }
            if (GetLottery.Rob.RivalUid != selectId &&
                !GetEnemys.IsHaveEnemy(selectId) &&
                !GetFriends.IsHaveFriend(selectId))
            {
                return(true);
            }

            var rival = UserHelper.FindUserBasis(selectId);

            if (rival == null)
            {
                return(true);
            }
            var rivalEnemy = UserHelper.FindUserEnemy(rival.UserID);

            if (rivalEnemy == null)
            {
                return(true);
            }

            var lotterycfg = new ShareCacheStruct <Config_Lottery>().Find(t => (t.Type == LotteryAwardType.Rob));

            if (lotterycfg == null)
            {
                return(false);
            }

            GetLottery.RobTimes--;

            BigInteger dummyGold = 0;

            if (GetLottery.Rob.RivalUid == selectId)
            {
                dummyGold = BigInteger.Parse(GetLottery.Rob.Gold);

                GetLottery.Rob.RivalUid       = 0;
                GetLottery.Rob.RivalName      = string.Empty;
                GetLottery.Rob.RivalAvatarUrl = string.Empty;
                GetLottery.Rob.Gold           = "0";
                UserHelper.RandomRobTarget(Current.UserId);
            }
            if (GetFriends.IsHaveFriend(selectId))
            {
                var frienddata = GetFriends.FindFriend(selectId);
                dummyGold = BigInteger.Parse(frienddata.RobGold);

                frienddata.RobGold = "0";
                GetFriends.AddRobRecord(selectId);
            }
            if (GetEnemys.IsHaveEnemy(selectId))
            {
                var enemydata = GetEnemys.FindEnemy(selectId);
                dummyGold = BigInteger.Parse(enemydata.RobGold);

                GetEnemys.RemoveEnemy(rival.UserID);
            }

            if (result == EventStatus.Bad)
            {
                dummyGold = dummyGold / 5;
            }

            receipt.Gold = dummyGold.ToString();
            UserHelper.RewardsGold(Current.UserId, dummyGold);
            BigInteger realGold = rival.GoldNum <= dummyGold * 2 ? rival.GoldNum / 2 : dummyGold;

            UserHelper.ConsumeGold(rival.UserID, realGold);

            int levelDown = 0;

            if (result == EventStatus.Good)
            {
                int downlv = rival.UserLv <= 1000 ? 10 : rival.UserLv / 100;
                levelDown = Math.Max(rival.UserLv - downlv, 0);
                levelDown = Math.Min(levelDown, downlv);
                //rival.UserLv = Math.Max(rival.UserLv - levelDown, 10);
                //UserHelper.UserLvChange(rival.UserID);
                //PushMessageHelper.UserLvChangeNotification(GameSession.Get(rival.UserID));
                rival.BackLevelNum += downlv;
            }

            rivalEnemy.AddEnemy(new EnemyData()
            {
                UserId = Current.UserId
            });



            EnemyLogData log = new EnemyLogData()
            {
                RivalUid        = Current.UserId,
                RivalName       = GetBasis.NickName,
                RivalAvatarUrl  = GetBasis.AvatarUrl,
                LogTime         = DateTime.Now,
                LossGold        = realGold.ToString(),
                LevelDown       = levelDown,
                IsSteal         = false,
                Status          = result,
                RivalProfession = GetBasis.Profession
            };

            rivalEnemy.PushLog(log);
            PushMessageHelper.NewStealRobNotification(GameSession.Get(rival.UserID));



            receipt.Lottery = GetLottery;
            receipt.Result  = true;


            return(true);
        }