Open quietlynn opened 6 years ago
Purposed configuration file format should allow multiple rule groups. Each rule group is named and each trade (or NPC?) can be associated with one group. Example (thanks to @phoenixlzx ):
limit-group:
g1:
stock-limit: 3 # The store can hold max of 3 items at any time.
replenish-interval: 3600 # Each item arrives in 3600 seconds, if not already full.
per-player-transactions: 3 # Each player can conduct at most 3 trades.
per-player-transaction-interval: 3600 # A player can conduct one more trade every 3600 seconds.
g2:
stock-limit: 3
replenish-interval: -1 # New items won't arrive. It's limited availability.
per-player-transactions: 10 # Each player can conduct at most 10 trades lifetime.
per-player-transaction-interval: -1 # After player has exhausted 10 trades, there is no more.
g3:
stock-limit: -1 # No limit, trade as much as you want.
replenish-interval: 123 # Ignored if stock limit is -1.
per-player-transactions: -1 # No limit, trade as much as you want.
per-player-transaction-interval: 456 # Ignored if transaction limit is -1.
g1
and g2
are two different groups. Inside each group, the replenish-interval
and per-player-transactions
are BOTH in effect, meaning that BOTH stock and per-player limits are enforced. For example, if a trade is tagged g1
, then players cannot make the trade if the item is out of stock. Likewise, if a player has used up his/her own quota, trading is disabled even if there is still stock available. Again, stock / quota is applied individually to each trade/NPC. Two trade/NPCs do not share any stock / quota even if they are tagged using the same group.
TBD: Shall we enforce limits on the NPC level or the trade level? Limiting to NPC can support some interesting use cases such as forcing the player to make a choice, or to enforce a "bigger limit" if one NPC offers multiple recipes for a single item (e.g. fuel). However, shop creators are then forced to create separate NPCs if they intend to use separate limits (For example, sand -> fuel -> fuel ingot -> fuel coupon
may require three different NPCs to be fully scalable. Otherwise, trading in fuel could exhaust fuel coupons as well, leading to surprising results.) Having related transactions grouped into one single NPC also looks nicer (taking the fuel example again).
This is a feature request to put limits to NPC trading. The motivation is to allow reasonable trading without using some hard-to-obtain items, while still preventing potential abuse. Many games, especially MMORPG games with markets, utilizes similar ideas to make the economy more controllable.
Limits can include:
Use cases:
[kit]
signs./ptt ac
.Finally, the use of limits encourage admins / players to set up and experiment easier trades (maybe at lower stock first), while still providing a "safety net" in case a trade is subject to abuse or leads to excessive grinding. One does not need to search him/her brain to come up with some hard-to-obtain items just for the sake of preventing abuse.