public bool RemainLimit(string UsedName, bool DefaultTrue = false) { PUsedTag UsedTag = Tags.FindPeekTag <PUsedTag>(PUsedTag.TagNamePrefix + UsedName); if (UsedTag == null) { if (DefaultTrue) { return(true); } Tags.CreateTag(UsedTag = new PUsedTag(UsedName, 1)); } return(UsedTag != null && UsedTag.Count < UsedTag.Limit); }
public void LoseMoney(PPlayer Player, int Money, bool IsInjure = false) { PLoseMoneyTag LoseMoneyTag = Monitor.CallTime(PTime.LoseMoneyTime, new PLoseMoneyTag(Player, Money, IsInjure)); PPlayer LoseMoneyPlayer = LoseMoneyTag.Player; int MoneyCount = LoseMoneyTag.Money; if (LoseMoneyPlayer != null && LoseMoneyPlayer.IsAlive && MoneyCount > 0) { LoseMoneyPlayer.Money -= MoneyCount; PNetworkManager.NetworkServer.TellClients(new PPushTextOrder(LoseMoneyPlayer.Index.ToString(), "-" + MoneyCount.ToString(), LoseMoneyTag.IsInjure ? PPushType.Injure.Name : PPushType.Throw.Name)); PNetworkManager.NetworkServer.TellClients(new PShowInformationOrder(LoseMoneyPlayer.Name + "失去金钱" + MoneyCount.ToString())); PNetworkManager.NetworkServer.TellClients(new PRefreshMoneyOrder(LoseMoneyPlayer)); if (LoseMoneyPlayer.Money <= 0) { if (IsInjure) { PInjureTag InjureTag = TagManager.FindPeekTag <PInjureTag>(PInjureTag.TagName); Dying(LoseMoneyPlayer, InjureTag.FromPlayer, InjureTag.InjureSource); } else { Dying(LoseMoneyPlayer, null, null); } } } }