Путь: gameserver\data\zone
Формат: XML, CronTab
И так начнем что же это такое! Данная система предназначена для реализации множества идей при реализации внутриигровых событий. Как пример в определенное время включается зона с флагом pvp или любым другим и спаунить мобов в этой зоне или же просто активировать зону. Так же как пример будет приведена более сложный ивент - отключить мирные зоны в Глудио и включение ПвП зон и заселение ее мобами на период активности данной зоны и делать при этом анонс запуска зоны и ее коллапсе. Простыми словами - активируем зону, спауним мобов по таймеру крона и так же с его помощью деактивировать зоны и спаун.
И так поехали с самого простого варианта:
В данном варианте мы активируем зону пвп зону баюма в 19:00 и выключаем ее в 20:00 при этом внутри зоны мы делаем спаун [cron_spawn] группы из data/spawn, так же делаем анонс о включении зоны и ее отключении. Теперь рассматриваем детально:
name="[baium_epic_fun]" - сама зона с которой мы работаем. ВАЖНО* имена зон не должны совпадать!
<set name="enabled" val="false" /> - в нашем примере зона выключена по умолчанию и включиться только по таймеру.
<set name="cronZoneEnablePattern" val="0 19 * * *" /> - параметр отвечает за активацию зоны в нужное нам время. Формат CronTab - как составить его https://crontab.guru/
<set name="cronZoneDisablePattern" val="0 20 * * *" /> - параметр отвечает за деактивацию зоны в нужное нам время. Формат CronTab - как составить его https://crontab.guru/
<set name="cronZoneEnableBroadcastSpawnEvent" val="[cron_spawn]" /> - Спаун лист который будет активирован при включении зоны event_name="[cron_spawn]" или любое другое название
<set name="cronZoneDisableBroadcastDespawnEvent" val="[cron_spawn]" /> - Спаун лист который будет деактивирован при включении зоны event_name="[cron_spawn]" или любое другое название
<set name="cronZoneEnableAnnounceCustomMessage" val="voicedcommandhandlers.Debug.Enabled" /> - Анонс который будет происходить при активации. Находиться в data/strings
<set name="cronZoneDisableAnnounceCustomMessage" val="voicedcommandhandlers.Debug.Disabled" /> - Анонс который будет происходить при деактивации. Находиться в data/strings
ВАЖНО* Та же не обязательно в зоне использовать все параметры, допустим вы не указываете анонс - его не будет. Допустим вы не указываете спаун в зоне - его не будет. Не обязательно это указывать, обязательными являются или cronZoneEnablePattern или cronZoneDisablePattern
Сам пример спауна:
2) Теперь рассматриваем более сложный вариант, пристегните ремни. Мы делаем полную деактивацию мирных зон в городе Глудио, делаем ее ПвП зоной, деспауним мирных НПЦ и спауним Мобов. Потом включаем мирную зону, отключаем мобов и спауним мирных НПЦ.
И все это будет начинаться в 16:00 и заканчиваться в 16:30.
В городе Глудио есть 2 зоны которые расчерчивают ее [guldiocastle_town_peace1] и [guldiocastle_town_peace2] и так мы их отключаем на период нашего ивента и выключаем по истечению
<set name="cronZoneDisablePattern" val="0 16 * * *" /> - выключаем мирную зоны [guldiocastle_town_peace1] и [guldiocastle_town_peace2]
<set name="cronZoneEnablePattern" val="31 16 * * *" /> - включаем мирную зоны [guldiocastle_town_peace1] и [guldiocastle_town_peace2]
Деспауним всех мирных НПЦ - и тут начинаются пируэты, нам необходимо собрать всех мирных НПЦ в одну группу и назначим ей в спауне event_name="[gludio_peace_npc]"
По окончанию анонсируем о том что ивент закончился - в data/strings добавляем строку zone_gludio_pvp.Disable=Город Глудо стал мирным!
Пример:
Теперь нам нужно активировать ПвП зону вместо выключенных мирных зон:
<set name="cronZoneEnablePattern" val="1 16 * * *" /> - включаем пвп зоны [guldiocastle_town_pvp1] и [guldiocastle_town_pvp2]
<set name="cronZoneEnablePattern" val="31 16 * * *" /> - включаем мирную зоны [guldiocastle_town_pvp1] и [guldiocastle_town_pvp2]
Спауним всех мобов - создаем свою группу с мобами спауне event_name="[gludio_pvp_mobs]"
Аннонсируем о том что ивент начался - в data/strings добавляем строку zone_gludio_pvp.Enable=Город Глудо стал не безопасным! Сразитесь с монстрами и игроками за награду
Теперь весь набор параметров:
"cronZoneEnablePattern" - когда будет включена зона по крону. Пример <set name="cronZoneEnablePattern" val="0 18 * * *" />
"cronZoneEnableBroadcastSpawnEvent" - какой ивент спаунить при активации <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_peace_npc]" />
"cronZoneEnableBroadcastDespawnEvent" - какой ивент деспаунить при активации <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_pvp_mobs]" />
"cronZoneEnableAnnounceCustomMessage" - что мы анонсируем при включении зоны <set name="cronZoneEnableAnnounceCustomMessage" val="zone_gludio_pvp.Enable" />
"cronZoneDisablePattern" - когда будет выключена зона по крону. Пример <set name="cronZoneEnablePattern" val="0 19 * * *" />
"cronZoneDisableBroadcastSpawnEvent" - какой ивент деспаунить при отключении зоны <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_peace_npc]" />
"cronZoneDisableBroadcastDespawnEvent"" - какой ивент деспаунить отключении зоны <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_pvp_mobs]" />
"cronZoneDisableAnnounceCustomMessage" " - что мы анонсируем отключении зоны <set name="cronZoneEnableAnnounceCustomMessage" val="zone_gludio_pvp.Disable" />
Вся система ограничена только лишь вашей фантазии, при помощи данного инструмента вы можете делать любые игровые ивенты, активировать зоны и спаун, ротировать зоны по своему и все что вам прийдет на ум.
Формат: XML, CronTab
И так начнем что же это такое! Данная система предназначена для реализации множества идей при реализации внутриигровых событий. Как пример в определенное время включается зона с флагом pvp или любым другим и спаунить мобов в этой зоне или же просто активировать зону. Так же как пример будет приведена более сложный ивент - отключить мирные зоны в Глудио и включение ПвП зон и заселение ее мобами на период активности данной зоны и делать при этом анонс запуска зоны и ее коллапсе. Простыми словами - активируем зону, спауним мобов по таймеру крона и так же с его помощью деактивировать зоны и спаун.
И так поехали с самого простого варианта:
В данном варианте мы активируем зону пвп зону баюма в 19:00 и выключаем ее в 20:00 при этом внутри зоны мы делаем спаун [cron_spawn] группы из data/spawn, так же делаем анонс о включении зоны и ее отключении. Теперь рассматриваем детально:
name="[baium_epic_fun]" - сама зона с которой мы работаем. ВАЖНО* имена зон не должны совпадать!
<set name="enabled" val="false" /> - в нашем примере зона выключена по умолчанию и включиться только по таймеру.
<set name="cronZoneEnablePattern" val="0 19 * * *" /> - параметр отвечает за активацию зоны в нужное нам время. Формат CronTab - как составить его https://crontab.guru/
<set name="cronZoneDisablePattern" val="0 20 * * *" /> - параметр отвечает за деактивацию зоны в нужное нам время. Формат CronTab - как составить его https://crontab.guru/
<set name="cronZoneEnableBroadcastSpawnEvent" val="[cron_spawn]" /> - Спаун лист который будет активирован при включении зоны event_name="[cron_spawn]" или любое другое название
<set name="cronZoneDisableBroadcastDespawnEvent" val="[cron_spawn]" /> - Спаун лист который будет деактивирован при включении зоны event_name="[cron_spawn]" или любое другое название
<set name="cronZoneEnableAnnounceCustomMessage" val="voicedcommandhandlers.Debug.Enabled" /> - Анонс который будет происходить при активации. Находиться в data/strings
<set name="cronZoneDisableAnnounceCustomMessage" val="voicedcommandhandlers.Debug.Disabled" /> - Анонс который будет происходить при деактивации. Находиться в data/strings
ВАЖНО* Та же не обязательно в зоне использовать все параметры, допустим вы не указываете анонс - его не будет. Допустим вы не указываете спаун в зоне - его не будет. Не обязательно это указывать, обязательными являются или cronZoneEnablePattern или cronZoneDisablePattern
XML:
<zone name="[baium_epic_fun]" type="fun" >
<set name="enabled" val="false" />
<set name="cronZoneEnablePattern" val="0 19 * * *" />
<set name="cronZoneDisablePattern" val="0 20 * * *" />
<set name="cronZoneEnableBroadcastSpawnEvent" val="[cron_spawn]" />
<set name="cronZoneDisableBroadcastDespawnEvent" val="[cron_spawn]" />
<set name="cronZoneEnableAnnounceCustomMessage" val="voicedcommandhandlers.Debug.Enabled" />
<set name="cronZoneDisableAnnounceCustomMessage" val="voicedcommandhandlers.Debug.Disabled" />
<polygon>
<coords loc="116616 17576 10032 10232" />
<coords loc="117064 16552 10032 10232" />
<coords loc="117032 15592 10032 10232" />
<coords loc="116664 14632 10032 10232" />
<coords loc="116024 14008 10032 10232" />
<coords loc="115128 13640 10032 10232" />
<coords loc="114136 13624 10032 10232" />
<coords loc="113256 13992 10032 10232" />
<coords loc="112568 14664 10032 10232" />
<coords loc="112216 15592 10032 10232" />
<coords loc="112216 16552 10032 10232" />
<coords loc="112600 17432 10032 10232" />
<coords loc="113288 18120 10032 10232" />
<coords loc="114152 18472 10032 10232" />
<coords loc="115144 18488 10032 10232" />
<coords loc="116152 18024 10032 10232" />
</polygon>
</zone>
Сам пример спауна:
XML:
<spawn name="[custom_spawn]" event_name="[cron_spawn]">
<npc id="20001" count="1" respawn="60" pos="114856 16616 10080 38521" />
<npc id="20001" count="1" respawn="60" pos="114636 16443 10080 40014" />
<npc id="20001" count="1" respawn="60" pos="114504 16168 10080 46038" />
<npc id="20001" count="1" respawn="60" pos="114520 16040 10080 50449" />
<npc id="20001" count="1" respawn="60" pos="114616 15944 10080 3355" />
<npc id="20001" count="1" respawn="60" pos="114877 16012 10080 1875" />
<npc id="20001" count="1" respawn="60" pos="115024 16105 10080 7805" />
<npc id="20001" count="1" respawn="60" pos="115278 16421 10080 5636" />
<npc id="20001" count="1" respawn="60" pos="115416 16200 10080 46871" />
<npc id="20001" count="1" respawn="60" pos="115328 16074 10080 40959" />
</spawn>
2) Теперь рассматриваем более сложный вариант, пристегните ремни. Мы делаем полную деактивацию мирных зон в городе Глудио, делаем ее ПвП зоной, деспауним мирных НПЦ и спауним Мобов. Потом включаем мирную зону, отключаем мобов и спауним мирных НПЦ.
И все это будет начинаться в 16:00 и заканчиваться в 16:30.
В городе Глудио есть 2 зоны которые расчерчивают ее [guldiocastle_town_peace1] и [guldiocastle_town_peace2] и так мы их отключаем на период нашего ивента и выключаем по истечению
<set name="cronZoneDisablePattern" val="0 16 * * *" /> - выключаем мирную зоны [guldiocastle_town_peace1] и [guldiocastle_town_peace2]
<set name="cronZoneEnablePattern" val="31 16 * * *" /> - включаем мирную зоны [guldiocastle_town_peace1] и [guldiocastle_town_peace2]
Деспауним всех мирных НПЦ - и тут начинаются пируэты, нам необходимо собрать всех мирных НПЦ в одну группу и назначим ей в спауне event_name="[gludio_peace_npc]"
По окончанию анонсируем о том что ивент закончился - в data/strings добавляем строку zone_gludio_pvp.Disable=Город Глудо стал мирным!
Пример:
XML:
<zone name="[guldiocastle_town_peace1]" type="peace_zone" >
<set name="cronZoneDisablePattern" val="0 16 * * *" />
<set name="cronZoneEnablePattern" val="31 16 * * *" />
<set name="cronZoneDisableBroadcastDespawnEvent" val="[gludio_peace_npc]" />
<set name="cronZoneDisableAnnounceCustomMessage" val="zone_gludio_pvp.Disable" />
<polygon>
<coords loc="-11998 123905 -3245 -2745" />
<coords loc="-12880 126192 -3245 -2745" />
<coords loc="-13928 126485 -3245 -2745" />
<coords loc="-14408 126484 -3245 -2745" />
<coords loc="-15239 126174 -3245 -2745" />
<coords loc="-16120 125367 -3245 -2745" />
<coords loc="-16551 124468 -3245 -2745" />
<coords loc="-16550 123911 -3245 -2745" />
<coords loc="-16509 123323 -3245 -2745" />
<coords loc="-14638 122381 -3245 -2745" />
<coords loc="-12022 122270 -3245 -2745" />
</polygon>
</zone>
<zone name="[guldiocastle_town_peace2]" type="peace_zone" >
<set name="cronZoneDisablePattern" val="0 16 * * *" />
<set name="cronZoneEnablePattern" val="30 16 * * *" />
<polygon>
<coords loc="-14956 121115 -3156 -2656" />
<coords loc="-12670 121093 -3156 -2656" />
<coords loc="-12021 121755 -3156 -2656" />
<coords loc="-12019 123005 -3156 -2656" />
<coords loc="-15400 123009 -3156 -2656" />
</polygon>
</zone>
Теперь нам нужно активировать ПвП зону вместо выключенных мирных зон:
<set name="cronZoneEnablePattern" val="1 16 * * *" /> - включаем пвп зоны [guldiocastle_town_pvp1] и [guldiocastle_town_pvp2]
<set name="cronZoneEnablePattern" val="31 16 * * *" /> - включаем мирную зоны [guldiocastle_town_pvp1] и [guldiocastle_town_pvp2]
Спауним всех мобов - создаем свою группу с мобами спауне event_name="[gludio_pvp_mobs]"
Аннонсируем о том что ивент начался - в data/strings добавляем строку zone_gludio_pvp.Enable=Город Глудо стал не безопасным! Сразитесь с монстрами и игроками за награду
XML:
<zone name="[guldiocastle_town_pvp1]" type="battle_zone" >
<set name="cronZoneEnablePattern" val="1 16 * * *" />
<set name="cronZoneDisablePattern" val="30 16 * * *" />
<set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_pvp_mobs]" />
<set name="cronZoneEnableAnnounceCustomMessage" val="zone_gludio_pvp.Enable" />
<polygon>
<coords loc="-11998 123905 -3245 -2745" />
<coords loc="-12880 126192 -3245 -2745" />
<coords loc="-13928 126485 -3245 -2745" />
<coords loc="-14408 126484 -3245 -2745" />
<coords loc="-15239 126174 -3245 -2745" />
<coords loc="-16120 125367 -3245 -2745" />
<coords loc="-16551 124468 -3245 -2745" />
<coords loc="-16550 123911 -3245 -2745" />
<coords loc="-16509 123323 -3245 -2745" />
<coords loc="-14638 122381 -3245 -2745" />
<coords loc="-12022 122270 -3245 -2745" />
</polygon>
</zone>
<zone name="[guldiocastle_town_pvp2]" type="battle_zone" >
<set name="cronZoneEnablePattern" val="1 16 * * *" />
<set name="cronZoneDisablePattern" val="30 16 * * *" />
<polygon>
<coords loc="-14956 121115 -3156 -2656" />
<coords loc="-12670 121093 -3156 -2656" />
<coords loc="-12021 121755 -3156 -2656" />
<coords loc="-12019 123005 -3156 -2656" />
<coords loc="-15400 123009 -3156 -2656" />
</polygon>
</zone>
Теперь весь набор параметров:
"cronZoneEnablePattern" - когда будет включена зона по крону. Пример <set name="cronZoneEnablePattern" val="0 18 * * *" />
"cronZoneEnableBroadcastSpawnEvent" - какой ивент спаунить при активации <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_peace_npc]" />
"cronZoneEnableBroadcastDespawnEvent" - какой ивент деспаунить при активации <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_pvp_mobs]" />
"cronZoneEnableAnnounceCustomMessage" - что мы анонсируем при включении зоны <set name="cronZoneEnableAnnounceCustomMessage" val="zone_gludio_pvp.Enable" />
"cronZoneDisablePattern" - когда будет выключена зона по крону. Пример <set name="cronZoneEnablePattern" val="0 19 * * *" />
"cronZoneDisableBroadcastSpawnEvent" - какой ивент деспаунить при отключении зоны <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_peace_npc]" />
"cronZoneDisableBroadcastDespawnEvent"" - какой ивент деспаунить отключении зоны <set name="cronZoneEnableBroadcastSpawnEvent" val="[gludio_pvp_mobs]" />
"cronZoneDisableAnnounceCustomMessage" " - что мы анонсируем отключении зоны <set name="cronZoneEnableAnnounceCustomMessage" val="zone_gludio_pvp.Disable" />
Вся система ограничена только лишь вашей фантазии, при помощи данного инструмента вы можете делать любые игровые ивенты, активировать зоны и спаун, ротировать зоны по своему и все что вам прийдет на ум.
Last edited: