Exemplo n.º 1
0
        /// <summary> 金钱消耗验证 </summary>
        private bool CheckMoney(tg_user user, int count, TGGSession session)
        {
#if DEBUG
            XTrace.WriteLine("{0}玩家第{1}次刷新", session.Player.User.player_name, count);
#endif
            if (count == 0) //第一次刷新
            {
                var baserule = Variable.BASE_RULE.FirstOrDefault(q => q.id == "21002");
                if (baserule == null)
                {
                    return(false);
                }
                var costcoin = Convert.ToInt64(baserule.value);
#if DEBUG
                XTrace.WriteLine("{0}玩家第刷新前的铜币{1}", session.Player.User.player_name, session.Player.User.coin);
#endif
                if (user.coin < costcoin)
                {
                    return(false);
                }
                user.coin -= costcoin;
                user.Update();
                session.Player.User.coin = user.coin;
#if DEBUG
                XTrace.WriteLine("{0}玩家第刷新后的铜币{1}", session.Player.User.player_name, session.Player.User.coin);
#endif
                (new Share.User()).REWARDS_API((int)GoodsType.TYPE_COIN, session.Player.User);
                return(true);
            }
            if (count != 1)
            {
                return(false);
            }
#if DEBUG
            XTrace.WriteLine("{0}玩家第刷新前的金币{1}", session.Player.User.player_name, session.Player.User.gold);
#endif
            //第二次刷新
            var baserule1 = Variable.BASE_RULE.FirstOrDefault(q => q.id == "21003");
            if (baserule1 == null)
            {
                return(false);
            }
            int costgold = Convert.ToInt32(baserule1.value);
            if (user.gold < costgold)
            {
                return(false);
            }
            user.gold -= costgold;
            user.Update();
            session.Player.User.gold = user.gold;
#if DEBUG
            XTrace.WriteLine("{0}玩家第刷新后的金币{1}", session.Player.User.player_name, session.Player.User.gold);
#endif
            log.GoldInsertLog(costgold, user.id, (int)ModuleNumber.APPRAISE, (int)AppraiseCommand.TASK_BUY);  //金币消费记录
            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_GOLD, session.Player.User);
            return(true);
        }
Exemplo n.º 2
0
        /// <summary> 金钱消耗验证 </summary>
        private bool CheckMoney(tg_user user, int costgold)
        {
#if DEBUG
            XTrace.WriteLine("{0}玩家越狱前的金币{1}", user.player_name, user.gold);
#endif
            var leftgold = user.gold - costgold;
            var userid   = user.id;
            if (leftgold < 0)
            {
                return(false);
            }
            user.gold = Convert.ToInt32(leftgold);
            user.Update();
            if (!Variable.OnlinePlayer.ContainsKey(userid))
            {
                return(false);
            }
            var session = Variable.OnlinePlayer[userid] as TGGSession;
            if (session == null)
            {
                return(false);
            }
            session.Player.User = user;
#if DEBUG
            XTrace.WriteLine("{0}玩家越狱后的金币{1}", session.Player.User.player_name, session.Player.User.gold);
#endif
            log.GoldInsertLog(costgold, user.id, (int)ModuleNumber.PRISON, (int)PrisonCommand.BREAK);//金钱消耗记录
            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_GOLD, session.Player.User);
            return(true);
        }
Exemplo n.º 3
0
        /// <summary> 金钱消耗验证 </summary>
        private bool CheckMoney(tg_user user, TGGSession session)
        {
            var baserule = Variable.BASE_RULE.FirstOrDefault(q => q.id == "25005");

            if (baserule == null)
            {
                return(false);
            }
            var costcoin = Convert.ToInt64(baserule.value);

#if DEBUG
            XTrace.WriteLine("{0}玩家留言前的铜币{1}", session.Player.User.player_name, session.Player.User.coin);
#endif
            var leftcoin = user.coin - costcoin;
            if (leftcoin < 0)
            {
                return(false);
            }
            user.coin = leftcoin;
            user.Update();
            session.Player.User = user;
#if DEBUG
            XTrace.WriteLine("{0}玩家留言后的铜币{1}", session.Player.User.player_name, session.Player.User.coin);
#endif
            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_COIN, session.Player.User);
            return(true);
        }
Exemplo n.º 4
0
        /// <summary>处理喝茶信息</summary>
        private ASObject TeaInfo(int nspirit, tg_user user, int spirit)
        {
            var session = Variable.OnlinePlayer[user.id] as TGGSession;

            if (session == null)
            {
                return(Error((int)ResultType.BASE_PLAYER_OFFLINE_ERROR));
            }

            var uspirit = user.spirit;

            user.spirit = tg_user.IsSpiritMax(user.spirit, spirit);     //玩家喝茶获得的魂
            user.Update();
            session.Player.User = user;

            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_SPIRIT, user);             //推送魂更新
            (new Share.Title()).IsTitleAcquire(user.id, (int)TitleGetType.USE_TEA_TABLE); //判断称号信息

            //记录获得魂日志
            var logdata = string.Format("{0}_{1}_{2}_{3}", "S", uspirit, spirit, user.spirit);

            (new Share.Log()).WriteLog(user.id, (int)LogType.Get, (int)ModuleNumber.ROLETRAIN, (int)RoleTrainCommand.TRAIN_TEA_INSIGHT, logdata);

            return(new ASObject(TeaBulidData((int)ResultType.SUCCESS, spirit, nspirit)));
        }
Exemplo n.º 5
0
        /// <summary>
        /// 验证金钱
        /// </summary>
        /// <param name="user">用户实体</param>
        /// <param name="session"></param>
        /// <returns></returns>
        private bool CheckCoin(tg_user user, TGGSession session)
        {
            var baseinfo = Variable.BASE_RULE.FirstOrDefault(q => q.id == "32119");

            if (baseinfo == null)
            {
                return(false);
            }
            //消耗的金钱
            var cost = Convert.ToInt32(baseinfo.value);

            if (user.coin < cost)
            {
                return(false);
            }

            var coin = user.coin;

            user.coin -= cost;
            user.Update();
            session.Player.User.coin = user.coin;
            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_COIN, user);

            //日志
            var logdata = string.Format("{0}_{1}_{2}_{3}", "Coin", coin, cost, user.coin);

            (new Share.Log()).WriteLog(user.id, (int)LogType.Use, (int)ModuleNumber.WAR, (int)WarCommand.WAR_DEFENCE_PLAN_OPEN, "合战", "解锁防守方案", "金钱", (int)GoodsType.TYPE_COIN, cost, user.coin, logdata);
            return(true);
        }
Exemplo n.º 6
0
        /// <summary> 获取奖励 </summary>
        /// <param name="user"></param>
        /// <param name="str"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        private tg_user GetReward(tg_user user, string str, ref List <RewardVo> list)
        {
            var coin = 0;
            var ids  = new List <int>();

            foreach (var item in str.Split('|'))
            {
                var array = item.Split('_');
                if (array.Length != 2)
                {
                    continue;
                }
                var values = Convert.ToInt32(array[1]);
                switch (Convert.ToInt32(array[0]))
                {
                case 1:
                {
                    const int type = (int)GoodsType.TYPE_MERIT;
                    ids.Add(type);
                    user.merit += values;
                    list.Add(new RewardVo {
                            goodsType = type, value = values
                        });
                    break;
                }        //1:战功值_数量

                case 2:
                {
                    const int type = (int)GoodsType.TYPE_COIN;
                    coin     += values;
                    user.coin = tg_user.IsCoinMax(user.coin, values);
                    ids.Add(type);
                    list.Add(new RewardVo {
                            goodsType = type, value = values
                        });
                    break;
                }        //2:个人战游戏币_数量

                default: { break; }
                }
            }

            if (!ids.Any())
            {
                return(user);
            }
            user.Update();
            (new User()).REWARDS_API(ids, user);

            if (coin == 0)
            {
                return(user);
            }
            var logdata = string.Format("{0}_{1}_{2}_{3}", "Coin", coin, coin, user.coin);

            (new Log()).WriteLog(user.id, (int)LogType.Get, (int)ModuleNumber.WAR, (int)WarCommand.WAR_COPY_ATTACK, "用户", "", "金钱", (int)GoodsType.TYPE_COIN, coin, user.coin, logdata);
            return(user);
        }
Exemplo n.º 7
0
        /// <summary> 金钱消耗验证 </summary>
        private bool CheckMoney(tg_user user, int count, TGGSession session)
        {
            var identify = session.Player.Role.Kind.role_identity;
            var baserule = Variable.BASE_IDENTITY.FirstOrDefault(q => q.id == identify);

            if (baserule == null)
            {
                return(false);
            }
            if (count == 0) //第一次刷新
            {
                var costcoin = baserule.coin;
                if (user.coin < baserule.coin)
                {
                    return(false);
                }
                user.coin -= costcoin;
                user.Update();
                session.Player.User.coin = user.coin;
                (new Share.User()).REWARDS_API((int)GoodsType.TYPE_COIN, session.Player.User);
                return(true);
            }
            if (count != 1)
            {
                return(false);
            }
            var costgold = baserule.gold;

            if (user.gold < costgold)
            {
                return(false);
            }
            var gold = user.gold;

            user.gold -= costgold;
            user.Update();
            session.Player.User.gold = user.gold;
            log.GoldInsertLog(costgold, user.id, (int)ModuleNumber.TASK, (int)TaskCommand.TASK_VOCATION_REFRESH);//金币消费记录
            var logdata = "Gold_" + gold + "_" + costgold + "_" + user.gold;

            (new Share.Log()).WriteLog(user.id, (int)LogType.Use, (int)ModuleNumber.TASK, (int)TaskCommand.TASK_VOCATION_BUY, "任务", "职业任务购买", "元宝", (int)GoodsType.TYPE_GOLD, costgold, Convert.ToInt64(user.gold), logdata);

            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_GOLD, session.Player.User);
            return(true);
        }
Exemplo n.º 8
0
 /// <summary>验证分数结果</summary>
 private bool CheckResult(tg_user user, int passaward, ref tg_duplicate_checkpoint checkpoint)
 {
     if (checkpoint.user_blood == 0 || checkpoint.npc_blood == 0)
     {
         if (checkpoint.user_blood == 0)
         {
             checkpoint.state = (int)DuplicateClearanceType.CLEARANCE_FAIL;
             return(false);
         }
         checkpoint.state = (int)DuplicateClearanceType.CLEARANCE_SUCCESS;
         var _fame = user.fame;
         user.fame = tg_user.IsFameMax(user.fame, passaward);
         user.Update();
         Common.GetInstance().RewardsToUser(user, (int)GoodsType.TYPE_FAME);
         Common.GetInstance().LogOperate(user.id, _fame, passaward, user.fame, (int)DuplicateCommand.TOWER_CHECKPOINT_ELOQUENCE_GAME);
         return(false);
     }
     return(true);
 }
Exemplo n.º 9
0
        /// <summary>金钱处理 </summary>
        private bool CheckCoin(tg_user user, int count, TGGSession session)
        {
            var baseinfo = Variable.BASE_RULE.FirstOrDefault(q => q.id == "2007");

            if (baseinfo == null)
            {
                return(false);
            }
            var cost = Convert.ToInt32(baseinfo.value) * count;

            if (user.coin < cost)
            {
                return(false);
            }
            user.coin -= cost;
            user.Update();
            session.Player.User = user;
            (new Share.User()).REWARDS_API((int)GoodsType.TYPE_COIN, session.Player.User);
            return(true);
        }
Exemplo n.º 10
0
        /// <summary>挑战胜利计算奖励</summary>
        private bool FameReward(tg_user user, int npcid, int fightresult, int type)
        {
            var fame = user.fame;

            if (fightresult == (int)DuplicateClearanceType.CLEARANCE_SUCCESS)
            {
                if (type == (int)DuplicateTargetType.MONSTER)
                {
                    var towerenemy = Variable.BASE_TOWERENEMY.FirstOrDefault(m => m.id == npcid);
                    if (towerenemy == null)
                    {
                        return(false);
                    }
                    user.fame = tg_user.IsFameMax(user.fame, towerenemy.award);
                    user.Update();
                    Common.GetInstance().RewardsToUser(user, (int)GoodsType.TYPE_FAME);

                    //日志
                    Common.GetInstance().LogOperate(user.id, fame, towerenemy.award, user.fame, (int)DuplicateCommand.TOWER_CHECKPOINT_DARE);
                }
            }
            return(true);
        }
Exemplo n.º 11
0
        /// <summary>
        /// 验证资源
        /// </summary>
        /// <param name="baseinfo"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        private int CheckResourse(BaseWarDefenseFront baseinfo, tg_user user)
        {
            if (baseinfo == null)
            {
                return((int)ResultType.BASE_TABLE_ERROR);
            }
            var coststring = baseinfo.money;
            var split      = coststring.Split("|").ToList();

            for (int i = 0; i < split.Count; i++)
            {
                var splitstring = split[i].Split("_").ToList();
                if (splitstring.Count != 2)
                {
                    return((int)ResultType.BASE_TABLE_ERROR);
                }
                var type      = splitstring[0];
                var costvalue = Convert.ToInt32(splitstring[1]);
                switch (type)
                {
                case "2":
                {
                    var coin = user.coin;
                    if (user.coin < costvalue)
                    {
                        return((int)ResultType.BASE_PLAYER_COIN_ERROR);
                    }
                    user.coin -= costvalue;


                    //日志
                    var logdata = string.Format("{0}_{1}_{2}_{3}", "Coin", coin, costvalue, user.coin);
                    (new Share.Log()).WriteLog(user.id, (int)LogType.Use, (int)ModuleNumber.WAR, (int)WarCommand.WAR_ARMY_SOLDIER_OPEN, "合战", "解锁阵", "金钱", (int)GoodsType.TYPE_COIN, costvalue, user.coin, logdata);
                }
                break;

                case "1":
                {
                    var merit = user.merit;
                    if (user.merit < costvalue)
                    {
                        return((int)ResultType.WAR_MERIT_ERROR);
                    }
                    user.merit -= costvalue;


                    //日志
                    var logdata = string.Format("{0}_{1}_{2}_{3}", "Merit", merit, costvalue, user.merit);
                    (new Share.Log()).WriteLog(user.id, (int)LogType.Use, (int)ModuleNumber.WAR, (int)WarCommand.WAR_DEFENCE_FORMATION, "合战", "解锁阵", "战功值", (int)GoodsType.TYPE_MERIT, costvalue, user.merit, logdata);
                }
                break;
                }
            }
            user.Update();
            var rewardlist = new List <RewardVo>
            {
                new RewardVo()
                {
                    goodsType = (int)GoodsType.TYPE_COIN, value = user.coin
                },
                new RewardVo()
                {
                    goodsType = (int)GoodsType.TYPE_MERIT, value = user.merit
                }
            };

            (new Share.User()).REWARDS_API(user.id, rewardlist);
            return((int)ResultType.SUCCESS);
        }