Пример #1
0
        public ASObject Execute(Int64 userid, ASObject data)
        {
            var session = Variable.OnlinePlayer[userid] as TGGSession;

            if (session == null)
            {
                return(CommonHelper.ErrorResult((int)ResultType.FAIL));
            }
#if DEBUG
            XTrace.WriteLine("{0}家臣任务购买--{1}", session.Player.User.player_name, "TASK_BUY");
#endif
            var user       = session.Player.User.CloneEntity();
            var userextend = session.Player.UserExtend.CloneEntity();

            if (!CheckMoney(user, userextend.task_role_refresh, session)) //金钱验证
            {
                return(BuildData(userextend.task_role_refresh == 0 ? (int)ResultType.BASE_PLAYER_COIN_ERROR : (int)ResultType.BASE_PLAYER_GOLD_ERROR, null, 0));
            }
            var newtasks = new Share.TGTask().RandomTask(session.Player.User.id);
            if (!newtasks.Any())
            {
                return(BuildData((int)ResultType.APPRAISE_REFLASH_WRONG, null, 0));
            }
            var list = new EntityList <tg_task>();
            list.AddRange(newtasks);
            list.Insert();
#if DEBUG
            XTrace.WriteLine("购买的任务数{0}", newtasks.Count);
#endif
            //更新用户和用户扩展
            userextend.task_role_refresh++;
            userextend.Update();
            session.Player.UserExtend = userextend;
            return(BuildData((int)ResultType.SUCCESS, newtasks, 2 - userextend.task_role_refresh));
        }
Пример #2
0
        public ASObject Execute(Int64 userid, ASObject data)
        {
            var session = Variable.OnlinePlayer[userid] as TGGSession;

            if (session == null)
            {
                return(CommonHelper.ErrorResult((int)ResultType.FAIL));
            }
#if DEBUG
            XTrace.WriteLine("{0}职业任务购买--{1}", session.Player.User.player_name, "TASK_VOCATION_BUY");
#endif
            const int result = (int)ResultType.SUCCESS;

            var type = Convert.ToInt32(data.FirstOrDefault(q => q.Key == "type").Value);
            if (type != 1 && type != 2)
            {
                return(new Share.TGTask().BuildVoctionData((int)ResultType.FRONT_DATA_ERROR, null, 0));
            }
            var spe        = tg_task.GetSpecialVocTask(userid);
            var voc        = session.Player.User.player_vocation;
            var _identify  = session.Player.Role.Kind.role_identity;
            var user       = session.Player.User.CloneEntity();
            var userextend = session.Player.UserExtend.CloneEntity();
            var identify   = GetReflashIdentify(_identify, voc, type, userextend.task_vocation_isgo);
            if (type == 2)
            {
                if (userextend.task_vocation_isgo != 1)
                {
                    return(new Share.TGTask().BuildVoctionData((int)ResultType.TASK_VOCATION_ISRESET, null, 0));
                }
            }
            if (type == 1)
            {
                if (userextend.task_vocation_refresh < 0 || userextend.task_vocation_refresh > 1)
                {
                    return(new Share.TGTask().BuildVoctionData((int)ResultType.TASK_VOCATION_COUNTERROR, null, 0));
                }
            }
            if (!CheckIdentify(voc, identify))
            {
                return(new Share.TGTask().BuildVoctionData((int)ResultType.TASK_VOCATION_NONEW, null, 0));
            }
            ;                                                                                              //大名没有职业任务
            var newtasks = new Share.TGTask().GetNewVocationTasks(identify, userid, voc);
            if (!newtasks.Any())
            {
                return(new Share.TGTask().BuildVoctionData((int)ResultType.TASK_VOCATION_NOREFLASH, null, 0));
            }

            if (type == 1 && !CheckMoney(user, userextend.task_vocation_refresh, session))//金钱验证
            {
                return(new Share.TGTask().BuildVoctionData(userextend.task_vocation_refresh == 0 ? (int)ResultType.BASE_PLAYER_COIN_ERROR : (int)ResultType.BASE_PLAYER_GOLD_ERROR, null, 0));
            }
            tg_task.GetVocationTaskDel(userid, 0);
            tg_task.GetListInsert(newtasks);
            if (spe != null)
            {
                newtasks.AddRange(spe);
            }
            GetReflashUpdate(type, userextend, session);

            var count = (2 - userextend.task_vocation_refresh);
            return(new Share.TGTask().BuildVoctionData(result, newtasks, count));
        }