Отображение региона, в котором находится игрок (Мод+Плагин)

sk9zist :l

Исправился
975
18
154
Все что можно найти в интернете на тему такого мода это нерабочие ссылки на скачивание самого мода+плагина а также исходников, так что я решил написать его с нуля (для своего проекта) и делюсь с вами, поскольку многие крупные проекты майнкрафт серверов очень жадные и не хотят делиться им.

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

2021-11-13_22.15.34.png
2021-11-13_22.17.10.png

А также вывод их через запятую, если в одном месте регионов несколько:
2021-11-13_22.17.05.png

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

v1.2 (мод. Совместим с версиями плагина: 1.2, 1,3): RGEnter-client.jar
Исходники: RGEnter-client[SRC].zip
v1.3 (мод. Совместим с версиями плагина: 1.4): RGEnter-client.jar
Исходники: RGEnter-client[SRC].zip

v1.2 (плагин. Использовать вместе с версией мода 1.2): RGEnter-server.jar
Исходники: RGEnter-server[SRC].zip
v1.3 (плагин. Использовать вместе с версией мода 1.2): RGEnter-server.jar
Исходники: RGEnter-server[SRC].zip
v1.4 (плагин. Использовать вместе с версией мода 1.3): RGEnter-server.jar
Исходники: RGEnter-server[SRC].zip
 
Последнее редактирование:

sk9zist :l

Исправился
975
18
154
Немного обновил мод:
  • Пофиксил расположение текста в разных местах в зависимости от размера окна (так не должно было быть), теперь при любом размере текст будет находиться в левом верхнем углу.
  • Добавил скрытие отображения при открытии инвентаря, меню ESC, а также при нажатии F3.
 
560
16
277
mc.fontRenderer.drawString(s, event.resolution.getScaledWidth() - event.resolution.getScaledWidth() + 8, event.resolution.getScaledHeight() - event.resolution.getScaledHeight() + 10, -1);
0ce3a25e7d94d2e3a84459d65a392b32.jpg
 

Icosider

iMixin
Администратор
3,513
89
623
А зачем всем то отправлять пакет? И судя по коду, автор застрял где-то в 12-13 году
1636973590049.png
Зачем чистить и так чистый список?
1636973628985.png
set и currset вообще молчу...
Зачем такое название канала? Защита?
1636973767704.png
Мод не стал смотреть, думаю там ещё хуже...
 
7,003
315
1,470

sk9zist :l

Исправился
975
18
154
А зачем всем то отправлять пакет?
А разве не логично? Название региона отображаеться у всех игроков на сервере, а значит и отправлять пакет нужно всем
Зачем такое название канала? Защита?
Типо. Название канала должно быть сложным, чтобы нельзя было перехватить пакеты. Ну, думаю, здесь это и правда незачем, спасибо.

@VIZZI Поправил.

P.S. Обновил ссылки на скачивание.
 

tox1cozZ

aka Agravaine
8,339
590
2,804
А разве не логично? Название региона отображаеться у всех игроков на сервере, а значит и отправлять пакет нужно всем
Игрок зашёл в регион - отослали ему одному пакет с названием текущего региона.
Нет, не логично. Зачем эта информация всем, если отобразить нужно одному?
 
К сожалению, не могу создать тему на слив :(

Всю жизнь пользовался, проблем не было.

P.S Сорцы сделать не проблема. Ну и не изобретайте велосипед.

UPD: Minecraft Version 1.7.10
 

Вложения

  • RGHelper-Mod.jar
    14.9 KB · Просмотры: 14
  • RGHelper-Plugin.jar
    6.8 KB · Просмотры: 15
Для особо ленивых, кстати можно и лайков накидать...
 

Вложения

  • RGHelper-Mod-SRC.zip
    8.5 KB · Просмотры: 13
  • RGHelper-Plugin-src.zip
    3.1 KB · Просмотры: 9

sk9zist :l

Исправился
975
18
154
Всю жизнь пользовался, проблем не было.
RGHelper? Пробовал его использовать, но с отображением самого названия региона возникали проблемы в виде краша, а также в нем просто очень много ошибок.
И вроде бы, там есть выделение регионов сеткой. В моем же плагине только отображение названия, без лишнего.
 

tox1cozZ

aka Agravaine
8,339
590
2,804
К сожалению, не могу создать тему на слив :(

Всю жизнь пользовался, проблем не было.

P.S Сорцы сделать не проблема. Ну и не изобретайте велосипед.

UPD: Minecraft Version 1.7.10
Понятно теперь откуда ТС код тырил. Ну, та же фигня если честно.
 

sk9zist :l

Исправился
975
18
154
Последнее редактирование:

sk9zist :l

Исправился
975
18
154
@promortred Протестировал твой мод+плагин. Видимо, у тебя все-таки осталась старая версия данного плагина, в которой еще не было попыток сделать навороченный функционал и все работало без ошибок (относительно).
Регионы отображаются корректно, по клавише B можно включить визуальное отображение приватов в виде кубов (сквозь блоки прозрачных кубов не видно, это плюс). Спасибо за такое дополнение этой темы, кому будет нужно - тот сможет использовать как раз его :)
 

sk9zist :l

Исправился
975
18
154
Обновление:
  • Оптимизировал отправку пакетов (пакет не будет отсылаться если игрок стоит на месте, это снизит нагрузку на сервер), а также сделал небольшие поправки в коде
  • После изменений возник баг - несколько символов названия региона не были видны, исправил
  • Увеличена частота обновления приватов на 1 секунду

P.S. Обновил ссылку на скачивание плагина и его исходников.
 
7,003
315
1,470

sk9zist :l

Исправился
975
18
154
стоит на месте, а приват удаляется/создается
Хм, а если игрок стоит афк на сервере и в данный момент не у могитора? А если он в игре, то достаточно будет пройти 1 блок чтобы регион обновился. Возможно потом уберу это, оставив только обновление раз в 2 секунды. Однако нагрузка возрастет
 
7,003
315
1,470
Однако нагрузка возрастет
Какая, лол, нагрузка?) Сервер каждый тик отправляет всем в радиусе пакеты движения каждого игрока. Достаточно махнуть башкой, чтобы вынудить сервер отправить кучу пакетов.

В твоей задаче частота изменения информации куда ниже. Даже, если игрок сдвинется с места, то не факт, что множество регионов вокруг него поменяется. Даже если пройдет две секунды, то не факт, что множество регионов вокруг поменяется. Даже если пройдет одна секунда, то не факт, что множество регионов вокруг не поменяется.
Откуда вообще эти две секунды? Звучит, как дырявое обобщение.

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

sk9zist :l

Исправился
975
18
154
В твоей задаче частота изменения информации куда ниже. Даже, если игрок сдвинется с места, то не факт, что множество регионов вокруг него поменяется. Даже если пройдет две секунды, то не факт, что множество регионов вокруг поменяется. Даже если пройдет одна секунда, то не факт, что множество регионов вокруг не поменяется.
Игроку каждую секунду (с последним обновлением - каждые 2) отправляется пакет о том, что он находится в регионе, будь то это глобальный регион или любой другой, и даже если игрок находится все время в одном регионе - по сути пакеты будут отправляться всегда, для этого и нужна задержка обновления (отправки пакетов)
Посмотри на устройство WorldGuard, наверняка у него есть события создания, удаления и изменения региона - полагаться на них выглядит лучшим способом отслеживать изменение регионов во времени.
в WorldGuard API такого вроде бы нет, иначе бы сразу использовал
В WorldGuard есть фича приветствия и прощания - игроку отправляются сообщения чата при входе и выходе из региона - скорее всего под это тоже сделаны кастомные события и полагаться на них выглядит лучшим способом отслеживать изменения регионов в пространстве.
Спасибо, буду искать. Отправка пакета только при первом в ходе в регион - было бы лучшим решением
 
Сверху