Всем привет!
PvP-ивенты один из немногих типов ивентов, которые можно физически организовать на сервере, и они пользуются некоторой популярностью. По крайней мере, иногда кто-то пытается их провести. Но постоянно проведение таких мероприятий усложняется различными трудностями из-за отсутствия технической поддержки. В общем, мне тут в голову пришло несколько идей, как можно облегчить жизнь организаторов ивентов (может быть не только PvP), а может и популяризировать ивенты на ГК.
Сначала несколько пунктов:
1. Это ни как не связано с Большим Планом™. И я бы не хотела уделять много времени этой системе, иначе она помешает нашим планам. Однако, подобное в планах уже давно, так что сделано это должно быть...
2. Тема создана для критики идеи и внесения предложений игроками. А так же, самое важное, для оценки необходимости ввода такой системы вообще. Потому что если это никому не нужно, я не буду тратить на это время.
3. Чем подробнее будет проработана идея, тем проще будет сделать её техническую реализацию. В идеале проработать её на столько, чтобы можно было сделать её за неделю. Если какие-то части идеи будут слишком сложные, они будут исключены в угоду трудозатрам.
4. Как минимум неделю тема будет висеть. После этого я окину всё это взглядом, подумаю над тем, как сложно это сделать, и если идея готова, пойду её пилить. Если нет, то либо она будет оставлена тут вариться далее, либо будет заброшена.
5. Цель идеи - разнообразить время на ГК, пока мы пилим Большой План™.
Спасибо всем, кто поучаствует в дискуссии.
В кратце: Ты создаёшь ивент, создаёшь в нём команды или ffa, игроки вступают в команды, ты их утверждаешь, и когда ивент начинается только игроки из противоположных команд могут друг друга атаковать. + много мелочей типа раздачи шмота, шмот у всех игроков одинаковый всегда и сменить нельзя, респавн, подсчет смертей и убийств, анонсы в PvP-канал и т.д.
Подробности:Создание ивента:Ивент создаётся командой (вероятно, /event create <name>). В ответ приходит уникальный id ивента. Свои ивенты можно посмотреть командой (/event list). Регистрация ивента стоит зелени, при чём довольно много, чтобы не зафлуживали базу. Но один ивент можно будет проводить сколько угодно раз
Все ивенты открыты и их можно посмотреть в списке (/event list). Ивенту можно задать описание.
Создание турнираВ рамках одного ивента может проводиться несколько турниров. То есть, один ивент можно провести скольку угодно раз. Новый турнир начинается командой (/event tournament <eventId> <name> <dm|tdm>). Если в ивенте есть активный турнир, новый не будет создан. Турнир должен быть сначала завершен. dm и tdm — режим проведения. Death Match (каждый сам за себя) и Team Death Match, соответственно. Возможно, будут другие.
Создание командыНовая команда добавляется командой (тафталогия... /event team add <eventId> <tag> <color> <name>). tag - тег команды из максимум 5 английских букв, используется как ID этой команды. color - номер цвета из фиксированной таблицы цветов. Цвет используется в сообщениях в чате и в цвете ника во время проведения турнира. Удаление команды (/event team remove <eventId> <tag>), редактирование (/event team edit <eventId> <tag> <newTag> <color> <name>).
Вступление в командуЗаявка в команду подаётся командой (/event part <eventId> <tag>). Игрок может переподать заявку, пока она не была принята. Заявка принимается командой (/event accept <eventId> <player>), список заявок и участников ивента (/event requests <eventId>) и (/event team list <eventId> <tag>). Отклонить — (/event decline <eventId> <player>). Отказаться (/event unpart <eventId>).
Начало ивентаИвент начинается командой (/event start <eventId> [timeInMinutes]). Ивент длиться до конца указанного времени (в минутах), до лимита (3 часа) или до выполнения условий (это дальше).
Регион ивентаРегиону может быть (или должен быть, не знаю) назначен регион. (/event region <eventId> <region>). У создателя ивента должен быть full в регионе. Если участники ивента во время ивента не находятся в этом регионе или АФК-шат, им начисляется штрафное время. Если штрафного времени более 10% от времени турнира, создатель ивента увидит этот процент в конце ивента.
Организация командыКаждой команде может быть задана организация (/event team org <eventId> <teamTag> <org>). В начале ивента все игроки из команды вступают в эту организацию и получают права в регионах и сундуках организации. В конце ивента они из неё исключаются.
РеспавнИгроки могут респавнится, если это разрешено. (/event respawn region <eventId> <teamTag> <region>) задаёт регион респавна для команды. Регион должен быть как минимум 5х5х5 и не содержать блоков. В противном случае, игрок появится на хоуме после смерти. (/event respawn count <eventId> <teamTag> <count>) задаёт число респавнов для каждого игрока в команде. -1 значит без ограничений, 0 значит без респавнов.
Статистика и анонсыВо время турнира смерти и убийства игроков записываются, каждый игрок и команда имеют счёт. Все анонсы производятся в PvP-канал игрокам, которые видят регион ивента. Создатель в любой момент можно посмотреть счёт всех команд (/event scoreboard <eventId>), счёт всех игроков в команде и их штрафное время (/event scoreboard <eventId> <teamTag>). Ивент может быть завершен командой (/event win <eventId> <winner>), где winner - игрок (для dm) или команда (для tdm). При этом будет анонс в PvP-канал и объявится счёт команд и счёт топ-игроков. У каждого ивента и турнира после проведения есть открытая статистика (/event info <eventId>) и (/event info <eventId> <tournamentId>), где показывается число участников, команд, зрителей (?), дата проведения, результат (победил RED со счётом 128:42).
Выбывание из ивентаКогда игрок выбывает из ивента (в конце, после истечения числа респавнов, при дисквалификации), он отправляется на хоум или на специальный регион (/event endregion <eventId>), требования к региону такие же как к региону респавна. PvP-статус игрока переходит в выключенное состояние.
РелогПри выходе из игры во время ивента, игроку начисляется штрафное время. Если он вошел после окончания ивента, но во время окончания его не было на сервере, он отправляется на хоум.
ХоумЕсли игрок отправился на хоум, то он покидает регион ивента и ему начисляется штрафное время.
Статистика игрокаКаждый игрок имеет открытую статистику (/event stat <player>). Выводится список ивентов, в которых участвовал игрок и турниров, результат (выиграл со счётом 0:100, был в проигравшей команде со счётом 0:10000) и штрафное время, если есть, а так же дисквалификации.
ВещиКоманда (/event team chest add <eventId> <tag>) привязывает сундук, по которому бьёт создатель, к указанной команде. (/event team chest remove) и удар отвязывает, (/event team chest info) выводит информацию о сундуке. После начала ивента каждый игрок получает предметы из одной из строк в сундуках команды (то есть максимум 9 предметов на 1 игрока). Предметы исчезают из сундука. Если кому-то не хватило, то он неудачник, а создатель ивента не рассчитал. Стыдно должно быть. Собственные предметы игрока скрываются на время ивента и он не может получить к ним доступ ни как. Выданные предметы нельзя выбросить или выложить, при смерти они не дропаются. Броня сама надевается на игрока, но может быть снята в инвентарь. При респавне набор предметов обновляется, даже если предмет сломался. После ивента все предметы возвращаются в сундуки с половиной прочности.
Проведение ивентаFF (дружественный огонь) во время ивента отключён. Игрок может наносить повреждения только игрокам другой команды или участникам ивента (при dm). У игрока над головой ник перекрашивается в цвет его команды.
Что ещё к этому стоит добавить:Я бы ещё хотела провести несколько экспериментов с формулами для брони и урона. Тут у меня есть идеи и я буду их пробовать потом.
Ченджлог:будет
Contributors:- Режим наблюдателя от BloodyAvenger:
https://forum.greencubes.org/viewtopic.php?f=25&t=26614ДИСКАЧ!