Example #1
0
        /// <summary>
        /// 星力空瓶的使用
        /// </summary>
        /// <param name="player"></param>
        /// <param name="gc"></param>
        /// <param name="p"></param>
        private static void Bottles(PlayerBusiness player, GameConfig gc, Variant p)
        {
            Variant v = gc.Value;
            //需要星力值
            int outstar = v.GetIntOrDefault("OutStar");
            if (player.StarPower < outstar)
            {
                player.UseGoodsR(false, TipManager.GetMessage(GoodsReturn.GoodsWashing6));
                return;
            }
            Dictionary<string, Variant> dic = new Dictionary<string, Variant>();
            //目标道具
            string goodsid = v.GetStringOrDefault("GoodsID");

            Variant tmp = new Variant();
            tmp.SetOrInc("Number" + p.GetIntOrDefault("H"), 1);
            dic.Add(goodsid, tmp);

            if (BurdenManager.IsFullBurden(player.B0, dic))
            {
                player.UseGoodsR(false, TipManager.GetMessage(GoodsReturn.BurdenB0Full));
                return;
            }

            if (!player.AddStarPower(-outstar, FinanceType.UseGoods))
            {
                player.UseGoodsR(false, TipManager.GetMessage(GoodsReturn.GoodsWashing6));
                return;
            }

            if (player.RemoveGoods(p.GetIntOrDefault("P"), GoodsSource.DoubleUse))
            {
                player.AddGoods(dic, GoodsSource.Bottles);
                player.UseGoodsR(true, goodsid);
                player.FinishNote(FinishCommand.StarBottle);
            }
            else
            {
                player.UseGoodsR(false, TipManager.GetMessage(GoodsReturn.UseGoods2));
            }
        }
Example #2
0
        /// <summary>
        /// 星阵在线收益
        /// </summary>
        /// <param name="pb">在线角色</param>
        public static void OnlineTroops(PlayerBusiness pb)
        {
            if (pb.AState == ActionState.Meditation)
                return;

            PlayerEx star = pb.Star;
            Variant v = star.Value;
            string curStar = v.GetStringOrDefault("CurStar");
            if (string.IsNullOrEmpty(curStar) || curStar == "-1")
                return;

            GameConfig mgc = GameConfigAccess.Instance.FindOneById("ME_00001");
            if (mgc == null)
                return;
            Variant mev = mgc.Value;

            int max = mev.GetIntOrDefault("Max");
            Variant mv = MemberAccess.MemberInfo(pb.MLevel);
            if (mv != null)
            {
                max = mv.GetIntOrDefault("StarMax");
            }

            //当前在线总秒数
            int second = v.SetOrInc("StarOnline", 300);
            if (pb.StarPower >= max)
                return;

            int income = 0;
            if (second < 1800)
                return;

            GameConfig gc = GameConfigAccess.Instance.FindOneById("SM_00001");
            if (gc == null)
                return;
            Variant info = gc.Value.GetVariantOrDefault(curStar);
            if (info == null)
                return;

            v["StarOnline"] = 0;
            if (!star.Save())
                return;

            income = Convert.ToInt32(second / 20) * info.GetIntOrDefault("Income");
            int m = pb.StarPower + income;
            int n = 0;
            if (m >= max)
            {
                n = max - pb.StarPower;
            }
            else
            {
                n = income;
            }
            pb.AddStarPower(n, FinanceType.OnlineTroops);
            //Console.WriteLine("OnlineTroops:" + n);
        }
Example #3
0
        /// <summary>
        /// 添加星力
        /// </summary>
        /// <param name="player"></param>
        /// <param name="gc"></param>
        /// <param name="p"></param>
        /// <returns></returns>
        private static void FullBottle(PlayerBusiness player, GameConfig gc, Variant p)
        {
            Variant v = gc.Value;

            int addStar = v.GetIntOrDefault("AddStar");

            int max = PartAccess.Instance.PowerMax();

            Variant mv = MemberAccess.MemberInfo(player.MLevel);
            if (mv != null)
            {
                max = mv.GetIntOrDefault("StarMax");
            }

            if (player.StarPower + addStar > max)
            {
                player.UseGoodsR(false, TipManager.GetMessage(GoodsReturn.StarFull));
                return;
            }
            if (player.RemoveGoods(p.GetIntOrDefault("P"), GoodsSource.DoubleUse))
            {
                player.AddStarPower(addStar, FinanceType.UseGoods);
                player.UseGoodsR(true, gc.ID);
            }
            else
            {
                player.UseGoodsR(false, TipManager.GetMessage(GoodsReturn.UseGoods2));
            }
        }