Equipment Upgrade system (classic/legacy)

1. Общая информация
Система апгрейдов позволяет игрокам улучшать экипировку, обменивая предмет с определённым уровнем заточки, материалы и адену на новый предмет. Апгрейды настраиваются в двух местах:
  • NPC: Head Blacksmith Ferris (30847)
  • На сервере: Через файл data/equipment_upgrade.xml.
  • В клиенте: Через файл GameClient/system_ru/UpgradeSystem_Classic.dat, который определяет, как апгрейды отображаются в игре.
Каждый апгрейд имеет:
  • Уникальный ID (upgrade_id).
  • Требуемый предмет с уровнем заточки (upgrade_item).
  • Список материалов и их количество (material_items).
  • Стоимость в адене (commission).
  • Шанс успеха в процентах (chance).
  • Результирующий предмет с уровнем заточки (result_item).
  • Страны, где апгрейд доступен (applycountry). Можете ставить что угодно, не имеет значения, значение имеет только какая указан в клиенте.
2. Настройка на сервере (equipment_upgrade.xml)
Файл data/equipment_upgrade.xml.

Формат XML
Каждый апгрейд описывается тегом <upgradesystem_begin> внутри корневого тега <upgrades>. Пример:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE upgrades SYSTEM "equipment_upgrade.dtd">
<upgrades>
    <upgradesystem_begin
        upgrade_id="1"
        upgrade_item="91244;5"
        material_items="1459;200"
        chance="100"
        commission="2000000"
        result_item="91245;0"
        applycountry="all" />
</upgrades>

Описание полей
  • upgrade_id: Уникальный номер апгрейда (например, 1, 10041). Не повторяйте ID!
  • upgrade_item: Предмет, который нужно улучшить. Формат: item_id;enchant_level. Например, 91244;5 - предмет с ID 91244 и заточкой +5.
  • material_items: Список материалов. Формат: item_id;count. Например, 1459;200 - 200 единиц предмета с ID 1459. Если материалов нет, укажите пустую строку: material_items="".
  • chance: Шанс успеха апгрейда в процентах (0–100). Например, 100 - всегда успех, 20 - 20% шанс. Если не указано, по умолчанию 100.
  • commission: Стоимость апгрейда в адене. Например, 2000000 - 2 миллиона адены.
  • result_item: Результирующий предмет. Формат: item_id;enchant_level. Например, 91245;0 - предмет с ID 91245 без заточки.
  • applycountry: Страны, где апгрейд доступен. Укажите all для всех стран или коды стран через точку с запятой, например, kr;j (для Кореи и Японии). Если не указано, по умолчанию all.
3. Настройка в клиенте (UpgradeSystem_Classic.dat)

Файл GameClient/system_ru/UpgradeSystem_Classic.dat отвечает за отображение апгрейдов в игровом клиенте. Его формат отличается от серверного XML, но данные должны соответствовать.

Формат файла
Каждый апгрейд описывается в блоке между upgradesystem_begin и upgradesystem_end. Пример:
Code:
upgradesystem_begin    upgrade_id=10041    upgrade_item={70295;9}    material_items={{71752;70}}    commission=10000    result_item={71746;0}    applycountry={all}    upgradesystem_end
Описание полей
  • upgrade_id: Тот же ID, что в equipment_upgrade.xml. Должен совпадать!
  • upgrade_item: Предмет для улучшения. Формат: {item_id;enchant_level}. Например, {70295;9} - предмет ID 70295 с заточкой +9.
  • material_items: Материалы. Формат: {{item_id;count}}. Например, {{71752;70}} - 70 единиц предмета ID 71752. Для нескольких материалов: {{71752;70}{71753;10}}. Если материалов нет, укажите {}.
  • commission: Стоимость в адене. Например, 10000. Должна совпадать с сервером.
  • result_item: Результирующий предмет. Формат: {item_id;enchant_level}. Например, {71746;0}.
  • applycountry: Страны. Формат: {all} или {kr;j}. Должно совпадать с сервером.
  • chance: В клиентском файле не указывается, так как шанс обрабатывается на сервере.
Как это вышлядит в игре:
 
Last edited:
The server does not generate any content in this window, it only processes the transmutate request. Inside, the logic processes all conditions and issues an item.
I think the whole case is about showing proper chance value in the client, since server xml files provide the chance value it needs to be output in the client, so adding probability={100} into the clients dat you have mentioned in the guide would be a logical step. The file on its own is missing that parameter. So you declare chance in xml as well as add probility={} tag into the clients dat. Chances work server side, this is just to show actual chance server is doing in xml.
 
View attachment 6511

файл посмотри,там уже новые типы и байпассы.... Куда ты смотрел я без понятия
Скажи, пожалуйста, зачем ты умничаешь и выставляешь всех дураками? Обновление было 7 дней назад, я написал 3 дня назад — не просто так.
Может, ты наконец посмотришь и поймёшь, что у тебя не работает то, что здесь описано, и соизволишь внести ясность?
Вот пример из твоего xml-файла:
Code:
<equipment_upgrade upgrade_id="11412" type="UPGRADE_COMMON_ITEMS_TO_S_GRADE" upgrade_item="8680;12" material_items="1461;250,91547;1" commission="1000000" result_item="6365;1;0" fail_result_items="91500;1;0" chance="80" />
А вот как это выглядит в клиенте:
Code:
upgradesystem_begin    upgrade_id=11412    type=2    upgrade_item={8680;12}    material_items={{1461;250};{91547;1}}    success_result_items={{6365;1;0}}    fail_result_items={{91500;1;0};{22221;1;0}}    bonus_items={}    commission=1000000    probability={80;20;0}    applycountry={-1}    upgradesystem_end
А вот ошибка из логов:
Code:
ERROR EquipmentUpgradeParser: Invalid material_items format for upgrade_id 11412: 1461;250,91547;1
Извини, конечно, но это реально раздражает. Когда косячишь ты, а крайними оказываются другие — это, мягко говоря, несправедливо.
 
  • Like
Reactions: aly
Скажи, пожалуйста, зачем ты умничаешь и выставляешь всех дураками? Обновление было 7 дней назад, я написал 3 дня назад — не просто так.
Может, ты наконец посмотришь и поймёшь, что у тебя не работает то, что здесь описано, и соизволишь внести ясность?
Вот пример из твоего xml-файла:
Code:
<equipment_upgrade upgrade_id="11412" type="UPGRADE_COMMON_ITEMS_TO_S_GRADE" upgrade_item="8680;12" material_items="1461;250" commission="1000000" result_item="6365;1;0" fail_result_items="91500;1;0" chance="80" />
А вот как это выглядит в клиенте:
Code:
upgradesystem_begin    upgrade_id=11412    type=2    upgrade_item={8680;12}    material_items={{1461;250};{91547;1}}    success_result_items={{6365;1;0}}    fail_result_items={{91500;1;0};{22221;1;0}}    bonus_items={}    commission=1000000    probability={80;20;0}    applycountry={-1}    upgradesystem_end
А вот ошибка из логов:
Code:
ERROR EquipmentUpgradeParser: Invalid material_items format for upgrade_id 11412: 1461;250,91547;1
Извини, конечно, но это реально раздражает. Когда косячишь ты, а крайними оказываются другие — это, мягко говоря, несправедливо.
ну так и говори - проблема такая то. ты просто - ой а обновы нет
 
ну так и говори - проблема такая то. ты просто - ой а обновы нет
Я ведь дважды задал вопрос — и не просто так. Я не флудил, а ждал, когда проблему исправят.
Какой смысл каждый день спамить уточнениями, если в итоге ты просто ответишь в духе: «Не доставайте, задач много, а я ещё и на вас время трачу»?
Можно же было хотя бы уточнить, что именно не работает и почему я дублирую вопрос — вместо того чтобы просто кинуть в ответ обнову. Я ещё 1-го числа проверил. Человек тогда уже отписал, что оно не работает, ты ему ответил, что "перезалил". Я сделал вывод, что это обновление было только для Classic-ветки, а для Legacy — ещё в процессе.
С таким же успехом можно каждый день писать: «что там по TimeZone?» и апать её, но от этого оно быстрее не пофиксится. Если ты заходишь и каждый день видишь, что тебя снова квотят, то да, это тратит время. Но и отвечать людям с раздражением типа «ждите, задолбали» — тоже, мягко говоря, не решение.
 
  • Like
Reactions: aly
Я ведь дважды задал вопрос — и не просто так. Я не флудил, а ждал, когда проблему исправят.
Какой смысл каждый день спамить уточнениями, если в итоге ты просто ответишь в духе: «Не доставайте, задач много, а я ещё и на вас время трачу»?
Можно же было хотя бы уточнить, что именно не работает и почему я дублирую вопрос — вместо того чтобы просто кинуть в ответ обнову. Я ещё 1-го числа проверил. Человек тогда уже отписал, что оно не работает, ты ему ответил, что "перезалил". Я сделал вывод, что это обновление было только для Classic-ветки, а для Legacy — ещё в процессе.
С таким же успехом можно каждый день писать: «что там по TimeZone?» и апать её, но от этого оно быстрее не пофиксится. Если ты заходишь и каждый день видишь, что тебя снова квотят, то да, это тратит время. Но и отвечать людям с раздражением типа «ждите, задолбали» — тоже, мягко говоря, не решение.
я не ванга что бы чувствовать твои мысли и намеки и хорош оффтопить в РАБОЧЕЙ теме!
Есть проблемы - пиши! Тикеты !!!
 
<equipment_upgrade upgrade_id="2" upgrade_item="48277;0" material_items="40000;10,4037;5" commission="50000" result_item="48278;0" chance="50" />
do not have fail resunts.

Tell me please, why are you being smart and making everyone look like fools? The update was 7 days ago, I wrote it 3 days ago - for a reason.
Maybe you will finally take a look and understand that what is described here does not work for you, and deign to clarify?
Here is an example from your xml file:
Code:
<equipment_upgrade upgrade_id="11412" type="UPGRADE_COMMON_ITEMS_TO_S_GRADE" upgrade_item="8680;12" material_items="1461;250,91547;1" commission="1000000" result_item="6365;1;0" fail_result_items="91500;1;0" chance="80" />
And here's how it looks in the client:
Code:
upgradesystem_begin    upgrade_id=11412    type=2    upgrade_item={8680;12}    material_items={{1461;250};{91547;1}}    success_result_items={{6365;1;0}}    fail_result_items={{91500;1;0};{22221;1;0}}    bonus_items={}    commission=1000000    probability={80;20;0}    applycountry={-1}    upgradesystem_end
And here is the error from the logs:
Code:
ERROR EquipmentUpgradeParser: Invalid material_items format for upgrade_id 11412: 1461;250,91547;1
Sorry, of course, but it's really annoying. When you screw up and others end up being the ones to blame, it's unfair, to put it mildly.
 
Back
Top