Как использовать плагин ConditionalEvents. Создаем ивент

Руководство Как использовать плагин ConditionalEvents. Создаем ивент

Поддерживаемые версии
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16
  10. 1.17
  11. 1.18
  12. 1.19
  13. 1.20
  14. 1.21
Что такое ConditionalEvents? :mc_137-0:
Это плагин, который постоянно проверяет условия определенных событий и выполняет пользовательские действия!
Для того чтобы объяснить, как работает ConditionalEvents, давайте создадим один ивент вместе.

Как создать свой ивент?
ConditionalEvents делится на 3 пункта:
1. type: - добавляет тип ивента, чтобы плагин понимал, в какой сфере ему нужно работать.
2. conditions: - добавляет некую переменную, для того чтобы плагин понимал, с чем именно он будет работать, например, с мобом, командой или же временем.
3. actions: - добавляет возможность прописать команды, если все ранее указанные условия были выполнены.

Чтобы создать свой первый ивент, вам достаточно зайти в папку с настройками плагина. Для этого перейдите по этому пути: server/plugins/ConditionalEvents/events/events.yml.
В этом гайде я расскажу, как сделать ивент, который будет выдавать процент баланса игрока, которого вы убили.

1. Как я ранее сказал, ConditionalEvents ивенты строятся на типах (о всех типах вы можете узнать на wiki плагина [здесь].
В нашем случае это:
type: player_kill

2. В ConditionalEvents есть ряд переменных, которые нужно указывать, чтобы плагин понимал, с кем нужно иметь дело (о всех типах вы можете узнать на wiki плагина [здесь].
В нашем случае это должна быть жертва, которую убьет игрок.
Так как цель ивента сделать так, чтобы при убийстве из игрока выпадал его процент баланса, мы укажем жертву игрока как 'игрок' (то есть если вы захотите, чтобы выпадал процент баланса из другой сущности, например, моба или игрока с определенным ником, вы укажете название моба или ник игрока).
В нашем случае это будет выглядеть так:
conditions:
- '%victim% == PLAYER'

3. В ConditionalEvents есть ряд команд, которые будут прописываться при определенных условиях (о всех типах вы можете узнать на wiki плагина здесь).
Команды ConditionalEvents делятся на ряд тегов, от лица которых будет выполняться команда для определенной группы (о всех типах вы можете узнать на wiki плагина [здесь].
Например, если вы хотите, чтобы при убийстве игрока всем приходило сообщение, вы можете использовать тег 'to_all'.
В нашем случае мы будем использовать 2 тега: to_player и to_target.
to_player будет в роли убийцы, а to_target в роли жертвы.

Первое, что мы сделаем при убийстве игрока, это сообщение, которое будет отправляться игрокам о том, кого они убили и сколько они заработали или потеряли.
В ConditionalEvents не обязательно писать to_player, можно просто написать команду, и плагин автоматически выберет.
Для того чтобы написать сообщение обычному игроку, заглянем на wiki плагина и поищем нужное нам действие.
К нашей команде отлично подойдет действие:
message: 'сообщение, которое будет отправляться киллеру'.

В ConditionalEvents можно использовать плейсхолдеры, относящиеся к тегу, например, %target:player%, этот плейсхолдер показывает ник игрока, которого мы убили, и он отлично подходит к нашему ивенту.
И у нас уже получилось неплохое сообщение:
message: 'Вы убили игрока %target:player%'.

Теперь мы понимаем, что не хватает только вывода того, сколько баланса вы заработали с этого игрока.
Для этого используем обычный плейсхолдер %vault_eco_balance_fixed% (важно, чтобы в плейсхолдере не было запятых), и чтобы отображался не баланс киллера, а баланс жертвы, сделаем так:
message: 'Вы убили игрока %target:player% и заработали с него %target:vault_eco_balance_fixed%'.

Это сообщение дает дезинформацию, так как плейсхолдер, который мы использовали, показывает полный баланс жертвы, а нам нужен лишь процент.
Для того чтобы использовать процент баланса, обратимся к математическому расширению PlaceholderAPI "Math". (Для того что бы установить это расширение пропишите в игре 2 команды {/papi ecloud download Math + /papi reload})
Вот плейсхолдер, который у нас получился: %math_0:DOWN_{target:vault_eco_balance_fixed}*0.1% (0.1 - это процент баланса игрока, в данном случае 10%).
Сообщение теперь выглядит так:
message: 'Вы убили игрока %target:player% и заработали с него %target:math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'.

И вот у нас получилось полностью готовое сообщение, которое отображает ник игрока, которого вы убили, и количество денег, которое вы из него выбили.

Вторым этапом ивента сделаем выдачу денег киллеру.
Самые умные уже, наверное, догадались, что будут использоваться те же плейсхолдеры, что и в сообщении выше.
Опять же обращаемся к wiki и делаем вывод, что будем использовать тег команды, которая будет прописываться от лица консоли.
Это будет выглядеть так:
console_command: ваша команда.
В нашем случае эта команда будет выглядеть так:
- console_command: 'eco give %player%%target:math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'.

Такие же манипуляции делаем от лица жертвы, но только теперь с забиранием монет и противоположным сообщением:
- to_target:
- console_command: 'eco take %target:math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'.
- message: 'Вас убил игрок %player% и заработал %target:math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'.
Вот полностью скомпилированный ивент:
Код:
  player_kill:
    type: player_kill
    conditions:
    - '%victim% == PLAYER'
    actions:
      default:
      - 'message: Вы убили игрока %target:player% и получили %target:math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'
      - 'console_command: eco give %player% %target:math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'
      - 'to_target: console_command: eco take %target:player% %math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'
      - 'to_target: message: Вас убил игрок %player% и получил %target:math_0:DOWN_{target:vault_eco_balance_fixed}*0.1%'
    enabled: true
Автор
fozymine
Просмотры
221
Первый выпуск
Обновление
Оценка
5.00 звёзд 1 оценок

Другие ресурсы пользователя fozymine

Поделиться ресурсом

Последние рецензии

Спасибо , всё очень подробно , советую данного продавца
Назад
Сверху Снизу