/// <summary>筹措资金任务步骤数据</summary> /// <param name="voc">职业</param> /// <param name="ide">身份</param> public string GetRaiseCoin(int ide) { //类型_资金总数量_当前资金数量 //获取当前身份筹措金钱区间 var r = Variable.BASE_IDENTITY.FirstOrDefault(m => m.id == ide); if (r == null || string.IsNullOrEmpty(r.raiseCoin)) { return(string.Empty); } var temp = r.raiseCoin; if (temp.IsNullOrEmpty() || !temp.Contains("-")) { return(string.Format("{0}_{1}_{2}", (int)TaskStepType.RAISE_COIN, 100000, 0)); } var s = temp.Split('-').Select(m => Convert.ToInt32(m)).ToList(); var min = s[0]; var max = s[1]; //随机生成筹措资金 var num = RNG.Next(min, max) * 1000; //金钱单位(文) var step_data = new TaskStepItem { step_type = (int)TaskStepType.RAISE_COIN, total = num, count = 0, }; return(step_data.GetRaiseStepData()); }
/// <summary>数据解析</summary> public TaskStepItem Ananalyze(string data) { if (string.IsNullOrEmpty(data)) { return(null); } var step_item = new TaskStepItem(); var temp = data.Split('_'); var t = temp.Length; switch (t) { #region 筹措资金 case 3: { //类型_资金总数量_当前资金数量 step_item.step_type = Convert.ToInt32(temp[0]); step_item.total = Convert.ToInt32(temp[1]); step_item.count = Convert.ToInt32(temp[2]); break; } #endregion #region 买卖型任务 case 6: { //任务类型_货物町_货物出售城市_货物编号_完成数量_当前数量 step_item.step_type = Convert.ToInt32(temp[0]); step_item.inting = Convert.ToInt32(temp[1]); step_item.ting = Convert.ToInt32(temp[2]); step_item.goods = Convert.ToInt32(temp[3]); step_item.total = Convert.ToInt32(temp[4]); step_item.count = Convert.ToInt32(temp[5]); break; } #endregion } return(step_item); }
/// <summary>货物跑商步骤数据(买卖类型任务--(商人))</summary> /// <param name="areas">玩家当前商圈集合</param> /// <returns>任务类型_货物出售城市_货物编号_完成数量_当前数量</returns> private string GetBusinessStepTask(Int64 user_id) { List <tg_user_area> areas = tg_user_area.GetEntityByUserId(user_id).ToList(); if (!areas.Any()) { areas = InitArea(user_id); } //根据商圈获取一个任务目的地町 var ba = areas.Select(m => m.area_id); var tings = Variable.BASE_TING.Where(m => ba.Contains(m.areaId)).ToList(); //随机一个自己商圈的町 var index = RNG.Next(0, tings.Count() - 1); var ting = tings[index]; var list_all = new List <int>(); foreach (var item in tings) { var l = SplitGoods(item.goods).Where(m => !list_all.Contains(m)).ToList(); list_all.AddRange(l); } var target = SplitGoods(ting.goods); var list_random = list_all.Except(target).ToList(); //随机一个自己商圈的非目的地町的货物 index = RNG.Next(0, list_random.Count() - 1); var goods = list_random[index]; //获取货物所在町 var inting = (from item in tings where item.goods.Contains(goods.ToString()) select item.id).FirstOrDefault(); //随机货物数量 var r_n = Variable.BASE_RULE.FirstOrDefault(m => m.id == "2001"); if (r_n == null) { return(null); } var t = r_n.value.Split('-').Select(m => Convert.ToInt32(m)).ToList(); var min = t[0]; var max = t[1]; var num = RNG.Next(min, max); var step_data = new TaskStepItem { step_type = (int)TaskStepType.BUSINESS, inting = inting, ting = ting.id, goods = goods, total = num, count = 0, }; return(step_data.GetBusinessStepData()); }