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

@fromgate, нужен активатор смерти игрока. Игрок может быть дисквалифицировать из ивента по двум причинам:
1) Он умирает
2) Он касается запрещённого блока

Касание запрещённого блока фиксируется сразу на ивенте, после чего переменная (которая существует только на ивенте) обнуляется и он телепортируется в лобби.

Смерть игрока я фиксирую как его присутствие вне ивента с переменной, которая должна существовать только на ивенте. И, если это происходит, то телепортирую его в лобби ивента, снимая переменную участия.

Дилемма вот в чём: если игрок касается запрещённого блока и сразу же умирает, то сначала обнуляется переменная от касания с блоком, а уже после происходит обнуление от смерти. Но, так как смерть фиксируется наличием игрока с переменной ивента вне ивента, то при отсутствии этой переменной его никуда не телепортирует после смерти.

Помогите пожалуйста решить этот казус :(
 
@fromgate, спасай, нужна твоя помощь.
Пользуюсь версией плагина 0.9.3 (так как 0.9.4 и 0.9.5 у меня не идут, мб не разобрался с WGBridge или что-то еще, суть не в этом).
При создании активатора в котором присутствует плейсхолдер %CALC% активатор не хочет работать. Он отмечается при /ra reload как существующий, то есть отмечается в кол-ве всех активаторов (у меня их 200 сейчас, к примеру), ошибку не выдает. Однако задействовав активатор (в данном случае прописыванием команды) - ничего не происходит. Кидаю код самого активатора:
Код:
  Бизнес1ПродуктыЗакуп:
    command: cmd:biz arg1:buyprod arg2:1 arg3:*
    flags:
    - 'VAR_COMPARE=biz001/%player%'
    - 'VAR_LOWER=id:maxprod001 value:%CALC:prod001+arg3+1%'
    - 'money=%CALC:arg3*5%'
    actions:
    - 'money_pay=%CALC:arg3*5%'
    - 'message=&e[biz]Бизнес: id:1. "МакДональдс".'
    - 'message=&e[biz]Вы закупили %arg3% ед. продуктов для бизнеса.'
    - 'VAR_INC=id:prod001 value:%arg3%'
    reactions: бла-бла-бла'
Помогите, так как этот плейсхолдер играет огромную роль. (и да, это не первый активатор, который перестал работать с CALC, но в них его наличие можно было исключить и использовать другие методы, а тут нельзя_
 
@fromgate, спасай, нужна твоя помощь.
Пользуюсь версией плагина 0.9.3 (так как 0.9.4 и 0.9.5 у меня не идут, мб не разобрался с WGBridge или что-то еще, суть не в этом).
При создании активатора в котором присутствует плейсхолдер %CALC% активатор не хочет работать. Он отмечается при /ra reload как существующий, то есть отмечается в кол-ве всех активаторов (у меня их 200 сейчас, к примеру), ошибку не выдает. Однако задействовав активатор (в данном случае прописыванием команды) - ничего не происходит. Кидаю код самого активатора:
Код:
  Бизнес1ПродуктыЗакуп:
    command: cmd:biz arg1:buyprod arg2:1 arg3:*
    flags:
    - 'VAR_COMPARE=biz001/%player%'
    - 'VAR_LOWER=id:maxprod001 value:%CALC:prod001+arg3+1%'
    - 'money=%CALC:arg3*5%'
    actions:
    - 'money_pay=%CALC:arg3*5%'
    - 'message=&e[biz]Бизнес: id:1. "МакДональдс".'
    - 'message=&e[biz]Вы закупили %arg3% ед. продуктов для бизнеса.'
    - 'VAR_INC=id:prod001 value:%arg3%'
    reactions: бла-бла-бла'
Помогите, так как этот плейсхолдер играет огромную роль. (и да, это не первый активатор, который перестал работать с CALC, но в них его наличие можно было исключить и использовать другие методы, а тут нельзя_
Можно указывать название на русском? о_О
arg3 - просто слово. %arg3% - аргумент. CALC работает нормально, за исключением умножения\деления в предыдущих версиях.
reactions: бла-бла-бла - это что?
Как вообще такой активатор работает?
 
@Lyosha12
Можно на русском указывать :Р
"reactions: бла-бла-бла - это что?" - просто вырезал свой текст, так-то там все ок.
"arg3 - просто слово. %arg3% - аргумент. " - то бишь мне прописывать %CALC:%arg3%+money001+1% ? И то, даже если я так сделаю - все равно не работает.
@Lyosha12
Для пробы сделал такой активатор:
Код:
  testcalc:
    command: cmd:calc
    flags: []
    actions:
    - 'message=%CALC:1+2%'
    reactions: []
Кол-во активаторов теперь 201, а не 200, значит активатор существует.
Прописываем "/calc" и видим замечательную надпись "unknown command. type /help for help."
Подозреваю что проблема в версии плагина. Однако при установке более поздних версий плагина телепорты и многие другие действия перестают работать, а при каждом шаге в лог консоли отправляются сотни строк кода о том какой я тупой и что не умею ставить плагины.
 
@MrStefanie2007
Разбираться с тем, что не так в старой версии я уже точно не буду. В 0.9.5 очень сильно поменялась внутренняя организации работы с плейсхолдерами.

Лучше всего сейчас использовать версию 0.9.5 или даже текущий дев.билд
Попробуйте эту версию. Если будут ошибки - приводите ошибку, буду разбираться.

@Lyosha12
Тоже попробуй, сейчас выложил 0.9.5/11 - там ещё изменения с переменными. По идее, те примеры где что-то работало, а что-то нет должный уйти (там явно вылезла какая-то путаница в регистрах). Ну и заодно должна уйти ошибка.

Плагин переставлять полностью, в смысле с остановкой сервера, без использования команды /reload или каких-то средств для перезапуска плагинов.
 
@MrStefanie2007
Разбираться с тем, что не так в старой версии я уже точно не буду. В 0.9.5 очень сильно поменялась внутренняя организации работы с плейсхолдерами.

Лучше всего сейчас использовать версию 0.9.5 или даже текущий дев.билд
Попробуйте эту версию. Если будут ошибки - приводите ошибку, буду разбираться.

@Lyosha12
Тоже попробуй, сейчас выложил 0.9.5/11 - там ещё изменения с переменными. По идее, те примеры где что-то работало, а что-то нет должный уйти (там явно вылезла какая-то путаница в регистрах). Ну и заодно должна уйти ошибка.

Плагин переставлять полностью, в смысле с остановкой сервера, без использования команды /reload или каких-то средств для перезапуска плагинов.
Спасибо
@fromgate, всё равно:
upload_2015-7-6_15-14-29.png
Код:
  Dropper-Death:
    flags:
    - FLAG_SET=!var_player_compare:{id:Dropper-LVL value:-1} var_player_compare:{id:Dropper-Game_Type value:LIMITED}
    - '!REGION=world_the_end.dropper'
    actions:
    - Message=&6[&3Dropper&6] &7Вы прошли &e%varp:Dropper-LVL% &7из &c30 &7уровней.
    - Message=&6[&3Dropper&6] &7Приз выдаётся после прохождения всех уровней.
    - var_player_set=id:Dropper-LVL value:-1
    - var_player_set=id:Dropper-Game_Type value:0
    - action_delayed=time:500ms action:{TP loc:world_the_end,1077.554,249.0,1009.498,-270.718,2.249}
    reactions: []
 
@fromgate
Оу, прошу прощения за свои сообщения, действительно, видимо просто что-то не так было с 0.9.4, так как сейчас я установил девбилд и все заработало!
Единственное, теперь что-то не так стало с message, ну, скорее всего просто я неправильно пишу, раз ты сказал что изменилась организации работы с плейсхолдерами.
Раньше у меня было писано "message=player:%var:ПЕРЕМЕННАЯ% бла-бла-бла" и сообщение отправлялось игроку с ником из переменной, теперь почему-то отправляется всем. Вот мой код:
Код:
  EveryHour:
    flags: []
    actions:
    - 'BROADCAST=&3[Сервер]Текущее время сервера: &6%TIME_SERVER:HH:mm%'
    - 'cmd_console=eco give %var:biz001% 100'
    - 'message=player:%var:biz001%,system &e[biz]За этот час с продаж продукции (Бизнес #1) заработано: &2%var:money001%$'
    - 'cmd_console=eco give %var:biz002% 50'
    - 'message=player:%var:biz002%,system &e[biz]За этот час с продаж продукции (Бизнес #2) заработано: &2%var:money002%$'
    - 'VAR_SET=id:money001 value:0'
    - 'VAR_SET=id:money002 value:0'
    reactions: []
Буду признателен с:
 
@fromgate
Оу, прошу прощения за свои сообщения, действительно, видимо просто что-то не так было с 0.9.4, так как сейчас я установил девбилд и все заработало!
Единственное, теперь что-то не так стало с message, ну, скорее всего просто я неправильно пишу, раз ты сказал что изменилась организации работы с плейсхолдерами.
Раньше у меня было писано "message=player:%var:ПЕРЕМЕННАЯ% бла-бла-бла" и сообщение отправлялось игроку с ником из переменной, теперь почему-то отправляется всем. Вот мой код:
Код:
  EveryHour:
    flags: []
    actions:
    - 'BROADCAST=&3[Сервер]Текущее время сервера: &6%TIME_SERVER:HH:mm%'
    - 'cmd_console=eco give %var:biz001% 100'
    - 'message=player:%var:biz001%,system &e[biz]За этот час с продаж продукции (Бизнес #1) заработано: &2%var:money001%$'
    - 'cmd_console=eco give %var:biz002% 50'
    - 'message=player:%var:biz002%,system &e[biz]За этот час с продаж продукции (Бизнес #2) заработано: &2%var:money002%$'
    - 'VAR_SET=id:money001 value:0'
    - 'VAR_SET=id:money002 value:0'
    reactions: []
Буду признателен с:
Сообщение отправляется игроку с ником %var:biz001%,system
 
@Lyosha12, убрал ",system", все равно всем отправляет. Тут трабла была явно не в ",system", так как на предыдущей версии плагина (0.9.3 у меня стояла) все работало и сообщение отправлялось игроку %var:biz001% и игроку system
 
Я не пойму как работают флаги с Fractions:/
Вроде и прописал правильно
f FCT_IS_REL_PLAYER_AROUND 5 ENEMY
Плагин поставил и отношения выставил
\
Сразу предложение сделать радиус без плагина
 
Последнее редактирование:
@Lyosha12, убрал ",system", все равно всем отправляет. Тут трабла была явно не в ",system", так как на предыдущей версии плагина (0.9.3 у меня стояла) все работало и сообщение отправлялось игроку %var:biz001% и игроку system
Даже не знаю, у меня такого не происходит.
 
Продолжаю осваивать 0.9.5 после 0.9.3 - что-то не так с %arg%. Вот код:
Код:
  Бизнес1Слот1:
    command: cmd:biz arg1:* arg2:slot1 arg3:*
    flags:
    - VAR_COMPARE=biz00%arg1%/%player%
    actions:
    - var_set=id:biz00%arg1%s1 value:%arg3%
    - 'message=&e[biz]Вы установили цену. Теперь она составляет: %arg3%$'
    - 'sign_set_line=loc:world,-6.0,64.0,608.0,0.0,0.0 line4:{Цена: %arg3%$}'
    reactions:
    - message=&eВы не владеете этим бизнесом.
Переменная "biz00%arg1%s1" становится равна "%arg3%", как и раньше, однако message в чат отправляет нам не число написанное нами, а "%arg3%"! Также и на табличке пишется "Цена: %arg3%$", хотя на 0.9.3 работало все норм. Что делать?(
 
Продолжаю осваивать 0.9.5 после 0.9.3 - что-то не так с %arg%. Вот код:
Код:
  Бизнес1Слот1:
    command: cmd:biz arg1:* arg2:slot1 arg3:*
    flags:
    - VAR_COMPARE=biz00%arg1%/%player%
    actions:
    - var_set=id:biz00%arg1%s1 value:%arg3%
    - 'message=&e[biz]Вы установили цену. Теперь она составляет: %arg3%$'
    - 'sign_set_line=loc:world,-6.0,64.0,608.0,0.0,0.0 line4:{Цена: %arg3%$}'
    reactions:
    - message=&eВы не владеете этим бизнесом.
Переменная "biz00%arg1%s1" становится равна "%arg3%", как и раньше, однако message в чат отправляет нам не число написанное нами, а "%arg3%"! Также и на табличке пишется "Цена: %arg3%$", хотя на 0.9.3 работало все норм. Что делать?(
Не могу ничего сказать, так как не знаю с чем сравнивать. Предоставьте скрины до и после. А так же значения переменных во всех этапах. Возможно, переменная не существует, чтобы вывести её значение.
 
@fromgate
:( Я не понял про ITEM_CLICK
Что изменилось то? Где посмотреть? (http://reactions.fromgate.ru/index.html тут я не понял, не мог бы ты мне объяснить или скинуть готовый вариант? Мне нужно что бы при нажатии ПКМ предмета name_tag (или бирки по русски) с name:{&6&lМеню выбора &9&lКласса} открывалось меню (которое делается через РА)

P.S. Ой, все. Не знаю как, но у меня получилось вот это и вроде как работает:
h:
item: '&6&lМеню_выбора_&9&lКласса$421:0'
actions:
- message=player:%player% Hellow!
P.S.S А вот и нет! теперь при нажатии любого блока на ПКМ пишет hellow >_<
КАК СДЕЛАТЬ!!? Скажи, пожалуйста!
 
Последнее редактирование:
господи, @fromgate, чем тебе мешали айди предметов? переделывать все в новый тип это просто мутор...приходится прописывать себе в майнкрафте каждый предмет и с помощью itemdb смотреть как он называется, потому что айди теперь не поддерживается.
пипец, зачем ты вообще переделал формат предметов? у меня весь сервер отказался работать (дофига чего было с предметами связано). еще и %arg% перестали работать, как я уже и писал, message не туда отправляются...срал я на этот работающий теперь %CALC%, item_remove_inventory и item (флаг) теперь через задницу работают (даже в новом формате), я меняю обратно на 0.9.3
на 0.9.4*
было бы очень круто заиметь 0.9.4 с работающим %CALC%, дабы не ставить 0.9.5, потому что придется дофигища строк кода переписывать
 
@MrStefanie2007
К старому формату описания предметов несколько претензий:
1. Он слишком запутан. Когда дело касается формата <Type>:<Data>*<Amount> - всё выглядит красиво и понятно.
Когда дело касается дополнительных параметров - он становится неприменим. Я отвечая на ответы по формату, всегда заглядывал в шпаргалку -- он даже у меня в голове не укладывался.
2. Фактически можно было создавать ограниченное число предметов. Сейчас можно делать книги, произвольные знамёна.
3. Этот формат тормозил перспективы работы с инвентарём и предметами. Сейчас они реально появились.
4. Отказа от ID не произошло. Можно также написать type:123 и получить тот же предмет, то и раньше. Другое дело, что уже в майнкрафте нет этих id. По сути, то что есть в spigot'е 1.8.х - это заплатка, у меня нет гарантии, того, что скажем с выходом 1.9 они не пропадут и тут тоже.

Ну и самое главное - когда происходит такое значительное изменение - ни в коем случае нельзя обновляться на рабочем сервере. Надо провести обновление на временном, обновить флаги, активаторы и действия и перейти нормально.
Работоспособность ITEM_REMOVE и ITEM_REMOVE_INVENTORY в 0.9.5 протестирована очень хорошо. И сейчас я достаточно пристально слежу за темой и выпускаю новые девбилды ежедневно - убираю и замеченные нестыковки и по мере сил добавляю новые функции.

Я бы всё таки рекомендовал "нацелиться" на постепенное обновление. Если существует много активаторов связанных с предметами - переделывайте постепенно. Что-то не получается - сразу пишите сюда. Новый формат предметов значительно лучше, Вы это увидите :)
@fromgate
:( Я не понял про ITEM_CLICK
Что изменилось то? Где посмотреть? (http://reactions.fromgate.ru/index.html тут я не понял, не мог бы ты мне объяснить или скинуть готовый вариант? Мне нужно что бы при нажатии ПКМ предмета name_tag (или бирки по русски) с name:{&6&lМеню выбора &9&lКласса} открывалось меню (которое делается через РА)

P.S. Ой, все. Не знаю как, но у меня получилось вот это и вроде как работает:
h:
item: '&6&lМеню_выбора_&9&lКласса$421:0'
actions:
- message=player:%player% Hellow!
P.S.S А вот и нет! теперь при нажатии любого блока на ПКМ пишет hellow >_<
КАК СДЕЛАТЬ!!? Скажи, пожалуйста!


Старый формат предмета поддерживается в ограниченном режиме. Т.е. если у Вас это ITEM_GIVE - то возможно сработает, с вероятность 90%. А во всех проверках работать не будет.

Вот ITEM_CLICK с моего тестового сервера:
Код:
ITEM_CLICK:
  flyfeather:
    item: name:{&6Magic feather} type:FEATHER
    actions:
    - VELOCITY=vector:3.5,2.5,3.5 kick:true
    - EFFECT=eff:flame num:20 dur:1s loc:%player%
    - EFFECT=eff:cloud num:20 dur:2s loc:%player%
  tectclick:
    item: type:NAME_TAG name:{&6Name tag}
    actions:
    - MESSAGE=player:%player% &6Name tag!
 
@fromgate, извини за такое гневное сообщение, просто пукан загорелся.
Используя новый формат предметов у меня не получилось использовать айди (предметы не забирались из инвентаря), также,когда предмет забирался, он визуально оставался (надо было из инвентаря его использовать или использовать на ПКМ). На рабочем сервере я и не обновлялся, я на временном сейчас тестил.
Также используя код "ITEM_REMOVE_INVENTORY=item:NAME_TAG*64 data:1 name:{.*}" или же "ITEM_REMOVE_INVENTORY=item:NAME_TAG data:1 amount:64 name:{.*}" забирался лишь 1 неймтаг, иногда почему-то 2. (различные name писать или не писать вовсе также пробовал). Item_Click стал реагировать на абсолютно любой предмет (ну его я не переписывал в новый формат, просто было как-то лень 32 активатора переписывать).
Также плейсхолдеры перестали работать, как я писал выше.
Фактически, все что мне нужно было от апдейта - это плейсхолдер-калькулятор. Ни больше ни меньше.Просто калькулятор. И все. Ради него переписывать весь код - не то, чем бы я хотел заниматься, понимаете. А по идее калькулятор должен уже с довольно таки старых версий. А создавать обходные пути для того что мне нужно - не выйдет. Раньше я заменял калькулятор еще одной переменной, тут же так не выйдет. Точнее выйдет, однако придется вместо каждого активатора создавать около 10 exec-активаторов.
Можно что-то сделать с %calc% на старой версии? Хотя, наверное нельзя, точней вы этим заниматься не будете.Эх, жаль...
 
@MrStefanie2007
К сожалению очень много поменял. Т.е. просто пересобрать версию с новым калькулятором не получится.

Могу порекомендовать (возможно это поможет) снизить количество подстановок в выражения калькулятора до уровня глобальных переменных. Название переменных не должно содержать (на всякий случай) цифр и каких-то знаков.
Т.е. чтобы в выражениях было что-то вроде:
%calc:abc+bcd-ecf%

abc, bcd и ecf — это глобальные переменные, доступные в обычном порядке %var:abc% %var:bcd% и %var:ecf%
Я не пойму как работают флаги с Fractions:/
Вроде и прописал правильно
f FCT_IS_REL_PLAYER_AROUND 5 ENEMY
Плагин поставил и отношения выставил

Сразу предложение сделать радиус без плагина

Что такое "сделать радиус" без плагина? Покажите какой получился активатор?
 
@fromgate, вроде обошолся без калькулятора, дописал всего лишь 3 exec.
Вот кстати нашел баг, который очень сильно докучает: неполные числа.
Переменные записываются, к пример "100.0" (с десятыми)
Однако если использовать "VAR_INC=id:x VALUE:%var:y%" где переменная x равна 1, а y равно 0.2, переменная x станет равна 2. Так зачем тогда вообще этот .0? И, походу, я так и не узнаю как с этим бороться, так как сижу на 0.9.4 :/
 
Продолжаю осваивать 0.9.5 после 0.9.3 - что-то не так с %arg%. Вот код:
Код:
  Бизнес1Слот1:
    command: cmd:biz arg1:* arg2:slot1 arg3:*
    flags:
    - VAR_COMPARE=biz00%arg1%/%player%
    actions:
    - var_set=id:biz00%arg1%s1 value:%arg3%
    - 'message=&e[biz]Вы установили цену. Теперь она составляет: %arg3%$'
    - 'sign_set_line=loc:world,-6.0,64.0,608.0,0.0,0.0 line4:{Цена: %arg3%$}'
    reactions:
    - message=&eВы не владеете этим бизнесом.
Переменная "biz00%arg1%s1" становится равна "%arg3%", как и раньше, однако message в чат отправляет нам не число написанное нами, а "%arg3%"! Также и на табличке пишется "Цена: %arg3%$", хотя на 0.9.3 работало все норм. Что делать?(

Чтобы отобразить переменную используется плейсхолдер: %var:arg3%
http://reactions.fromgate.ru/placeholders.htm
@fromgate, вроде обошолся без калькулятора, дописал всего лишь 3 exec.
Вот кстати нашел баг, который очень сильно докучает: неполные числа.
Переменные записываются, к пример "100.0" (с десятыми)
Однако если использовать "VAR_INC=id:x VALUE:%var:y%" где переменная x равна 1, а y равно 0.2, переменная x станет равна 2. Так зачем тогда вообще этот .0? И, походу, я так и не узнаю как с этим бороться, так как сижу на 0.9.4 :/

Там был момент, я даже кому-то рекомендовал выше. Когда производится действие VAR_SET они записывают без ".0" (По логике, всегда когда число целое оно должно выводиться без .0, но видно где-то я что-то упустил).
По поводу сложения перепроверю. Неужели осталось целочисленное?

Когда-то поддерживались только целые числа, но я столкнулся с тем, что всё же периодически возникает потребность в дробных переменных.
 
Назад
Верх