1. Прощаемся с GoodMC
    Прощаемся с GoodMC
    С грустью сообщаю: пришло время закрыть GoodMC после 12 невероятных лет. Спасибо вам всем!
    Здесь можно скачать архивы карт и модов.
    Присоединяйтесь к нашей телеграм группе для дальнейшей связи.
    Удачи всем и до новых встреч!
    Скрыть объявление

Запрос region-control

Тема в разделе "Разработка", создана пользователем momai, 7 дек 2016.

  1. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204
    Задача плагина в извещении игроков и администрации, что кто-то (или кто-то кроме) заходил или выходил в выделенный регион. Регион предлагается выделять средствами worldguard

    Код:
    region:
    #можно так
    
      name: reg1 #имя региона
      owner: Name,name2,name3,name4 #владельцы
      #координаты региона:
      min x y z
      max x y z
    #а можно так, раз мы используем wg, инфу о координатах региона берем оттуда.
      name: reg1
    
        loging: on #включаем логи в данном регионе
        alarm: on #включаем извещения владельцам о том, что кто-то зашел к ним
        admin-alarm: on #извещать ли админов
    
       #хотелось бы иметь возможность получать алярмы на почту или вообще на сайт.
      name: reg2
    ....
    
    Команды:

    /alarm reg1 on\off включить\выкл извещения для себя в регионе reg1 (alarm.region.reg1)

    /alarm reg1 log показать лог (alarm.region.reg1)

    /alarm reg1 log remove удалить лог (alarm.admin)
    /alarm reg1 owner add momai - добавить momai в списки участников региона. (alarm.region.reg1)
    /alarm reg1 owner del momai (alarm.region.reg1)

    Формат отображения лога:
    [дата][время] momai зашел в регион reg1!
    [дата][время] momai вышел из региона reg1!

    Формат отображения алертов
    Внимание! В ваш регион reg1 зашел игрок momai!
     
    Последнее редактирование: 23 апр 2017
  2. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204
    Надоели заброшенки. А давайте сделаем приват? Но правильный. В условиях где игроки имеют единые возможности на всей карте, в т.ч. и на чужих участках, но под нашим чутким присмотром. К тому же, когда игроки часто меняются, появляется желание что нибудь украсть. А админы и не узнают.

    Функционал из глаз игрока:
    1) Зашел, отметил регион дома установкой кровати - кроватей может быть несколько. Регион все равно общий - строить могут все. Пускай регион ограничится чанком в котором стоит игрок.
    2) Можешь добавлять друзей во все регионы по команде /friend (members в wg конфиге)
    3) Если кто-то не из друзей заходит в твой регион - тебе пишется в чат.
    4) Долго не заходил в свой регион? Инфа о твоем регионе записана в очередь на ручное удаление.
    5) Попытался удалить свою кровать? Сначала тебе сообщат, что если ты действительно этого хочешь, то потеряешь точку респавна (если установлена стуком по кровати), а так же, твоя постройка отправится в очередь на удаление.
    6) Кол-во возможных установленных кроватей ограничено
    7) Ты можешь посмотреть список своих кроватей и их координаты

    Функции от админа
    1) Установка авторегиона по команде. Пусть выделяется чанк где стоял игрок. Плагин на автофлаги вроде есть.
    2) Доступ к командам wg по добавлению участников (members) в свой регион.
    3) Запись логов входов выходов с региона чужаков. Записывать последний вход владельца региона. Реализация функционала описана в первом посте.
    4) Если игрока нет в регионе n дней, сообщать админу в игре и записать это в текстовый файлик на удаление.

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

    Со стороны разработки:
    1) Реализация авторегиона. Вроде есть такой плагин, но говорят глючит. Нужно что б не глючило, либо найти усредненный вариант между реализацией региона по 1й команде и бегатней с топором.
    2) Добавить в событие wg "вход\выход с региона" переменную игрока и дальнейшую его проверку на владелец\чужак.
    3) В случае владельца - перезаписать информацию о последнем входе. В случае чужака - дописать в конец файла. Реализовать алярмы, в том случае, если игрок\оп в сети.
    Остальное должно быть условно понятно.
     
    Последнее редактирование: 1 май 2017
  3. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204
    Еще немного структурированных мыслей:
    При установке кровати, создается регион в wg в размере 9 чанков, с кроватью в центре. Так же, эти данные записываются в БД (или файл) с информацией о последнем заходе владельца\участников региона, никах владельцев\участников, логи о входе\выходе прохожих, а так же, координаты региона. В случае внесения изменений в worldguard руками, администратор должен ввести команду синхронизации, которая обновит владельцев\участников региона и его координаты в базе данных плагина. Названия регионов так же записываются в бд плагина и синхронизируются с wg. Конфиг wg является главным.
    В случае, когда владелец\участники региона не появляются на участке в пределах выставленных в конфиге - данные в бд помечаются на удаление. Думаю будет разумным помечать участки на удаление два раза, потому, если владелец\участники региона не повляются на участке еще дольше - участок помечается в бд на срочное удаление.
    Администратор должен иметь возможность из игры и из консоли по команде получить список активных участков и участков на удаление (со списком участков на срочное удаление сверху), по отдельности.

    Из, вероятно, сложно реализуемого - в случае если игрок играет уже больше 1\2\3\5 месяцев, размеры региона соответственно увеличиваются. В случае наложения регионов друг на друга, в БД плагина, записи объединять, с пометкой объединения и сохранением обоих имен, а координаты складывать в общий регион, оставляя при этом конфиг wg нетронутым.

    Задача глобальной чистки такова - получив список регионов, облететь их, подправить их координаты в соответствие с постройками игроков. Удалить все что не в регионах.
    Задача профилактики - получив список регионов на удаление - удалить их.
     
  4. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204
    Описание плагина: Создает автоматически регион wg с указанными флагами (можно отдельным плагином сделать флаги) при установке кровати игроком. Записывает данные о событиях в регионе в бд. Ставит заброшенные регионы в очередь на ручное удаление, извещает об этом пользователей и администраторов.




    Примерная структура данных в бд:

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

    Код:
    mysql: #стандартные настройки для подключения к бд
    region: 9 chunk #сколько чанков приватить
    name-tag: @username_region #ну типа имя региона - имя юзера+ что-то
    
    autoflag: '{entry: allow,  greeting: Владения @username. , passthrough: allow, farewell:Выход с владений}
    #Передача флагов в wg, я подозреваю это крайне геморойно реализовать в таком виде,
    #но взаимодействие с конфигом wg все равно реализовывать так почему бы и нет.
    #Нужно понимать, что флаги farewell и greeting присутствуют для детектирования.
    #Если можно брать событие о входе в регион, не включая данный
    #флаг в конфиге - все упрощается.
    
    max-regions: 2 #кол-во допустимых регионов у игрока. После этого, новые регионы создаваться не будут.
    
    delete-time: 90d #какое кол-во дней игрок не должен появляться в регионе,что бы данные
     попали в список на удаление
    f-delete-time 60d #сколько пройдет еще времени, что бы регион попал в список на срочное удаление
    
    username-ignore: momai #эти игроки не будут детектиться плагином
    
    logs: #кол-во хранимых записей о событиях в бд
      alien-user: 150 #сколько записей хранить о посещении региона игроками
     
    
    messages:
    create: Вы установили кровать, тем самым обозначив это место домом.
    Данная постройка и прилегающие к ней, находятся под наблюдением
     администраторов.
    create-2: Вы установили вторую кровать и обозначили это место вторым домом.
    Это максимально допустимое кол-во домов за которыми может
    следить администрация.
    max-region: Вы превысили кол-во домов, удалите кровать в старом доме,
    в противном случае, сохранность региона в долгосрочной
     перспективе не гарантируется (больше месяца)
    
    
    
    
     
    Последнее редактирование: 10 май 2017
  5. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204
    Ещё раз. Заново.

    Описание плагина\мода:
    1) Автоматическое создание региона при установке кровати игроком в заданном радиусе. Регион не блокирует доступ другим игрокам а служит средством самоконтроля добропорядочности игрового комьюнити самими игроками. Участники региона получают оповещения о действиях на регионе на email или на сайт, а так же могут просмотреть список логов по своим регионам.
    2) Второй ключевой особенностью мода является контроль заброшенных участков. С возможностью их последующего ручного удаления.

    Суть:
    1) Игрок поставил кровать, создался автоматом регион вокруг кровати о чем игроку оповещается. Регион позволяет игроку получать уведомления о том кто ходил у него по региону. Базовая функциональность - оповещение владельца региона и его участников о входе в регион игрока не принадлежащего к списку участников. Оповещение должно приходить во вне - на почту или сайт и содержать данные: ник кто зашел, когда, когда вышел. Игрок должен видеть оповещение и в игровом чате, а так же просматривать список логов по своему региону в хронологическом порядке. Необязательным эл-ом, в случае не высокой нагрузки, можно добавить открывание сундуков и всякого такого в регионе незнакомым лицом.
    2) В случае если владелец или участники поселения не появляются на территории более N дней, регион помещается в очередь на удаление. Доступ к этому списку должен быть у администратора в web в порядке убывания.

    Особенности:
    Все регионы представлены в таблице в порядке убывания в web.
    (имя региона / создан / последний вход участника и ник / последние вошедшие с датой / координаты региона / участники / дней до удаления)
    Нельзя установить регионы ближе 5 чанков друг к другу.
    При удалении кровати регион и информация о нем удаляется.
    Кровать - единственный защищенный блок. Кол-во защит = кол-ву допустимых регионов.
    Владелец и участники могут расширять границы региона командой.
    Владелец может приглашать и удалять игроков.
    Все участники региона могут настроить оповещения через команды (вкл\выкл email, вкл\вкл game, ignore name - исключить игрока из детектов)
    Администратор может включить оповещения для себя на любых регионах.
    Возможность редактирования координат регионов администратором.



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


    Код:
    mysql: #стандартные настройки для подключения к бд
    region: 5 chunk #сколько чанков приватить по умолчанию
    name-tag: @username_region #имя региона - имя юзера+ что-то
    
    
    
    #детекторы и настройки по умолчанию
    join: true #вход и выход на регион
    
    
    max-regions: 2 #кол-во допустимых регионов у игрока. После этого, новые регионы создаваться не будут.
    
    delete-time: 90d #какое кол-во дней игрок не должен появляться в регионе,что бы данные
     попали в список на удаление
    f-delete-time 60d #сколько пройдет еще времени, что бы регион попал в список на срочное удаление
    alert-delete-user: true #оповестить ли участников поселения? (email + game)
    alert-delete-op: true: #оповещение админа
    
    username-ignore: momai #эти игроки не будут детектиться плагином
    
    logs: #кол-во хранимых записей о событиях в бд
      alien-user: 150 #сколько записей хранить о посещении региона игроками
     
    
    messages:
    create: Вы установили кровать, тем самым обозначив это место домом.
    Данная постройка и прилегающие к ней, находятся под наблюдением
     администраторов.
    create-2: Вы установили вторую кровать и обозначили это место вторым домом.
    Это максимально допустимое кол-во домов за которыми может
    следить администрация.
    errorcreate: Вы поставили кровать слишком близко к первой, так что регион создан не будет. Если вы хотите расширить существующий регион на 10 чанков, используйте команду /re 10
    max-region: Вы превысили кол-во домов, удалите кровать в старом доме,
    в противном случае, сохранность региона в долгосрочной
     перспективе не гарантируется (больше месяца)
    
     
    Последнее редактирование: 14 авг 2018
    Cristal и Tawean нравится это.
  6. Cristal

    Cristal Безумный мастер-тауматург В вайтлисте

    Сообщения:
    396
    Симпатии:
    220
    Баллы:
    99
    Level TFC:
    6
    1) А как быть, если другой игрок случайно сломал чужую кровать. Например мутузил зомби, у него проглючило и случайно снес. Что будет?
    2) Есть ли какой-то индивидуальный подход к "заходибельности" игрока в игру? Например игрок перешел на время с Ванили на ТФК, а потом просто оставался в дискорде, ибо взял "перерыв" на полгода;
    3) Правила отката регионов распространяются на плагин? Например вайпнули регион и на следующий день вернулся игрок;
    4) Что, если игрок не может по той или иной причине сделать кровать. Как ему быть (актуально для ТФК)?
    5) Что происходит с регионами забаненных игроков? Они автоматом переходят в категорию "на удаление"?
    6) Предоставляются ли поселениям какие-либо "дополнительные" бонусы в создании регионов?
    7) Как отслеживается то, что например владелец региона 1 раз зашел, зарегистрировал регион и "попал", а на его регионе активно продолжает играть его друг,при этом его кровать в абсолютно другом месте?
    8) Не будет ли у не "заприваченных" территорий меньше шансов поймать грифера и больше шансов быть вайпнутыми?
    9) Если игроки поставят кровать до установки "дополнения плагина", то им нужно ее переставить?
    10) Как быть игрокам, которые используют кровати как декор?
     
  7. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204
    Кровать при отработке события "создать регион" приватится от удаления на владельца.
    Идея мода не в автоматической зачистке свободных регионов, а в контроле существующих с возможностью (полу)ручного удаления. У нас множество регионов которые стоят как музеи. Тоже и тут должно происходить. Удаление региона только после ручной проверки администратором\модератором.
    Единственное, что дает регион - контроль входа и выхода с него не участников региона. Подразумевается, что данный функционал может быть интересен только поселениям и активным игрокам. С тем же успехом можно судить, что у большой красивой постройки меньше шансов поймать грифера чем у заброшенки без единственного сундука. Ну... да, так и есть. Активные регионы имеющие программный регион имеют больше шансов быть защищенными от грифера, чем неактивные регионы без программного региона. Не вижу тут особых проблем.
    Было б что ставить :) Но да, конечно.
    т.е. если поставить две кровати в пределах 5 чанков, то только первая из них создаст регион.
    Владелец от участника отличается только лишь тем, что может пригласить или удалить участников а так же удалить приват. Все остальные функции идентичны. Владелец или участник - не важно. Одного достаточно.


    В любом случае это лишь концепт, который еще надо будет реализовывать)
     
    Последнее редактирование: 15 авг 2018
  8. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204
    Мне не нравится визуально непонятная картина касательно распределения регионов. Хочу что бы админ мог увидеть регионы на карте, а игроки иметь представление о свободных от регионов участках.
    Пока не придумал ничего вразумительного. Думаю правильным шагом будет интеграция с картой, к примеру динмапа. Либо сингловая карта. Нужно подумать. С одной стороны новичок не должен иметь доступ к инфе о расположении регионов, с другой - он должен иметь представление о свободных участках.
     
  9. Argenta

    Argenta Активный пользователь moder В вайтлисте

    Сообщения:
    540
    Симпатии:
    150
    Баллы:
    134
    Запишу сюда, про отдельную кровать-итем для этих целей, отличную от шерсте-кровати для тфк. Хотя как сказал Момай, это все скорее для магии.
     
  10. momai

    momai Administrator В вайтлисте

    Сообщения:
    2.262
    Симпатии:
    234
    Баллы:
    204