![]() |
Партнеры:![]() |
![]() |
#1 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Масс эвенты реализованны с версии High Five.
Эвенты написаны с нуля и принципиально отличаются от предыдущих версий и от всех сборок. Это было сделано из-за того, что управление эвентами оставляло желать лучшего, сами реализации были зашиты в ГС, и ниодна сборка не содержит удобно написанных масс-эвентов. Структура эвентов такова 1) Движок эвента 2) Инстанса эвента 3) Расписание эвента Движок эвента содерджит описание главной админ команды эвента и частные случаи управления. На одном движке эвента можно создать любое кол-во инстанс этого типа с индивидуальными настройками и своим расписанием. Инстанса эвента содержит команды, нпц и нпц для команд. Именно инстанса эвента обрабатывает все события в игре относительно чаров, нпц. Инстанса содержит базовые проверки возможности запуска по имеющимся данным. Расписание эвента - задается на 1 рабочую неделю с днями недели 1-7, начиная с воскресенья (для календаря дни недели идут циклически один за другим). Для каждого дня задается абсолютное время начала эвента. Началом эвента является РЕГИСТРАЦИЯ на эвент. Раписание работает с абсолютным временем по времени сервера(физического компа) и не зависит от рестартов сервера. Расписание манипулирует конкретной инстансой эвента и не может быть привязано к другой инстансе. Настройка и управление эвентами из игры однотипные, отличаются сами реализации эвентов. Последний раз редактировалось Visor123; 18.03.2013 в 17:08. |
![]() |
![]() |
![]() |
#2 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Создание эвентов.
Настройка эвентов начинается с выбора движка эвента. Доступные движки эвентов: TvT(Team vs Team), CTF(Capture the Flag), LastHero(Last Hero), GvG(Group vs Group), DM(DeathMatch),MSiege(Mini Siege). Выбор движка можно вызвать командой //events ![]() ![]() Выбираем нужный движок (для примера TvT, остальные такие же): ![]() Изначально вы видите только поле для ввода и кнопку "Create New Event". Имя эвента должно состоять из 1 слова до 16 символов без пробелов. Например "Dion". При нажатии кнопки создать новый эвент вы сразу увидите эвент, его можно
Движки эвентов также можно вызвать командами: //tvt //ctf //lhero Все эвенты создаются подобным образом на странице движка. Прим. Имена инстанс эвентов для одного типа эвента должны быть все разные. Все инстансы эвента, если были сохранены Save на странице редактирования инстансы, всегда автоматически грузятся сервером при запуске. Меню движка эвентов генерируется в ДП классом L2ManagementEventEngine.java. Все движки эвентов наследуются от этого класса. Меню можно менять в соответствующим движке - если вам это конечно нужно. Все меню содержат копку Back для возврата на верхний/предыдущий уровень. Корневым уровнем меню является меню движков эвентов //events Последний раз редактировалось Visor123; 03.10.2014 в 17:47. |
![]() |
![]() |
![]() |
#3 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Настройка эвента
Открывается кнопкой Edit в меню движка эвента или Show из меню инстансы эвента. ![]() Description - описание локи, может быть 2 слова с пробелом. ShuffleTeams - true - регистрация в 1 команду, разделение на команды при телепорте рандомно. false - регистрация в ту команду, которая будет участвовать в эвенте без изменений. TeamPeaceZone - формировать при старте эвента мирную зону вокрут точки спавна команды, по дефолту это круг радиусом 200. Если false - то не делать мирной зоны. Минимальный/максимальный уровень/игроков - понятно. кнопка Add Npc - задать для ЭВЕНТА нпц, обычно регистрацию - задается ИД нпц. Нпц нужно настроить, прежде чем он будет работоспособным. Для TvT - 50010, для CTF - 50011, для LastHero - 50031 Когда Нпц создан - жмем для него Edit чтобы настроить его параметры ![]() Для регистрации тип нпц - 0. Тип 1(func) используется для тумбы и флага CTF. Для задания локации станьте там где должен стоять нпц и нажмите кнопку set напротив Coords. Для нпц достаточно задать только координаты, чтобы Нпц считался валидным и эвент мог запустится. Кнопка Tele для телепортации в точку спавна НПЦ. Далее задаются команды по ИМЕНИ кнопкой Add Team. Каждую команду нужно настроить в меню команды, нажав на кнопку Edit напротив конкретной команды эвента. ![]() Для команды обязательным является точка спавна. Задается по координатам ГМ того кто настраивает. Нужно стать в точку и нажать set напротив Coords Кнопка Tele для телепортации в точку спавна команды. Color - цвет ника чаров команды, если -1 не меняется. ColorAura - аура вокруг чара, если 0 то нету Прим. Для CTF нужно задание 2-х нпц для каждой команты, типов 1 и 2 - трон и флаг. Ид нпц я написал в классе инстансы CTF Призы: Призы можно добавлять напротив RewardInfo кнопкой Add Item по ИД итема - нужно в поле ввода написать ИД итема и через пробел его количество. Кол-во позиций неограничено. Расчет победителя прописан в ДП в классах инстанс эвента для конкретных эвентов, если вам нужно что-то поменять в логике определения победителя. Сохранение/загрузка эвента. Изменения в настройке эвента нужно обязательно сохранять вручную кнопкой Save. Данные об инстансе эвента сохраняются в таблице global_variables для всех эвентов. Если вы вручную поменяли что-то в таблице, то соответственно подгрузить в ГС можно кнопкой Load. Последний раз редактировалось Visor123; 23.11.2012 в 20:46. |
![]() |
![]() |
![]() |
#4 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Настройка расписания эвента
Настройка расписания эвента открывается из управления инстансы эвента Show, далее кнопка Schedule ![]() Вид расписания ![]() ![]() Расписание создается автоматически при создании или загрузке эвента. Генерируемое расписание это 19:30 во все дни недели. Раписание создается не активным. На распиании видно кол-во запусков в конкретный день недели и кнопка Edit напротив каждого дня, если расписание не активнои Show если активно. Когда расписание активно то показывается сколько кол-во запусков на текущих день запланировано из общего кол-во в этот день через / Ниже написаны задержки между жействиями, Teleport - от регистрации до телепорта, Start - между телепортом и стартом, Finish - между стартом и окончанием эвента. Общее время рассчитывается как сумма всех этих задержек. Соответственно кноками Edit напротив заржек их можно отрегулировать, если расписание не активно. Для редактирования расписания на один день жмем Edit напротив нужного дня недели. ![]() ![]() Вид редактирования и просмотра расписания даты недели. Для добавления одного времени запуска нужно заполнить поля
Расписание задается для 1 инстансы, его нельзя задать так чтобы время эвента перекрывалось, т.е. нельзя заставить 1 инстансу эвента проходить более одного раза в одно и тоже время. Прим. Если вы хотите чтобы параллельно шли несколько одинаковых эвентов - создайте несколько инстанс эвентов и для них задайте расписание, для каждого по 1 штуке. Удалить время запуска для конкретного дня можно кнопкой Del напротив нужного времени. После редактирования расписание его нужно сохранить в базе данных кнопкой Save. Для того чтобы работал автозапуск, нужно чтобы опция isActive была true, для этого жмем кнопку Switch - она включает и выключает активность расписания. Если расписание активно - то на странице вы видите дату сброса/зарузки задач на следующий день напротив ResetSchedule. Это справочная информация, никакой другой нагрузки не несет. Раписание создает задачи запуска эвента на текущие сутки, при переходе суток расписание очищает задачи и создает задачи на новые сутки и т.д. Чтобы изменить включенное(активированное) расписание - нужно сначала его выключить Switch , изменить, а потом включить Switch. Если расписание задано и не активировано - эвент не будет запускаться автоматически. Последний раз редактировалось Visor123; 27.08.2011 в 17:08. |
![]() |
![]() |
![]() |
#5 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Запуск эвента/ручное управление эвентом.
Открывается кнопкой Show для инстансы эвента. ![]() В этом меню можно перейти к редактированию Edit и расписанию Schedule Прим. редактировать запущенный эвент нельзя, нужно его выключить предварительно, иначе это может вызвать коллизии для игроков. EventState - текущее состояние эвента, вы его можете видеть как при ручном так и при автоматическом запуске инстансы эвента.
Кнопки управления
Прим. Эвент запускается только последовательностью Join, Tele, Start Прим. Эвент может быть остановлен Abort, Finish на любой стадии. Если эвент в состоянии IDLE - то он не останавливается, потому что он не идет. Прим. время автоматического запуска эвента по расписанию начинается с Join Последний раз редактировалось Visor123; 16.07.2011 в 11:06. |
![]() |
![]() |
![]() |
#6 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Для эвента Last Hero.
Эвент наиболее простой по логике работы. Проходит строго в Колизее. Поэтому где заданы координаты команды - роли не играет. Для эвента задается только одна команда. В эвенте уже реализовано открытие/закрытие дверей Колизея. Последний раз редактировалось Visor123; 04.07.2011 в 14:24. |
![]() |
![]() |
![]() |
#7 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Изменение эвентов.
Эвент-система предназначена только для массовых командных эвентов. Все эвенты наследуются от базовых классов в ГС-е, но львиня доля логики эвентов лежит в датапаке в папке скриптов massevents Все менюшки управления эвентами реализованы в классах датапака L2ManagementEventEngine.java и L2ManagementEventEngineInstance.java - все движки и инстансы движков должны наследоваться только от этих классов - иначе вы не сможете управлять ими из игры. Разобравшись с моделью работы эвентов можно добавлять без проблем свои эвенты и они сразу будут управлятся как и эти три. Сама логика в эвенте меняется в пекрытых методах базовых классов, их всего 4 L2EventEngineInstance L2EventPlayer L2EventTeam L2EventSpawn Написанные классы обязательно регистрировать в движке, иначе ГС не поймет какой именно класс эвента ему использовать при создании объекта и будет использован дефолтный класс, а не тот который нужен по эвенту. Пример для CTF (регистрация в классе L2CTFEngine.java) //example: default base class registered //change to custom event classes //setEventInstanceClass(L2EventEngineInstance.class) ; //setEventPlayerClass(L2EventPlayer.class); //setEventTeamClass(L2EventTeam.class); //setEventSpawnClass(L2EventSpawn.class); setEventInstanceClass(L2CTFEngineInstance.class); - реализация эвента setEventPlayerClass(L2CTFPlayer.class); - реализация изменений в методах работы с игроком setEventSpawnClass(L2CTFSpawn.class); - реализация изменений работы с нпц Класс расписания самодостаточен, поэтому для него не сделан вход для перекрытия классов. Работы с ДП java http://l2emu-enterprise.net/showthread.php?t=997 Для более подробного изучения работы эвентов нужно сначало изучить как работает то что уже сделано, и если не понятно как что-то поменять - написать либо на форуме, либо мне по аське. Последний раз редактировалось Visor123; 16.07.2011 в 11:11. |
![]() |
![]() |
![]() |
#8 |
Администратор
Регистрация: 21.01.2009
Сообщений: 1,283
![]() |
![]()
Эвенты стабильны.
Увеличено кол-во настроек - теперь они на 2 страницах (на одну все не поместились). Добавлена настройка эвентов и инстанс - можно формировать пустую инстансу, можно из темплейта xml папке data/instances Добавлены настройки ограничений функций коммунити на эвентах. Добавлен набор призов для тех у кого включен Премиум-аккаунт. Последний раз редактировалось Visor123; 10.03.2012 в 10:05. |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|