Плагин [MECH/FUN] ReActions - Что? Тогда? Иначе! [BukkitDev]

Создал кнопку, чтобы она выдавала камень в определенный слот.

test:
world: world
x: 242
y: 115
z: -2733
actions:
- ITEM_SLOT=type:STONE amount:64 slot:10

Но при нажатии на нее ничего не происходит. Файл с активаторами пересохранял, плагин перезапускал, item на type менял, фигурные скобки ставил, плейсхолдер %player% ставил. Никакого результата. Что я делаю не так?
ITEM_SLOT (как я понял)
Помещает предмет в нужный слот.
Но как можно туда поместить то, чего нет?
Перед ITEM_slot (не буду говорить, что дальше после item_slot пишется, сам не знаю :) ) нужно прописать ITEM_GIVE=type:stone amount:64
Должно сработать :-)
Кстати, ITEM_WEAR у меня не работал т.к. я выполнял действия с броней из модов)
Кстати, я так и должно быть - ITEM_WEAR одевает, но Не забирает броню!
(Как в креативе)?
 
ITEM_SLOT (как я понял)
Помещает предмет в нужный слот.
Но как можно туда поместить то, чего нет?
Перед ITEM_slot (не буду говорить, что дальше после item_slot пишется, сам не знаю :) ) нужно прописать ITEM_GIVE=type:stone amount:64
Должно сработать :)
Кстати, ITEM_WEAR у меня не работал т.к. я выполнял действия с броней из модов)
Кстати, я так и должно быть - ITEM_WEAR одевает, но Не забирает броню!
(Как в креативе)?

Отвечаю: Той командой, которую я прописал, броня выдается без проблем и ставится в слоты helmet, boots, и остальные. Итем Гиве перед этим не пишу. Но стоит мне в slot вместо слота брони прописать номер слота инвентаря - работать перестает.
 
Отвечаю: Той командой, которую я прописал, броня выдается без проблем и ставится в слоты helmet, boots, и остальные. Итем Гиве перед этим не пишу. Но стоит мне в slot вместо слота брони прописать номер слота инвентаря - работать перестает.
Вообще очень почему-то багов много(((
Вот например активатор ITEM_CLICK воспринимает только обычные предметы (type:Bone)
а переименованные - нет!( (type:Bone name:{§1test} lore:{§2Test}
 
@fromgate, проблема с активатором ITEM_SLOT - не принимает ничего, кроме отсутствия чего-то:
Код:
2016-02-05 19:00:54 [WARNING] [ReActions] Task #3083 for ReActions v0.9.9 generated an exception
java.lang.NullPointerException
    at me.fromgate.reactions.actions.ActionItems.setInventorySlot(ActionItems.java:81)
    at me.fromgate.reactions.actions.ActionItems.execute(ActionItems.java:56)
    at me.fromgate.reactions.actions.Action.executeAction(Action.java:73)
    at me.fromgate.reactions.actions.Actions.performAction(Actions.java:182)
    at me.fromgate.reactions.actions.Actions.executeActions(Actions.java:176)
    at me.fromgate.reactions.util.waiter.Task.execute(Task.java:58)
    at me.fromgate.reactions.util.waiter.Task.run(Task.java:50)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:58)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:509)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:235)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
2016-02-05 19:01:00 [INFO] [0;33;22mВремя установлено на[0;31;1m [0;31;1m11:45[0;33;22m или [0;31;1m11:45AM[0;33;22m или [0;31;1m5750ticks[0;33;22m. [0;33;22mв: [0;31;1mSpawn[0;33;22m.[m
2016-02-05 19:01:06 [INFO] Lyosha12 использовал команду: /ib
2016-02-05 19:01:07 [INFO] Lyosha12 использовал команду: /ra reload
2016-02-05 19:01:13 [WARNING] [ReActions] Task #3094 for ReActions v0.9.9 generated an exception
java.lang.NullPointerException
    at me.fromgate.reactions.actions.ActionItems.setInventorySlot(ActionItems.java:81)
    at me.fromgate.reactions.actions.ActionItems.execute(ActionItems.java:56)
    at me.fromgate.reactions.actions.Action.executeAction(Action.java:73)
    at me.fromgate.reactions.actions.Actions.performAction(Actions.java:182)
    at me.fromgate.reactions.actions.Actions.executeActions(Actions.java:176)
    at me.fromgate.reactions.util.waiter.Task.execute(Task.java:58)
    at me.fromgate.reactions.util.waiter.Task.run(Task.java:50)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:58)
    at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:509)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:235)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
Код:
  TestItemSlot:
    world: Spawn
    x: -80
    y: 77
    z: -99
    flags: []
    actions:
    - var_player_set=id:TestItemSlot value:{%PLAYER_ITEM_HAND%}
    - WAIT=3s
    - ITEM_SLOT=slot:1 item:STONE
    reactions: []

Ну и в описании опечатка: ITEM_SLOT
Вообще очень почему-то багов много(((
Вот например активатор ITEM_CLICK воспринимает только обычные предметы (type:Bone)
а переименованные - нет!( (type:Bone name:{§1test} lore:{§2Test}
Активатор в студию.
 
Вопрос. Я создал глобальную переменную:
health: '18'
Теперь к региону прицепил вот такой флаг:
- VAR_GREATER=id:health value:{%HEALTH%} player:{%PLAYER%}
И прицепил к региону реакцию:
- DAMAGE=damage:1

То есть я поставил флаг, проверяющий больше ли значение переменной (то есть, число 18) количества хп игрока.
По задумке, игроку, входящему в этот регион и имеющему запас здоровья более 18 начинает наноситься урон до тех пор, пока здоровье не понизится до уровня 18.
Но урон продолжает наноситься постоянно до полной смерти. То есть, плагин, не видит значения зоровья игрока. Что я делаю не так? И если это баг, то есть ли альтернативный способ проверки уровня здоровья, т.к. во флагах такого пункта нет.

пс. Без фигурных скобок пробовал.
 
Можно ли с помощью ReActions создать регион ?? к примеру от игрока во все строны на 40 блоков и в высоту на 255 блоков, при установке определенного блока ??
 


Активатор в студию.
Даже к примеру:
/ra add ITEM_CLICK TEST type:Bone
/ra add ITEM_CLICK TEST2 type:Bone name:{§2test §31 §2test} lore:{test 2 test}
/ra add TEST a cmd_op jump
/ra add TEST2 a cmd_op jump
Итог: при ПКМ обычной костью - телепортирует.
При ПКМ костью из ТЕСТ2 - НЕТ!
Короче та же проблема, что и у Корвина :(
 
Последнее редактирование:
Вопрос. Я создал глобальную переменную:
health: '18'
Теперь к региону прицепил вот такой флаг:
- VAR_GREATER=id:health value:{%HEALTH%} player:{%PLAYER%}
И прицепил к региону реакцию:
- DAMAGE=damage:1

То есть я поставил флаг, проверяющий больше ли значение переменной (то есть, число 18) количества хп игрока.
По задумке, игроку, входящему в этот регион и имеющему запас здоровья более 18 начинает наноситься урон до тех пор, пока здоровье не понизится до уровня 18.
Но урон продолжает наноситься постоянно до полной смерти. То есть, плагин, не видит значения зоровья игрока. Что я делаю не так? И если это баг, то есть ли альтернативный способ проверки уровня здоровья, т.к. во флагах такого пункта нет.

пс. Без фигурных скобок пробовал.
А действительно... Проверить здоровье игрока через ReActions нельзя...
Можно ли с помощью ReActions создать регион ?? к примеру от игрока во все строны на 40 блоков и в высоту на 255 блоков, при установке определенного блока ??
Активатора установки блока пока что нет.
Даже к примеру:
/ra add ITEM_CLICK TEST type:Bone
/ra add ITEM_CLICK TEST2 type:Bone name:{§2test §31 §2test} lore:{test 2 test}
/ra add TEST a cmd_op jump
/ra add TEST2 a cmd_op jump
Итог: при ПКМ обычной костью - телепортирует.
При ПКМ костью из ТЕСТ2 - НЕТ!
Короче та же проблема, что и у Корвина :(
/give Lyosha12 352 1 lore:&1Test|&6&l&mTest1 name:&a&n&m&lTest-Name
Код:
BUTTON:
  SetItem:
    world: Spawn
    x: -80
    y: 77
    z: -99
    flags: []
    actions:
    - var_player_set=id:Test value:{%PLAYER_ITEM_HAND%}
    reactions: []
ITEM_CLICK:
  TEST1:
    item: 'type:BONE data:0 amount:1 regex:false'
    flags: []
    actions:
    - MESSAGE=&cTest1
    reactions: []
  TEST2:
    item: 'type:BONE data:0 amount:1 name:&a&n&m&lTest-Name lore:&1Test\n&6&l&mTest1 regex:false'
    flags: []
    actions:
    - MESSAGE=&cTest2
    reactions: []
upload_2016-2-6_11-21-33.png
И что у Вас не так?
 
/give Lyosha12 352 1 lore:&1Test|&6&l&mTest1 name:&a&n&m&lTest-Name
Код:
BUTTON:
  SetItem:
    world: Spawn
    x: -80
    y: 77
    z: -99
    flags: []
    actions:
    - var_player_set=id:Test value:{%PLAYER_ITEM_HAND%}
    reactions: []
ITEM_CLICK:
  TEST1:
    item: 'type:BONE data:0 amount:1 regex:false'
    flags: []
    actions:
    - MESSAGE=&cTest1
    reactions: []
  TEST2:
    item: 'type:BONE data:0 amount:1 name:&a&n&m&lTest-Name lore:&1Test\n&6&l&mTest1 regex:false'
    flags: []
    actions:
    - MESSAGE=&cTest2
    reactions: []
Посмотреть вложение 39156
И что у Вас не так?[/QUOTE]
Хмм
А я с переменной делать не пробовал, или это не то?

SetItem:
world: Spawn
x: -80
y: 77
z: -99
flags: []
actions:
- var_player_set=id:Test value:{%PLAYER_ITEM_HAND%}
В общем - все так-же, но не работает! Снимал видео, сейчас скину!

Вот:
 
Последнее редактирование:
Написал код накладывания эффектов при входе в регион и снятие при выходе:
Код:
REGION_ENTER:
  SpawnEnter:
    region: world.spawn
    actions:
    - MESSAGE=&eТы на территории спавна
    - POTION=type:NIGHT_VISION level:1 ambient:true time:99999
    - POTION=type:REGENERATION level:3 ambient:true time:99999
    - POTION=type:SATURATION level:3 ambient:true time:99999
    - POTION=type:SPEED level:1 ambient:true time:99999
REGION_LEAVE:
  SpawnLeave:
    region: world.spawn
    actions:
    - MESSAGE=&eТы вышел со спавна. Тут тебя могут убить!
    - POTION_REMOVE=NIGHT_VISION
    - POTION_REMOVE=REGENERATION
    - POTION_REMOVE=SATURATION
    - POTION_REMOVE=SPEED
Нашел интересный момент. Если умереть в мире(не на спавне), то эти эффекты накладываются навсегда на игрока. При этом игрок возрождается не на спавне. Как это так?
 
Предметы добавляйте с помощью активатора, который заносит в переменную значение плейсхолдера %PLaYER_ITEM_HAND%. Всё, что Вы пишите вручную, может выходить или за рамки кодировки, или за малейшие ошибки. Делайте так, как в моём активаторе BUTTON.
 
Предметы добавляйте с помощью активатора, который заносит в переменную значение плейсхолдера %PLaYER_ITEM_HAND%. Всё, что Вы пишите вручную, может выходить или за рамки кодировки, или за малейшие ошибки. Делайте так, как в моём активаторе BUTTON.
Значит вы не отрицаете, а даже поддерживаете то, что лучше писать через редактор, чем через клиент игры?
Я всегда думал, что лучше писать через клиент :(
Кстати, если уж делать с переменными и т.д.
Если я не хочу, чтобы державший в руке предмет игрок НЕ КУПИВ, а выбив итем - получал реактионс - поставить флаг на переменную?

SetItem:
world: Spawn
x: -80
y: 77
z: -99
flags: [PERM]=reactions.test(или как-там)
actions:
- var_player_set=id:Test value:{%PLAYER_ITEM_HAND%}
 
В общем раньше я ставил на активатор ITEM_CLICK флаг perm
Теперь его ставить на переменную?
 
Можно ли с помощью ReActions создать регион ?? к примеру от игрока во все строны на 40 блоков и в высоту на 255 блоков, при установке определенного блока ??

Создать регион при помощи установки блока нельзя.
Но если вы создаете регион при помощи WorldGuard, то можно создать команду при вводе которой будет происходить создание региона командами WorldGuard с центром где стоит игрок.
1) //pos1
2) //expand 40 n
3) ...
4) ...
...
~99) /region claim %PLAYER_NAME%
Как то так.
Если я не хочу, чтобы державший в руке предмет игрок НЕ КУПИВ, а выбив итем - получал реактионс - поставить флаг на переменную?
Сделайте так что бы кость которую купил игрок в магазине имела нестандартное имя (имя цветное, можно добавить еще и описание) и потом проверяйте что игрок сделал ITEM_CLICK костью с таким именем. (если кость будет с цветным именем и описанием, то во флаге должно быть точно такое же имя и описание)
 
Создать регион при помощи установки блока нельзя.
Но если вы создаете регион при помощи WorldGuard, то можно создать команду при вводе которой будет происходить создание региона командами WorldGuard с центром где стоит игрок.
1) //pos1
2) //expand 40 n
3) ...
4) ...
...
~99) /region claim %PLAYER_NAME%
Как то так.

Сделайте так что бы кость которую купил игрок в магазине имела нестандартное имя (имя цветное, можно добавить еще и описание) и потом проверяйте что игрок сделал ITEM_CLICK костью с таким именем. (если кость будет с цветным именем и описанием, то во флаге должно быть точно такое же имя и описание)
Вы смотрели видео выше?
 
Можно ли с помощью ReActions создать регион ?? к примеру от игрока во все строны на 40 блоков и в высоту на 255 блоков, при установке определенного блока ??
Сделай чтобы все команды прописывались от имени игрока
 
Кстати, хотел бы спросить.
Можно ли сделать такую фигнюшку:
Если игрок съел/выпел/принял :D что-то, то это активировало бы доступ к следующему активатору.
К примеру съел золотое зачарованное яблоко "Божественное сердце"
И после этого, если ты умер, то твой инвентарь сохраняется (или тебя хотя-бы просто возвращает на место смерти и дает итем - меч "Кара"). ну по-поводу действий я сам уже разберусь - как сделать именно активацию такую?
P.S. естественно если не съел такую имбу - действия после смерти тоже чтобы не было!
 
Кстати, хотел бы спросить.
Можно ли сделать такую фигнюшку:
Если игрок съел/выпел/принял :D что-то, то это активировало бы доступ к следующему активатору.
К примеру съел золотое зачарованное яблоко "Божественное сердце"
И после этого, если ты умер, то твой инвентарь сохраняется (или тебя хотя-бы просто возвращает на место смерти и дает итем - меч "Кара"). ну по-поводу действий я сам уже разберусь - как сделать именно активацию такую?
P.S. естественно если не съел такую имбу - действия после смерти тоже чтобы не было!
Хочешь сделать аналог той "живой воды", которую я все никак не доделаю у себя? :)
 
Назад
Верх