L2Emu Enterprise Server   Партнеры:

Вернуться   L2Emu Enterprise Server > Общая категория > Общий форум

Ответ
 
Опции темы Опции просмотра
Старый 04.07.2011, 13:07   #1
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
Lightbulb Масс эвенты с версии High Five

Масс эвенты реализованны с версии High Five.
Эвенты написаны с нуля и принципиально отличаются от предыдущих версий и от всех сборок.
Это было сделано из-за того, что управление эвентами оставляло желать лучшего, сами реализации были зашиты в ГС, и ниодна сборка не содержит удобно написанных масс-эвентов.

Структура эвентов такова
1) Движок эвента
2) Инстанса эвента
3) Расписание эвента

Движок эвента содерджит описание главной админ команды эвента и частные случаи управления. На одном движке эвента можно создать любое кол-во инстанс этого типа с индивидуальными настройками и своим расписанием.
Инстанса эвента содержит команды, нпц и нпц для команд. Именно инстанса эвента обрабатывает все события в игре относительно чаров, нпц. Инстанса содержит базовые проверки возможности запуска по имеющимся данным.
Расписание эвента - задается на 1 рабочую неделю с днями недели 1-7, начиная с воскресенья (для календаря дни недели идут циклически один за другим). Для каждого дня задается абсолютное время начала эвента. Началом эвента является РЕГИСТРАЦИЯ на эвент. Раписание работает с абсолютным временем по времени сервера(физического компа) и не зависит от рестартов сервера. Расписание манипулирует конкретной инстансой эвента и не может быть привязано к другой инстансе.

Настройка и управление эвентами из игры однотипные, отличаются сами реализации эвентов.

Последний раз редактировалось Visor123; 18.03.2013 в 18:08.
Visor123 вне форума   Ответить с цитированием
Старый 04.07.2011, 13:25   #2
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
Lightbulb

Создание эвентов.

Настройка эвентов начинается с выбора движка эвента.
Доступные движки эвентов: 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".
При нажатии кнопки создать новый эвент вы сразу увидите эвент, его можно
  • Show - посмотреть/управлять
  • Edit - редактировать
  • Delete - удалить. Чтобы удалить эвент - нужно в поле ввода ввести символ "y"(англ.)

Движки эвентов также можно вызвать командами: //tvt //ctf //lhero

Все эвенты создаются подобным образом на странице движка.
Прим. Имена инстанс эвентов для одного типа эвента должны быть все разные.

Все инстансы эвента, если были сохранены Save на странице редактирования инстансы, всегда автоматически грузятся сервером при запуске.

Меню движка эвентов генерируется в ДП классом L2ManagementEventEngine.java. Все движки эвентов наследуются от этого класса. Меню можно менять в соответствующим движке - если вам это конечно нужно.

Все меню содержат копку Back для возврата на верхний/предыдущий уровень. Корневым уровнем меню является меню движков эвентов //events

Последний раз редактировалось Visor123; 03.10.2014 в 18:47.
Visor123 вне форума   Ответить с цитированием
Старый 04.07.2011, 13:49   #3
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
Lightbulb

Настройка эвента

Открывается кнопкой 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 в 21:46.
Visor123 вне форума   Ответить с цитированием
Старый 04.07.2011, 13:56   #4
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
Lightbulb

Настройка расписания эвента

Настройка расписания эвента открывается из управления инстансы эвента Show, далее кнопка Schedule


Вид расписания


Расписание создается автоматически при создании или загрузке эвента. Генерируемое расписание это 19:30 во все дни недели. Раписание создается не активным.
На распиании видно кол-во запусков в конкретный день недели и кнопка Edit напротив каждого дня, если расписание не активнои Show если активно.
Когда расписание активно то показывается сколько кол-во запусков на текущих день запланировано из общего кол-во в этот день через /

Ниже написаны задержки между жействиями, Teleport - от регистрации до телепорта, Start - между телепортом и стартом, Finish - между стартом и окончанием эвента.
Общее время рассчитывается как сумма всех этих задержек.
Соответственно кноками Edit напротив заржек их можно отрегулировать, если расписание не активно.

Для редактирования расписания на один день жмем Edit напротив нужного дня недели.

Вид редактирования и просмотра расписания даты недели.

Для добавления одного времени запуска нужно заполнить поля
  • Hour of day - час суток от 0 до 23
  • Minute - минуты в заданном часе 0-59 (секунды всегда 00)
И нажать кнопку Add new schedule - добавится соответственно 1 запуск эвента в конкретный день недели.
Расписание задается для 1 инстансы, его нельзя задать так чтобы время эвента перекрывалось, т.е. нельзя заставить 1 инстансу эвента проходить более одного раза в одно и тоже время.
Прим. Если вы хотите чтобы параллельно шли несколько одинаковых эвентов - создайте несколько инстанс эвентов и для них задайте расписание, для каждого по 1 штуке.

Удалить время запуска для конкретного дня можно кнопкой Del напротив нужного времени.

После редактирования расписание его нужно сохранить в базе данных кнопкой Save.

Для того чтобы работал автозапуск, нужно чтобы опция isActive была true, для этого жмем кнопку Switch - она включает и выключает активность расписания.
Если расписание активно - то на странице вы видите дату сброса/зарузки задач на следующий день напротив ResetSchedule.
Это справочная информация, никакой другой нагрузки не несет.
Раписание создает задачи запуска эвента на текущие сутки, при переходе суток расписание очищает задачи и создает задачи на новые сутки и т.д.
Чтобы изменить включенное(активированное) расписание - нужно сначала его выключить Switch , изменить, а потом включить Switch.

Если расписание задано и не активировано - эвент не будет запускаться автоматически.

Последний раз редактировалось Visor123; 27.08.2011 в 18:08.
Visor123 вне форума   Ответить с цитированием
Старый 04.07.2011, 14:27   #5
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
Lightbulb

Запуск эвента/ручное управление эвентом.

Открывается кнопкой Show для инстансы эвента.

В этом меню можно перейти к редактированию Edit и расписанию Schedule
Прим. редактировать запущенный эвент нельзя, нужно его выключить предварительно, иначе это может вызвать коллизии для игроков.

EventState - текущее состояние эвента, вы его можете видеть как при ручном так и при автоматическом запуске инстансы эвента.
  • IDLE - эвент не запущен
  • JOINING - идет регистрация на эвент
  • TELEPORTING - идет телепортация на эвент. В этом состояние происходит разделение игроков, включение аур, спавн нпц команд(цтф), 10-секундное ожидание и телепортация в точки спавна команд. При телепорте чары автоматичсеки присаживаются и им не дает ничего делать (отключен каст, социальные действия, атака, движение). Если клиент сняли и заново зашли чаром - он автоматичсеки входит в состояние эвента и присаживается как и остальные игроки.
  • STARTING - эвент запущен. Команды находятся на стартовых позициях, чары не заблокированы(не сидят) и могут бегать. Если игрока выбило из игры или он сам снял клиент, а потом зашел в игру - он автоматически будет включен в эвент, если тот еще не закончился.
ValidEvent - если true - значить эвент может быть запущен. Автоматический запуск не запустит эвент, если валидация false. Вручную также эвент запустить нельзя. Это индикатор, его нельзя поменять вручную. Если для конкретного эвента задано достаточное кол-во данных то он пройдет валидацию.

Кнопки управления
  • Join - включается регистрация на эвент. Всем чарам, проходящим по уровню и не на трейде приходят приглашения на эвент.
  • Tele - включает режим телепортации, команды делятся и доставляются в точки старта
  • Start - разблокирует игроков, эвент идет
  • Abort - останавливает эвент, все нпц убираются, игроки доставляются в точку, где они приняли регистрацию на эвент. Эвент переходит в состояние IDLE, игроки не получают никаких призов.
  • Finish - заканчивает эвент. все нпц убираются, игроки доставляются в точку, где они приняли регистрацию на эвент. Эвент переходит в состояние IDLE, игроки получают призы.
  • Sit - принудительное усаживание игроков на землю на любой стадии эвента, кроме IDLE.
  • Stand - принудительный подъем игроков, если они принудительно сидели Sit.
  • Kick - удалить игрока с эвента, удаляется игрок по таргету ГМ-а. Игрок снимается с эвента и телепортируется в точку, где была принята регистрация.
Кнопки Tele напротив НПЦ и команд для телепорта ГМ-а в точки спавна.

Прим. Эвент запускается только последовательностью Join, Tele, Start
Прим. Эвент может быть остановлен Abort, Finish на любой стадии. Если эвент в состоянии IDLE - то он не останавливается, потому что он не идет.
Прим. время автоматического запуска эвента по расписанию начинается с Join

Последний раз редактировалось Visor123; 16.07.2011 в 12:06.
Visor123 вне форума   Ответить с цитированием
Старый 04.07.2011, 15:02   #6
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
Lightbulb

Для эвента Last Hero.
Эвент наиболее простой по логике работы.
Проходит строго в Колизее. Поэтому где заданы координаты команды - роли не играет.
Для эвента задается только одна команда.
В эвенте уже реализовано открытие/закрытие дверей Колизея.

Последний раз редактировалось Visor123; 04.07.2011 в 15:24.
Visor123 вне форума   Ответить с цитированием
Старый 04.07.2011, 15:23   #7
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
Lightbulb

Изменение эвентов.

Эвент-система предназначена только для массовых командных эвентов.

Все эвенты наследуются от базовых классов в ГС-е, но львиня доля логики эвентов лежит в датапаке в папке скриптов 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 в 12:11.
Visor123 вне форума   Ответить с цитированием
Старый 10.03.2012, 11:02   #8
Visor123
Администратор
 
Регистрация: 21.01.2009
Сообщений: 1,278
Visor123 отключил(а) отображение уровня репутации
По умолчанию

Эвенты стабильны.
Увеличено кол-во настроек - теперь они на 2 страницах (на одну все не поместились).
Добавлена настройка эвентов и инстанс - можно формировать пустую инстансу, можно из темплейта xml папке data/instances
Добавлены настройки ограничений функций коммунити на эвентах.
Добавлен набор призов для тех у кого включен Премиум-аккаунт.

Последний раз редактировалось Visor123; 10.03.2012 в 11:05.
Visor123 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 09:13.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot