Настройка системы OneDayReward

1. Общая информация о системе OneDayReward

Включить систему (по умолчанию выключена)
: gameserver/config/events.properties
OneDayRewardSystem = True

Система OneDayReward позволяет создавать награды, которые игроки получают за выполнение определенных условий. Награды настраиваются через XML-файл data/OneDayReward.xml на сервере и соответствующие файлы в игровом клиенте (например, OneDayReward_Classic-ru.dat для русской локализации). Каждое задание имеет:
  • ID: Уникальный идентификатор награды.
  • Название и описание: Отображаются в интерфейсе игрока.
  • Требование: Условие для получения награды (например, достижение уровня, начисление PVP-очков).
  • Период сброса: Как часто награда доступна (однократно, ежедневно и т.д.).
  • Награды: Предметы, которые игрок получит за выполнение.

2. Настройка наград в OneDayReward.xml

Файл data/OneDayReward.xml. Он определяет структуру наград. Вот пример настройки наград для достижения уровней и новых требований (PVP Points, Noblesse Conquest, Hero Conquest).

Пример XML для наград за уровни
Code:
<one_day_reward>
    <id>24</id>
    <name>Reach Level (Lv. 2)</name>
    <description>After creating a character, if you reach Lv. 2 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>2</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="29651" count="5"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>25</id>
    <name>Reach Level (Lv. 3)</name>
    <description>After creating a character, if you reach Lv. 3 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>3</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="29651" count="10"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>26</id>
    <name>Reach Level (Lv. 4)</name>
    <description>After creating a character, if you reach Lv. 4 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>4</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="10650" count="5"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>27</id>
    <name>Reach Level (Lv. 5)</name>
    <description>After creating a character, if you reach Lv. 5 you can get a reward for that level once.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <obtain_level>5</obtain_level>
    </requirement>
    <reward_items>
        <reward_item id="70094" count="1"/>
    </reward_items>
</one_day_reward>

Пример XML для новых требований:
Code:
<one_day_reward>
    <id>101</id>
    <name>Earn PVP Points</name>
    <description>Earn 50 PVP points by defeating other players.</description>
    <reset_time>DAILY</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <pvp_points>50</pvp_points>
    </requirement>
    <reward_items>
        <reward_item id="57" count="100000"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>102</id>
    <name>Become Noblesse</name>
    <description>Become a Noblesse to receive this reward.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <noblesse_conquest/>
    </requirement>
    <reward_items>
        <reward_item id="57" count="200000"/>
    </reward_items>
</one_day_reward>
<one_day_reward>
    <id>103</id>
    <name>Become Hero</name>
    <description>Become a Hero to receive this reward.</description>
    <reset_time>SINGLE</reset_time>
    <distribution_type>SOLO</distribution_type>
    <requirement>
        <hero_conquest/>
    </requirement>
    <reward_items>
        <reward_item id="57" count="500000"/>
    </reward_items>
</one_day_reward>

Описание полей XML:
  • id: Уникальный номер награды. Не повторяйте ID в файле.
  • name: Название награды, отображается в интерфейсе.
  • description: Описание награды, отображается в интерфейсе.
  • reset_time: Период сброса награды:
    • SINGLE: Однократная награда.
    • DAILY: Сбрасывается ежедневно.
    • WEEKLY: Сбрасывается еженедельно.
    • MONTHLY: Сбрасывается ежемесячно.
  • distribution_type: Как распределяется награда в группе:
    • SOLO: Только для игрока.
    • PARTY_RANDOM: Случайному члену пати.
    • PARTY_ALL: Всем членам пати в радиусе.
  • requirement: Условие для получения награды. Поддерживаемые теги:
    • <obtain_level>X</obtain_level>: Достижение уровня X.
    • <kill_mob>X</kill_mob>: Убить X мобов.
    • <pvp_points>X</pvp_points>: Набрать X PVP-очков.
    • <noblesse_conquest/>: Стать Noblesse.
    • <hero_conquest/>: Стать Hero.
    • <kill_raid>: убить рейда
    • <enchant_item>: заточить предмет
    • <battle_in_castle_siege>: участие игрока в клан осаде
    • <fishing>: рыбалка
    • <login>: первый вход в игру
    • <join_clan>: вступить в клан
    • <battle_in_olympiad>: участвовать в олимпиаде
    • <win_in_olympiad>: победа в олимпиаде
    • <complete_quest>: завершить квест! Одноразовый, не повторяющийся.
  • reward_items: Список предметов для награды.
    • id: ID предмета (например, 57 для Adena).
    • count: Количество предметов.
3. Настройка игрового клиента
Для отображения наград в интерфейсе клиента нужно обновить файл GameClient\system\OneDayReward_Classic-ru.dat (или аналогичный для вашей локализации).
Пример записей для клиента:
Code:
onedayreward_begin    id=24    reward_id=1000    reward_name=[Reach Level (Lv. 2)]    reward_desc=[After creating a character, if you reach Lv. 2 you can get a reward for that level once.]    reward_period=[Obtain Level 2.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=2    can_condition_level={1;99;0}    can_condition_day={}    category=3    reward_item={{29651;5}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=25    reward_id=1001    reward_name=[Reach Level (Lv. 3)]    reward_desc=[After creating a character, if you reach Lv. 3 you can get a reward for that level once.]    reward_period=[Obtain Level 3.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=3    can_condition_level={2;99;0}    can_condition_day={}    category=3    reward_item={{29651;10}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=26    reward_id=1002    reward_name=[Reach Level (Lv. 4)]    reward_desc=[After creating a character, if you reach Lv. 4 you can get a reward for that level once.]    reward_period=[Obtain Level 4.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=4    can_condition_level={3;99;0}    can_condition_day={}    category=3    reward_item={{10650;5}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=27    reward_id=1003    reward_name=[Reach Level (Lv. 5)]    reward_desc=[After creating a character, if you reach Lv. 5 you can get a reward for that level once.]    reward_period=[Obtain Level 5.]    class_filter={-1}    reset_period=4    condition_count=0    condition_level=5    can_condition_level={4;99;0}    can_condition_day={}    category=3    reward_item={{70094;1}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=101    reward_id=2000    reward_name=[Earn PVP Points]    reward_desc=[Earn 50 PVP points by defeating other players.]    reward_period=[Earn 50 PVP Points.]    class_filter={-1}    reset_period=1    condition_count=50    condition_level=0    can_condition_level={1;99;0}    can_condition_day={}    category=2    reward_item={{57;100000}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=102    reward_id=2001    reward_name=[Become Noblesse]    reward_desc=[Become a Noblesse to receive this reward.]    reward_period=[Achieve Noblesse Status.]    class_filter={-1}    reset_period=4    condition_count=1    condition_level=0    can_condition_level={1;99;0}    can_condition_day={}    category=1    reward_item={{57;200000}}    targetloc_scale={}    onedayreward_end
onedayreward_begin    id=103    reward_id=2002    reward_name=[Become Hero]    reward_desc=[Become a Hero to receive this reward.]    reward_period=[Achieve Hero Status.]    class_filter={-1}    reset_period=4    condition_count=1    condition_level=0    can_condition_level={1;99;0}    can_condition_day={}    category=1    reward_item={{57;500000}}    targetloc_scale={}    onedayreward_end

Описание полей клиента:
  • id: Должен совпадать с id в OneDayReward.xml.
  • reward_id: Уникальный идентификатор для клиента (обычно id + смещение, например, 1000).
  • reward_name: Название награды, отображается в интерфейсе.
  • reward_desc: Описание награды.
  • reward_period: Краткое описание условия (для интерфейса).
  • class_filter: Фильтр по классам (-1 = доступно всем).
  • reset_period: Период сброса:
    • 1: Ежедневно.
    • 4: Однократно.
    • 2: Еженедельно.
    • 3: Ежемесячно.
  • condition_count: Количество для выполнения условия (например, 50 для PVP-очков, 1 для Noblesse/Hero).
  • condition_level: Требуемый уровень (0 для условий без уровня).
  • can_condition_level: Диапазон уровней, где награда доступна {min;max;0}.
  • can_condition_day: Дни, когда награда доступна (пусто = всегда).
  • category: Категория награды (1 = достижения, 2 = боевые, 3 = прогресс и т.д.).
  • reward_item: Список предметов {{item_id;count}}.
  • targetloc_scale: Координаты для событий с локацией (пусто для большинства наград)
 
Last edited:
Back
Top