Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап [ReActions] Скрипты для новичков

Нужна такая тема?

  • Да, пусть будет

  • Нет, удали её


Результаты видны после голосования.
Я конечно место не занимал но...)
Мультиблок печь 3х3
UszMY9osIb8.jpg

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

Если печь построенна правильно, то при клике по печи вы услышите звук использования наковальни.
3viSJYDn3a0.jpg

Нижний и верхний слои - одинаковые, в среднем слое со всех четырех сторон печки.
Если печь построенна правильно, то при клике по печи вы услышите звук использования наковальни.
Код:
BLOCK_CLICK:
  Iron_Forge1:
    block-type: FURNACE
    click-type: RIGHT
    flags:
    - BLOCK=loc:{%blocklocation% add-vector:0,0,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,0,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:1,0,0} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,0,1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:1,0,-1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:2,0,0} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:2,0,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:2,0,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,0} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:2,-1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:2,-1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:2,-1,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:1,1,0} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:2,1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:2,1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:2,1,-1} block:IRON_BLOCK
    actions:
    - CANCEL_EVENT=true
    - SOUND=type:BLOCK_ANVIL_USE loc:%blocklocation%
    - CMD_OP=/IronForge
  Iron_Forge2:
    block-type: FURNACE
    click-type: RIGHT
    flags:
    - BLOCK=loc:{%blocklocation% add-vector:1,0,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,0,-1} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,0,-1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,-1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:0,0,-2} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:1,0,-2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,-2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,-1} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,-2} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,-2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,-2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,-1} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,1,-2} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,1,-2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,-2} block:IRON_BLOCK
    actions:
    - CANCEL_EVENT=true
    - SOUND=type:BLOCK_ANVIL_USE loc:%blocklocation%
    - CMD_OP=/IronForge
  Iron_Forge3:
    block-type: FURNACE
    click-type: RIGHT
    flags:
    - BLOCK=loc:{%blocklocation% add-vector:0,0,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,0,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,0} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,-1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:-2,0,0} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:-2,0,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-2,0,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,0} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-2,-1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-2,-1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-2,-1,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,1,-1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,0} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,-1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-2,1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-2,1,1} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-2,1,-1} block:IRON_BLOCK
    actions:
    - CANCEL_EVENT=true
    - SOUND=type:BLOCK_ANVIL_USE loc:%blocklocation%
    - CMD_OP=/IronForge
  Iron_Forge4:
    block-type: FURNACE
    click-type: RIGHT
    flags:
    - BLOCK=loc:{%blocklocation% add-vector:1,0,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,0,1} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,0,1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,1} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:0,0,2} block:FURNACE
    - BLOCK=loc:{%blocklocation% add-vector:1,0,2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,0,2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,1} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,-1,2} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,-1,2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,-1,2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,0} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,0} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:0,1,1} block:MAGMA
    - BLOCK=loc:{%blocklocation% add-vector:1,1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,1} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:0,1,2} block:OBSIDIAN
    - BLOCK=loc:{%blocklocation% add-vector:1,1,2} block:IRON_BLOCK
    - BLOCK=loc:{%blocklocation% add-vector:-1,1,2} block:IRON_BLOCK
    actions:
    - CANCEL_EVENT=true
    - SOUND=type:BLOCK_ANVIL_USE loc:%blocklocation%
P.S. данный скрипт вырос из скрипта Dyx'а, спасибо ему :)

 
Последнее редактирование:
С одной стороны норм.
С другой стороры - напомнило ангелка-скриптера-реактера :good::good::good:
 
Обработчик слотов-ячеек для крафтов в реальном времени

Написал очень сложный скрипт, берите кому надо.

Сам код является обработчиком слотов, т.е. допустим вы хотите поставить плавиться через мультиблок выше какие-то предметы и для того чтоб можно было поставить сразу до 3х предметов на переплавку сделан этот скрипт.
Скрипт изначально писался для дробителя (второго мультиблока).
Что надо?
1)Нужно знание React'а т.к. скрипт не простой и для правильного его использования и встраивания надо добавить перменные, и кое-какие команды ниже.
2)Расширение для Placeholders - чтоб тот отображал состояние слота , в данном случае переменную, т.е. "слот используется" или "слот не занят"
3)Прямые руки

4)Лучше всего использовать плагин Animated Menu т.к. он позволяет встраивать плейсхолдеры куда-угодно, в данном случае я с помощью этого сделал отображение слотов не только в виде строчки описания но и в виде цвета панелек (слот свободен - лаймовая, занят - красная)
Ниже кусок кода из моего меню дробителя, берите и встраивайте в свое меню.
Код:
- Slot: 46
  Refresh-Delay: 5
  Material:
    1: STAINED_GLASS_PANE:1:%reactions_varp:BigDrobitel_slot1_0%
  Name: '&e&lПервая ячейка'
  Lore:
  - ''
  - '%reactions_varp:BigDrobitel_slot1_1%'
- Slot: 47
  Refresh-Delay: 5
  Material:
    1: STAINED_GLASS_PANE:1:%reactions_varp:BigDrobitel_slot2_0%
  Name: '&e&lВторая ячейка'
  Lore:
  - ''
  - '%reactions_varp:BigDrobitel_slot2_1%'
- Slot: 48
  Refresh-Delay: 5
  Material:
    1: STAINED_GLASS_PANE:1:%reactions_varp:BigDrobitel_slot3_0%
  Name: '&e&lТретья ячейка'
  Lore:
  - ''
  - '%reactions_varp:BigDrobitel_slot3_1%'


Сообсна, сам скрипт

Что надо для его использования?

1)Через что-вам-угодно (в моем случае меню моего второго мультиблока-дробителя) делаем чтоб у нас в консоль отправлялась команда:
Код:
  exec (Имя нужного нам "стартера крафта" (один из 2 активаторов в самом вверху кода) ) player:%player_name%

В моем случае это происходит когда игрок кликает по вещи в меню.

2)Этот шаг только для меню, Далее мы задействуем плейсхолдеры которые используются в обработчике а точнее добавим в наше меню 3 вещи ( в моем случае стеклянные панельки) у которых в описании будет отображенна переменная каждого слота а точнее вот эти три переменные: %reactions_varp:BigDrobitel_slot1_1% , %reactions_varp:BigDrobitel_slot2_1% , %reactions_varp:BigDrobitel_slot3_1%

3)И последнее - кнопка сбора ресурсов которые мы переплавили/передробили/создали .
(В моем случае) В меню создаем вещь которая при клике будет вот такую команду прописывать в консоли:
Код:
exec BigDrobitel_Collector player:%player_name%

Готово!Результат ниже в спойлере.
Menu_drobitel.gif
P.S. если вы все-же смогли этот обработчик пристроить к себе на сервак - я готов пожать вам руку, потому что руководство да и сам процесс "встраивания" этого кода очень сложный.

PP.S
Да, скрипт продолжит работу если будет перезагрузка сервера т.к. использовал action_delayed (потому хоть на 3 дня крафт поставь - все ок будет)

Чтоб корректно все работало для начало вам нужно игроку (или себе,для проверки) выдать персональные переменные, сделайте это с помощью скрипта ниже, командой /react var reset
Код:
COMMAND:
 command_personal_varitables: #%reactions_varp:имя переменной%
    override: true
    regex: true
    command: cmd:react arg1:var arg2:reset
    actions:
    - CANCEL_EVENT=true
    - MESSAGE=§r§aВы сбросили все свои переменные
    - VAR_PLAYER_SET=id:Small_piece_quartz_sand_amount value:0
    - VAR_PLAYER_SET=id:BigDrobitel_slot1_0 value:5
    - VAR_PLAYER_SET=id:BigDrobitel_slot1_1 value:{§a§lЯчейка свободна}
    - VAR_PLAYER_SET=id:BigDrobitel_slot2_0 value:5
    - VAR_PLAYER_SET=id:BigDrobitel_slot2_1 value:{§a§lЯчейка свободна}
    - VAR_PLAYER_SET=id:BigDrobitel_slot3_0 value:5
    - VAR_PLAYER_SET=id:BigDrobitel_slot3_1 value:{§a§lЯчейка свободна}
Кстати, можно было конечно не писать этот гигантский обработчик, и к каждому рецепту пихать кусок кода проверяющий каждую из 3 ячеек но в моем случае когда рецептов будет около 50, проще сделать один на всех чем у каждого свой, меньше места займет.
Если что-то не понятно - спрашивайте по поводу этого обработчика т.к. он сложный и в нем много не совсем понятных вещей

Ниже скрипт на установку переменных при первом входе чтоб этот обработчик работал корректно.
Код:
JOIN:
  CheckVaritables:
    flags:
    - VAR_PLAYER_EXIST=NotFirstjoin
    reactions:
    - VAR_PLAYER_SET=id:NotFirstjoin value:1
    - VAR_PLAYER_SET=id:Small_piece_quartz_sand_amount value:0
    - VAR_PLAYER_SET=id:BigDrobitel_slot1_0 value:5
    - VAR_PLAYER_SET=id:BigDrobitel_slot1_1 value:{§a§lЯчейка свободна}
    - VAR_PLAYER_SET=id:BigDrobitel_slot2_0 value:5
    - VAR_PLAYER_SET=id:BigDrobitel_slot2_1 value:{§a§lЯчейка свободна}
    - VAR_PLAYER_SET=id:BigDrobitel_slot3_0 value:5
    - VAR_PLAYER_SET=id:BigDrobitel_slot3_1 value:{§a§lЯчейка свободна}
❴UP❵ ⭅ Первое сообщение

❴Музыкальный проигрыватель❵ ⭅ От DyX

❴Игра угадай число❵ ⭅ От Lalki

❴idxMarry - свадьбы❵ ⭅ От ImDaniX
❴Gmute - мут глобального чата и лс❵
❴Pvp-Manager❵
❴UsualSlots - Слот машина❵
❴TpChecker❵

❴Пвп-меч с критом и самовостановлением❵ ⭅ От Korvinius

❴Мультиблок печь❵ ⭅ От Меня
❴Обработчик слотов-ячеек❵
❴Полезные скрипты❵
[/code]
 
Последнее редактирование:
Полезные мини-скрипты
позволяют решить некоторые....проблемы
Код:
JOIN:
  CheckVaritables:
    flags:
    - VAR_PLAYER_EXIST=NotFirstjoin
    reactions:
    - VAR_PLAYER_SET=id:NotFirstjoin value:1 #не трогайте иначе не будет работать
    - VAR_PLAYER_SET=id:Ваша_переменная value:0
Код:
COMMAND:
  command_what_the_item:
    override: true
    regex: true
    command: cmd:react arg1:item
    actions:
    - CANCEL_EVENT=true
    - MESSAGE=§aСтроковое представление отправленно в лог сервера,
    - MESSAGE=§aСтроковое представление предмета в вашей руке:§r
    - MESSAGE=§3%PLAYER_ITEM_HAND%
    - LOG=%PLAYER_ITEM_HAND%
/react var reset
Код:
COMMAND:
 command_personal_varitables:
    override: true
    regex: false
    command: cmd:react arg1:var arg2:reset
    actions:
    - CANCEL_EVENT=true
    - MESSAGE=§r§aВы сбросили все свои переменные
    - VAR_PLAYER_SET=id:Ваша_переменная value:0


 
Последнее редактирование:

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

Назад
Верх