Скачать worldguard версия 5.7 6. WorldGuard - плагин для защиты и приватизации регионов

WorldGuard - это плагин для сервера Bukkit, который позволяет защищать регионы (приватить). Так же этот плагин добавляет некоторые полезные инструменты. Страница плагина доступна по адресу: http://dev.bukkit.org/server-mods/worldguard/ .

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

  1. Выделяем регион
  2. Вводим команду: /region define Имя_Региона Имя_Игрока

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

  • /god [Имя_Игрока] - сделать игрока бессмертным
  • /ungod [Имя_Игрока] - снять бессмертие с игрока
  • /heal [Имя_Игрока] - восстановить здоровье игроку
  • /slay [Имя_Игрока] - отнять жизнь у игрока
  • /stack или /; - увеличить все элементы инвентаря до максимального количества в стеке
  • /locate [Имя_Игрока] - Points your compass towards a player.

Команды Emergency (аварийные)

  • /stopfire [Мир] - останавливает распространение огня на сервере. Это временная команда, которая перестанет работать после перезагрузки сервера. Все вошедшие игроки будут предупреждены о запрете распространения огня.
  • /allowfire [Мир] - отключает действие предыдущей команды /stopfire
  • /stoplag [Мир] - останавливает все интенсивные процессы: разлив воды, разлив лавы, тнт, спавнинг мобов и т.д.. Это так же временная команда, действие которой прекратиться после перезагрузки сервера. Все вошедшие игроки будут предупреждены о включении этого режима.
  • /stoplag -c - отключает действие предыдущей команды /stoplag
  • /worldguard flushstates [Имя_Игрока] - Flush any data stored in the state manager that tracks player location for the entry, exit, greeting and farewell flags. Use this if someone is stuck in an exit deny region (or outside an entry deny one) after the flag or region has been removed.

Команды управления плагином WorldGuard

  • /worldguard version - отобразить версию плагина
  • /worldguard reload - перезапустить плагин WorldGuard
  • /worldguard report [-p] - записать в файл отчет обо всех настройках и информации о сервере в файл, который будет лежать в папке плагина

Команды WorldGuard для защиты регионов

Определение региона (define)

  • /region define <Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Владельцы...>]]]
  • /region def <Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Владельцы...>]]]
  • /region d <Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Владельцы...>]]]

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

Переопределение региона (redefine)

  • /region redefine <Имя_Региона>
  • /region update <Имя_Региона>
  • /region move <Имя_Региона>

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

Claim

  • /region claim <Имя_Региона> [<Владелец1> [<Владелец2> [<Другие_Валадельцы...>]]]

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

Информация о регионе

  • /region info [-s] [<Мир>] [<Имя_Региона>]

Отображает информацию о регионе. Флаг -s помимо отображения информации о регионе выделяет указанный регион.

Выделение региона

  • /region select [<Имя_Региона>]

Выделяет регион. Если вы не укажите Имя_Региона, будет выделено высокоприоритетный регион текущей локации.

Получить список регионов

  • /region list [<Номер_Страницы> [<Мир>]]

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

Установка флагов

  • /region flag <Имя_Региона> <Название_Флага> [<Значение>]

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

Установить приоритет

  • /region setpriority <Имя_Региона> <Приоритет>
  • /region priority <Имя_Региона> <Приоритет>
  • /region pri <Имя_Региона> <Приоритет>

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

Установить родительский регион

  • /region setparent <Имя_Региона> <Имя_Родительского_Региона>
  • /region parent <Имя_Региона> <Имя_Родительского_Региона>
  • /region par <Имя_Региона> <Имя_Родительского_Региона>

Устанавливает родительский регион. Например. У нас есть город City. В этом городе мы выдаем территории под постройку. Для этого нужно определить новый регион игроку, например, с названием City-Home-Nick и назначить игрока владельцем только, что созданного региона. Теперь чтобы игрок мог строить в своем регионе, нужно указать родительский регион: /region setparent city-home-nick city . Некоторые админы не пытаясь вникнуть в особенности плагина просто назначают владельцем региона city игрока. Это может привести к порче всего города и позорному увольнению админа.

Удаление региона

  • /region remove <Имя_Региона> <Приоритет>
  • /region rem <Имя_Региона> <Приоритет>
  • /region delete <Имя_Региона> <Приоритет>
  • /region del <Имя_Региона> <Приоритет>

Команда удаляет регион. Пример: /region remove marick - удалить регион с названием marick.

Teleport

  • /region teleport [-s] <Имя_Региона>
  • /region tp [-s] <Имя_Региона>

Teleports to the point specified by the region"s teleport flag. If you specify the -s flag, you will be teleported to the spawn point instead.


Есть класс

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 - популярный плагин для защиты и приватизации мира или определённых регионов от разрушений. Плагин работает только при установленном WorldEdit. Если вам нужна защита от гриферов или же вы хотите запретить PVP в определённом регионе, то этот плагин пригодится вам, как никакой другой. Его используют почти все администраторы серверов, чтобы игроки могли защищать свои постройки, так что смело устанавливайте его!

Как пользоваться плагином WorldGuard?
Если я буду рассказывать вам о всех функциях плагина, я, как и в случае с WorldEdit потрачу более нескольких дней. Но о основных функциях плагина WorldGuard я смогу вам рассказать!
Начинает с основ, а именно с того, для чего и создавался этот плагин первоначально - для привата регионов от гриферов и нехороших людей. Для того, чтобы заприватить регион вам для начала понадобится его выделить. Как это делать я рассказывал уже много раз и расскажу ещё разок. Расскажу о самом простом методе выделения - о выделении деревянным топором. Давайте будем действовать по шагам.
1. Возьмите в руки деревянный топор.
2. Кликните левой кнопкой в точке А.
3. Кликните правой кнопкой в точке Б.
Готово, вы выделили параллелепипед. О том, где надо ставить точки для выделения параллелепипеда я затрудняюсь рассказать на словах, поэтому просто покажу вам картинку. Посмотрев на него вы всё поймёте!
WorldGuard - плагин для защиты и приватизации регионов
Так, я думаю, что с выделением региона мы разобрались. Давайте же заприватим его, чтобы злые гриферы его не разрушили.
Для привата региона вводите команду /rg claim . Я думаю, что с этим разобрались. Хотите детальнее узнать про приват регионов, тогда прочитайте эту статью о привате регионов.

С обычным использованием плагина мы разобрались. Давайте теперь настроим WorldGuard для обычных целей. Я буду рассказывать на примере своих настроек.
Для начала разберёмся с правами. Я дал вот такие права обычным игрокам:
- worldedit.wand - пермишн от плагина WorldEdit для того, чтобы игроки могли выдать себе топор командой //wand.
- worldedit.wand.toggle - пермишн для выделения регионов.
- worldguard.wand - не помню для чего, но без этого вроде бы тоже не работает выделение.
- worldedit.selection.pos - выделение региона командами.
- worldguard.region.claim - пермишн для использования команды привата после того, как игрок выделит регион.
- worldedit.selection.expand - пермишн для использования команды для расширение региона после его выделения.
- worldguard.region.addmember.own.* - добавление пользователя регионом.
- worldguard.region.addowner.own.* - добавление владельца региона.
- worldguard.region.removemember.own.* - удаление пользователя региона.
- worldguard.region.removeowner.own.* - удаление владельца региона.
- worldguard.region.remove.own.* - удаление самого региона.
После этих несложных настроек прав ваши игроки смогут использовать основной функционал плагина защиты регионов. Если вы разбираетесь в настройке прав и хотите настроить более детально, то вот список Permissions и команд на официальном Wiki-сайте разработчика плагина.

Также с помощью плагина WorldGuard можно настраивать некоторые другие функции. К примеру вы можете сделать так, чтобы когда крипер взрывался он наносил урон игрокам и мобам, которые находятся рядом, но не разрушал при этом блоки. Это всё можно сделать в файле конфигурации, который лежит в папке плагина WorldGuard/config.yml. Но если вы не разбираетесь в конфигурации плагинов, то лучше не лезьте туда, там и так уже всё нормально настроено.