Форум PentaCraft

[Macro/Keybind] Чёрный список на чат

Здравствуйте,
Часто бывают ситуации, когда какой-то игрок надоедает Вам в глобальном чате или же Вы принципиально не хотите видеть его сообщения, или надоела реклама от этого игрока, или какая-то другая ситуация. Команда /ignore в данной ситуации не помогает так, как она работает только на личные сообщения, но выход есть всегда :slight_smile:

Мод Macro/Keybid кроме всего прочего позволяет скрывать сообщения по определенному фильтру. Это довольно просто сделать, но хочется, чтобы было всё красиво и удобно. Чтобы можно было добавлять людей в список, удалять их от туда по отдельности или вообще очистить список. И именно поэтому я решил по быстрому создать и опубликовать на форуме для игроков скрипт, который позволит насладиться чистым от нелюбимых им людей чатом и инструкцию по его настройке.

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

Так как не все умеют пользоваться MacroKeybind, то начнем инструкцию с добавления кнопок на экран.

1. Нажмите Ё, у Вас откроется меню MacroKeybind:

2. В правом нижнем углу нажмите на кнопку “GUI Редактор”:
image

3. В открывшемся редакторе снизу слева нажмите на “Команды панели кнопок”,
image
а зачем “Добавить кнопку”. Выберите место расположения кнопки, дайте ей название в строке “Текст” и нажмите “ОК”. Поздравляем, кнопка создана, но она ничего пока что не делает.

4. Не выходя из меню GUI редактора нажмите на только что созданную кнопку. У Вас откроется меню редактирования макроса:


Сюда необходимо скопировать скрипты, которые будут прикреплены ниже. Для каждого скрипта нужна отдельная кнопка. Не забудьте их назвать так, чтобы не запутаться потом. После того, как вставите текст в строку не забудьте нажать “Запись” в правом нижнем углу, чтобы сохранить изменения:
image

Важно скопировать всё без ошибок

4.1. Кнопка добавление игрока в чёрный список:

$${
&addnick=$$?;
INDEXOF(@&nicklist[],#index,"%&addnick%");

IF((#index=-1));
PUSH(@&nicklist[],%&addnick%);
INDEXOF(@&nicklist[],#index,"%&addnick%");
LOG(%@&nicklist[%#index%]% успешно добавлен в Ваш чёрный список.);
ELSE;
LOG(%&addnick% уже есть в Вашем черном списке.);
ENDIF;

UNSET(&addnick);
UNSET(#index);
}$$

4.2 Кнопка удаления игрока из черного списка + вывод всех игроков, которые остаются в черном списке:

$${
&remnick=$$?;
INDEXOF(@&nicklist[],#index,"%&remnick%");
UNSET(@&nicklist[%#index%]);
POP(@&nicklist[],&buffer);
PUT(@&nicklist[],%&buffer%);

IF(%#index%=-1);
LOG(Игрока %&remnick% нет в Вашем черном списке.);
ELSE;
LOG(Игрок %&remnick% успешно удалён из Вашего чёрного списка.);
ENDIF;

JOIN(", ",@&nicklist[],&playernicklist);

IF(%&playernicklist%=" ");
LOG(В Вашем черном списке нет игроков.);
ELSE;
LOG(В вашем черном списке: %&playernicklist%);
ENDIF;

UNSET(&buffer);
UNSET(&playernicklist);
UNSET(#index);
UNSET(&remnick);

}$$

4.3 Кнопка для очистки черного списка от всех игроков:

$${
UNSET(@&nicklist[]);
LOG(Чёрный список успешно очищен.);
}$$

5. Теперь, когда мы можем добавлять ники в черный список и удалять их от туда пора настроить фильтр чата. Для начала в правом нижнем углу меню MacroKeybind нажмите “Забиндить кнопки”:image
Далее в левом верхнем углу открывшегося окна откройте всплывающий список:
image
и выберите “Edit Chat Filter”.

6. В окно редактирования чат фильтра добавьте скрипт, который прикреплен ниже:

JOIN(":|",@&nicklist[],&playernicklist);
IFMATCHES(%CHATCLEAN%,"%&playernicklist%");
FILTER;
ENDIF;

При желании можно добавить строку логирования перед “ENDIF;”:

LOG(“Игрок из черного списка написал в глобальный чат”)

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

7 Симпатий

Если я добавлю игрока “LordOfDarkness” в черный список, но другой игрок напишет его ник, я увижу это сообщение или оно удалиться?

Персонал, которому запрещено игнорировать игроков в чате:

4 Симпатий

Помню был хелпер, который просто офал чат и играл((

2 Симпатий

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.