示例#1
0
        /// <summary>进入战斗</summary>
        private FightVo NpcChallenge(Int64 userid, Int64 npcid, FightType type)
        {
            var fight = new Share.Fight.Fight().GeFight(userid, npcid, type, 0, true);

            new Share.Fight.Fight().Dispose();
            return(fight.Result != ResultType.SUCCESS ? null : fight.Ofight);
        }
示例#2
0
        /// <summary>开始战斗 </summary>
        public int FightStart(Int64 userid, int baseid, FightType fighttype)
        {
            var fight = new Share.Fight.Fight().GeFight(userid, baseid, fighttype, 0, false, true);

            new Share.Fight.Fight().Dispose();
            return(fight.Result != ResultType.SUCCESS ? (int)fight.Result : fight.Iswin ? (int)FightResultType.WIN : (int)FightResultType.LOSE);
        }
示例#3
0
        /// <summary>得到战斗vo</summary>
        private FightVo UserChallenge(Int64 userid, Int64 rivalid, FightType type)
        {
            var fight = new Share.Fight.Fight().GeFight(userid, rivalid, type, 0, false, true, true);

            new Share.Fight.Fight().Dispose();
            return(fight.Result != ResultType.SUCCESS ? null : fight.Rfight);
        }
示例#4
0
        /// <summary> 获取战斗结果 </summary>
        private Fight GetFightResult(Int64 userid, Int64 rivalid)
        {
            var fight = new Share.Fight.Fight().GeFight(userid, rivalid, FightType.BOTH_SIDES, 0, true, false, true);

            new Share.Fight.Fight().Dispose();
            return(fight);
        }
示例#5
0
        /// <summary>得到战斗结果</summary>
        private int NpcChallenge(Int64 userid, Int64 rivalid, FightType type)
        {
            var fight = new Share.Fight.Fight().GeFight(userid, rivalid, type, 0, false, true);

            new Share.Fight.Fight().Dispose();
            if (fight.Result != ResultType.SUCCESS)
            {
                return(Convert.ToInt32(fight.Result));
            }
            return(fight.Iswin ? (int)FightResultType.WIN : (int)FightResultType.LOSE);
        }
示例#6
0
        /// <summary> 获取战斗结果 </summary>
        private FightVo GetFightResult(Int64 userid, Int64 rivalid, Int64 life, ref Int64 hrut)
        {
            var fight = new Share.Fight.Fight().GeFight(userid, rivalid, FightType.SIEGE, life, true, true);

            new Share.Fight.Fight().Dispose();
            if (fight.Result != ResultType.SUCCESS)
            {
                return(null);
            }
            hrut = fight.Hurt;
            return(fight.Ofight);
        }
示例#7
0
        /// <summary> 进入战斗 </summary>
        /// <param name="userid"></param>
        /// <param name="npcid">rivalid 包括npc</param>
        /// <param name="rolelife"></param>
        private int NpcChallenge(Int64 userid, int npcid, ref Int64 rolelife)
        {
            var fight = new Share.Fight.Fight().GeFight(userid, npcid, FightType.CONTINUOUS, rolelife, false, true);

            // new Share.Fight.Fight().Dispose();
            if (fight.Result != ResultType.SUCCESS)
            {
                return(Convert.ToInt32(fight.Result));
            }
            rolelife = fight.PlayHp;
            return(fight.Iswin ? (int)FightResultType.WIN : (int)FightResultType.LOSE);
        }
示例#8
0
        /// <summary> 一夜墨俣--击杀boss</summary>
        public ASObject CommandStart(TGGSession session, ASObject data)
        {
#if DEBUG
            XTrace.WriteLine("一夜墨俣:击杀BOSS -{0}——{1}", session.Player.User.player_name, "KILL_BOSS");
#endif
            var  userid    = session.Player.User.id;
            var  shotcount = 0;
            bool iswin;

            var camp = session.Player.User.player_camp;
            if (!CheckPoint(camp, userid))
            {
                return(BuildData((int)ResultType.BUILDING_POINT_OUT, null));                           //验证坐标
            }
            if (!Variable.Activity.BuildActivity.userGoods.ContainsKey(userid))
            {
                return(BuildData((int)ResultType.BUILDING_NOT_IN, null));
            }
            var ac        = Variable.Activity.BuildActivity.userGoods[userid];
            var fighttime = ac.FightTime;
            if (DateTime.Now < fighttime)
            {
                return(BuildData((int)ResultType.BUILDING_TIME_OUT, null));
            }
            var bossid = GetBoosId(camp);

            var bossblood = camp == (int)CampType.East ? Variable.Activity.BuildActivity.WestBoosBlood : Variable.Activity.BuildActivity.EastBoosBlood;
            if (bossblood <= 0)
            {
                return(BuildData((int)ResultType.SUCCESS, null));
            }
            if (!CheckQueue(userid))
            {
                return(BuildData((int)ResultType.BUILDING_TIME_OUT, null));
            }

            var fightvo = new FightVo();
            lock (obj)
            {
                //  Thread.Sleep(5000); //测试数据
                var fight = new Share.Fight.Fight().GeFight(userid, bossid, FightType.BUILDING, bossblood, false, true);
                new Share.Fight.Fight().Dispose();
                if (fight.Result != ResultType.SUCCESS)
                {
                    return(BuildData((int)ResultType.FIGHT_ERROR, null));
                }
                var blood = fight.BoosHp;
                bossblood = blood;
                shotcount = fight.ShotCount;
                iswin     = fight.Iswin;
                fightvo   = fight.Ofight;
                GetBossBlood(camp, bossblood);
                var fightcost = shotcount * 0.5;
                ac.FightTime = DateTime.Now.AddSeconds(fightcost); //下一次挑战时间
                if (iswin)
                {
                    new Common().AddFame(Variable.Activity.BuildActivity.KillAddFame, ac); //打赢boss
                }
                PushBossBlood(userid, camp == (int)CampType.East ? 2 : 1);                 //1.东军返回西军Boss血量 2.西军返回东军boss血量
            }
            RemoveQueue(userid);
            return(BuildData((int)ResultType.SUCCESS, fightvo));
        }