public static void HandleTrashTokens(TrashProfile p, TrashToken t) { if (p != null && p.Owner != null && p.Owner is PlayerMobile) { CheckProgress<ItemConquest>((PlayerMobile) p.Owner, t); } }
public bool TransferTokens(Mobile source, Item trashed, int amount, bool message = true) { if (Deleted || Owner == null || Owner.Deleted) { return(false); } if (source == null) { source = Owner; } var limitReached = false; var total = GetTokenTotal(DateTime.UtcNow); if (TrashCollection.CMOptions.DailyLimit > 0) { if (total >= TrashCollection.CMOptions.DailyLimit) { limitReached = true; amount = 0; } else if (total + amount > TrashCollection.CMOptions.DailyLimit) { limitReached = true; amount = (total + amount) - TrashCollection.CMOptions.DailyLimit; } } if (amount > 0) { var token = new TrashToken(amount); var name = token.ResolveName(Owner.GetLanguage()); if (Owner.Backpack.TryDropItem(Owner, token, true)) { if (message) { Owner.SendMessage( 0x55, "{0}{1}{2} {3} been placed in your backpack.", !name.StartsWith("a") && amount == 1 ? "a " : String.Empty, name, !name.EndsWith("s") && amount > 1 ? "s" : String.Empty, amount > 1 ? "have" : "has"); } } else if (Owner.BankBox.TryDropItem(Owner, token, true)) { if (message) { Owner.SendMessage( 0x55, "{0}{1}{2} {3} been placed in your bank.", !name.StartsWith("a") && amount == 1 ? "a " : String.Empty, name, !name.EndsWith("s") && amount > 1 ? "s" : String.Empty, amount > 1 ? "have" : "has"); } } else { if (Owner.NetState == null && Owner is PlayerMobile) { token.MoveToWorld(Owner.LogoutLocation, Owner.LogoutMap); } else { token.MoveToWorld(Owner.Location, Owner.Map); } if (message) { Owner.SendMessage( 0x55, "{0}{1}{2} {3} been placed at your feet.", !name.StartsWith("a") && amount == 1 ? "a " : String.Empty, name, !name.EndsWith("s") && amount > 1 ? "s" : String.Empty, amount > 1 ? "have" : "has"); } } if (TokensReceived != null) { TokensReceived.Invoke(this, token); } } else { if (message) { Owner.SendMessage(0x22, "You didn't receive any tokens this time."); } return(false); } if (limitReached && message) { Owner.SendMessage( 0x22, "You have reached your daily trash token limit of {0:#,0}.", TrashCollection.CMOptions.DailyLimit); } RegisterTokens(source, trashed, amount); return(true); }
public bool TransferTokens(Mobile source, Item trashed, int amount, bool message = true) { if (Deleted || Owner == null || Owner.Deleted) { return false; } if (source == null) { source = Owner; } var limitReached = false; var total = GetTokenTotal(DateTime.UtcNow); if (TrashCollection.CMOptions.DailyLimit > 0) { if (total >= TrashCollection.CMOptions.DailyLimit) { limitReached = true; amount = 0; } else if (total + amount > TrashCollection.CMOptions.DailyLimit) { limitReached = true; amount = (total + amount) - TrashCollection.CMOptions.DailyLimit; } } if (amount > 0) { var token = new TrashToken(amount); var name = token.ResolveName(Owner.GetLanguage()); if (Owner.Backpack.TryDropItem(Owner, token, true)) { if (message) { Owner.SendMessage( 0x55, "{0}{1}{2} {3} been placed in your backpack.", !name.StartsWith("a") && amount == 1 ? "a " : String.Empty, name, !name.EndsWith("s") && amount > 1 ? "s" : String.Empty, amount > 1 ? "have" : "has"); } } else if (Owner.BankBox.TryDropItem(Owner, token, true)) { if (message) { Owner.SendMessage( 0x55, "{0}{1}{2} {3} been placed in your bank.", !name.StartsWith("a") && amount == 1 ? "a " : String.Empty, name, !name.EndsWith("s") && amount > 1 ? "s" : String.Empty, amount > 1 ? "have" : "has"); } } else { if (Owner.NetState == null && Owner is PlayerMobile) { token.MoveToWorld(Owner.LogoutLocation, Owner.LogoutMap); } else { token.MoveToWorld(Owner.Location, Owner.Map); } if (message) { Owner.SendMessage( 0x55, "{0}{1}{2} {3} been placed at your feet.", !name.StartsWith("a") && amount == 1 ? "a " : String.Empty, name, !name.EndsWith("s") && amount > 1 ? "s" : String.Empty, amount > 1 ? "have" : "has"); } } if (TokensReceived != null) { TokensReceived.Invoke(this, token); } } else { if (message) { Owner.SendMessage(0x22, "You didn't receive any tokens this time."); } return false; } if (limitReached && message) { Owner.SendMessage( 0x22, "You have reached your daily trash token limit of {0:#,0}.", TrashCollection.CMOptions.DailyLimit); } RegisterTokens(source, trashed, amount); return true; }