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