1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Плагин [FUN] RandomBox 2.5.1 — коробки удачи в Minecraft! *теперь с кастомными GUI* [1.7 | 1.8]

Тема в разделе "Релизы плагинов", создана пользователем saharNooby, 23 окт 2014.

  1. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    [​IMG]

    Плагин RandomBox позволяет вам использовать так называемые "коробки удачи" — контейнеры, из которых вам могут выпасть несколько случайных вещей, указанных в настройках плагина. Идея полностью взята, как можно догадаться уже по краткому описанию, из игры Warface.

    Страничка на dev.bukkit | Страничка на Spigot Resources

    На школосерверах с продажей креатива и/или команды /give плагин бессмыслен по 2 причинам:
    • Креатив позволяет копировать вещи 1 кликом;
    • Через /i и /give можно подделать lore (а значит, и код коробки).

    Плагин тестировался на билде Spigot от 1 октября (использует BukkitAPI).

    Также, тестировался на Spigot-сборках от @Kron (1.5.2; 1.6.4; 1.7.9).

    Описание работы

    Плагин выдаёт коробку удачи (далее "коробку") командой /givebox <игрок> <id коробки>. После этого, игрок может эту коробку открыть командой /openbox, держа её в руках: коробка удалится, и в инвентаре появятся вещи, выпавшие из неё. В чат выведется сообщение: "Вам выпало то-то, то-то и то-то.", или сообщение об ошибке и краткое описание (например, если в инвентаре нет места).

    Коробка — это обычный предмет, отличающийся от других только описанием (lore), тем, что на него наложено зачарование Защита 3 (просто для красоты, чтоб светился, можно отключить). В lore закодирован id коробки (с помощью не влияющих на отображение цветовых кодов) и написаны названия всех предметов, выпадающих из коробки и их количество. Пример на скриншоте.

    Все коробки настраиваются в plugins/RandomBox/config.yml.

    Формат описания коробки

    Код:
    # Идентификатор коробки (указывается в команде /givebox <игрок> <id>)
    # Должен быть целым положительным числом,
    # желательно, в формате 990<номер по порядку> во избежание пересечения под-id с обычными предметами.
    9901:
      # Вещь, которой является коробка, желательно, нестакающаяся.
      # Лучше всего подходит вагонетка с сундуком (STORAGE_MINECART).
      # Если эту вещь можно использовать (вагонетку, например, поставить на рельсы),
      # то это нельзя будет сделать, если эта вещь — коробка
      # Формат указания: цифровой id (например, "57" — алмазный блок)
      # или строковый (для предыдущего — "DIAMOND_BLOCK").
      boxItem: STORAGE_MINECART
      # Название коробки
      boxName: 'Коробка удачи'
      # Сколько вещей выпадает из коробки (если меньше общего кол-ва вещей, то коробка не будет открываться)
      itemsToSelectCount: 3
      # Проверять наличие у открывающего разрешения randombox.open.<id коробки>
      checkPermission: true
      # Открывать коробку при клике правой кнопки мыши во время держания её в руках
      openWhenClicked: true
      # Зачаровывать коробку на Защиту III?
      enchant: true
      # Делает коробки нестакающимися (если это стакающиеся предметы или блоки)
      unstackable: true
      items:
      # Вещи, выпадающие из коробки
    Как видно, коробкой может быть любой предмет, при это его нельзя будет поставить на землю (если это блок), на рельсы (если это вагонетка) и вообще как либо использовать, кроме как открыть.

    id предметов рекомендуется указывать числами (здесь все id), можно строками типа "DIAMOND_BLOCK", но не нужно, потому что они часто не соответствуют нормальным названиям блоков и предметов (например, "DIODE" - это повторитель).

    Формат описания вещи

    Код:
    # Любое уникальное название, не влияет ни на что
    item1:
      # Если добавлена эта секция, то вместе
      # с выдачей предмета будет выполнены
      # команды из этого списка с заданными
      # аргументами
      #
      # В данном примере игрок получит
      # 10 уровней опыта
      # Чтобы выполнить только команды, поставьте
      # id предмета 0 или AIR
      commands:
        # Любое название, не влияет ни на что
        command1:
          # Название команды без / вместе
          # с аргументами.
          line: 'xp give %player% 10L'
          # Выполнять команду от имени
          # консоли (true) или игрока (false)
          fromConsole: true
      # id предмета
      item: DIAMOND_SWORD
      # Data value предмета (то, которое через двоеточие)
      data: 0
      # Количество предметов в стаке
      amount: 1
      # Название предмета (может быть цветным)
      # Обязательный параметр! Иначе не будет имени предмета
      # в описании к коробке.
      name: '&cАлмазный меч'
      # Описание предмета (может быть цветным)
      # Каждая строчка — отдельный пункт
      # - 'текст строки'
      lore:
      - '&7Этот меч выпал'
      - '&7из коробки удачи.'
      # Зачарования любого уровня и типа
      # Формат: <Зачарование>:<уровень>
      enchants:
        sharpness: 8
        unbreaking: 5
        fire: 4
        knockback: 2
      # Сообщение, которое будет показано всем игрокам,
      # Rкогда эта вещь выпадет. Чтобы это отключить, удалите
      # этот параметр или оставьте пустым.
      broadcastMessage: '&6%player% вытянул охрененный меч из коробки!'
      # Шанс выпадения вещи
      chance: 15
    
    power — Сила лука
    flame — Огненные стрелы
    infinity — Бесконечные стрелы
    punch — Отбрасывание лука
    sharpness — Острота
    bane, baneofarthropods, bane_of_arthropods — Урон насекомым
    smite — Урон нежити
    efficiency — Эффективность
    unbreaking — Прочность
    fire, fireaspect, fire_aspect — Поджигание мечом
    knockback — Отбрасывание мечом
    fortune — Увеличение дропа руд
    looting — Увеличение дропа с мобов
    luck, luckofthesea, luck_of_the_sea — Более редкие вещи при рыбалке
    lure — Клюёт чаще
    respiration — Воздух под водой медленнее кончается
    protection — Защита от всего урона
    blast, blastprotection, blast_protection — Защита от взрывов
    feather, featherfalling, feather_falling — Уменьшение урона от падения
    fireprotection, fire_protection — Защита от огня
    projectile, projectileprotection, projectile_protection — Защита от стрел
    silk, silktouch, silk_touch — Добыча блоков в их настоящем виде (камень, трава вместо булыжника и земли)
    thorns — Часть урона вернётся напавшему
    aqua, aquaaffinity, aqua_affinity — Блоки под водой добываются быстрее

    Шанс — целое число больше нуля. Чем больше доля данного шанса в сумме шансов всех вещей, тем чаще он будет выпадать. Чтобы каждая вещь выпадала с равной вероятностью, поставьте у всех вещей одинаковые шансы.

    Команды
    • /givebox <игрок> <id коробки>: выдать коробку игроку.
    • /openbox: открыть коробку, которая находится у вас в руках.
    • /randombox, /rb: информация о плагине: версия, автор и краткое описание.
    • /randombox reload: перезагрузить настройки с диска.
    • /randombox list: отобразить список коробок в конфиге
    Permissions
    • randombox.*: Разрешает выполнять все команды.
    • randombox.main: Разрешает выполнять команду /randombox без аргументов.
    • randombox.main.reload: Разрешает перезагружать плагин.
    • randombox.openbox: Разрешает открывать коробки.
    • randombox.givebox: Разрешает выдавать коробки игрокам.
    • randombox.infinitebox: При открытии коробка не исчезает.
    • randombox.open.<id коробки>: разрешает открывать коробку id. Проверяется, только если в настройках коробки checkPermission установлено в true.
    • randombox.open.*: разрешает открывать все коробки. Проверяется, только если в настройках коробки checkPermission установлено в true.
    Дополнительно

    В конфиге есть булев параметр debug — включает вывод некоторой информации в консоль, типа рассчитанных вероятностей.

    Есть раздел strings — в нём хранятся все строки, выводимые в чат на двух языках (русском и чуть ломанном английском, за переключение отвечает параметр locale), а также префикс сообщений и строка "Выпадающие предметы:" из описания коробки.

    Скриншот

    [​IMG]
    Скачать

    dev.bukkit
    : скачать

    Известные ошибки
    • Что будет, если изменить id коробки в конфиге? Все коробки со старым id, выданные до этого, перестанут открываться.
    • Что будет, если изменить выпадающие вещи? Открыв любую коробку, выданную до этого, игроки немного удивятся — в описании одни вещи, а выпали другие.
    Статистика

    [​IMG]
     
    Последнее редактирование: 7 май 2015
  2. JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Прекрасная идея.
     
    Последнее редактирование: 20 мар 2016
  3. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Спасибо, приятно слышать. :)
    Ну вот, какой-то унылый RandomBox уже есть. :(
    http://dev.bukkit.org/bukkit-plugins/randombox/
     
  4. Ex4ak01

    Ex4ak01 Активный участник Пользователь

    Баллы:
    78
    Skype:
    mc_kent_01
    Имя в Minecraft:
    Ex4ak
    Для 1.5.2 и 1.6.4 будит?
     
  5. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Протестирую каждую строчку, если как-либо заполучу нужный Bukkit. Его же удалили с официального сайта. Попробую поискать.
    Работает на 1.5.2, 1.6.4, 1.7.9.
    Тестировал на этих сборках.
    Обновление 1.1!
    • Возможность заставить коробку проверять, может её открыть данный игрок или нет. Включается установкой в настройках коробки checkPermission в true. Игрок сможет открыть коробку, если ему выдано разрешение randombox.open.<id коробки> или randombox.open.*
    • Возможность указывать числовые id предметов — коробок и дропа из них. ID предметов.
    • Возможность указывать нормальные названия зачарований (список выше).
    • Удалена команда /randombox reset.
     
  6. Dark_Pro

    Dark_Pro Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    Nick
    Можно ли сменить открывание коробок на ПКМ или ЛКМ или на Q(дроп), знаю эту кнопку можно отследить.
     
  7. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    В первых версиях плагина была такая функция (открытие по ПКМ), но я убрал, подумав, что можно её открыть случайно. В таком случае, в следующей версии добавлю возможность включать открытие по клику ПКМ.
     
  8. Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Для текстуры коробки весьма подойдет блок лицевой части поршня)
     
  9. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Зато блоки не светятся (у меня, по крайней мере, на 1.7.10) :)
     
  10. Vasilisk

    Vasilisk Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Vasilisk
    Есть подобный плагин "КиндерСюрприз", надо и этот попробовать.
    И там еще яйцо можно поставить на землю и открыть ПКМ.
    И яйцо привязано к яйцу дракона, что дает использовать id в других плагинах. Так можно давать бонус за ачивку.
    Вывод: привяжи все функции к яйцу дракона, и будет самый крутой плагин, ибо тот забросили и он недоделанный.
     
  11. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Обновление сильно отложится, ибо возникла надобность... переписать плагин. Потому что в существующий исходник невозможно добавлять новые функции.
    Плагин-таки переписан! Скоро обновление.
     
  12. Vasilisk

    Vasilisk Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Vasilisk
    Ждем )
     
  13. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Обновление 1.2!
    • Плагин переписан, удалён лишний код (в конфиге никаких изменений).
    • Настройка коробки openWhenClicked: будучи установленной в true, появится возможность открыть коробку правой кнопкой мыши, просто держа её в руках.

    Модераторы, можно ли тему в подтверждённые плагины? Релиз же.
     
  14. NeroKore

    NeroKore Активный участник Пользователь

    Баллы:
    61
    Skype:
    nerokore
    Имя в Minecraft:
    NeroKore
    При открытии сундука, сундук не исчезает.
    Нельзя вносить изменения в конфиг
     
  15. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Сейчас посмотрю. А какой сундук?
     
  16. NeroKore

    NeroKore Активный участник Пользователь

    Баллы:
    61
    Skype:
    nerokore
    Имя в Minecraft:
    NeroKore
    box1, у меня просто ассоциация с сундуком)
     
  17. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Так. При открытии коробки она не исчезает? Если ты админ, то это фича, потому что автоматически выдано разрешение infinitebox - не удалять коробки.
    И в чём заключается проблема с конфигом? Подробнее, пожалуйста.
     
  18. NeroKore

    NeroKore Активный участник Пользователь

    Баллы:
    61
    Skype:
    nerokore
    Имя в Minecraft:
    NeroKore
    Да, я Админ.
    Когда изменяю название box1, допустим вместо Сундук Охотника -> Сундук тиража №1, название не меняется.
     
  19. Автор темы
    saharNooby

    saharNooby Активный участник Девелопер Пользователь

    Баллы:
    78
    Имя в Minecraft:
    saharNooby
    Если админ, то это фича: "randombox.infinitebox: При открытии коробка не исчезает.". Чтобы убрать, в permissions.yml добавьте "- -randombox.infinitebox".

    Если вы изменяете название коробки уже посли выдачи, то это известная ошибка, и решения у неё пока нет (скоро будет). Единственное решение сейчас - перераздать коробки.
     
  20. NeroKore

    NeroKore Активный участник Пользователь

    Баллы:
    61
    Skype:
    nerokore
    Имя в Minecraft:
    NeroKore
    Так, я эту коробку удаляю. Перезапускаю конфиг, ее опять выдаю, все равно с таким же названием. Или ты имел введу, что надо изменить сам конфиг box1?
     

Поделиться этой страницей