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

Телепорт не подвергается модификации для указания игрока. Запускайте активатор для тех, кого нужно телепортировать - EXEC в локации.
Если вручную прописывать ник, это понятно. Но вообще можно как-то извратиться так, чтобы телепортировался именно игрок, чей ник находится в переменной? Я согласен даже на костыли
 
Если вручную прописывать ник, это понятно. Но вообще можно как-то извратиться так, чтобы телепортировался именно игрок, чей ник находится в переменной? Я согласен даже на костыли
EXEC-активатор, который содержит действие TP запускаете с параметром palyer:%var:<названиеПеременной>%

1. Мне надо не спавнить мобов, а внедрить в стандартных
2. Мне надо не предметы, а команды
Можно попробовать воспользоваться активатором MOB_KILL — он срабатывает, когда игрок убивает моба.
В нём использовать флаг CHANCE с нужной вероятностью, и если он отработает, то запускать команду.
 
EXEC-активатор, который содержит действие TP запускаете с параметром palyer:%var:<названиеПеременной>%

Пишу так:
1. /ra add PLATE gamer (активируется при вставании игрока на плиту)
2. /ra add gamer action VAR_SET id:gamer1 value:%PLAYER_NAME% (ник игрока заносится в переменную)
3. /ra add EXEC teleport (исполняемый активатор)
4. /ra add teleport action TP loc:%here% (добавляю этому активатору действие телепортации на конкретное место)
5. Игрок встает на плиту, я ввожу команду в чат: /exec teleport player:%var:gamer1%
В чате пишется сообщение о начале работы активатора, но ничего не происходит. Что я делаю не так?
 
Пишу так:
1. /ra add PLATE gamer (активируется при вставании игрока на плиту)
2. /ra add gamer action VAR_SET id:gamer1 value:%PLAYER_NAME% (ник игрока заносится в переменную)
3. /ra add EXEC teleport (исполняемый активатор)
4. /ra add teleport action TP loc:%here% (добавляю этому активатору действие телепортации на конкретное место)
5. Игрок встает на плиту, я ввожу команду в чат: /exec teleport player:%var:gamer1%
В чате пишется сообщение о начале работы активатора, но ничего не происходит. Что я делаю не так?
Покажите конфиг, скриншоты работы и выводы значения переменных в процессе.
@fromgate, сможете ли сделать плейсхолдер округления чисел? Или же как функцию в CALC. Например, floor. Если до "1.4(9)", то это "1". Если от "1.5", то это "2".
А в конфиге так:
%CALC:floor(3/100)%

Так же необходима функция отбрасывания дробной части. Например:
%CALC:int(3,5141)%=3
@fromgate, подумываю сделать туториал по плагину на меню: открываем и выбираем пункт изучения: основы, активаторы, флаги, переменные, плейсхолдеры, комбинации, остальное. Такой вариант будет более приемлем, чем "длинный тоннель со стендами показа активаторов"?
 
Последнее редактирование:
Опишу подробно странный баг:
Игрок в самом начале игры в раздатчике получает некую книгу-инструкцию, под названием "Приказ" с четырьмя страницами текста. До тех пор, пока он ее не получит - он не может открыть определенную дверь - выход в дальнейшую игру. Скриншот активаторов получения и проверки прилагаю ("prikaz" - это просто кнопка на раздатчике, в активаторе описана ее блокировка, если книга уже получена):
Screenshot_49.jpg
Далее происходит следующее: допустим, игрок начал игру, получил приказ, и далее - очень быстро умер. Книга осталась лежать на месте его смерти, и вторично он не может ее получить из раздатчика и, соответственно - выйти со стартовой локации, до тех пор, пока плагин CLEAR LAG не уберет мусор.
Однако, если я беру в раздатчике книгу, и выбрасываю ее рядом, так, что она не находится у меня в инвентаре, то все равно, не смотря на проверку - могу открыть дверь, которая проверяется активатором exit_to_game. Опять же до тех пор, пока уборщик не уберет мусор.
Создается впечатление, что при проверке плагин работает с неким кэшем, который обновляется не сразу. Уборщик убирает мусор раз в 10 реальных минут.
следует отметить, что такая фича происходит только с книгой, то есть с итемом, у которого в проверке описаны не все поля. Сложные уникальные итемы, которые при проверки описаны в условиях других активаторов полностью - не дают такой ошибки. Пока что вышел из ситуации, убрав активатор проверки при выходе через дверь, но выдача из раздатчик по прежнему работает с перебоями.
 
@fromgate, прямо-таки баг. Суть: вызываю 12 активаторов. Существуют лишь активаторы VIP от 1 до 5 и ADMIN-1. По-факту или консоль, или ReActions не работает с активатором EXEC-Case-9 и EXEC-Case-11. Так же почему-то дважды запускается EXEC-Case-6 и EXEC-Case-3. Интересно, что при повторении этих действий не обрабатываются другие номера активаторов. Например, при втором повторении консоль выдала лишь отсутствие восьми активаторов. По-факту же отсутствуют 10.
Код:
[20:54:08] [Server thread/INFO]: Lyosha12 issued server command: /ra reload
[20:54:09] [Server thread/INFO]: Lyosha12 issued server command: /case open
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-12-Creator-61. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-10-Gladmin-17. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-8-Oper+-59. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-7-Oper-12. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-6-Lord+-18. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-3-Creative-34. Activator not found.
[20:54:10] [Server thread/INFO]: Unknown command. Type "/help" for help.[m
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-8-Oper+-52. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-6-Lord+-21. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-5-Lord-55. Activator not found.
[20:54:10] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-3-Creative-23. Activator not found.
Код:
[21:00:27] [Server thread/INFO]: Lyosha12 issued server command: /ra reload
[21:00:27] [Server thread/INFO]: Lyosha12 issued server command: /case open
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-10-Gladmin-79. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-9-Developer-49. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-8-Oper+-77. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-7-Oper-67. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-6-Lord+-81. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-5-Lord-84. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-3-Creative-50. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-2-Premium-89. Activator not found.
[21:00:29] [Server thread/INFO]: Unknown command. Type "/help" for help.[m
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-12-Creator-59. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-10-Gladmin-35. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-9-Developer-28. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-8-Oper+-93. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-7-Oper-4. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-5-Lord-25. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-3-Creative-79. Activator not found.
[21:00:29] [Server thread/INFO]: [ReActions] Failed to run exec activator EXEC-Case-2-Premium-76. Activator not found.
Код:
  EXEC-Win-Real:
    flags:
    - VAR_PLAYER_COMPARE=id:j value:1
    actions:
    - EXECUTE=activator:EXEC-Case-12-Creator-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-11-Sponsor-%random:2-100%-%random:1-100% player:%player%
    - EXECUTE=activator:EXEC-Case-10-Gladmin-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-9-Developer-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-8-Oper+-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-7-Oper-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-6-Lord+-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-5-Lord-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-4-Admin-%random:1-1% player:%player%
    - EXECUTE=activator:EXEC-Case-3-Creative-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-2-Premium-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-1-VIP-%random:1-5% player:%player%
    reactions: []
Версия 0.9.9
Что подскажите?
@fromgate, при одних и тех же условиях - разные результаты. Выкладываю всё что есть на данный момент в папке ReActions: [Выслал в ЛС]
Суть в том, что один раз переменной присваивается значение 1 и не выводится соответствующий предмет, а во второй раз всё наоборот: переменной опять присваивается значение 1, а предмет есть.
P.S. Версия 1.8.8, клиент 1.8.9
Копаем дальше: активаторы вызываются дважды, хотя их вызов может быть только при значении переменной j равной 3. Как так выходит, что происходит двойной, да ещё и не полный запуск?
Странность #4: вызываем
Код:
    - EXECUTE=activator:EXEC-Case-12-Creator-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-11-Sponsor-%random:2-100%-%random:1-100% player:%player%
    - EXECUTE=activator:EXEC-Case-10-Gladmin-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-9-Developer-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-8-Oper+-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-7-Oper-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-6-Lord+-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-5-Lord-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-4-Admin-1 player:%player%
    - EXECUTE=activator:EXEC-Case-3-Creative-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-2-Premium-%random:2-100% player:%player%
    - EXECUTE=activator:EXEC-Case-1-VIP-1 player:%player%
Но результат получаем такой, что выполняется активатор EXEC-Case-1-VIP-1, но не EXEC-Case-4-Admin-1, хотя стоит он раньше и должен выполняться первее. Что за магия? (Кстати, я это ещё на 1.5.2 заметил, написал, но Вы почему-то не отреагировали :()
@fromgate, личный интерес: Вас не пугает количество тикетов на devbukkit? :D
 

Вложения

  • 2015-12-11_21.05.06.png
    2015-12-11_21.05.06.png
    162,1 КБ · Просмотры: 13
  • 2015-12-11_21.05.12.png
    2015-12-11_21.05.12.png
    162,8 КБ · Просмотры: 12
Последнее редактирование:
@Lyosha12
Да нет, не пугает. Другое дело когда я доберусь до этого.
Но вообще есть определённые планы. Я всё-таки буду переделывать ReActions ;)
 
Я всё-таки буду переделывать ReActions
Всё нужно переделывать время от времени. Дело в конкретных изменениях. К чему готовиться? Что планируете? Что не нравится? (Много разных команд выполняют одну функцию?)
 
Вообще долго рассказывать.
Есть много разных идей, но главное это:
- Будет ядро никак не связанное с bukkit'ом. На его основе можно будет легко построить вариант для bukkit, sponge или даже для мода.
- Вместо активаторов жестко привязанных к событиям будет только один вид активатора - можно считать, что это EXEC ;) Но зато его можно будет привязать к любому типу события.
 
Блин! только перевел все на новые рельсы :) Может параллельно - этот завершить, от багов почистить, а новый назвать РеАкшн 2? ну типа того как нибудь?
 
@Astrogen
Не всё так быстро. Да и скорее всего удастся сделать плавный переход - с импортом старых файлов (а возможно даже с сохранением совместимости на уровне файлов)
 
Но зато его можно будет привязать к любому типу события.
Перечень и описание возможных событий (системных связок событий) дадите хоть? Или нужно будет копать Java самому? :D
 
Перечень и описание возможных событий (системных связок событий) дадите хоть? Или нужно будет копать Java самому? :D

Ну там такого точно не будет. Наверное я неудачно выразился.
В сравнении с текущими активаторами в описании активаторов должны будут остаться специфические характеристики (координаты для кнопок, название регионов и т.п., а также ссылка на название активатора.
Т.е. можно будет допустим описать 10 кнопок, но в каждой указать название одного и того же активатора.
 
Ну там такого точно не будет. Наверное я неудачно выразился.
В сравнении с текущими активаторами в описании активаторов должны будут остаться специфические характеристики (координаты для кнопок, название регионов и т.п., а также ссылка на название активатора.
Т.е. можно будет допустим описать 10 кнопок, но в каждой указать название одного и того же активатора.
Перспективно... Однако, если мы сможем ловить любое событие, то для начала нам нужно знать врага в лицо - иначе смысл ловить призрака?
 
@Lyosha12
Вот список событий, на текущий момент:
http://reactions.fromgate.ru/activators.htm
:)
Это-то я знаю. Но Вы же говорите о создании универсального активатора, где можно будет указать тип(ы) событий, которые он будет слушать и срабатывать только при выполнении их одновременно?

Или Вы говорите про масштабное расширение всевозможных параметров? То есть, прежняя система останется, однако можно будет менять, добавлять и комбинировать что угодно?
 
вот такая конструкция:


xp100:
world: gameworld
x: 78521
y: 64
z: 93066
flags:
actions:
- CMD_CONSOLE xp -100 %PLAYER%
- CMD_CONSOLE eco give %PLAYER% 100
- Message Вы продали 100 опыта за 100 монет
reactions:
- MESSAGE не вышло

не работает. Никакой реакции. слово BUTTON: наверху есть.

И еще, замечены баги с опаздыванием: например у игрока в руках есть некий предмет-ключ, которым он открывает дверь. Так вот, если его выбросить, и не сделать хотя бы 10-15 шагов, то реакшн по прежнему считает, что предмет в руке и дверь открывается. Как будто бы какой-то кэш используется.
 
Последнее редактирование:
Синтаксис забыли что ли?
ёлы-палы! вот я двоечник. Спасибо.
Уважаемые! еще вопрос: не работает плейсхолдер %MONEY% например в этой конструкции:


viewbalance:
world: gameworld
x: 78521
y: 64
z: 93067
flags:
actions:
- SIGN_SET_LINE=loc:gameworld,78521,65,93067 line1:&f&l%PLAYER% line2:{&f&lТвой баланс} line3:%MONEY%

пишет на табличке имя, "Твой баланс" и "%MONEY%"
пробовал другие активаторы создавать - то же самое. стоит плагин Vault и Essentials Посоветуйте, что делать? Баланс у игрока есть, операции с ним проходят.
 
Назад
Верх