1. Общая информация о системе OneDayReward
Включить систему (по умолчанию выключена): gameserver/config/events.properties
OneDayRewardSystem = True
Система OneDayReward позволяет создавать награды, которые игроки получают за выполнение определенных условий. Награды настраиваются через XML-файл data/OneDayReward.xml на сервере и соответствующие файлы в игровом клиенте (например, OneDayReward_Classic-ru.dat для русской локализации). Каждое задание имеет:
2. Настройка наград в OneDayReward.xml
Файл data/OneDayReward.xml. Он определяет структуру наград. Вот пример настройки наград для достижения уровней и новых требований (PVP Points, Noblesse Conquest, Hero Conquest).
Пример XML для наград за уровни
Пример XML для новых требований:
Описание полей XML:
Для отображения наград в интерфейсе клиента нужно обновить файл GameClient\system\OneDayReward_Classic-ru.dat (или аналогичный для вашей локализации).
Пример записей для клиента:
Описание полей клиента:
Включить систему (по умолчанию выключена): 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: Количество предметов.
Для отображения наград в интерфейсе клиента нужно обновить файл 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: