Перейти к содержанию
Admin

ЦНС сервера или кодим сервер командными блоками

Рекомендуемые сообщения

YVoWfZql.png

 

Центральная Нервная Система сервера

Большой Брат следит за вами :)

 

41 5 138

 

Представляю вашему вниманию уникальную разработку!

Система, которая позволяет реализовать функции некоторых плагинов достаточно просто, компактно и без необходимости изменять её в новых версиях игры.

В этой теме я, наконец-то, постараюсь описать то, как именно функционирует наш сервер, и все те знания, которые у меня получилось накопить и реализовать, а также планы на будущее и новые невероятные идеи.

 

Данная система была придуманна для того, чтобы реализовать некоторые функции, которых не хватало в игре, но из-за того, что я не очень хорошо разбираюсь в программировании и не собирался тратить время на изучение всего и вся, что связано с модингом и кодингом игры...

Со временем, система сильно преобразилась, выросла и заметно обросла функционалом - а, ведь, внешне это выглядит не так очевидно, согласитесь?

Но, обо всём по порядку ))

 

Эта система имеет свои недостатки (ограниченность, вероятная просадка TPS и др.), но меня она полностью устраивает и воодушевляет вот уже почти 3 года безвайповой игры на одной и той же карте.

Система полностью построена на основе встроенных возможностей игры - на командных блоках и переменных.

 

Вот функции, которые она выполняет:

и, соответственно, таким образом заменяет некоторые плагины

 

 - ограничение прав новичков и разных типов игроков, а также запрет на использование некоторых предметов;

 - обработка смены ника;

 - защита/приват территорий игроков (частные охранные системы на основе стандартных ловушек игры - "сигнализации");

 - охрана важных общественных объектов;

 - система гильдий и навыков;

 - краткое пошаговое обучение новичков (эдакий "onboard");

 - контроль заключённых и автовыход из тюрьмы;

 - раздача покупных индивидуальных эффектов (за пожретвования/донат/бонусы);

 - выборочно исключает воздействие любых команд на администраторов;

 - контроль искусственных и естественных деревенских жителей;

 - увеличение силы мобов по ночам;

 - контроль перемещения игроков в режиме "наблюдение";

 - обеспечение равных условий для всех участников во время проведения ивентов;

 

 

Итак, перейдём к описанию каждого конкретного элемента.

Спойлер

 

Принцип действия:

Спойлер

 

Система состоит из:

 

 - генератор коротких импульсов/сигналов;

 - командные блоки;

 - проводка;

 - разъясняющие таблички;

 - дополнительные помещения в других частях карты;

 

Генератор представляет из себя стандартное устройство на воронках.

Их количество подбирается индивидуально так, чтобы всё срабатывало достаточно часто, но не слишком быстро - на нашем сервере это 6 закольцованных воронок, выдающих импульс примерно каждую секунду-две.

 

С помощью проводки к генератору подключены все командные блоки, в которых задаются необходимые условия управления игровым процессом.

Конкретные примеры будут расписаны в других частях этой статьи далее по тексту.

 

Сама система должна находиться в максимально безопасном месте, чтобы избежать несанкционированного проникновения других игроков, а также должна охранять саму себя :)

 

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

Такими отдельными элементами системы являются: автопрокачка в гильдии и выдача отдельных эффектов по утрам.

 

Также необходимо подписывать все элементы поясняющими табличками, во-первых, чтобы самому не запутаться, во-вторых, чтобы вашим помощникам было проще разобраться.

 

 

Основными недостатками системы являются:

 

 - ограниченность действия только миром, где она находится;

 - необходимость наличия игроков в районе нахождения системы;

 - ограниченный функционал из-за особенностей игры;

 - вероятная просадка как TPS всего сервера, так и отдельных чанков в районе расположения системы, особенно у игроков со слабым "железом";

 - относительная незащищённость системы от несанкционированного проникновения;

 - необходимость кодить всё ручками в игре и разбираться во всём досканально;

 - большая вероятность случайно что-нибудь уничтожить или совершить необратимую и неконтролируемую ошибку при внесении изменений;
 - сложность понимания принципов действия;

 - затролленная консоль сервера сообщениями командных блоков, а также гигантский лог сервера, если он не чистится автоматически;

 

 + иногда во время внесения/изменения команды в командный блок, туда "просачивается" непонятным образом какой-то невидимый символ, который можно заметить только при проверке текста команды вне игры и только после сохранения её в командном блоке и последующем копировании оттуда (так, однажды такой невидимый символ закрался во время копирования команды из одного командного блока в другой без изменений - прямо между цифрами длительности эффекта); однако с версии 1.8 данный символ стал виден в игре и его сложно не заметить.

 

Пример вредоносного символа, который не виден в игре:

JH76834.png

 

 

Основные достоинства системы:

 

 - позволяет реализовать уникальные идеи;

 - относительная простота реализации, отладки и внесения изменений;

 - нет привязки к сторонним разработчикам плагинов и ядер;

 - нет необходимости изучать досканально систему модинга игры и написание плагинов;

 - нет необходимости переделывать систему при переходе на более новую версию игры (исключения - изменение баланса и правил работы с командными блоками);

 - нет необходимости проведения сложных тестов на выявление и предупреждения багов, т.к. всё просчитывается в уме или на бумажке по заранее спланированному алгоритму или тестируется в полевых условиях;

 

 

 

Работа с новичками и сменой ника:

Спойлер

 

После перехода на 1.8 возникла проблема с новыми игроками: т.к. в ССИС ещё нет никакой информации о них.

Вся работа данной "ЦНС сервера" построена на переменных.

До версии 1.8 считалось, что если в ССИС нет никакой информации о новом игроке, то значения всех запрашиваемых переменных = 0, а с версии 1.8 в таком случае игрок просто не обрабатывается.

Из-за этого перестала работать вся система безопасности, основанная на данной "ЦНС сервера", т.к. проверки просто не срабатывали и нарушители не улетали в тюрьму. Пришлось её переделать.

 

Итак, ниже представлено описание всех аспектов работы с новыми игроками.

 

 

Защита от атак грифферов и просто нарушителей.

 

Наш сервер специально настроен на режим "Приключение" для новых игроков (на самом деле мы играем в режиме "Выживание"), чтобы мы могли отличать новичков.

При первом входе в игру теперь каждому игроку сначала явно задаются значения всех важных переменных = 0.

А получается у нас это благодаря тому, что ССИС позволяет проверять новых игроков на соответствие указанному режиму игры и нахождению в определённой команде - таким образом мы берём только новичков и только тех из них, кто только-только зашёл, т.к. через мгновение мы запихнём их в команду "Newbie".



/scoreboard players set @a[m=2,team=!Newbie] Admins 0
/scoreboard players set @a[m=2,team=!Newbie] PlayerID 0
/scoreboard players set @a[m=2,team=!Newbie] alarmCode 0
/scoreboard players set @a[m=2,team=!Newbie] ClanID 0
/scoreboard players set @a[m=2,team=!Newbie] i_newbie 0
/scoreboard players set @a[m=2,team=!Newbie] SmertiEffectov 0

Собственно, новички подготовлены для дальнейшей игры на нашем севрере и нормальной обработкой их с помощью "ЦНС сервера".

Теперь мы можем смело добавлять их в команду "Newbie" для дальнейшей работы с ними в плане автоматизированного информирования и обучения, а также визуального отличия для других игроков (у всех новичков ники зачёркнуты).

 

Делаем мы это с помощью такой команды, которая выполняется с некоторой задержкой после предыдущих команд, действует только на тех новичков, кто ещё не в этой команде и заодно проверяет выполнение предыдущих команд, сверяясь со всеми переменными:



/scoreboard teams join Newbie @a[m=2,team=!Newbie,score_Admins=0,score_PlayerID=0,score_alarmCode=0,score_ClanID=0,score_i_newbie=0,score_SmertiEffectov=0]

Далее, т.к. у нас вободный вход и отсутствует вайт-лист, а новички должны быть как-то ограничены и обезврежены в этом своеобразном "демо-режиме", мы постоянно меняем им точку спауна, раздаём положительные и отрицательные эффекты, чистим инвентарь от всякой нечисти:



/spawnpoint @a[167,65,-134,rm=10,m=2] -5 65 -31

/effect @a[167,65,-134,rm=10,m=2] minecraft:weakness 999999 2
/effect @a[167,65,-134,rm=10,m=2] minecraft:mining_fatigue 999999 50
/effect @a[167,65,-134,rm=10,m=2] minecraft:slowness 999999 0

/clear @a[m=2] minecraft:tnt
/clear @a[m=2] minecraft:lava_bucket
/clear @a[m=2] minecraft:water_bucket
/clear @a[m=2] minecraft:flint_and_steel

Также выдаётся эффект "Поглощение" (один раз до след. смерти):
/effect @a[167,65,-134,rm=10,team=Newbie,score_SmertiEffectov_min=1] minecraft:absorption 9999 19

После чего, переменная, отслеживающая смерти, обнуляется:
/scoreboard players set @p[team=Newbie,score_SmertiEffectov_min=1] SmertiEffectov 0

Обработка смены ника игроками:

 

Из-за тех же изменений в версии 1.8 при смене ника игрок с новым ником никак не числится в ССИС, но сохраняет инфу о своём режиме игры и все проверки по UUID.

Однако, для нормальной обработки таких игроков с помощью ЦНС им надо заново перезадать все переменные.

 

Для этого используется уже имеющаяся переменная, которая не используется допущенными игроками и нужна только игрокам, впервые зашедшим на сервер.

Мы принудительно обнуляем её всем допущенным игрокам.

Затем увеличиваем её значение всем допущенным игрокам на 1, проверяя другую стандартную для всех обычных игроков переменную "Admins", которой "не существует" у игроков, сменивших ник, и они не проходят проверку, и остаются с нулём.

 

Затем, всем игрокам, не прошедшим проверку, меняется игровой режим и они становятся полноценными новичками, которым приходится подавать заявку на смену ника для продолжения нормальной игры.



/scoreboard players set @a[m=0] i_newbie 0
/scoreboard players add @a[m=0,score_Admins=1] i_newbie 1
/gamemode 2 @a[m=0,score_i_newbie=0]

Если вы меняете ник на тот, который уже использовлся, то ничего этого не происходит, но т.к. ник, скорее всего, уже был обработан, то вам всё равно придётся подавать заявку на смену ника и переносить все значения переменных.

 

Автоматическая обработка ника затрагивает только: админство, гильдии, кланы, личные id, отображение ника, режим игры, отрицательные эффекты.

 

Спойлер

Отключенно, т.к. это сильно выносит мозг при входе на сервер...

 

Обучение и информирование новичков.

 

Данная система была запланирована интерактивной, но на данный момент реализована по упрощённой схеме в связи с ошибками при работе с командами...

Интерактивность системы подразумевает, что новичку будет выдаваться некая информация с помощью команды /tellraw, которая в зависимости от выбора игрока будет изменять значения переменной "i_newbie" самостоятельно - и, как следствие, будут выполняться нужные другие команды, погружающие новичка в игровой процесс всё глубже и глубже.

 

Планировалось, что с версии 1.8 мы сможем взаимодействовать с игроком любыми способами с помощью команды /execute и /trigger, встроенных в команду /tellraw, и выполнять любые команды от имени нужного нам новичка, что позволит создавать интерактивные системы взаимодействия любой сложности!! :)

 

Однако, на данный момент система реализована на простейших задержках и выполнении команд по списку последовательно, циклически.

Вот примерно такими командами это делается:




/scoreboard players add @a[m=2,team=Newbie] i_newbie 1


/tellraw @a[m=2,team=Newbie,score_i_newbie_min=25,score_i_newbie=25] {"text":"","extra":[{"text":"Дружище, ","color":"gold"},{"text":"познакомься с великим миром BBya!! :)","color":"green"}]}

/tellraw @a[m=2,team=Newbie,score_i_newbie_min=30,score_i_newbie=30] {"text":"","extra":[{"text":"Сейчас ты находишься в демо-режиме: ","color":"green"},{"text":"зачёркнутый ник, отрицательные эффекты и некоторые другие ограничения.","color":"gold"}]}

/tellraw @a[m=2,team=Newbie,score_i_newbie_min=40,score_i_newbie=40] {"text":"Хочешь ли ты присоединиться к нашему сообществу? Нравится ли тебе у нас? Готов ли ты стать частью этого невероятного мира??","color":"green"}

/tellraw @a[m=2,team=Newbie,score_i_newbie_min=45,score_i_newbie=45] {"text":"","extra":[{"text":"Для полноценной игры на нашем сервере необходимо - ","color":"green"},{"text":"ознакомиться с правилами и подать заявку на форуме, в той же теме (активная ссылка).","color":"gold","clickEvent":{"action":"open_url","value":"http://forum.bbyaworld.com/index.php?/topic/2-bbya-world-informatciia-o-servere-i-pravila-igry/"},"hoverEvent":{"action":"show_text","value":"кликни на оранжевый текст - это ссылка на форум"}}]}

/title @a[m=2,team=Newbie,score_i_newbie_min=50,score_i_newbie=50] subtitle {text:"skype: bbyaworld", color:aqua, italic:true}

/title @a[m=2,team=Newbie,score_i_newbie_min=50,score_i_newbie=50] title {text:"Поговори с админом", bold:true, color:gold}

/tellraw @a[m=2,team=Newbie,score_i_newbie_min=55,score_i_newbie=55] {"text":"","extra":[{"text":"Задай вопрос админу по скайпу: ", "bold":"true", "color":"green"},{"text":"bbyaworld", "bold":"true" ,"color":"gold"}]}

/tellraw @a[m=2,team=Newbie,score_i_newbie_min=65,score_i_newbie=65] {"text":"","extra":[{"text":"Скорее подавай заявку на добавление к игровому процессу! ", "color":"green"}]}

/tellraw @a[m=2,team=Newbie,score_i_newbie_min=70,score_i_newbie=70] {"text":"","extra":[{"text":"Тебя ждут - невероятный мир и новые друзья!!", "color":"gold"}]}

/title @a[m=2,team=Newbie,score_i_newbie_min=80,score_i_newbie=80] title {text:"BBya World", bold:true, color:gold}

/title @a[m=2,team=Newbie,score_i_newbie_min=80,score_i_newbie=80] subtitle {text:"ТВОЙ НОВЫЙ ДОМ!!", color:aqua, italic:true}


/scoreboard players set @a[m=2,team=Newbie,score_i_newbie_min=150,score_i_newbie=150] i_newbie 0

Видео можно посмотреть тут:

https://youtu.be/3VDJOC1NHgY

 

 

 

 

 

Работа с нарушителями и заключёнными.

Спойлер

 

"ЦНС сервера" охраняет саму себя, все важные общественные техинческие помещения и частные охранные системы игроков на основе командных блоков и переменных.

Принцип работы охранных систем на нашем сервере основывается на том, что нарушителю присваивается определённый код переменной alarmCode, который уникален для каждого помещения и частной территории.

Во всех командах исключаются админы с помощью добавления условия "score_Admins=0".

Например, если проникнуть в "ЦНС сервера", то сработает командный блок, охраняющий помещение, в котором находится сама охранная система, охраняющая саму себя:



/scoreboard players set @a[-31,1,-27,dx=45,dy=7,dz=17,score_Admins=0] alarmCode 1

Важно отметить, что прямоугольные параллепипеды "-31,1,-27,dx=45,dy=7,dz=17" (вместо обычного сферического радиуса или при использовании одновременно с ним) указываются в строго определённом направлении, зависящем от знака перед конкретным значением дистанции! 

 

 

После того, как игрок попал в запретное помещение или активировал ловушку на чужой территории и ему присвоилось значение перменной alarmCode, его начинает обрабатывать подсистема задержания нарушителей.

 

Для начала все новички-нарушители переводятся в режим "Выживание":



/gamemode 0 @a[m=2,score_alarmCode_min=1]

Затем все игроки-нарушители вне команды "prisoners" и не админы перемещаются в команду зеков (возможно, нужно перемещать только игроков в режиме "Выживание", но пока так):



/scoreboard teams join prisoners @a[team=!prisoners,score_alarmCode_min=1,score_Admins=0]

Далее зекам сразу и постоянно чистится инвентарь, меняется точка спауна и игровой режим, накладывается эффект замедления - затем нарушитель перемещается в тюрьму и ему постоянно выдаётся информация о дальнейших необходимых действиях:



/clear @a[team=prisoners]
/gamemode 0 @a[team=prisoners]
/spawnpoint @a[team=prisoners] 0 3 0
/effect @a[team=prisoners] minecraft:slowness 999999 4

/tp @a[0,3,0,rm=10,team=prisoners] 0 3 0

/tellraw @a[0,3,0,10] {"text":"","extra":[{"text":"Внимание!! Вы стали жертвой нарушения правил сервера! Чтобы выйти из тюрьмы, отпишитесь в теме ","color":"green"},{"text":"по этой ссылке!","color":"gold","hoverEvent":{"action":"show_text","value":"Кликни на оранжевый текст"},"clickEvent":{"action":"open_url","value":"http://forum.bbyaworld.com/index.php?/topic/8-tiurma-№3/"}}]}

Заключённые находятся в тюрьме до тех пор, пока не признают свою вину и не раскаются в содеянном или наоборот - докажут свою невиновность.

Всё это обсуждается в специальной теме, там же описаны дополнительные функции - такие, как модуль "Анти-бунт".

 

 

Процесс выхода игрока на свободу автоматизирован.

Для того, чтобы выпустить игрока из тюрьмы, оператор должен любым способ задать значение перменной "alarmCode = -1" - далее автоматика всё сделает сама (сменит команду, изменит точку спауна, снимет эффекты, телепортнёт и сбросит код охранной системы):



/scoreboard teams leave @a[0,3,0,10,score_alarmCode=-1]
/spawnpoint @a[0,3,0,10,team=!prisoners] -5 66 -31
/effect @a[0,3,0,10,team=!prisoners] clear
/tp @a[0,3,0,10,team=!prisoners] -5 66 -31
/scoreboard players set @a[-5,66,-31,20,score_alarmCode=-1] alarmCode 0

С этого момента игрок полностью свободен, находится на спауне, к нему нет никаких претензий и уже невозможно будет узнать код нарушения, которое он совершил.

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

 

P.S.: чтобы посадить нарушителя в тюрьму ручками или выпустить его с помощью автоматизированной системы, нарушителю не обязательно находиться в игре, т.к. ССИС позволяет задавать значения переменных и менять команды для игроков в оффлайне...

 

 

Запрещённые предметы и дополнительные ограничения.

 

На нашем сервере запрещено носить некоторые предметы (читай - запрещено использование).

 

Для обеспечения дополнительной безопасности стратегических объектов всем игрокам запрещено переносить Жемчуг Края в зоне спауна:



/clear @a[x=140,y=10,z=-200,r=300,score_Admins=0] minecraft:ender_pearl

Кроме того, используется эдакая заглушка, которая позволяет запретить всеми игрокам, кроме админов, скрывать свой ник на Dynmap:



/dynmap show @a[score_Admins=0]

 

 

Беспроигрышная лотерея:

Спойлер

 

Из-за недостатка времени у представителей администрации на сервере почти не проводятся ивенты в их обычном понимании (ни что не вечно).

В качестве компенсации и с дополнительной целью повышения онлайна запущена беспроигрышная лотерея с помощью всего одного командного блока - в определённое время суток случайному игроку в онлайне выдаётся бонус в виде небольшой порции изумрудов.

Админы (Admins=1) и новички (m=2) не участвуют в розыгрыше.



/give @r[m=0,score_Admins=0] minecraft:iron_ingot

 

 

Контроль за стандартными и искусственными деревенскими жителями:

Спойлер

 

С версии 1.8 мы взяли под контроль цены у деревенских жителей, а также сильно ограничили их количество.

Реализовано это с помощью одного командного блока, который убивает всех стандартных жителей.



/effect @e[type=Villager] minecraft:instant_damage 2 5

Убийство происходит эффектом "Мгновенный урон", т.к. нам необходимо сохранить спец.жителей, которые обслуживают нужды игроков при торговле с сервером, но по установленным администрацией ценам, а команда /kill убивала бы всех без разбора.

Спец.жители создаются с помощью командных блоков и настроенной команды /summon с параметром бессмертия ("Invulnerable:1").



/summon Villager ~ ~ ~ {Invulnerable:1,CustomName:Глиномес,CustomNameVisible:1,Profession:3,Offers:{Recipes:[{maxUses:999999,buy:{id:3,Count:1},buyB:{id:388,Count:1},sell:{id:82,Count:1}},{maxUses:0,buy:{id:51,Count:1},sell:{id:51,Count:1}},]},}

Поэтому, в теории всё должно было быть хорошо...

Стандартные жители умирают мгновенно - даже те, кто спаунится на спаунерах (на нашем сервере была практика розыгрыша яиц призывания, в том числе и деревенских жителей, но с версии 1.8 пришлось отказаться от этого, т.к. любой игрок теперь может изменить спаунер, просто тыкнув на него нужным яйцом призывания).

 

Однако, почему-то умирают и "бессмертные" жители, что навело нас на несколько колхозных мыслей: попробовать задрать параметр количества жизней спец.жителям до небес, чтобы они только через год умирали, или подкладывать под них командные блоки с нажимными плитами, чтобы они ходили по ним и сами себя лечили.

 

В итоге, мы смогли кое-как решить проблему со спец.жителями для нужд сервера, однако это всё ещё не очень удобно и не позволяет добавлять большее количество спец.жителей с разнообразными условиями по сделкам, т.к. в случае чего замучаемся восстанавливать их...

 

Кроме того, основной целью введения спец.жителей был только контроль цен, а не ограничение использования их игроками.

Поэтому мы хотим раздавать игрокам спец.жителей с особыми настройками сделок, однако для этого нам нужна возможность обновления "устаревших" спец.жителей хотя бы по заявкам от владельцев.

 

Для этого нам нужны параметры, по которым можно было бы исключать выборочно любых спец.жителей, не меняя их отображаемых имён, и так, чтобы обычные игроки не могли вносить изменения.

 

На данный момент мы можем только задавать нестандартные параметры, но проверять в командных блоках можем только параметр "name".

Но этот параметр может изменить любой игрок.

И на данный момент единственная возможность избежать этого - это задать параметр "name" сразу в команде при создании искусственного жителя: тогда - как бы не меняли имя жителю игроки, командным блоком всегда можно проверить исходное имя и убить всех неверных.

Косяк в том, что у всех спец.жителей имя всегда будет одинаковым, а это какой-то отстой, хоть и приемлемо в некоторых ситуациях...

 

В общем, над этим пока ещё работаем :)

 

 

 

Изменение свойств мобов:

Спойлер

 

С 27 августа 2015 года в тестовом режиме запущена система, автоматически увеличивающая силу мобов в ночное время.

Сделано это в рамках общего усложнения игрового процесса на сервере (см. п.п. 6.1).

 

Реализация очень простая: с помощью датчика света поздно вечером подаётся сигнал на командные блоки, которые раздают всем мобам в обычном мире эффекты ограниченной длительности (7 минут = длительность ночи).



/effect @e[type=!Player] minecraft:strength 420 0
/effect @e[type=!Player] minecraft:speed 420 0
/effect @e[type=!Player] minecraft:resistance 420 1

 

 

Контроль перемещения игроков в режиме "наблюдение":

Спойлер

 

Я уже давно хотел добавить возможность летать для обычных игроков. Например, для того, чтобы было удобнее планировать строительство.

Я не смог сделать это прямым путём, по типу как в креативе (хотя, вроде бы, есть какие-то параметры полёта в игре).

Однако я могу предложить игрокам летать в режиме спектатора. Для этого им нужно будет в специальном месте переключить свой режим игры, а по окончании полётов переместиться в специальную комнату и там их режим будет автоматически изменён на "выживание".

 

Добавил обработку спектаторов: обычные игроки в режиме спектатора не смогут опуститься ниже высоты Y=65, а админы могут.

Это сделано специально, чтобы с одной стороны дать возможность игрокам свободно летать и осматривать свои постройки, а с другой стороны, чтобы нельзя было исследовать чужие территории.

Кроме того, на спектаторов действуют стандартные частные охранные системы: поэтому спектаторам также необходимо следить за маршрутами своих полётов и не пролетать над частными территориями без явного и неопровержимого согласия владельца  :)

/tp @a[-3000,65,-3000,dx=6000,dy=-65,dz=6000,m=3,score_Admins=0] ~ ~50 ~

Как работает эта команда?

 

Размер карты - 6000х6000. Командный блок проверят пространство от точки с координатами x=-3000 y=65 z=-3000 до точки с координатами x=3000 y=0 z=3000. Командный блок воздействует только на игроков в режиме "Спектатор" (m=3), но исключает админов (score_Admins=1). Спектаторы просто телепортятся на 50 клеток вверх.

 

 

 

Обеспечение равных условий для всех участников во время проведения ивентов:

Спойлер

 

С 10 января 2015 года в систему интегрировано условие недействительности всех эффектов для любых игроков в зоне арены для ивентов.

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

По сути, зона арены стала зоной свободного пвп, где игроки вынуждены договариваться между собой без привлечения и без предъявления претензий и жалоб администрации.

 

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

* примерно с августа 2015 года изменилась система автоматического отключения эффектов в зонах проведения ивентов - надо немного переписать этот фрагмент описания...
 

Изначально одна из команд выглядела достаточно просто:

/effect @a[m=2] 18 999999 2

С этим дополнением она усложняется указанием центра координат и минимальным радиусом действия конкретного командного блока:

/effect @a[167,65,-134,rm=10,m=2] 18 999999 2

где:

 

 - @a: указатель цели на всех игроков;

 - 167,65,-134: координаты центра зоны действия конкретного командного блока (отсутствие явно заданных координат = координаты расположения блока, в который вписана эта команда; координаты можно указывать в упрощённом виде, как в примере или для удобства - явно: "x=167,y=65,z=-134");

 - rm=10: минимальный радиус действия;

 - m=2: условие действия только на игроков в режиме приключение;

 - 18эффект слабости;

 - 99999: длительность действия;

 - 2: уровень эффекта.

 

 

 

Гильдии и навыки:

Спойлер

 

Пока ещё не описал...

 

 

 

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня есть смутные подозрения, что туда же надо сразу перемещать точку спауна для новых игроков.

Надеюсь, что ты перенёс ЦНС примерно сюда, чтобы новые игроки появлялись тут :)

 

cShJp3A.png

 

 

12 часов назад, Rock_tea сказал:

Перенес ЦНС под новый спавн. 

А на какие координаты?

Я чё-то полетал в спектаторе и не увидел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Admin сказал:

А на какие координаты?

Я чё-то полетал в спектаторе и не увидел...

Где было большое свободное место, позади подземной части)

 

100 2 272

1 час назад, Admin сказал:

чтобы новые игроки появлялись тут

 Т.е. прозрачная комната с барьером не нужна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, Rock_tea сказал:

Где было большое свободное место, позади подземной части)

 

100 2 272

 Т.е. прозрачная комната с барьером не нужна?

Обсудили в скайпе, но зафиксирую тут:

 

 

  1. Точку желательно делать там, где на динмапе указана точка спауна - глобусом, вид сверху = это такая розовая площадка. 
     
  2. ЦНС нужно размещать там же - под этой точкой, чтобы ЦНС всегда была активна
     
  3. Я бы убрал эту промежуточную комнату Оцелота: имхо, игроки должны свободно заходить на сервер и начинать играть - а мозг мы им успеем вынести своими требованиями. В крайнем случае - в прозрачной комнате. Но я бы даже её не делал. Нафига?
     
  4. На сундуки можно забить - их можно оставить на том же месте пока что. А новые размещать в спец.помещении под ТПУ нового спауна - там уже есть размеченные помещения под сундуки. Но я пока не уверен в их защите… = Сундуки можно оставить на старом спауне - потом перенесём.
     

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Admin сказал:

Я бы убрал эту промежуточную комнату Оцелота: имхо, игроки должны свободно заходить на сервер и начинать играть - а мозг мы им успеем вынести своими требованиями. В крайнем случае - в прозрачной комнате. Но я бы даже её не делал. Нафига?

Ага, давайте ещё не заставлять игроков читать правила перед началом игры, чтобы порог вхождения стал ещё ближе к нулю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

1 минуту назад, OcelotJungle сказал:

Ага, давайте ещё не заставлять игроков читать правила перед началом игры, чтобы порог вхождения стал ещё ближе к нулю.

Да - я всегда исповедовал теорию, что новичку надо дать возможность как можно быстрее совершить ошибку, чтобы начать вкуривать нюансы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Admin сказал:

Да - я всегда исповедовал теорию, что новичку надо дать возможность как можно быстрее совершить ошибку, чтобы начать вкуривать нюансы.

 Новая ЦНС - 41 5 138.

Расположил под точкой спавна. 

Обсуждаем добавление игроков)

Обсудили, поменял точку спавна, все вроде работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 1/3/2015 в 15:33, Admin сказал:

запихнуть несколько команд в одну: 100 ББ (тут);

Вау!!

Неужели в 1.12 можно будет выполнять список команд скриптом?

Что-то мне подсказывает, что очень скоро мы перепишем всю ЦНС на новую систему функций :D
http://minecraft.gamepedia.com/Function

 

Я бы не рискнул выполнять такие скрипты каждый тик с помощью gamerule.
По сути, можно оставить такой же принцип ЦНС, но в которой будут лишь запускающие скрипты кб ))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавил автопосадку слишком быстро разбогатевших новичков. КБ стоит в ЦНС.

 

Проверяет на наличие 1000 изюма и переменную онлайна меньше 1800 (примерно час-два игры).

 

Код сигналки 102.

 

Спойлер

tellraw @a[score_onlineVar=1800,score_Emerald_money_min=1000,score_Admins=0,team=Newbie] "Вы слишком быстро разбогатели. Кажется, это читы или гриф. Если Вы считаете, что мы ошиблись, напишите на форум: https://forum.bbyaworld.com/"
scoreboard players set @a[score_onlineVar=1800,score_Emerald_money_min=1000,score_Admins=0,team=Newbie] alarmCode 102

 

 

UPD: Добавил еще информационное сообщение при посадке.

Изменено пользователем RedTeapot
Добавил информацию об информационном сообщении при посадке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читай - можно сажать не угодных под залог (с помощью посыла бабла на счёт) + потом отчитываться на форуме с доказательствами и просить возврата бабла 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×