- От разработчика
-
Текущее описание актуально только для версий > 2.0.0, версии до этого представляли из себя простейшие задачи без настроек в принципе
- Автор
- Vlad-00003
Представляю вашему вниманию новую, улучшенную и, откровенно говоря, написанную заново математическую викторину!
Данный плагин умеет на лету создавать не сложные задачи, с использованием сложения, вычитания и умножения.
В качестве наград можно выставлять предметы, команды или привилегии по времени, которые автоматически будут сниматься по истечении заданного срока.
Викторина так же включает в себя "защиту от перебора спамом" - числа распознаются только целиком.
Например: если правильный ответ 278, то получить награду написав 10239871928371029382781023980192380128310 не получится
Команда
Плагин содержит команду /mq (можно изменить в конфигурации), которая позволяет:
- Игрокам:
- /mq top
Просмотреть топ победителей на сервере - /mq p
Просмотреть список активных на данный привилегий и оставшееся время их действия
- /mq top
- Администраторам (привилегию администратора можно изменить в конфигурации):
- /mq top
Просмотреть топ победителей на сервере - /mq debug
Просмотреть текущий список наград и шансы их выпадения - /mq force
Запустить викторину в ручную, игнорируя условия запуска (частоту, минимальный онлайн). Если викторина уже идёт - текущая задача будет отменена и запущена новая. - /mq p <ИмяИлиSteamID>
Просмотреть список активных привилегий на данный привилегий и оставшееся время их действия у игрока
- /mq top
Настройки викторины
- Минимальный онлайн для запуска:
В случае, если на сервере меньше указанного количества игроков, запуск по времени будет пропущен. - Частоту запуска в секундах:
Сколько должно пройти времени после завершения последней викторины. - Продолжительность викторины в секундах:
Сколько времени даётся игрокам на то, чтобы дать правильный ответ. Если установлено значение 0 - игроки могут гадать столько, сколько будет работать сервер. - Частоту напоминаний:
Раз в сколько секунд плагин будет напоминать игрокам текущую задачу. Всем вновь присоединившимся игрокам напоминание будет отправляться сразу после пробуждения. - Количество операторов в выражении:
Минимальное и максимальное количество операторов, которое может появится в сгенерированном уравнении. Учтите, что операторов не может быть меньше 1. - Минимально и максимально возможные числа в выражениях:
Сложность уравнений зависит не только от умения правильно понять порядок операторов, но и в умении проводить сложные вычисления... или быстро набирать значения в калькуляторе
Возможные награды
У каждого типа наград можно установить "Шанс получения"Он работает как "вес" - т.е. сам шанс будет зависеть от того, сколько "веса" набролось в сумме.
Реальную вероятность выпадения можно просмотреть при помощи команды /mq debug.
Предметы
У каждого предмета можно указать:- Сам предмет
Короткое или полное имя на английском, взять можно тут. - Skin ID
Уникальный идентификатор скина, который будет использоваться на предмете. Принятые в игру можно найти тут, скины же из мастерской можно использовать напрямую, к примеру в ссылке "https://steamcommunity.com/sharedfiles/filedetails/?id=1467078851" 1467078851 - это Skin ID
Так же позволяет добавлять в качестве наград "кастомные предметы" из других плагинов. Сработает ли это с вашим плагином - уточняйте у его разработчика
ВАЖНО! Плагин не проверяет подходит ли указанный скин к указанному предмету, так что следите внимательнее. - Название предмета в мире
То, как предмет будет называться в инвентаре игрока. Так как поле для названия всего одно и оно перезаписывает данные игры - локализовать его невозможно, все игроки будут видеть одно и то же название. - Количество
Сколько предмета будет выдано игроку. Плагин автоматически разделит стаки, в стандартной конфигурации есть вариант с 2-мя автоматическими винтовками - они будут выданы в разные слоты. - Текст при получении награды
Текст, который будет выводится в сообщении о получении награды. {0} заменяется на название оружия в соответствии с языком клиента, {1} - на количество.
В случае, если текст не указан - будет использоваться языковой ключ "Item", стандартное значение {0} x{1}.
При изменении значения - во все языковые файлы будет добавлен новый ключ, с таким же значением. Не забудьте его перевести!
При запуске плагина каждый предмет будет проверен. В случае, если такого предмета в игре не существует или указано количество меньше 1 - предмет не будет выпадать как награда, а так же будет выведено соответствующее сообщение в консоль.
Привилегии
У каждой привилегии можно указать:- Саму привилегию
- Длительность привилегии в секундах
- Название привилегии
Это название, которое будет использоваться вместо самой привилегии при отображении в сообщении о победе\в списке активных привилегий.
Оно так же является ключом для языковых файлов и его можно локализовывать. - Текст при получении награды
Текст, который будет выводится в сообщении о получении награды. {0} заменяется на название привилегии, {1} - на длительность.
В случае, если значение не указано - будет использоваться языковой ключ "Permission". Стандартное значение "привилегия {0} на {1}." для русского языка и "permission {0} for {1}." для английского соответственно.
При запуске плагина каждая привилегия будет проверена. В случае, если привилегия не существует или указана длительность меньше 1 секунды - привилегия не будет выпадать как награда, а так же будет выведено соответствующее сообщение в консоль.
Команды
У каждой команды можно указать:
- Команду
Подстановки:- %STEAMID% - заменяется на SteamID победителя.
- %NAME% - на имя.
- От чьего имени будет выполнена команда - true от имени сервера, false - от имени игрока
Если простым языком - при значении true команда сработает так, как будто её ввели в консоль сервера\rcon
При значении false так, будто игрок сам прописал её в консоль игры
ВАЖНО! Игра блокирует отправку определённых команд со стороны сервера на клиент, например bind. - Текст при получении награды
В отличии от предметов и привилегий тут нет никаких символов подстановки, однако при изменении значения так же будут создаваться новые языковые ключи, что позволит локализовать текст для каждого отдельного игрока
Так как нет достаточно достоверного способа проверки команд - плагин НЕ проверяет их при запуске. Следите за тем, чтобы они были актуальны\верно заданы аргументы
- КОНФИГУРАЦИЯ
-
JSON:
{ "Настройки сообщений в чате": { "Steam ID сообщений": 0, "Формат сообщений": "[#42dff4][MathQuiz][/#]: {0}" }, "Настройки команд": { "Команда плагина (топ, запуск и отображение наград)": "mq", "Привилегия администратора (требуется для запуска и отображения наград)": "MathQuiz.Admin" }, "Настройки викторины": { "Минимальный онлайн для запуска": 4, "Частота запуска (в сек.)": 300, "Продолжительность викторины (меньше 0 - до правильного ответа)": 0, "Частота напоминаний (в сек.)": 60, "Количество операторов в выражении": { "Минимум (включительно)": 2, "Максимум (включительно)": 4 }, "Числа в выражениях": { "Минимум (включительно)": 2, "Максимум (включительно)": 15 } }, "Предметы в награду за ответ": { "Использовать": true, "Список наград": [ { "Предмет (короткое или читаемое имя предмета на английском)": "ammo.pistol", "Skin ID": 0, "Название предмета в мире": null, "Количество": 100, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "ammo.pistol.fire", "Skin ID": 0, "Название предмета в мире": null, "Количество": 50, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "ammo.pistol.hv", "Skin ID": 0, "Название предмета в мире": null, "Количество": 50, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "ammo.rifle", "Skin ID": 0, "Название предмета в мире": null, "Количество": 100, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "ammo.rifle.explosive", "Skin ID": 0, "Название предмета в мире": null, "Количество": 50, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "ammo.rifle.hv", "Skin ID": 0, "Название предмета в мире": null, "Количество": 50, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "ammo.rifle.incendiary", "Skin ID": 0, "Название предмета в мире": null, "Количество": 50, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "Assault Rifle", "Skin ID": 0, "Название предмета в мире": null, "Количество": 2, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": "два АК", "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "Custom SMG", "Skin ID": 0, "Название предмета в мире": "Красивая SMG", "Количество": 1, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": "красивую SMG", "Шанс получения": 20 }, { "Предмет (короткое или читаемое имя предмета на английском)": "Thompson", "Skin ID": 0, "Название предмета в мире": null, "Количество": 1, "Текст в чате при получении награды ({0} - название предмета, {1} - количество)": null, "Шанс получения": 20 } ] }, "Привилегии в награду за ответ": { "Использовать": true, "Список наград": [ { "Привилегия": "RatesController.MathReward", "Длительность привилегии (в сек.)": 120.0, "Название привилегии в списке/при завершении действия": "Дополнительные 15% к множителям добычи", "Текст в чате при получении награды ({0} - привилегия, {1} - длительность)": "дополнительные 15% к множителям добычи на {1}.", "Шанс получения": 5 } ] }, "Снимать привилегии при вайпе": false, "Команды в награду за ответ": { "Использовать": true, "Список наград": [ { "Команда (%STEAMID% - Steam ID игрока, %NAME% - имя)": "chat.say Ура, я победил!", "Выполнять команду от имени сервера (false - от имени игрока)": false, "Текст в чате при получении награды": null, "Шанс получения": 10 }, { "Команда (%STEAMID% - Steam ID игрока, %NAME% - имя)": "global.say Поздравляю с победой, %NAME%!", "Выполнять команду от имени сервера (false - от имени игрока)": true, "Текст в чате при получении награды": "поздравление от имени сервера", "Шанс получения": 10 }, { "Команда (%STEAMID% - Steam ID игрока, %NAME% - имя)": "inventory.giveto %STEAMID% apple 5", "Выполнять команду от имени сервера (false - от имени игрока)": true, "Текст в чате при получении награды": "5 яблок через команду от имени сервера", "Шанс получения": 10 } ] } }
