[WIP] Regions - приватим регионы

Status
Not open for further replies.

fromgate

Administrator
В общем, добрался я сегодня до своего долгостроя. Плагин Regions, надеюсь получится аналог WorldGuard'а под Nukkit.
Плагин ещё в разработке, но уже поддерживает два флага: BREAK и BUILD.


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

Команда /rg help по идее работает (не проверял ;))
 

Bruno

Пользователь
Отличная новость!
Каков лимит привата для игроков?
И есть ли возможность дать разрешение другим группам в MadePerms?
 

fromgate

Administrator
Лимит привата пока не реализован - но будет настраиваться в конфиге ;)
А вот насчет MadPerms вопроса не понял.
 

fromgate

Administrator
Вобщем повозился сегодня.
Добавил пачку команд. Ещё столько же надо будет, судя по всему.

  • /select - Toggle selection mode
  • /select <pos1|pos2> - select current player location as point#1 or point#2
  • /region define <id> - Define new region
  • /region redefine <id> - change dimensions of region according to current selection
  • /region check - check and list all regions around you
  • /region info <id> - show region information about region
  • /region list [pageNum] - list all regions
  • /region flag <region> <flag> [rel:<relation>] <value> - configure flag for region
  • /region setowner <id> <owner>[, <owner2>..] - set owner of region (previous owners will be removed)
  • /region setowner <id> <owner>[, <owner2>..] - set owner of region (previous owners will be removed)
  • /region setmember <id> <member>[, <member2>..] - set members of region (previous members will be removed)
  • /region setowner <id> <owner>[, <owner2>..] - set owner of region (previous owners will be removed)
  • /region removemember <id> <player> - remove member from region
  • /region removowner <id> <player> - remove owner from region
  • /region remove <id> - remove defined region
  • /region help <page> - show plugin's help

Отличие команд /rg define и /rg claim заключается в том, что первая - админская. А вторая - для пользователей (можно будет настроить "захват" только специально предназначенного для этого региона. Т.е. если к примеру Вы выдаете участки "под застройку".

Ограничение по количеству регионов "на нос" и по их величине пока не предусмотрено.

Пермишены расписывать пока не буду, как правило они совпадают с шаблоном "regions.<названиеКоманды>"

Текущий вариант файла прикладываю. Это не далеко не релиз. Релиз, будет в ресурсах.
 
Last edited:

fromgate

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

Commands
Select area
/select​
/sel​

Toggles selection mode. When selection mode enabled you can use left click (with "empty hand") and right click to select first and second point of future region.

Select player location as "point 1"/"point 2"
/select pos1
/select p1
/sel pos1
/sel p1​

/select pos2
/select p2
/sel pos2
/sel p2​


Claim region
/region claim [id]
/rg claim [id]​

Claim region. This command is allows players to claim region and become owner of the region.
There's two modes for claiming.
1. Claiming pre-defined regions.
To enable this modes set paramter of config.yml "claim.claim-only-existing-regions" to true.
Players must be able to claim regions predefined by

Define regions
/region define <id>
/rg define <id>
/rg create <id>
/rg d <id>​

Redefine regions
/region redefine <id>
/rg redefine <id>
/rg update <id>
/rg move <id>​


Show region info
/region info
/rg info
/rg i​

Show info about defined region
/rg info <id>
/rg i <id>​

List all regions
/region list
/rg list
/rg lst​

Configure flags of region
/region flag <FLAG> [rel:<Relation] <value>
/region f <FLAG> [rel:<Relation] <value>
/rg flag <FLAG> [rel:<Relation] <value>
/rg f <FLAG> [rel:<Relation] <value>​

Remove flag from region
/region flag <FLAG> clear
/rg f <FLAG> remove
/rg f <FLAG> rmv
/rg f <FLAG> delete
/rg f <FLAG> del​

Copy default flag to region flag
/region flag <FLAG> default
/rg f <FLAG> default
/rg f <FLAG> standart​

Show help
/region help
/rg help
/rg hlp​


Set owner(s) of region
/region setowner <id> <player 1>[, <player2>...]
/rg setowner <id> <player 1>[, <player2>...]
/rg setown <id> <player 1>[, <player2>...]
/rg so <id> <player 1>[, <player2>...]​

Add owner of regions
/region addowner <id> <player 1>[, <player2>...]
/rg addowner <id> <player 1>[, <player2>...]
/rg addown <id> <player 1>[, <player2>...]
/rg ao <id> <player 1>[, <player2>...]​

Remove owner from region
/region removeowner <id> <player>
/rg removeowner <id> <player>
/rg remowner <id> <player>
/rg remown <id> <player>
/rg ro <id> <player>​

Set member of region
/region setmember <id> <player 1>[, <player2>...]
/rg setmember <id> <player 1>[, <player2>...]
/rg setmem <id> <player 1>[, <player2>...]
/rg sm <id> <player 1>[, <player2>...]
Add member of regions
/region addmember <id> <player 1>[, <player2>...]
/rg addmember <id> <player 1>[, <player2>...]
/rg addmem <id> <player 1>[, <player2>...]
/rg am <id> <player 1>[, <player2>...]
Remove owner
/region removemember <id> <player>
/rg removemember <id> <player>
/rg remmember <id> <player>
/rg remmem <id> <player>
/rg rm <id> <player>

Ну что ж. Теперь нужно добавить необходимый минимум по флагам.
 

fromgate

Administrator
Отличная новость!
Каков лимит привата для игроков?
И есть ли возможность дать разрешение другим группам в MadePerms?
Лимит реализован, значение - настраивается в конфиге.
Так же реализован лимит по количеству регионов на игрока.
Есть проверка (для команды /region claim) на наличие "пересечения" с другими регионами. Нельзя будет захватить себе часть чужого региона.
Сделана возможность захвата предопределенных регионов: т.е. админ создает регионы/участки - а игроки могут их забирать себе (правда в этом случае они не могут захватывать произвольные территории).

Про пермишены поясните, что имеется в виду?
 

fromgate

Administrator
Залил на GitHub: https://github.com/fromgate/Regions

Поддерживаются флаги:
  • BREAK - разрушение блоков
  • BUILD - установка блоков
  • CHEST - открытие сундуков
  • PVP - получение урона от игроков (и нанесение ;))
  • LEVER - дёрганье сундуков
  • PLATE - топанье по нажимным панелям
  • DOOR - двери
  • TRAPDOOR - люки
  • GATE - врата
  • CLAIM - возможность "захватывать" регионы игроками
 

fromgate

Administrator
Добавил флаг ENTRY - запрещает вход (и вообще движение) в регионе.
Починил команду /region flag ;)
 

Pub4Game

Модератор всея Nukkit.ru
Moderator
Пожалуйста, добавь /rg pos1, /rg pos2. Также больше сообщений, когда вводишь неверные команды)). Если игрок создает регион, то он не заносится в список овнеров..( Но ты все равно молодец! Спасибо :)
 

fromgate

Administrator
@pub4game
По /rg define и не будет заноситься - это команда для админов.

Для пользователей будет команда /claim (я решил тут обойтись без /rg) - её ещё надо отладить. Что-то я там накуролесил - не работает как надо. Сегодня будут проверять.

Вместо /rg pos1 и /rg pos2 будут /sel pos1 и /sel pos2

У меня есть ещё планы на команду /select (/sel) - это будет универсальный селектор территорий для разных ситуаций ;)


Последний (на текущий момент времени) билд прилагаю - тут исправлен ряд ошибок. Перенёс проверку открытия дверей в соответствующий обработчик.

Добавил первый текстовый флаг ENTRYMSG - можно будет назначать сообщение на вход в регион.
 

Pub4Game

Модератор всея Nukkit.ru
Moderator
Игорь, пойми, многие привыкли к этим командам, даже в WG они есть, а эти /sel очень неудобны и многие начинающие игроки опять будут доставить администраторов серверов с вопросами....
 

fromgate

Administrator
Игорь, пойми, многие привыкли к этим командам, даже в WG они есть, а эти /sel очень неудобны и многие начинающие игроки опять будут доставить администраторов серверов с вопросами....
В WG этих команд нет ;)
Эта команда была введена из-за того что на телефонах нет нормального правого клика. Поэтому использовать wand - топорик не представляется возможным.

Возможно я ещё переделаю механику выбора территории.
Но вообще, я допускаю возможность, что регионы будут не только кубоидными, но и сферическими, цилиндрическими и полигональными. Будет очень странно, если при наличии команды /rg pos1 все остальные будут выполняться через /select.
Но я не допускаю того, что сделаю под них алиас или что-то, но зацикливаться на этом смысла вообще не вижу.

Тут есть гораздо более интересные задачи, которые надо будет решать ;)
 
Last edited:

fromgate

Administrator
Добавил флаг LEAVE (запрет выхода из региона - можно создать тюрьму ;)) и флаг LEAVEMSG (сообщение при выходе).
regions-leavemsg-flag.png


А ещё подумал и добавил события для входа/выхода из региона.
regions-events-test.png
 

fromgate

Administrator
Сами по себе заработали частицы. Я НИЧЕГО НЕ ТРОГАЛ. Месяц назад написал код для подсветки регионов частицами. Не работало - я и плюнул, решил потом разобраться.
Сегодня внезапно я обнаружил частицы в области выделения!!!

Я в шоке: это новое слово в программировании! ;)

Немного доработал и процесс выделения региона теперь вполне нагляден:

regions-selection-show.png

P.S. Частицы видит только тот кто выделяет территорию. Остальным это не мешает.
 

M4Gn1T

Developer (Level 2)
Сами по себе заработали частицы. Я НИЧЕГО НЕ ТРОГАЛ. Месяц назад написал код для подсветки регионов частицами. Не работало - я и плюнул, решил потом разобраться.
Сегодня внезапно я обнаружил частицы в области выделения!!!

Я в шоке: это новое слово в программировании! ;)

Немного доработал и процесс выделения региона теперь вполне нагляден:


P.S. Частицы видит только тот кто выделяет территорию. Остальным это не мешает.
Вообще огонь!:eek:
 

fromgate

Administrator
Когда выбрана только одна (первая или вторая точка), то чтобы её подсвечивать получше - сделал эффект размером побольше :)

regions-selection-show-one-point.png
 

fromgate

Administrator
В общем дело ближется к релизу.
Добавил:
  • Подсвечивание пересекающихся регионов (т.е. если у Вас есть есть регион в области выделения, то его границы будут подсвечены частицами).
  • Добавил ряд настроек касательно частиц в конфиг
  • Заставил алгоритм расчета пересечений работать без погрешности

Пересекающиеся с выделением регионы подсвечиваются синими частицами. На картинке не очень наглядно, но в игре - очень даже нормально.

regions-selection-intersection.png
 

Attachments

Status
Not open for further replies.
Top