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