How to work with the Special Craft store (Return of Queen Ant aka Legacy only)

Deazer

Head Developer
Staff member
1) Server

Format: XML
Location:
gameserver/data/purchase_limit_craft.xml - content
gameserver/data/purchase_limit_craft.dtd - syntactic rules

IMPORTANT: On the server side, you can effectively change ingredients on the fly. However, for everything else, you must first edit the client-side and then adjust the server-side to match your list from the client.

For example, let's consider several scenarios:

1) Example with one item
XML:
<item shop_index="4" product_id="10048" product_name="Antharas' Earring Lv. 3" product_item="91139" product_item_amount="1" product_item_chance="100.0">
    <ingredient id="57" count="10000"/>
</item>

2) Example with multiple items
XML:
<item shop_index="4" product_id="10008" product_name="Feudal Duty" product_item="99287" product_item_amount="1" product_item_chance="10.0" buy_item_1="90907" buy_item_amount_1="10" buy_item_chance_1="90.0">
    <ingredient id="57" count="10000"/>
</item>

3) Example with multiple items and limiting to 4 items
XML:
<item shop_index="4" product_id="10008" product_name="Feudal Duty" product_item="99287" product_item_amount="1" product_item_chance="10.0" buy_item_1="90907" buy_item_amount_1="10" buy_item_chance_1="90.0" limit_daily="4">
    <ingredient id="57" count="10000"/>
</item>

Where:
- `shop_index` - ID of the store type, taken from the client or added to the game client in the file PurchaseLimitCraft_Classic-eu.dat/PurchaseLimitCraft_Classic-ru.dat. 3 - Normal Lcoin Shop, 4 - Lcoin Special Craft, 100 - Clan Shop. We are interested in 4.
- `product_id` - ID of the product, which should match both in the client (PurchaseLimitCraft_Classic-eu.dat/PurchaseLimitCraft_Classic-ru.dat) and in the server (purchase_limit_craft.xml).
- `product_name` - Name of the item, can be any.
- `product_item` - ID of the main item that we will craft.
- `product_item_amount` - Number of items given on a successful craft.
- `product_item_chance` - Chance of obtaining the item during crafting.
- `buy_item_1`, `buy_item_2`, `buy_item_3`, `buy_item_4` - Items of secondary importance, usually given if the chance of `product_id` was not successful.
- `buy_item_amount_1`, `buy_item_amount_2`, `buy_item_amount_3`, `buy_item_amount_4` - Number of secondary items given.
- `buy_item_chance_1`, `buy_item_chance_2`, `buy_item_chance_3`, `buy_item_chance_4` - Chance of obtaining the secondary item.
- `limit_daily` - Daily limit for crafting.

`ingredient id` - What we will take in exchange for crafting.
- `count` - Number of items taken for crafting.
Warning: The number of ingredients should not exceed 5 units, as the client will not display more than that.

2) Client
Location: Client/system/PurchaseLimitCraft_Classic-ru.dat | Client/system/PurchaseLimitCraft_Classic-en.dat
Format: *.dat
Editor: https://lucera2.com/threads/patch-editor-306-311-protocol.2403/

IMPORTANT: On the server side, you can effectively change ingredients on the fly. However, for everything else, you must first edit the client-side and then adjust the server-side to match your list from the client.
The format generally matches the server XML, with the only difference being that `product_item=99286` is the primary item, and the duplication of buy_item={{99286` is removed. So, in `buy_item_1`, we place the second item from the list: {90907;10;90.0;0}.

Now the description `buy_item={{99286;1;10.0;3};{90907;10;90.0;0}}`:
- 90907 - `buy_item_1`
- 1 - `buy_item_amount_1`
- 10.0 - `buy_item_chance_1`
- 0 - daily limit
`limit_lv={1;999}` - not used anywhere in general
`buy_type={0;0;0;0}` - no idea either, not used with specific parameters

Code:
product_begin    shop_index=4    product_id=10007    category=0    category_sub=1804152    unk={0;5}    product_name=[Feudal Islet]    product_item=99286    buy_item={{99286;1;10.0;3};{90907;10;90.0;0}}    limit_lv={1;999}    buy_type={0;0;0;0}    product_end
product_begin    shop_index=4    product_id=10008    category=0    category_sub=1804152    unk={0;5}    product_name=[Feudal Duty]    product_item=99287    buy_item={{99287;1;10.0;3};{90907;10;90.0;0}}    limit_lv={1;999}    buy_type={0;0;0;0}    product_end
product_begin    shop_index=4    product_id=10009    category=0    category_sub=1804152    unk={0;5}    product_name=[Silenos Priest's Staff]    product_item=99288    buy_item={{99288;1;10.0;3};{90907;10;90.0;0}}    limit_lv={1;999}    buy_type={0;0;0;0}    product_end
...

This is how the system looks visually.
21b62a6bdbde13d8e55e9bdcac668d01.png
 
Back
Top