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)); }
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)); }