1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Релизы плагинов", создана пользователем fromgate, 16 июл 2013.

  1. Lyosha12

    Lyosha12 Активный участник Пользователь

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

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

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

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

    Помогите пожалуйста решить этот казус :(
     
  2. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    @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, но в них его наличие можно было исключить и использовать другие методы, а тут нельзя_
     
  3. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Можно указывать название на русском? о_О
    arg3 - просто слово. %arg3% - аргумент. CALC работает нормально, за исключением умножения\деления в предыдущих версиях.
    reactions: бла-бла-бла - это что?
    Как вообще такой активатор работает?
     
  4. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    @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."
    Подозреваю что проблема в версии плагина. Однако при установке более поздних версий плагина телепорты и многие другие действия перестают работать, а при каждом шаге в лог консоли отправляются сотни строк кода о том какой я тупой и что не умею ставить плагины.
     
  5. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @MrStefanie2007
    Разбираться с тем, что не так в старой версии я уже точно не буду. В 0.9.5 очень сильно поменялась внутренняя организации работы с плейсхолдерами.

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

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

    Плагин переставлять полностью, в смысле с остановкой сервера, без использования команды /reload или каких-то средств для перезапуска плагинов.
     
  6. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Спасибо
    @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: []
    
     
  7. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    @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: []
    
    Буду признателен с:
     
  8. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Сообщение отправляется игроку с ником %var:biz001%,system
     
  9. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    @Lyosha12, убрал ",system", все равно всем отправляет. Тут трабла была явно не в ",system", так как на предыдущей версии плагина (0.9.3 у меня стояла) все работало и сообщение отправлялось игроку %var:biz001% и игроку system
     
  10. rukaban96

    rukaban96 Активный участник Пользователь

    Баллы:
    76
    Я не пойму как работают флаги с Fractions:/
    Вроде и прописал правильно
    f FCT_IS_REL_PLAYER_AROUND 5 ENEMY
    Плагин поставил и отношения выставил
    \
    Сразу предложение сделать радиус без плагина
     
    Последнее редактирование: 6 июл 2015
  11. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Даже не знаю, у меня такого не происходит.
     
  12. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    Продолжаю осваивать 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 работало все норм. Что делать?(
     
  13. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Не могу ничего сказать, так как не знаю с чем сравнивать. Предоставьте скрины до и после. А так же значения переменных во всех этапах. Возможно, переменная не существует, чтобы вывести её значение.
     
  14. BrainRTP

    BrainRTP Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    @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 >_<
    КАК СДЕЛАТЬ!!? Скажи, пожалуйста!
     
    Последнее редактирование: 6 июл 2015
  15. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    господи, @fromgate, чем тебе мешали айди предметов? переделывать все в новый тип это просто мутор...приходится прописывать себе в майнкрафте каждый предмет и с помощью itemdb смотреть как он называется, потому что айди теперь не поддерживается.
    пипец, зачем ты вообще переделал формат предметов? у меня весь сервер отказался работать (дофига чего было с предметами связано). еще и %arg% перестали работать, как я уже и писал, message не туда отправляются...срал я на этот работающий теперь %CALC%, item_remove_inventory и item (флаг) теперь через задницу работают (даже в новом формате), я меняю обратно на 0.9.3
    на 0.9.4*
    было бы очень круто заиметь 0.9.4 с работающим %CALC%, дабы не ставить 0.9.5, потому что придется дофигища строк кода переписывать
     
  16. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @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 протестирована очень хорошо. И сейчас я достаточно пристально слежу за темой и выпускаю новые девбилды ежедневно - убираю и замеченные нестыковки и по мере сил добавляю новые функции.

    Я бы всё таки рекомендовал "нацелиться" на постепенное обновление. Если существует много активаторов связанных с предметами - переделывайте постепенно. Что-то не получается - сразу пишите сюда. Новый формат предметов значительно лучше, Вы это увидите :)

    Старый формат предмета поддерживается в ограниченном режиме. Т.е. если у Вас это 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!
    
     
  17. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MrStefanie
    @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% на старой версии? Хотя, наверное нельзя, точней вы этим заниматься не будете.Эх, жаль...
     
  18. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @MrStefanie2007
    К сожалению очень много поменял. Т.е. просто пересобрать версию с новым калькулятором не получится.

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

    abc, bcd и ecf — это глобальные переменные, доступные в обычном порядке %var:abc% %var:bcd% и %var:ecf%
    Что такое "сделать радиус" без плагина? Покажите какой получился активатор?
     
  19. MrStefanie2007

    MrStefanie2007 Активный участник Пользователь

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

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Чтобы отобразить переменную используется плейсхолдер: %var:arg3%
    http://reactions.fromgate.ru/placeholders.htm
    Там был момент, я даже кому-то рекомендовал выше. Когда производится действие VAR_SET они записывают без ".0" (По логике, всегда когда число целое оно должно выводиться без .0, но видно где-то я что-то упустил).
    По поводу сложения перепроверю. Неужели осталось целочисленное?

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

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