/// <summary>进入名塔</summary> public ASObject CommandStart(TGGSession session, ASObject data) { #if DEBUG XTrace.WriteLine("{0}:{1}", "TOWER_SHOT_ENTER", "进入名塔"); #endif var shot = tg_duplicate_shot.GetEntityByUserId(session.Player.User.id); if (shot == null) { shot = new tg_duplicate_shot { user_id = session.Player.User.id }; } else { shot.score_current = 0; shot.score_total = 0; } try { shot.Save(); } catch { return(new ASObject(Common.GetInstance().BuilData((int)ResultType.DATABASE_ERROR, session.Player.UserExtend.shot_count))); } return(new ASObject(Common.GetInstance().BuilData((int)ResultType.SUCCESS, session.Player.UserExtend.shot_count))); }
/// <summary>分数未达到结束通关</summary> private ASObject UnPass(TGGSession session, tg_duplicate_shot shot, int score) { var exchange = 0; if (shot != null) { exchange = shot.score_total + score; shot.score_current = 0; shot.score_total = 0; } else { exchange = score; shot = new tg_duplicate_shot { user_id = session.Player.User.id }; } try { var player = session.Player.CloneEntity(); var user = player.User; var extend = player.UserExtend; #if DEBUG XTrace.WriteLine("兑换前分数:{0}", exchange); #endif user.spirit = tg_user.IsSpiritMax(user.spirit, ConventSpirit(exchange)); #if DEBUG XTrace.WriteLine("兑换后魂:{0}", user.spirit); #endif if (extend.shot_count != 0) { extend.shot_count -= 1; } user.Save(); shot.Save(); extend.Save(); //资源兑换 session.Player.User = user; session.Player.UserExtend = extend; (new Share.User()).REWARDS_API((int)GoodsType.TYPE_SPIRIT, session.Player.User); (new Share.DaMing()).CheckDaMing(session.Player.User.id, (int)DaMingType.猎魂); return(new ASObject(Common.GetInstance().BuilData((int)ResultType.CHALLENGE_FAIL, session.Player.UserExtend.shot_count))); } catch { return(new ASObject(Common.GetInstance().BuilData((int)ResultType.DATABASE_ERROR, null))); } }
/// <summary>分数达到通关</summary> private ASObject Pass(TGGSession session, tg_duplicate_shot shot, int score) { if (shot != null) { shot.score_current = score; shot.score_total += score; } else { shot = new tg_duplicate_shot { user_id = session.Player.User.id, score_current = score }; shot.score_total += score; } try { shot.Save(); return(new ASObject(Common.GetInstance().BuilData((int)ResultType.SUCCESS, session.Player.UserExtend.shot_count))); } catch { return(new ASObject(Common.GetInstance().BuilData((int)ResultType.DATABASE_ERROR, null))); } }