DtlTraders/patterns: Difference between revisions

From Citizens Wiki
No edit summary
No edit summary
Line 130: Line 130:
</div>
</div>


== Pricing patterns ==
=== Basics ===
An example of a basic ''pricing pattern'':
<div style="border: solid 1px black;padding:10px;padding-top:0px"><span style="white-space: pre;color:darkgreen;">
default:
<span>  prices: </span>
<span>    all: </span>
<span>      multiplier: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">1.0</tt></span>
<span>      35: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">1.5</tt></span>
<span>      '35:2': <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">2.0</tt></span>
<span>    sell: </span>
<span>      1: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.33</tt></span>
<span>      2: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.66</tt></span>
<span>      3: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.99</tt></span>
<span>    buy: </span>
<span>      multiplier: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.9</tt></span>
<span>      1: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.33</tt></span>
<span>      2: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.66</tt></span>
<span>      3: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.99</tt></span>
</span></div>
An price for an item is set by the follow syntax <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">'id[:data]: {price}</tt><br />
so typing <b>35: 3.0</b> sets the price for any wool collor, to 3.0$, where <b>'35:0': 4.0</b> sets the price only for the white wool to 4.0$.
In the '''all''' section you can set item price for both buying and selling. To change the item's value depending on the transaction type you can use the '''sell''' and '''buy''' sections.<br>
<br>
The multiplier is used to quickly change prices. By using this setting you can adjust prices on the server scale just by setting a single number. You could for example lower the value of any offered item by setting multiplier to 0.9 - every price would then be reduced by 10%. When no multiplier is set the value defaults to 1.0.<br>
<br>
Multipliers set in the ''sell'' or ''buy'' sections have higher priority than those set in the ''all'' section. In the above example '''0.9''' set in the '''buy''' block overrides '''1.0''' set in the '''all''' section.<br>
<br>
When dealing with blocks that use additional data value such as colored wool keep in mind that you can, for example, set the price of any wool by using 35: <price>. Changing that line to '35:0': <price> would only apply to ''white wool''. Moreover if you set the general price for wool '''(35: <price1>)''' and then assign a different price to the white wool '''('35:0': <price2>)''' then the more specific assignment has priority. In this case every wool block would cost <price1> with the exception of white wool which would be set to <price2>.
=== Tiers ===
Tiers allow you to define multiple patterns and apply them automatically depending on the user's permissions. Each tier can have a different multiplier and/or item prices. Tiers cannot be set for '''item patterns'''!
For example creating two tiers - ''tier1'' with '''sell''' multiplier set to 0.9, and ''tier2'' with '''sell''' multiplier set to 0.8 will have the following effect:
* players without any permission would see all prices by default with default multipliers
* players with the permission ''dtl.trader.tiers.tier1 will have overridden only those prices you got in tier 1
* players with the permission ''dtl.trader.tiers.tier2 will have overridden only those prices you got in tier 2
* players with both permissions will have overridden first all prices from tier 1 and the from tier 2
* multipliers are always overridden, so when the default multiplier is set to 1.2 and non is set for a tier the multiplier will be set to 1.0 because it's default always for each tier/pattern
Tiers are defined after the pattern and have exactly the same structure.
<div style="border: solid 1px black;padding:10px;padding-top:0px"><span style="white-space: pre;color:darkgreen;">
default:
<span>  prices: </span>
<span>    all: </span>
<span>      multiplier: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">1.0</tt></span>
<span>      35: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">1.5</tt></span>
<span>      '35:2': <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">2.0</tt></span>
<span>    sell: </span>
<span>      1: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.33</tt></span>
<span>      2: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.66</tt></span>
<span>      3: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.99</tt></span>
<span>    buy: </span>
<span>      multiplier: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.9</tt></span>
<span>      1: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.33</tt></span>
<span>      2: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.66</tt></span>
<span>      3: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.99</tt></span>
<span>    tier1: </span>
<span>      all: </span>
<span>        multiplier: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.9</tt></span>
<span>      sell: </span>
<span>        2: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">0.11</tt></span>
<span>      buy: </span>
<span>        multiplier: <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">1.1</tt></span>
</span></div>
== Item patterns ==
Item patterns are used to set up really fast and easily traders, they might be mixed with pricing patterns allowing to create a really nice system, also working now on setting multiple patterns to one trader, so you can set prices within one pattern and items for many traders within another :)
=== Simple pattern example ===
<div style="border: solid 1px black;padding:10px;padding-top:0px"><span style="white-space: pre;color:darkgreen;">
default:
<span>  inherits: </span>
<span>  - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">global_prices</tt></span>
<span>  items: </span>
<span>    all: </span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">35:1 a:1,2,4 s:-1</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">35:2 a:1,2,4 s:-1</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">35:3 a:1 s:-1</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">35:4 a:2 s:-1 p:11</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">1 a:32 s:8</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">2 a:32,54 s:17</tt></span>
<span>    buy: </span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">5 p:5 s:-1 a:18</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">35:0 s:-1 a:8,4,2,1</tt></span>
</span></div>
==== Notes ====
The '''all''', '''sell''' and '''buy''' sections, behaves like for price patterns.
Keywords might be set up in any order, so you may write
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">2 s:17 a:32,54</tt></span>
or
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">2 a:32,54 s:17</tt></span>
it's still the same.
If you set an item with the same id and data like in the pattern, it wont add the item from the pattern, however you may set multiple items with the same id and data in the pattern.
Also we inherit here a '''pricing pattern''' that is named ''global_prices'', it's just a regular pattern with prices for each item in-game, I've used it here to avoid setting a price for each item, and to show how to set it, if you set more than 1 pattern, the last one is the most important one.
=== More examples ===
==== Durability trick ====
<div style="border: solid 1px black;padding:10px;padding-top:0px"><span style="white-space: pre;color:darkgreen;">
default:
<span>  inherits: </span>
<span>  - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">global_prices</tt></span>
<span>  items: </span>
<span>    buy: </span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">271 d:32 p:10 s:0 a:1</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">271 d:22 p:50 s:0 a:1</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">271 d:11 p:100 s:0 a:1</tt></span>
</span></div>
You may set different prices depending on the durability loss of an item. The trick is to set each item on the same slot, starting with the most damaged one.
Anything that is more damaged that than the first can't be sold to the trader.
Important is to set the price for each item by yourself, because there is no way to set different prices for damaged items.
==== Grouping items for sell ====
<div style="border: solid 1px black;padding:10px;padding-top:0px"><span style="white-space: pre;color:darkgreen;">
default:
<span>  inherits: </span>
<span>  - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">global_prices</tt></span>
<span>  prices: </span>
<span>    buy: </span>
<span>      '35':<tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">13</tt></span>
<span>  items: </span>
<span>    buy: </span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">17 s:0 a:2 sp</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">17:1 s:0 a:2 sp</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">17:2 s:0 a:2 sp</tt></span>
<span>    - <tt style="color:black;background-color: #F8F8E0;border: solid 1px black;padding:0px 1px">17:3 s:0 a:2 sp</tt></span>
</span></div>
This setup will set all 4 Log types into one slot, and this might be considered as a "Log group", the price is determined here in the prices section.
Because we have set for those items amount '''2''', and the '''Stackprice''' flag, people can sell only a minimum of 2 logs to that trader, and will get for 2 logs '''13$'''.
Without '''Stackprice''' the price would be multiplied by the amount, so '''13$ * 2 = 26$''' for 2 logs.
Moreover, we got here inherited '''global_prices''' pattern, but when we set up a price within this pattern it will override the ''inherited'' price.
== Market patterns ==
Market patterns are from up now not hard to to setup, mainly there are only two requirements to make a '''Market trader''' working in the right way.
#  Set the items up in your trader based on what you want him to buy, the items you set are what he will buy from the player and turn around to sell back to other players.
# Because items that was bought needs a price it's needed to always set the '''prices => sell''' section with prices for items the trader may buy.
How you set prices for items he buys, it's your thing, you just need to remember about those two things.


== Navigation ==
== Navigation ==

Revision as of 18:11, 29 March 2013

Overview

Every pattern is saved in the patterns.yml file located in the plugin's main folder. (plugins/DtlCitizensTrader)
You can change the directory in the configuration file.


There are 2 types of patterns:

- Pricing patterns
Sets item prices and pricing tiers.

- Item patterns
Will add certain items to the trader's stock, also has item tiers.


Incoming a third pattern type with 2.6 (long way to it):

- random patterns Those will allow to set maximum items a trader can have showd in stock (like 10 of 20), also set timeouts, "spawn chance", amount and price chances that will be used on each item when it's timeout passed.


All patterns are based on one syntax that is used to build item scripts. Those scripts are used by each pattern type, just each pattern type uses it in another way.


Item syntax

This sound horrible, I know, but it's best way to explain it in two words :D

Every item within a pattern is build up by some keywords and flags you may use, many options you can't achieve with a basic trader setup are here allowed, but you need to be careful.

Keywords

Item setting

Keyword

Price pattern

Item pattern

Example

ID and data

id[:data]

Looks for items with the given id and/or data, priority: 130

Sets the item id, and when set also the data default: required!

wool:14

Item amount

a

Looks for items with the given amount, priority: 5

Sets one or more amounts for an item, default: 1

a:1,2,4

Durability

d

Looks for items with the given or higher durability, priority: 45

Sets the items durability, default: 0

d:22

Price

p

Sets the price for each matching item, overriding lower priority matches

Sets the price for the given item, default: pattern price

p:12.22

Slot

s

Not used

Sets the slot for the item, default: first empty

s:22


Navigation

DtlTraders
Configuration Commands | Permissions
Usage Patterns
Types