Как отредактировать майнкрафт плагин worldguard ь. Как приватить территорию в Minecraft (WorldGuard)

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

Как приватить территорию в Minecraft (WorldGuard)

Любой игрок, начиная играть в Майнкрафт на серверах CaveCraft с лаунчером и модами, задумывался о том, как приватить территорию в Minecraft на сервере (что-бы защитить ее от других игроков или наоборот дать доступ другим игрокам).

В этой статье мы постараемся раскрыть все моменты в вопросе привата территории в Minecraft, вы получите сведения:

  • Как выделить территорию для привата
  • Как создать свой приватный регион
  • Как добавить и удалить игрока в своем привате
  • Что такое флаги регионов и как их использовать
  • ..также Вы узнаете другие команды для взаимодействия с регионами и приватами в Minecraft на наших серверах

На всех наших серверах мы используем разные версии плагина WorldGuard. Часть функционала может быть недоступна на некоторых серверах.

  • Сервера Modern (Minecraft 1.7.10+) - WorldGuard 6.1
  • Сервера Magic (Minecraft 1.7.10+) - WorldGuard 6.1

Выделение сетки и создание приватного региона

Первым делом, Вам потребуется деревянный топор, его можно получить с помощью команды - //wand .

Деревянный топор нельзя применить для рубки деревьев, он нужен только для выделения территории!

После ввода команды //wand - Вы увидите следующее сообщение в чате:


Начинаем выделять территорию для будущего приватного региона. При помощи правой кнопки мыши (ПКМ) Вы обозначаете первую точку привата, а вторую точку - левой кнопкой мыши (ЛКМ) .

Помимо топора, точки можно обозначать при помощи команд:

//hpos1 (первая точка)
//hpos2 (вторая точка)
смотреть на блок

//pos 1 (первая точка)
//pos2 (вторая точка)
(Будьте внимательны! При использовании этих команд необходимо стоять на блоке , который Вы хотите отметить точкой)



Территория, которую Вы выделили будет обводится зеленой сеткой. Сбросить выделение региона после завершения привата территории, Вы можете с помощью команды - //sel .

Вы успешно выделили территорию, но размер высоты Вашего вас не устраивает? В таком случае также необходимо расширить выделенную сетку по высоте (координате Y). Расширить или уменьшить выделенную сетку можно в таких направлениях:

  • north (n) - север.
  • west (w) - запад.
  • south (s) - юг.
  • east (e) - восток.
  • up (u) - вверх.
  • down (d) - вниз.
  • Смотря в одну из сторон света.
  • От коренной породы до самого неба.

Подсказка: при указании направления выделения Вы также можете пользоваться короткими названиями сторон (указаны в скобках)
Например, //expand 10 up расширит выделенный регион вверх на 10 кубов.


Для уменьшения выделенной Вами сетки используется команда - //contract <кол-во> <направление>
Например, команда - //contract 10 down уменьшит регион сверху вниз на 10 кубов.


Узнать размер выделенной Вами сетки можно командой - //size

После того, как Вы выделили нужную Вам территорию - необходимо зарегистрировать (создать регион) и тем самым заприватить эту территорию за Вами.

Для создания приватного региона применяется команда /rg claim <название региона> . В качестве примера мы дадим имя региону - cavecraft, в таком случае наша команда будет выглядеть так - /rg claim cavecraft

Если все сделано правильно и выделенная территория не пересекается с другими регионами, то Вы увидите следующее сообщение в чате:


Добавление игрока в регион

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

Добавить другого игрока в Ваш собственный регион можно при помощи команды - /rg addmember <ваш регион> <ник игрока> - в этом случае указанный Вами игрок добавляется в роли участника. Он сможет взаимодействовать с регионом (строить, ломать, открывать сундуки), но не сможет хозяйничать в регионе.

Добавить другого игрока в Ваш регион в роли владельца - /rg addowner <ваш регион> <ник игрока> - в этом случае указанный Вами игрок добавляется в роли владельца. Это дает все возможности для управления регионом (добавлять\удалять других участников и владельцев, ставить флаги прочее).

Также существуют две аналогичные команды, только с другим действием - удалить участника или владельца:
/rg removemember <ваш регион> <ник игрока> и /rg removeowner <ваш регион> <ник игрока>

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

Конфигурация

ChatManager по-умолчанию отключен, чтобы включить его убедитесь что ChatManager.jar находится в папке с плагинами, перезагрузите сервер и в файле plugins/ChatManager/config.yml в строке enable: параметр false смените на true

Коды цветов

Chat-range: 100.0 display-name-format: "%prefix%player%suffix" global-message-format: <%prefix%player%suffix> &e%message enable: true message-format: <%prefix%player%suffix> %message ranged-mode: false

Значение остальных параметров следующее:
ranged-mode: - режим локального чата, чтобы включить смените false на true
chat-range: - расстояние от игрока, на котором другие смогут увидеть его сообщение, по умолчанию 100 блоков
display-name-format: - формат отображения ника игрока, по-умолчанию "ПрефиксНикСуффикс"
global-message-format: - формат глобального сообщения
message-format: - формат обычного сообщения
& - указывает на то, что символы идущие после этого знака обозначают цвет следующего параметра
e - это собственно и есть цвет отображения параметра %message . В даном случае желтый. Вы можете выбрать какой-угодно цвет, написав его код. Коды цветов показаны на рисунке.

Права

Режим локального чата

ChatManager содержит режим локального чата. Когда он включен, каждое сообщение будет распространятся не дальше определенного радиуса от писавшего (по-умолчанию 100 блоков)
Чтобы послать сообщение в глобальный чат у Вас должно быть нужное право, а также перед сообщением следует поставить восклицательный знак "!"

Рассмотрим на конкретном примере как добавить префикс к группе:

Groups: default: default: true permissions: - modifyworld.* prefix: "[Игрок]" Admins: default: false inheritance: - default permissions: - "*" prefix: "&4[Админ]&f" suffix: "&2"

Как видим, у всех игроков, кто входит в группу default будет префикс [Игрок] белого цвета (т.к. если не выбран определенный цвет, то по-умолчанию он будет белым)
У тех же, кто входит в группу Admins будет префикс [Админ] красного цвета, сам же ник будет белым, поскольку стоит параметр &f, если его убрать, то и все следующие параметры (ник, суффикс, сообщение) будут красными.Также если в суфиксе есть цветовый код а сам суффикс отсутствует то это будет цвет чата игрока

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

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

Основные команды:

/rg claim [владельцы…] - создает регион и закрепляет за ним владельцев.

/rg define [пользователи…] - создаёт регион без начальных флагов. Помогает администрации, так как приватит поверх других регионов.

/rg redefine - заменяет территорию региона на выделенную.

/rg addmember <пользователи…> - добавляет пользователя в регион.

/rg addowner <владельцы…> - добавляет владельца региона.

/rg removemember <пользователи…> - удаляет пользователя региона.

/rg removeowner <владельцы…> - удаляет владельца региона.

/rg flag <флаг> [переменная] - устанавливает флаг на регион. Переменные: none - не задана, allow - разрешено, deny - запрещено.

/rg remove - полностью удаляет регион.

/rg migratedb - уменьшает регион на заданное число от игрока (от вас)


В messages есть такая возможность
0 0 600 0 1 Hello, #name will shutdown in #tmin minutes. Что лучше и эффективнее будет. Писать свой рестартер с помощью Rcon или будет достаточно messages.xml?

Class LogClass { private FileHandle File; void LogClass() { Print("::: ::: Init:::"); } void ~LogClass() { Print("::: ::: UnInit:::"); } void Save(string FileName, string String) { private int year, month, day, hour, minute, second; Print("::: : Save: " + FileName); if (!FileExist(FileName)) { File = OpenFile(FileName,FileMode.WRITE); } else { File = OpenFile(FileName, FileMode.APPEND); } if (File == 0) { Print("::: : Can not write FileName: " + FileName); Print("::: : May be disk error, file write protected, file busy or FileMode.WRITE disabled (need to specify option -scrAllowFileWrite in server run parameters for enable FileMode.WRITE."); return; } FPrintln(File, DataBase_GetDate() + "," + DataBase_GetTime() + " : " + String); CloseFile(File); } void Rotate(string FileName, int FileNum) { Print("::: : Rotate: " + FileName); if (!FileExist(FileName)) { Print("::: : Rotate: FileName not exists: " + FileName); return; } else { for (int i = FileNum; i > 0; i--) { Print("::: : Rotate: FileName: " + FileName + "." + i); if (FileExist(FileName + "." + i)) { Print("::: : Rotate: DeleteFile: " + FileName + "." + i); DeleteFile(FileName + "." + i); } if (FileExist(FileName + "." + (i - 1))) { Print("::: : Rotate: CopyFile: " + FileName + "." + (i - 1) + " => " + FileName + "." + i); CopyFile(FileName + "." + (i - 1), FileName + "." + i); } } CopyFile(FileName, FileName + ".0"); DeleteFile(FileName); } } static string DataBase_GetDate() { int year, month, day; GetYearMonthDay(year, month, day); string date = day.ToStringLen(2) + "." + month.ToStringLen(2) + "." + year.ToStringLen(2); return date; } static string DataBase_GetTime() { int hour, minute, second; GetHourMinuteSecond(hour, minute, second); string time = hour.ToStringLen(2) + ":" + minute.ToStringLen(2) + ":" + second.ToStringLen(2); return time; } } Мне нужно им пользоваться функциями из него в нескольких местах
в PlayerBase.c в функциях в классе PlayerBase
в init.c в функция в классе миссии
Вопрос как?

В PlayerBase.c
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\LogClass\\LogClass.c"
Далее в классе
ref LogClass Log = new LogClass();
ну и в функциях
Log.Save{"путь-имя", данные);

Но после последнего обновления 0.63.149.525
В init.c
#include "$CurrentDir:\\mpmissions\\dayzOffline.chernarusplus\\_MOD\\LogClass\\LogClass.c"
приводит к ошибке - Multiple declaration of class "LogClass"

Can"t compile mission init script"!
$CurrentDir://mpmissions//dayzOffline.chernarusplus//_MOD//LogClass//LogClass.c(1): Multiple declaration of class "LogClass"

До этого обновления все было норм
Как быть?

Продположим

Обявили массив внутри функции

Array stringParam;
// определяем массив текстового типа который живет до завершения работы функции

Static array stringParam;
// определяем массив текстового типа который сохраняет в себе данные и после завершения работы функции и при следующем
вызове функции содержимое массива останется и может быть использовано внутри функции (повторного обьявления массива не произойдет)

String text = "text";

//записываем содержимое переменной text в элемент массива 0
stringParam.Insert(text);
//записываем содержимое переменной text в элемент массива 1, если переменная text пуста в элемент запишется текст NULL
stringParam.Insert(text, "NULL");

Читаем в переменную text элемент массива 1
string text = stringParam.Get(1);

А вот теперь вопрос
Как мне изменить эелемент 1 массива?
stringParam = "блаблабла";

Так?
в теории должно быть так

Это вообще возможно?

И еще про функцию возвращающую результат в качестве массива

Array FileRead(string FileName)
{
array stringParam;
string line_content;

CloseFile(File);
return stringParam;
}

На нашем сервере защита территории осуществляется специальным плагином WorldGuard. Строго придерживайтесь правила, СПЕРВА защита своей зоны, а уж затем — СТРОИТЕЛЬСТВО!

Чтобы защитить свою зону, сначала её необходимо выделить. Выделение зоны на нашем сервере производится куриным пером (вводим команду //wand , чтобы получить перо в инвентарь). Следует заметить, что на других серверах для этого обычно используется деревянный топор.

У нас, любая зона, защищенная WorldGuard, представляет собой параллелепипед (или кубоид). То есть, она может быть прямоугольной, квадратной, и так далее, но не может быть сложной формы. В игре она выделяется всего двумя крайними точками.

На данной картинке этими точками являются 1 и 2.

PS: Красная сеточка будет видна в игре только если вы установите мод WorldEdit Client User Interface (сокращенно Worldedit CUI). О том как это сделать, рассказывается ниже.

Как выделить регион для привата: В один угол будущего привата ткнуть левой кнопкой с пером в руке, а в другой, противоположный, угол — правой кнопкой. Это и будут противоположные точки нашего кубоида, т.е. те самые 1 и 2 с картинки.

Запомните, не нужно приватить свой дом от стенки до стенки!!! У вас в каждом из приватов разрешено до 200 000 кубиков. Вы все равно захотите потом пристроить веранду, сделать балкон, или второй этаж. Выделяйте регион побольше, чтобы к вам из под земли не прокапывались, или стенку не проломили.

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

Чтобы облегчить эту работу, есть следующие специальные команды:
//expand <длина> <направление> — Эта команда расширяет регион в заданную сторону.
Пример: //expand 10 up — Расширим выделение на 10 кубов вверх.

//contract <длина> <направление> — Уменьшает выделение региона в заданную сторону.
Пример: //contract 5 up — Уменьшим выделение на 5 кубов снизу вверх

Возможные направления:
1. up
2. down
3. east
4. west
5. south
6. north
7. me

Первые два расширяют вверх и вниз, а последний туда, куда вы смотрите. Кстати me можно опустить, команда будет выполнена в том направлении, куда вы сейчас смотрите. Также можно упростить себе набор команд, писать только первую букву направления.
Пример: //expand 15 e — Расширим выделение на 15 кубов на восток (e - East).

Команда contract нуждается в дополнительных комментариях. Если указать направление me , то регион уменьшится на заданное число ОТ вас. Соответственно если указать сторону up , то регион уменьшится снизу вверх, то есть нижняя граница поднимется вверх. Еще есть третий аргумент, между первым и последним. Он позволяет указать величину сокращения региона с другой стороны, в другую сторону.

На любом сервер есть ограничение, сколько кубиков может вмещать в себе регион. Если в вашем выделении будет больше кубиков чем дозволено, вы не сможете сохранить такой регион. Чтобы узнать, сколько же у вас кубиков в выделении, воспользуйтесь командой:
//size

Вам будет указано сколько кубиков вы выделили в кубойд, и координаты крайних противоположных точек нашего кубоида — 1 и 2

Когда вы наконец завершили выделение кубоида, можно сохранить его за вами:
/region claim <имя региона> — Сохраняет выделенный кубоид как регион с указанным именем.

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

У каждого региона есть владельцы (owner) и члены (member). Владельцы могут изменять параметры региона, и добавлять членов и других владельцев. Когда вы создаете регион, вы автоматически записываетесь во владельцы.

Чтобы записать в члены региона, используются команды:
/region addmember <регион> <ник1> <ник2> и т.д.
Пример: /region addmember TestRegion Player1 Player2

Чтобы выгнать из членства региона, используются команды:
/region removemember <регион> <ник1> <ник2> и т.д.
Пример: /region removemember TestRegion Player1 Player2

Внимание, скобки < > НИГДЕ писать не нужно!

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

Например, игрок Semaru хочет построить себе склад алмазов.
Semaru выделяет регион любым способом и пишет
/region claim SkladOlmazaf

Теперь никто кроме него не может строить в этом регионе.

Потом приходят его друзья MCAwesome и FlashPoint и хотят ему « помочь» .
Semaru пишет:
/region addmember SkladOlmazaf MCAwesome Flashpoint

Теперь MCAwesome и FlashPoint могут вынести все Сёмино барахло помогать ему строить склад. Когда он будет закончен, и Semaru захочет остаться в нём единоличным владельцем, чтобы ему никто не мешал, он пишет:
/region removemember SkladOlmazaf MCAwesome Flashpoint

и эти игроки уже не смогут изменять кубы внутри региона MoyDom.

Если вы ошиблись при разметке региона, и уже сохранили его, не беда, его можно выбрать ещё раз с помощью команды:
/region select <регион>

После этого вы можете изменить выделенное (расширить или сократить его в нужном вам направлении), затем удалить старый регион командой:
/region delete <регион>
И заново его создать (как уже расписывалось выше).
Внимание, удалить можно ТОЛЬКО регионы, владельцем которых вы являетесь!

Теперь и обычные пользователи тоже могут ставить флаги у регионов, но это могут делать только владельцы.
Флаги ставяться командой:
/region flag <регион> <флаг> <значение>

В настоящее время у нас на сервере доступны только следующие флаги:

Флаги:
use - Возможно ли использование кнопок, дверей, и т.п.
chest-access — Возможно ли использование сундуков

Значения:
deny — отключено для всех, включая ДАЖЕ владельца.
allow - включен для всех, включая любого ДАЖЕ бомжа с соседней улицы.
Если флаг вообще не установлен — то это означает: «Можно только владельцу, и тем, кого владелец вписал».

Команда — /region list — выводит список ТОЛЬКО ваших регионов, на тот случай, если вы забыли какие регионы у вас уже есть.
Команда — /region info <регион> — выводит список овнеров и мемберов указанного региона, и еще некоторую дополнительную информацию. А именно, приоритет региона, его координаты и флаги.

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

Вам выведется:
«Can you build? No. или Yes.»

В завершение статьи, если вы так и не разобрались КАК приватить, посмотрите вот это ВИДЕО.