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

Лучше создать один активатор-обработчик команд, и уже в зависимости от аргумента запускать нужные тебе EXEC-активаторы
Блин, не успев подумать сразу на форум полез, а зря.
Разобрался.

Теперь другой вопрос))
Имею активатор:
Код:
COMMAND:
  'Command_BuyPowerBankTypeG':
    command: BuyPowerBankTypeG
    flags:
    - VAR_PLAYER_EXIST=PowerBankTypeG
    reactions:
    - VAR_PLAYER_INC=id:PowerBankTypeG 1
    - 'MESSAGE=&7Аккумулятор типа: "G" куплен. &a%varp:PowerBankTypeG%&f/&c5'
    actions:
    - 'IF_ELSE= if:{(%varp:PowerBankTypeG%>=5)} then:run:actions:{ action1:{MESSAGE=&7Ты купил максимальное кол-во аккумуляторов типа: "G". &a%varp:PowerBankTypeG%&f/&c5} } else:{}'
    - 'IF_ELSE= if:{(%varp:PowerBankTypeG%<=4)} then:run:actions:{ action1:{VAR_PLAYER_INC=id:PowerBankTypeG value:1} action2:{MESSAGE=&7Аккумулятор типа: "G" куплен. &c%varp:PowerBankTypeG%&f/&c5} } else:{}'

Все выполняется верно, но вот, при 2-й "покупке" аккумулятора в чате почему-то все-равно 1/2(хотя переменная равна 2-м):
upload_2017-10-29_3-52-31.png
Помогите, пожалуйста.

Ах да, не подскажите, как сделать меню, чтобы при клике на пустой слот меню не закрывалось?
 
Последнее редактирование:
Блин, не успев подумать сразу на форум полез, а зря.
Разобрался.

Теперь другой вопрос))
Имею активатор:
Код:
COMMAND:
  'Command_BuyPowerBankTypeG':
    command: BuyPowerBankTypeG
    flags:
    - VAR_PLAYER_EXIST=PowerBankTypeG
    reactions:
    - VAR_PLAYER_INC=id:PowerBankTypeG 1
    - 'MESSAGE=&7Аккумулятор типа: "G" куплен. &a%varp:PowerBankTypeG%&f/&c5'
    actions:
    - 'IF_ELSE= if:{(%varp:PowerBankTypeG%>=5)} then:run:actions:{ action1:{MESSAGE=&7Ты купил максимальное кол-во аккумуляторов типа: "G". &a%varp:PowerBankTypeG%&f/&c5} } else:{}'
    - 'IF_ELSE= if:{(%varp:PowerBankTypeG%<=4)} then:run:actions:{ action1:{VAR_PLAYER_INC=id:PowerBankTypeG value:1} action2:{MESSAGE=&7Аккумулятор типа: "G" куплен. &c%varp:PowerBankTypeG%&f/&c5} } else:{}'

Все выполняется верно, но вот, при 2-й "покупке" аккумулятора в чате почему-то все-равно 1/2(хотя переменная равна 2-м):
Посмотреть вложение 48553
Помогите, пожалуйста.

Ах да, не подскажите, как сделать меню, чтобы при клике на пустой слот меню не закрывалось?
Одновременно изменять переменные и выводить их результат внутри одного ifelse нельзя. Возможно, я это допилю.
Но зачем так усложнять Ваш активатор. Вот проще вариант:
Код:
COMMAND:
 'Command_BuyPowerBankTypeG':
    command: BuyPowerBankTypeG
    flags:
    - FLAG_SET=!VAR_PLAYER_EXIST:id:PowerBankTypeG VAR_PLAYER_LOWER:{id:PowerBankTypeG value:5}
    actions:
    - VAR_PLAYER_INC=id:PowerBankTypeG value:1
    - 'message=&7Аккумулятор типа: "G" куплен. &c%varp:PowerBankTypeG%&f/&c5'
    reactions:
    - 'message=&7Ты купил максимальное кол-во аккумуляторов типа: "G". &a%varp:PowerBankTypeG%&f/&c5'
 
Последнее редактирование:
Одновременно изменять переменные и выводить их результат внутри одного ifelse нельзя. Возможно, я это допилю.
Но зачем так усложнять Ваш активатор. Вот проще вариант:
Код:
COMMAND:
 'Command_BuyPowerBankTypeG':
    command: BuyPowerBankTypeG
    flags:
    - FLAG_SET=!VAR_PLAYER_EXIST:id:PowerBankTypeG VAR_PLAYER_LOWER:{id:PowerBankTypeG value:5}
    actions:
    - VAR_PLAYER_INC=id:PowerBankTypeG value:1
    - 'message=&7Аккумулятор типа: "G" куплен. &c%varp:PowerBankTypeG%&f/&c5'
    reactions:
    - 'message=&7Ты купил максимальное кол-во аккумуляторов типа: "G". &a%varp:PowerBankTypeG%&f/&c5'
Как всегда большое спасибо, на флаг "FLAG_SET" внимания не обращал раньше)
 
Привет, привет, вообщем, почему-то у меня перестал работать плейсхолдер %CALC:% в меню.
Активатор:
Код:
COMMAND:
 'z':
    command: z
    actions:
    - 'MESSAGE=&8%CALC:(%varp:PowerBankTypeA%*5000)+(%varp:PowerBankTypeB%*2500)+(%varp:PowerBankTypeC%*1500)+(%varp:PowerBankTypeD%*1000)+(%varp:PowerBankTypeE%*500)+(%varp:PowerBankTypeF%*200)+(%varp:PowerBankTypeG%*100)%'
    - 'MENU_ITEM=size:45 title:{Терминал} slot23:{name:{&c❢ &4Информация} lore:{&7Ёмкость аккумуляторов:\n&f%CALC:(%varp:PowerBankTypeA%*5000)+(%varp:PowerBankTypeB%*2500)+(%varp:PowerBankTypeC%*1500)+(%varp:PowerBankTypeD%*1000)+(%varp:PowerBankTypeE%*500)+(%varp:PowerBankTypeF%*200)+(%varp:PowerBankTypeG%*100)%\n\n&7Заряд:\n&f%varp:power%\n\n&7Статус:\n&r%varp:status%} type:35 data:5} exec23:_'
При выполнении действия в чат выходит сообщение, которое нужно:
upload_2017-10-29_17-59-22.png

А вот в описании предмета у меня это:
upload_2017-10-29_17-58-35.png
 

Вложения

  • upload_2017-10-29_17-59-3.png
    upload_2017-10-29_17-59-3.png
    14,9 КБ · Просмотры: 3
В этом плане я не уверен. Но будет огромный плюс в том, что вы будете знать на какой полке, что лежит. Вам не нужно будет ждать каких-то изменений сторонних плагинов после обновления сервера. Вы сможете быстро перейти на новую версию сервера и быть всегда в топе. Вы сможете быстро решить любую проблему, возникшую с сервером. Также быстро вы сможете отловить читеров. Еще много и много чего можно сделать с помощью ReActions.
Тогда у меня другой вопрос, а не будет ли сервере потре****ь еще больше ресурсов ? Особенно если будут часто использоваться переменные.
 
Привет, привет, вообщем, почему-то у меня перестал работать плейсхолдер %CALC:% в меню.
Активатор:
Код:
COMMAND:
 'z':
    command: z
    actions:
    - 'MESSAGE=&8%CALC:(%varp:PowerBankTypeA%*5000)+(%varp:PowerBankTypeB%*2500)+(%varp:PowerBankTypeC%*1500)+(%varp:PowerBankTypeD%*1000)+(%varp:PowerBankTypeE%*500)+(%varp:PowerBankTypeF%*200)+(%varp:PowerBankTypeG%*100)%'
    - 'MENU_ITEM=size:45 title:{Терминал} slot23:{name:{&c❢ &4Информация} lore:{&7Ёмкость аккумуляторов:\n&f%CALC:(%varp:PowerBankTypeA%*5000)+(%varp:PowerBankTypeB%*2500)+(%varp:PowerBankTypeC%*1500)+(%varp:PowerBankTypeD%*1000)+(%varp:PowerBankTypeE%*500)+(%varp:PowerBankTypeF%*200)+(%varp:PowerBankTypeG%*100)%\n\n&7Заряд:\n&f%varp:power%\n\n&7Статус:\n&r%varp:status%} type:35 data:5} exec23:_'
При выполнении действия в чат выходит сообщение, которое нужно:
Посмотреть вложение 48564

А вот в описании предмета у меня это:
Посмотреть вложение 48562
Здесь тоже всё просто. Вам нужно только создать временную переменную и использовать её везде в этом активаторе:
Код:
COMMAND:
 'z':
    command: z
    actions:
    - var_temp_set=id:z value:{%CALC:(%varp:PowerBankTypeG%*5000)+(%varp:PowerBankTypeG%*2500)+(%varp:PowerBankTypeC%*1500)+(%varp:PowerBankTypeD%*1000)+(%varp:PowerBankTypeE%*500)+(%varp:PowerBankTypeF%*200)+(%varp:PowerBankTypeG%*100)%}
    - 'MESSAGE=&8%z%'
    - 'MENU_ITEM=size:45 title:{Терминал} slot23:{name:{&c❢ &4Информация} lore:{&7Ёмкость аккумуляторов:\n&f%z%\n\n&7Заряд:\n&f%varp:power%\n\n&7Статус:\n&r%varp:status%} type:35 data:5} exec23:_'
 
Здесь тоже всё просто. Вам нужно только создать временную переменную и использовать её везде в этом активаторе:
Код:
COMMAND:
 'z':
    command: z
    actions:
    - var_temp_set=id:z value:{%CALC:(%varp:PowerBankTypeG%*5000)+(%varp:PowerBankTypeG%*2500)+(%varp:PowerBankTypeC%*1500)+(%varp:PowerBankTypeD%*1000)+(%varp:PowerBankTypeE%*500)+(%varp:PowerBankTypeF%*200)+(%varp:PowerBankTypeG%*100)%}
    - 'MESSAGE=&8%z%'
    - 'MENU_ITEM=size:45 title:{Терминал} slot23:{name:{&c❢ &4Информация} lore:{&7Ёмкость аккумуляторов:\n&f%z%\n\n&7Заряд:\n&f%varp:power%\n\n&7Статус:\n&r%varp:status%} type:35 data:5} exec23:_'
Я все прекрасно понял.
Спасибо!
 
Последнее редактирование:
Тогда у меня другой вопрос, а не будет ли сервере потре****ь еще больше ресурсов ? Особенно если будут часто использоваться переменные.
Применение переменных приводит к затормаживанию системы, это факт. Попробуйте запустить два активатора, один с персональными переменными, а другой с временными переменными и для каждого из них побегайте по карте и вы заметите, что с активатором где используются персональные переменные, сервер будет притормаживаться. Вот пример:
Код:
EXEC:
  var1:
    actions:
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
    - VAR_PLAYER_INC=id:v value:1
    - log=%varp:v%
  var2:
    actions:
    - VAR_temp_set=id:v value:1
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
    - VAR_temp_set=id:v value:%CALC:%v%+1%
    - log=%v%
Из этого примера видно, что следует как можно реже прибегать к использованию персональных и глобальных переменных.
У меня есть идея, как перестать использовать персональные переменные в таком виде, как они сейчас есть и добавить использование мета данных. При этом персональные переменные будут находится в метаданных игрока. Также будут добавляться и удаляться не прибегая к сохранению файла персональных переменных. Згружаться переменные будут только при входе игрока на сервер, а записываться в файл после выхода из сервера. Вот тогда, я думаю, что тормозов сервера больше не будет.
 
Я кажеться лучше нашёл способ использования персональных переменных. Я просто сделал так, чтобы при каждом сохранении переменной в файл, создавался асинхронно новый поток, который практически не мешает работе сервера. Теперь сервер не должен тормозить.
Build #158
  • Добавлен параметр в конфиг player-asynch-save-self-variable-file его нужно установить в true, чтобы работать с персональными переменными асинхронно.
  • Этот параметр работает в связке с параметром player-self-variable-file: true
  • По идее, теерь тормозов сервера не должно наблюдаться
 
Почитав страницу с описанием действия SHOOT я создал похожий активатор у себя на сервере.
Работает, но не все.
Активатор:
Код:
ITEM_CLICK:
  shoot:
    item: type:439
    actions:
    - EFFECT=eff:smoke_normal loc:%targetloc%
    - SHOOT=damage:100 run:{activator:shootexec playeronly:false} distance:50
При "Стрельбе" из стрелы моб получает урон, но почему-то эффект smoke_normal получаю я, а не моб.
Просмотрев еще пару страниц на вашем сайте я увидел плейсхолдер %moblocation%, но он тоже к сожалению действует на меня :(

Из второго активатора, который был на сайте идет сообщение.
В котором плейсхолдер %targetloc% соответствует координатам цели.
 
Почитав страницу с описанием действия SHOOT я создал похожий активатор у себя на сервере.
Работает, но не все.
Активатор:
Код:
ITEM_CLICK:
  shoot:
    item: type:439
    actions:
    - EFFECT=eff:smoke_normal loc:%targetloc%
    - SHOOT=damage:100 run:{activator:shootexec playeronly:false} distance:50
При "Стрельбе" из стрелы моб получает урон, но почему-то эффект smoke_normal получаю я, а не моб.
Просмотрев еще пару страниц на вашем сайте я увидел плейсхолдер %moblocation%, но он тоже к сожалению действует на меня :(

Из второго активатора, который был на сайте идет сообщение.
В котором плейсхолдер %targetloc% соответствует координатам цели.
В вашем примере %targetloc% не определён. Эффект должен производится в активаторе shootexec
 
В вашем примере %targetloc% не определён. Эффект должен производится в активаторе shootexec
Спасибо :)
Не подскажешь, как остановить такой активатор?

Код:
EXEC:
  Exec_Mining:
    actions:
   - MESSAGE=1
    - ACTION_DELAYED=time:5s action:{EXECUTE activator:Exec_Mining}

Вот этим активатором запускаю:
Код:
COMMAND:
  x:
    command: x
    actions:
    - EXECUTE=activator:Exec_Mining

Этим пытаюсь остановить, но не тщетно:
Код:
COMMAND:
  z:
    command: z
    actions:
    - EXECUTE_STOP=activator:Exec_Mining
 
Активатор MESSAGE не учитывает цвета (как это было в MessageFilter)? Например, что-то выводит в чат сообщение &2This is a &emessage *случайное число*.
Чтобы убрать его, по идее должен быть такой активатор:
Код:
MESSAGE:
  Hiden:
    mask: '&2This is a &emessage'
    type: START
    source: CHAT_OUTPUT
    actions:
    - CANCEL_EVENT=true
(Можно и type:CONTAINS, но мне нужен именно START)
Но ничего не произойдёт. Если убрать цвет, то активатор сработает (mask: 'This is a message'). Почему?
И что делать, если есть несколько одинаковых сообщений, отличающихся лишь по цвету и случайному числу? При этом нужно скрыть только те, которые начинаются с нужного мне цвета.
Если это не моя ошибка, то прошу добавить, если можно, параметр color: true | false (учитывать ли цвет при проверке).
UPD: Да, точно. Создал активатор, отменил ивент, вывел сообщение через %message%. Цвета нет.
@maxdikiy Где можно подробнее ознакомиться с REGEX? Необходимо убрать с сообщения определённое слово (доллар, как в примерах, убирает, а вот слово не хочет). В некоторых случаях заменить его на другое. Буду очень благодарен за наводку или даже пример.
 
Последнее редактирование:
@SOHIGH Запускай не через 'ACTION_DELAYED=', а вот так: 'EXECUTE=activator:Exec_Mining delay:5s'. Тогда его можно будет отменить при помощи EXECUTE_STOP.
 
А увеличение функционала действия shoot планируется?
 
Активатор MESSAGE не учитывает цвета (как это было в MessageFilter)? Например, что-то выводит в чат сообщение &2This is a &emessage *случайное число*.
Чтобы убрать его, по идее должен быть такой активатор:
Код:
MESSAGE:
  Hiden:
    mask: '&2This is a &emessage'
    type: START
    source: CHAT_OUTPUT
    actions:
    - CANCEL_EVENT=true
(Можно и type:CONTAINS, но мне нужен именно START)
Но ничего не произойдёт. Если убрать цвет, то активатор сработает (mask: 'This is a message'). Почему?
И что делать, если есть несколько одинаковых сообщений, отличающихся лишь по цвету и случайному числу? При этом нужно скрыть только те, которые начинаются с нужного мне цвета.
Если это не моя ошибка, то прошу добавить, если можно, параметр color: true | false (учитывать ли цвет при проверке).
UPD: Да, точно. Создал активатор, отменил ивент, вывел сообщение через %message%. Цвета нет.
@maxdikiy Где можно подробнее ознакомиться с REGEX? Необходимо убрать с сообщения определённое слово (доллар, как в примерах, убирает, а вот слово не хочет). В некоторых случаях заменить его на другое. Буду очень благодарен за наводку или даже пример.
Так, какой плагин выводит сообщение в чат? Просто в чат могут выводить сообщения в разных форматах, например, в json. Тогда маска должна быть другой. Да и в маске кавычки ставить нет необходимости.

Что касается примеров для REGEX, то все примеры опубликованы на этом форуме. Чтобы правильно установить маску (regex) для этого действия, воспользуйтесь ресурсом:
https://regex101.com/
 
Так, какой плагин выводит сообщение в чат?
Разные. EssentialsX (EssentailsXChat), WorldGuard, Slimefun (с ними пробовал).
Сохранял сообщения через MessageFilter, там был цвет и кавычки. Решил заменить его.
 
Назад
Верх