public void MainTaskUpdate(TaskStepType type, Int64 userid) { if (!Variable.OnlinePlayer.ContainsKey(userid)) { return; } var session = Variable.OnlinePlayer[userid] as TGGSession; if (session == null) { return; } var taskinfo = session.MainTask.CloneEntity(); if (taskinfo == null) { return; } if (!taskinfo.task_step_data.StartsWith(string.Format("{0}_", (int)type))) { return; } taskinfo.task_state = (int)TaskStateType.TYPE_REWARD; taskinfo.Update(); session.MainTask = taskinfo; var dic = new Dictionary <string, object>() { { "0", EntityToVo.ToTaskVo(taskinfo) } }; var pv = session.InitProtocol((int)ModuleNumber.TASK, (int)TaskCommand.TASK_PUSH, (int)ResponseType.TYPE_SUCCESS, new ASObject(dic)); session.SendData(pv); }
/// <summary> /// 组装武将Vo信息 /// </summary> /// <param name="rid">武将主键id</param> public RoleInfoVo BuildRole(Int64 rid) { var role = view_role.GetFindRoleById(rid); //查询武将视图信息 if (role == null) { return(null); } var trainrole = tg_train_role.GetEntityByRid(rid); //查询武将修行信息 var equips = GetEquips(role.Kind); //整理装备集合 称号集合 var titles = GetTitles(role.Kind); var fight = tg_role_fight_skill.GetRoleSkillByRid(rid); var fightskillvos = ConvertFight(fight); //战斗技能Vo 生活技能Vo集合 var lifeskillvos = LifeSkill(role); var war = tg_role_war_skill.GetEntityListByRid(rid); var warskillvos = new Skill().ConvertHeZhanSkillVos(war); //开启可学技能流派 var genres = LearnGenreOrNinja(fight, role.Kind.role_genre, role.Kind.role_ninja);; var trainvo = EntityToVo.ToTrainVo(trainrole); var rolevo = EntityToVo.ToRoleVo(role.Kind, equips, fightskillvos, lifeskillvos, warskillvos, genres, trainvo, titles); //返回前端武将Vo信息 return(rolevo); }
/// <summary>仓库物品信息集合</summary> private List <ASObject> TolistRoles(IEnumerable <view_war_role> depots) { var war_role = new List <ASObject>(); war_role.AddRange(depots.Select(item => AMFConvert.ToASObject(EntityToVo.ToViewWarRoleVo(item)))); return(war_role); }
/// <summary>下一关卡信息</summary> public TowerPassVo TowerPassMessage(int count, ref tg_duplicate_checkpoint checkpoint) { var site = checkpoint.site; var towerpass = Variable.BASE_TOWERPASS.FirstOrDefault(m => m.pass == site); if (towerpass == null) { return(null); } var nextpass = Variable.BASE_TOWERPASS.FirstOrDefault(m => m.id == towerpass.nextId); if (nextpass == null) { return(null); } var towervo = new TowerPassVo(); if (nextpass.enemyType == (int)DuplicateEnemyType.SMALL_GAME) { checkpoint.site = nextpass.pass; towervo = EntityToVo.ToTowerPassVo(checkpoint, nextpass.enemyType, nextpass.enemyId, count, null); } else { var npcid = RefreshNpc(nextpass.pass); checkpoint.npcids = npcid; checkpoint.site = nextpass.pass; var npclist = GetNpcList(checkpoint); towervo = EntityToVo.ToTowerPassVo(checkpoint, nextpass.enemyType, Convert.ToInt32(npcid), count, npclist); } return(towervo); }
/// <summary>跑商进入指令</summary> public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}", "BUSINESS_JOIN", "跑商进入指令"); #endif try { var listvo = new List <BusinessCarVo>(); var businesslist = new List <ASObject>(); var player = session.Player.User.CloneEntity(); var list_car = tg_car.GetEntityByUserId(player.id); if (list_car.Count <= 0) { return(new ASObject(BuildData((int)ResultType.BUSINESS_CAR_LACK, businesslist))); } var goods = tg_goods_business.GetEntity(list_car); //.ToList().Where(m => ids.IndexOf(m.cid) >= 0).ToList(); foreach (var item in list_car) //遍历马车 { var gd = goods.Where(m => m.cid == item.id).ToList(); //该马车的货物 listvo.Add(EntityToVo.ToBusinessCarVo(item, Common.GetInstance().ConverBusinessGoodsVos(gd))); } businesslist = ConvertListASObject(listvo); return(new ASObject(BuildData((int)ResultType.SUCCESS, businesslist))); } catch (Exception ex) { XTrace.WriteException(ex); return(new ASObject()); } }
/// <summary> 评定结束</summary> public void CommandStart(tg_task task) { #if DEBUG XTrace.WriteLine("任务{0}评定结束{1}--{2}", task.id, task.user_id, "PUSH_TASK_END"); #endif Common.GetInstance().AppraiseEnd(task); if (Variable.OnlinePlayer.ContainsKey(task.user_id)) { var session = Variable.OnlinePlayer[task.user_id] as TGGSession; if (session == null) { return; } #if DEBUG XTrace.WriteLine("玩家{0}在线,向前端推送任务结束{0}", task.id); #endif var dic = new Dictionary <string, object>() { { "task", EntityToVo.ToRoleVo(task) } }; var aso = new ASObject(dic); var pv = session.InitProtocol((int)ModuleNumber.APPRAISE, (int)AppraiseCommand.PUSH_TASK_END, (int)ResponseType.TYPE_SUCCESS, aso); session.SendData(pv); } }
/// <summary>家族列表集合</summary> public List <ASObject> ConvertListASObject(Int64 userid, List <tg_family> familylist, List <view_user_role_family_member> chiefmember) { var list_aso = new List <ASObject>(); var list = tg_family_apply.GetEntityByUserId(userid); if (list.Count > 0) { foreach (var item in familylist) { var apply = list.FirstOrDefault(m => m.fid == item.id); var chief = chiefmember.FirstOrDefault(m => m.userid == item.userid); if (apply != null) { var model = EntityToVo.ToFamilyListVo(item, apply.state, chief.player_name); list_aso.Add(AMFConvert.ToASObject(model)); } else { var model = EntityToVo.ToFamilyListVo(item, 0, chief.player_name); list_aso.Add(AMFConvert.ToASObject(model)); } } } else { foreach (var item in familylist) { var chief = chiefmember.FirstOrDefault(m => m.userid == item.userid); var model = EntityToVo.ToFamilyListVo(item, 0, chief.player_name); list_aso.Add(AMFConvert.ToASObject(model)); } } return(list_aso); }
/// <summary> /// 组装奖励数据 /// </summary> private List <RewardVo> BuildReward(List <tg_bag> props) { var reward = new List <RewardVo>(); var listequip = props.FindAll(q => q.type == (int)GoodsType.TYPE_EQUIP).ToList(); var listprops = props.FindAll(q => q.type == (int)GoodsType.TYPE_PROP).ToList(); if (listequip.Any()) { var listaso = listequip.Select(item => AMFConvert.ToASObject(EntityToVo.ToEquipVo(item))).ToList(); reward.Add(new RewardVo { goodsType = (int)GoodsType.TYPE_EQUIP, increases = listaso, }); } if (!listprops.Any()) { return(reward); } var listaso1 = listprops.Select(item => AMFConvert.ToASObject(EntityToVo.ToPropVo(item))).ToList(); reward.Add(new RewardVo { goodsType = (int)GoodsType.TYPE_PROP, increases = listaso1, }); return(reward); }
/// <summary> 判定先后手 </summary> /// <param name="oneself">己方</param> /// <param name="rival">敌方</param> private void FirstAfter(PlayMatrix oneself, PlayMatrix rival) { switch (RivalFightType) { case (int)FightType.SIEGE: case (int)FightType.BUILDING: { GiveFirstAfter(oneself, true); //活动始终玩家先手 GiveFirstAfter(rival, false); FirstUserId = oneself.user_id; break; } default: { var attack = GetAattackAndGiveAllRoles(oneself); var rivalAttack = GetAattackAndGiveAllRoles(rival); if (attack >= rivalAttack) { GiveFirstAfter(oneself, true); //攻击值验证 判定先后手 GiveFirstAfter(rival, false); FirstUserId = oneself.user_id; } else { GiveFirstAfter(oneself, false); //攻击值验证 判定先后手 GiveFirstAfter(rival, true); FirstUserId = rival.user_id; } break; } } FirstYinVo = oneself.yin == null ? null : EntityToVo.ToFightYinVo(oneself.yin); AfterYinVo = rival.yin == null ? null : EntityToVo.ToFightYinVo(rival.yin); }
/// <summary>还有挑战次数,返回当前层</summary> /// <param name="count">翻将次数</param> /// <param name="towerpass">当前层基表数据</param> /// <param name="checkpoint">爬塔实体</param> /// <returns></returns> private ASObject GetChalleng(int count, BaseTowerPass towerpass, tg_duplicate_checkpoint checkpoint) { var aso = new ASObject(); var towervo = new TowerPassVo(); if (towerpass.enemyType == (int)DuplicateEnemyType.FIGHTING) { var npcid = Common.GetInstance().GetNpcId(checkpoint); var npclist = Common.GetInstance().GetNpcList(checkpoint); towervo = EntityToVo.ToTowerPassVo(checkpoint, towerpass.enemyType, npcid, count, npclist); if (Common.GetInstance().CheckWatchmenRight(towerpass.watchmen, checkpoint)) { var tower = tg_duplicate_checkpoint.GetEntityByTowerSite(checkpoint.site); var wahtchmen = tg_user.GetUsersById(tower.user_id); if (wahtchmen != null) { var uservo = Common.GetInstance().ConvertUser(wahtchmen); aso = BulidData((int)ResultType.SUCCESS, uservo, towervo, (int)FightResultType.LOSE, checkpoint.blood, checkpoint.dekaron); return(aso); } } } else { towervo = EntityToVo.ToTowerPassVo(checkpoint, towerpass.enemyType, towerpass.enemyId, count, null); } aso = BulidData((int)ResultType.SUCCESS, null, towervo, (int)FightResultType.LOSE, checkpoint.blood, (int)DuplicateRightType.NORIGHT); Common.GetInstance().CheckpointUpdate(checkpoint); return(aso); }
/// <summary>仓库物品信息集合</summary> private List <ASObject> ToWarGoods(IEnumerable <GlobalWarGoods> list) { var war_goods = new List <ASObject>(); war_goods.AddRange(list.Select(item => AMFConvert.ToASObject(EntityToVo.ToWarGoodsVo(item)))); return(war_goods); }
/// <summary>获取场景内其他玩家数据 并将当前玩家数据推送给其他玩家</summary> private List <ScenePlayerVo> GetOtherPlayerPush(SiegePlayer model, view_scene_user scene) { var otherplays = new List <ScenePlayerVo>(); var otherplayer = Variable.Activity.ScenePlayer.Where(m => m.Value.model_number == (int)ModuleNumber.SIEGE && m.Key != Common.GetInstance().GetKey(model.user_id)).ToList(); if (!otherplayer.Any()) { return(otherplays); } var aso = new ASObject(BuildData(EntityToVo.ToScenePlayerVo(scene))); foreach (var item in otherplayer) { otherplays.Add(EntityToVo.ToScenePlayerVo(item.Value)); var token = new CancellationTokenSource(); Task.Factory.StartNew( m => { var userid = Convert.ToInt64(m); if (!Variable.OnlinePlayer.ContainsKey(userid)) { return; } var session = Variable.OnlinePlayer[userid]; Common.GetInstance().TrainingSiegeEndSend(session, aso, (int)SiegeCommand.PUSH_PLAYER_ENTER); }, item.Value.user_id, token.Token); } return(otherplays); }
/// <summary> 拒绝同盟 </summary> /// <param name="temp">盟友信息</param> /// <returns></returns> private ASObject Refuse(tg_war_partner temp, double count) { var istrue = tg_war_partner.GetPartnerExist(temp.user_id, temp.partner_id); //验证对方是否有数据 if (istrue) { temp.state = (int)WarPertnerType.DIPLOMACY_IN; //标记处理过 temp.request_end_time = 0; if (temp.Update() > 0) { var wp = view_war_partner.GetEntityById(temp.id); var d = EntityToVo.ToDiplomacyVo(wp, count); return(BulidData(d, 1)); } } else { var wp = view_war_partner.GetEntityById(temp.id); var d = EntityToVo.ToDiplomacyVo(wp, count); if (temp.Delete() > 0) { return(BulidData(d, 0)); } } return(CommonHelper.ErrorResult(ResultType.DATABASE_ERROR)); }
/// <summary> 推送据点信息给盟友 </summary> /// <param name="userid">自己的用户Id</param> /// <param name="puid">盟友的用户Id</param> /// <param name="time">同盟结束时间</param> private void SendPartnerCitys(Int64 userid, Int64 puid, Int64 time) { if (!Variable.WarInUser.ContainsKey(puid)) { return; } var mn = Variable.WarInUser[puid]; //取到地图模块号 var session = Variable.OnlinePlayer[puid]; var list = view_war_city.GetEntityByMoudleNumber(userid, mn); //获取自己在该模块的据点集合 if (!list.Any()) { return; } var vos = new List <WarCityVo>(); int state = (int)WarCityCampType.PARTNER; int ow = (int)WarCityOwnershipType.PLAYER; foreach (var item in list) { var temp = EntityToVo.ToWarCityVo(item, state, ow, time); vos.Add(temp); } var data = (new Share.War()).BulidData(vos); var pv = session.InitProtocol((int)ModuleNumber.WAR, (int)WarCommand.PUSH_CITY, (int)ResponseType.TYPE_SUCCESS, data); session.SendData(pv); }
/// <summary>挑战结果处理</summary> private ASObject ChallengeResult(TGGSession session, string bprop, string bcount, FightVo fight, int cost) { var reward = new List <RewardVo>(); var isprop = false; var userid = session.Player.User.id; if (fight.isWin) //挑战胜利 { var mainrole = session.Player.Role.Kind.CloneEntity(); new Share.Role().PowerUpdateAndSend(mainrole, cost, userid); //推送体力消耗 var prop = WinReward(userid, bprop, bcount); isprop = prop != null; if (prop != null) { Variable.TempProp.AddOrUpdate(userid, new List <tg_bag> { prop }, (m, n) => n); var listaso = new List <ASObject> { AMFConvert.ToASObject(EntityToVo.ToPropVo(prop)) }; reward.Add(new RewardVo { goodsType = (int)GoodsType.TYPE_PROP, increases = listaso, }); } } FightSend(fight, isprop, reward, userid); //发送战斗协议 return(Result((int)ResultType.SUCCESS)); }
/// <summary>跳过完成大名令任务</summary> private bool FinishDml() { if (!CommonHelper.IsOpen(Session.Player.Role.Kind.role_level, (int)OpenModelType.大名令)) { return(false); } var maintask = Session.MainTask; if (maintask.task_id != 2010200) { return(false); } var dml = Session.Player.DamingLog; if (!dml.Any()) { return(false); } var bigbag = dml.LastOrDefault(); if (bigbag != null && bigbag.is_finish == 1) { return(false); //大名令已经完成指令无效 } foreach (var item in dml) { var bdml = Variable.BASE_DAMING.FirstOrDefault(m => m.id == item.base_id); if (bdml == null) { continue; } switch (item.base_id) { case (int)DaMingType.猎魂: item.is_finish = 0; item.is_reward = 0; item.user_finish = bdml.degree - 1; break; //第一条任务 case (int)DaMingType.大礼包: var finisn = Variable.BASE_DAMING.Count; item.user_finish = finisn - 2; //大礼包完成度 item.is_reward = 0; item.is_finish = 0; break; default: item.user_finish = bdml.degree; item.is_finish = 1; item.is_reward = 2; break; } item.Update(); //推送协议 大名指引任务 var _data = new ASObject(BulidData(EntityToVo.ToDaMingLingVo(item))); (new DaMing()).Push(item.user_id, _data); } return(true); }
/// <summary> 组装数据 </summary> private Dictionary <String, Object> BulidData(tg_task task) { return(new Dictionary <string, object> { { "result", (int)ResultType.SUCCESS }, { "workVo", EntityToVo.ToVocationTaskVo(task) }, }); }
/// <summary>组装武将vo信息</summary> private RoleInfoVo ConvertToVo(RoleItem role) { var equip = (new Share.Role()).GetEquips(role.Kind); //获取武将装备集合 var fightskillvo = (new Share.Role()).ConvertFight(role.FightSkill); var rolevo = EntityToVo.ToRoleVo(role.Kind, equip, fightskillvo, null, null, null, null); return(rolevo); }
/// <summary>组装数据</summary> private ASObject BuildData(tg_family_log log, string name) { var dic = new Dictionary <string, object> { { "log", EntityToVo.ToFamilyLogVo(log, name) } }; return(new ASObject(dic)); }
/// <summary> /// 组装数据 /// </summary> /// <param name="result"></param> /// <param name="task"></param> /// <returns></returns> private ASObject BuildData(int result, tg_task task) { return(new ASObject(new Dictionary <string, object>() { { "result", result }, { "workVo", task == null?null:EntityToVo.ToVocationTaskVo(task) } })); }
/// <summary>组装数据</summary> public Dictionary <String, Object> BuildLoadData(int result, tg_role_title title) { var dic = new Dictionary <string, object> { { "result", result }, { "title", title == null ? null : EntityToVo.ToTitleVo(title) } }; return(dic); }
private Dictionary <String, Object> BulidData(int result, tg_task newtask) { return(new Dictionary <string, object> { { "result", result }, { "workVo", newtask == null ? null : EntityToVo.ToVocationTaskVo(newtask) } }); }
//private static WAR_CITY_LOOK _objInstance; ///// <summary>WAR_CITY_LOOK单体模式</summary> //public static WAR_CITY_LOOK GetInstance() //{ // return _objInstance ?? (_objInstance = new WAR_CITY_LOOK()); //} /// <summary> 据点一览 </summary> public ASObject CommandStart(TGGSession session, ASObject data) { var userid = session.Player.User.id; var time = session.Player.UserExtend.war_base_time; var list = Variable.WarCityAll.Values.Where(m => m.user_id == userid);//tg_war_city.GetEntityByUserId(userid); var ls = list.Select(item => EntityToVo.ToStrongHoldShowVo(item, time)).ToList(); return(Common.GetInstance().BuildData(ls)); }
/// <summary>日志</summary> public ASObject CommandStart(TGGSession session, ASObject data) { try { # if DEBUG XTrace.WriteLine("{0}:{1}", "FAMILY_LOG", "日志"); #endif var list_flvo = new List <FamilyLogVo>(); var userlist = new List <tg_user>(); var fluser = new List <tg_family_log>(); var member = session.Player.Family; if (member.fid == 0) { return(new ASObject(Common.GetInstance().BuilDataLog((int)ResultType.NO_DATA, list_flvo))); } var loglist = tg_family_log.GetEntityByFid(member.fid); if (!loglist.Any()) { return(new ASObject(Common.GetInstance().BuilDataLog((int)ResultType.NO_DATA, list_flvo))); } var list = loglist.OrderByDescending(m => m.time).ToList(); //最近时间的前10条 var list10 = list.Select(m => m).ToList().Take(10); foreach (var item in list10) { if (item.userid > 0) { fluser.Add(item); } else { list_flvo.Add(EntityToVo.ToFamilyLogVo(item, "")); } } if (fluser.Count > 0) { if (fluser.Count == 1) { var userid = fluser[0].userid; userlist.Add(tg_user.GetUsersById(userid)); } else { var userids = string.Join(",", loglist.ToList().Select(m => m.userid).ToArray()); userlist = tg_user.GetUsersByIds(userids); } } foreach (var fl in list10) { var userlog = userlist.FirstOrDefault(m => m.id == fl.userid); if (userlog != null) { list_flvo.Add(EntityToVo.ToFamilyLogVo(fl, userlog.player_name)); } } return(new ASObject(Common.GetInstance().BuilDataLog((int)ResultType.SUCCESS, list_flvo))); }
/// <summary>数据组装</summary> private Dictionary <String, Object> BuildData(int result, tg_fight_personal model, tg_fight_yin yin) { var dic = new Dictionary <string, object> { { "result", result }, { "matrix", model == null?null:EntityToVo.ToFightMatrixVo(model, yin) }, }; return(dic); }
/// <summary>数据组装</summary> private Dictionary <String, Object> BuildData(object result, view_scene_user sceneplayer) { var dic = new Dictionary <string, object> { { "result", result }, { "playerVo", sceneplayer != null?EntityToVo.ToScenePlayerVo(sceneplayer) : null } }; return(dic); }
/// <summary>转换为ListAsObject</summary> public List <ASObject> ListAsObject(List <tg_role_title> listtitles) { if (!listtitles.Any()) { return(null); } var list = listtitles.Select(item => AMFConvert.ToASObject(EntityToVo.ToTitleVo(item))).ToList(); return(list); }
public Dictionary <String, Object> BuildData(int result, view_user_role_friend model) { var dic = new Dictionary <string, object> { { "result", result }, { "friend", AMFConvert.ToASObject(EntityToVo.ToFriendVo(model)) } }; return(dic); }
private Dictionary <String, Object> BuildData(int result, tg_role_recruit recruit) { var dic = new Dictionary <string, object> { { "result", result }, { "role", EntityToVo.ToRecruitVo(recruit) }, }; return(dic); }
public Dictionary <string, object> StartData(int result, tg_war_role role) { var dic = new Dictionary <string, object> { { "result", result }, { "skyCity", role == null ? null : EntityToVo.ToSkyCityVo(role) } }; return(dic); }