1) Сервер
Формат: XML
Местонахождение:
gameserver/data/purchase_limit_craft.xml - содержимое
gameserver/data/purchase_limit_craft.dtd - синтаксические правила
ВАЖНО: Серверной стороной фактически вы можете менять налету только ингредиенты. В остальном вы должны сначала редактировать клиентскую часть, а потом серверную подгонять под свой лист из клиента.
Для примера рассмотрим несколько вариантов:
1) Пример с одним предметом
2) Пример с множеством предметов
3) Пример с множеством предметов и лимитированием допустим 4мя предметами
Где:
shop_index - ID типа магазина, берется из клиента или вы вносите в игровой клиент в файл PurchaseLimitCraft_Classic-eu.dat/PurchaseLimitCraft_Classic-ru.dat 3 - Normal Lcoin Shop, 4 - Lcoin Special Craft, 100 - Clan Shop. Нас интересует именно 4
product_id - id продукта который должен совпадать как в клиенте PurchaseLimitCraft_Classic-eu.dat/PurchaseLimitCraft_Classic-ru.dat, так и в сервере purchase_limit_craft.xml
product_name - название предмета, может быть произвольным.
product_item - ID предмета, главный предмет который мы будем крафтить
product_item_amount - количество предметов выдаваемых при успешном крафте
product_item_chance - шанс получения предмета при крафте
buy_item_1, buy_item_2, buy_item_3, buy_item_4 - Предметы второстепенной важности, обычно даются, если шанс `product_id` не удался.
buy_item_amount_1, buy_item_amount_2, buy_item_amount_3, buy_item_amount_4 - Количество второстепенных предметов.
buy_item_chance_1, buy_item_chance_2, buy_item_chance_3, buy_item_chance_4 - Шанс получить второстепенный предмет.
limit_daily - дневной лимит возможности крафта
ingredient id - что мы будем забирать взамен крафта
count - количество изымаемых предметов для крафта
Предупреждение: Количество ingredient не должно превышать 5ти единиц ибо клиент просто не отобразит
2) Клиент
Местонахождение: Clinetn/system/PurchaseLimitCraft_Classic-ru.dat | Clinetn/system/PurchaseLimitCraft_Classic-en.dat
Формат: *.dat
Редактор: https://lucera2.com/threads/patch-editor-306-311-protocol.2403/
ВАЖНО: Серверной стороной фактически вы можете менять налету только ингредиенты. В остальном вы должны сначала редактировать клиентскую часть, а потом серверную подгонять под свой лист из клиента.
Где:
Форма в целом полностью совпадает с XML сервера, только лишь с одной разницей product_item=99286 является заглавным и убрано дублирование buy_item={{99286.
product_item = первый buy_item={{99286;1;10.0;3}, так что в buy_item_1 мы помещаем второй предмет из списка ;{90907;10;90.0;0}}
Теперь описание 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 - лимит в день
Лимиты уровня limit_lv={1;999} - не используется в целом нигде
buy_type={0;0;0;0} - без понятия так же, не используется специфические параметры
Вот так визуально выглядит данная система:
Формат: XML
Местонахождение:
gameserver/data/purchase_limit_craft.xml - содержимое
gameserver/data/purchase_limit_craft.dtd - синтаксические правила
ВАЖНО: Серверной стороной фактически вы можете менять налету только ингредиенты. В остальном вы должны сначала редактировать клиентскую часть, а потом серверную подгонять под свой лист из клиента.
Для примера рассмотрим несколько вариантов:
1) Пример с одним предметом
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>
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>
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>
shop_index - ID типа магазина, берется из клиента или вы вносите в игровой клиент в файл PurchaseLimitCraft_Classic-eu.dat/PurchaseLimitCraft_Classic-ru.dat 3 - Normal Lcoin Shop, 4 - Lcoin Special Craft, 100 - Clan Shop. Нас интересует именно 4
product_id - id продукта который должен совпадать как в клиенте PurchaseLimitCraft_Classic-eu.dat/PurchaseLimitCraft_Classic-ru.dat, так и в сервере purchase_limit_craft.xml
product_name - название предмета, может быть произвольным.
product_item - ID предмета, главный предмет который мы будем крафтить
product_item_amount - количество предметов выдаваемых при успешном крафте
product_item_chance - шанс получения предмета при крафте
buy_item_1, buy_item_2, buy_item_3, buy_item_4 - Предметы второстепенной важности, обычно даются, если шанс `product_id` не удался.
buy_item_amount_1, buy_item_amount_2, buy_item_amount_3, buy_item_amount_4 - Количество второстепенных предметов.
buy_item_chance_1, buy_item_chance_2, buy_item_chance_3, buy_item_chance_4 - Шанс получить второстепенный предмет.
limit_daily - дневной лимит возможности крафта
ingredient id - что мы будем забирать взамен крафта
count - количество изымаемых предметов для крафта
Предупреждение: Количество ingredient не должно превышать 5ти единиц ибо клиент просто не отобразит
2) Клиент
Местонахождение: Clinetn/system/PurchaseLimitCraft_Classic-ru.dat | Clinetn/system/PurchaseLimitCraft_Classic-en.dat
Формат: *.dat
Редактор: https://lucera2.com/threads/patch-editor-306-311-protocol.2403/
ВАЖНО: Серверной стороной фактически вы можете менять налету только ингредиенты. В остальном вы должны сначала редактировать клиентскую часть, а потом серверную подгонять под свой лист из клиента.
Где:
Форма в целом полностью совпадает с XML сервера, только лишь с одной разницей product_item=99286 является заглавным и убрано дублирование buy_item={{99286.
product_item = первый buy_item={{99286;1;10.0;3}, так что в buy_item_1 мы помещаем второй предмет из списка ;{90907;10;90.0;0}}
Теперь описание 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 - лимит в день
Лимиты уровня limit_lv={1;999} - не используется в целом нигде
buy_type={0;0;0;0} - без понятия так же, не используется специфические параметры
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
product_begin shop_index=4 product_id=10010 category=0 category_sub=1804152 unk={0;5} product_name=[Silenos Claw] product_item=99289 buy_item={{99289;1;10.0;3};{90907;10;90.0;0}} limit_lv={1;999} buy_type={0;0;0;0} product_end
.........................
Вот так визуально выглядит данная система:
Last edited: