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

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

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

  1. FedorNogopletov

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

    Баллы:
    173
    Проблема в том, что это 1.8, там используется @e. А так механизм даже чересчур прост
     
  2. Acca

    Acca Новичок

    Баллы:
    18
    Имя в Minecraft:
    Acca
    Доброго времени суток. Заметил, что действием invitemrmv не убрать дверь с инвентаря игрока =) Ставлю на кнопку, но ничего не происходит. У меня одного так?
     
  3. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Acca, дверь? Покажите код. Дело в том, что есть итем дверь и блок - дверь. У них соответственно разные id.
     
    Acca нравится это.
  4. Acca

    Acca Новичок

    Баллы:
    18
    Имя в Minecraft:
    Acca
    Простите мою наивную оплошность. Не знал. =)
     
  5. Sasha2dx

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

    Баллы:
    88
    Имя в Minecraft:
    Sasha2dx
    Есть вопрос, флаг - VAR_COMPARE=tp1/0 ведь должен возвращать true, если tp1 = 0 ? Если да, то почему может не возвращать?:confused: Переменная точно существует и точно равна 0, других флагов нету...
     
    Последнее редактирование: 18 янв 2014
  6. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Sasha2dx, потестирую сегодня. Вроде нормально работало, но на переменные большой статистики ещё нет :)
     
    Sasha2dx нравится это.
  7. The_Luuzzi

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

    Баллы:
    103
    Это шедевр,с ним можно воплотить все мечты в реальность,только вот я чуть криворук,но это поправимо,автору лайк :)
     
    FedorNogopletov нравится это.
  8. FedorNogopletov

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

    Баллы:
    173
    Был бы счастлив если описание переменных вошло в главный пост :)
     
  9. snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    Не работает EXECUTE

    при попытке выполнить команду пишет: Не удалось выполнить активатор (параметры activator:Game)

    Создавал actions с ним же:

    Код:
        actions:
        - EXECUTE=activator:Game
    и для пробы реактионс:

    Код:
        reactions:
        - EXECUTE=activator:Game
    вообще не реагирует =(
    еще вопрос, что бы создать распределение по командам (половина игроков в одной, половина в другой)
    нужно использовать флаг CHANCE 50? action и реактион
    У меня актион случается чаще реактиона, это норма?
     
  10. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Я тоже ;) Постараюсь добраться до этого в ближайшее время.

    Раз пишет - значит пытается выполнить, но не получается.
    Что делает активатор Game?
    Можно его код привести полностью?
    Потом нужно указать по отношению к кому выполняется.
    Например:
    world:Nether
    или
    player:fromgate
    или
    player:all
    или
    player:null


    ... Ну так действие-то отработалось ;) Пусть и выдало ошибку.

    Если chance 50 выдает чаще true чем false - это ни о чем не говорит. Чистый random. В какой-то момент может быть наоборот. А сделаете пару тысяч проверок получите примерно 50/50
    Чтобы делить поровну можно попытаться использовать переменные.
    К примеру - добавил игроку - установил переменную.
    Добавляешь следующего - проверяешь, если переменная есть то: 1. игрок - во вторую команду, 2. переменная удаляется.
    Так по очереди все добавятся равнозначно.

    Можно конечно смешать CHANCE и переменные для подсчета и добиться нужного количества. Но я не берусь сейчас рисовать соответствующие активаторы, но то что можно - это 100% :)
     
    FedorNogopletov нравится это.
  11. Sasha2dx

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

    Баллы:
    88
    Имя в Minecraft:
    Sasha2dx
    Прояснилось что то насчёт флага VAR_COMPARE? У меня он совсем не работает. :oops:
     
  12. ValeraSTK

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

    Баллы:
    78
    Появилось предложение по улучшению незаслуженно забытого активатора COMMAND.

    1) Научить его понимать подкоманды, и при необходимости заставлять работать только с конкретной командой.
    Пример: сейчас если задать активатор для команды /help, то он активатор будет срабатывать и на /help 2 и /help 3. А что если нужно только для основной команды? или наоборот, только для /help 3?

    2) научить активатор блочить изначальную команду, подменяя ее собой (надеюсь тут понятно=)
     
  13. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Sasha2dx, еще не добрался (
    ValeraSTK, сейчас как раз бьюсь с этим активатором.

    п.2 у меня в планах уже давно. Причем в более обширном представлении. Поскольку почти все активаторы обрабатывают те или иные события, а эти события можно отменить, то логично было бы сделать действие позволяющее их отменять. Это потребает немного изменить логику обработки активаторов, но результат будет такой, что это оправдано. Можно будет не только блокировать выполнение команд, а скажем открывание дверей, сундуков и, в перспективе, получение урона при определенных условиях.

    По поводу п.1, в том виде в котором он есть сейчас это немного сложно, но вообще я хотел сделать подержку аргументов (в виде плейсхолдеров arg1, arg2 и т.д.) тогда, подумаю как это можно будет реализовать.
    Кстати, сейчас можно сделать отдельно активаторы на команды "/help 1", "/help 2" и "/help 3". Работать будут. Но вот если задать ещё и просто "/help" - то он будет срабатывать совместно с каждым. Т.е. будет отрабатывать по /help 1 два активатора и "/help" и "/help 1"
     
    Sasha2dx нравится это.
  14. snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    а нельзя к каждому экшону добавлять delay?

    Например:

    - message=&cНачало игры через 30 секунд delay=10s
    - message=&cНачало игры через 20 секунд delay=5s
    - message=&cНачало игры через 15 секунд delay=5s
    - message=&cНачало игры через 10 секунд delay=5s
    и так далее

    или же спавним моба, и через X-время убираем и т.д.
    хотелось бы увидеть пример работы с переменными VAR_PLAYER
     
  15. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    snake302, пока нет. Но я подумаю как это лучше реализовать.
    Изначально планировалось сделать действие DELAY=<время>
    с тем, чтобы можно было использовать конструкции:
    - message=&cНачало игры через 30 секунд
    - pause=10s
    - message=&cНачало игры через 20 секунд
    - pause=10s
    - message=&cНачало игры через 10 секунд
    - pause=5s
    - message=&cНачало игры через 10 секунд
    - pause=2s
    - message=&c3
    - pause=1s
    - message=&c2
    - pause=1s
    - message=&c1
    - pause=1s
    - message=&6Поехали!!!
    Но пока я до этого не добрался (чтобы такое реализовать нужно переделать движок выполнения активаторов). Пока это всё заменяется наличием в действии EXEC параметра delay.
     
  16. snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    Еще вопросик, как можно реализовать - несколько жизней, игрок умер раз - заспавнился, два - заспавнился, три - все.
    В конце можно делай поставить, с реактионом - телепортом, но как сами жизни, что-то не представляю
     
  17. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    snake302, это вот переменные, о которых Вы спрашивали, можно с на их основе попробовать. Но я всё ни как не доберусь их проверить и небольшое описание написать.
     
  18. Sasha2dx

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

    Баллы:
    88
    Имя в Minecraft:
    Sasha2dx
    Ну это просто, я так понимаю ты сооружаешь что то типа арены с жизнями, когда игрок попадает на аену любым из способов - создаёшь для него персональную переменную, и после каждой смерти увеличиваешь или уменьшаешь её на единицу, так же запуская после смерти активатор проверяющий (флагом) какое у него там уже число, и срабатывающий, если уже наступил нужный момент. Ну собстно и всё.
     
    snake302 нравится это.
  19. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    v0.6.1/1 (девбилд)
    https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

    - Добавлено действие CANCEL_EVENT (параметр - true). Отменяет "родительское" событие из CraftBukkit. Т.е. к примеру, есть событие нажатия на кнопку, котороая допустим подает сигнал на редстоун. Кнопку может нажать каждый, но вы хотите ограничить по времени. Ставим delay и на реакцию - CANCEL_EVENT=true. Т.е. фактически можно использовать для создания привата на определенных условиях: платный вход в дверь и т.п.
    Пока моно отменять: нажатие на кнопку, рычаг, открывание любого типа дверей и команду.
    - Теперь активатор COMMAND привязанный к несуществующей команде не выдает после выполнения сообещние о том, что команда не существует.
     
  20. ValeraSTK

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

    Баллы:
    78
    побочный эффект - если активатор создан для уже существующей команды, то он будет отменять ее в 100% случаев, даже без действия cancel_event
     

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