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

Помогите Создание кастуемых действий.

Тема в разделе "Разработка плагинов для новичков", создана пользователем DaemendLord, 28 июл 2018.

Статус темы:
Закрыта.
  1. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Я работаю с созданием скилов. Вот нужно сделать 1 скил, но он сильный, и поэтому делаю для него время каста. Как реализовать?
    Буду признателен за идеи реализации остановки игрока(вроде стана но прерываемого)
    Есть идея уменьшать атрибут скорость до нуля, накладывать эффект прыгучести но вот отмену атак... это беда. Придётся создавать листы, чекать их и т д. Как проще?
     
  2. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    Кулдаун чтоль?
     
  3. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Ты сначала написал про время, вроде время КД как я понял, котом ты пишешь про эффекты. Определись точно, что ты хочешь.
     
  4. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Кулдаун есть. Нужно время каста(как в доте блекхолы, реармы и т п)
     
  5. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    Что такое каста? xD
     
  6. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Что делать если не играл в доту? :lol:
     
  7. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    =)
     
  8. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Ты стоишь и ничего не можешь делать(двигаться атаковать) некоторое время(время каста) а потом скил срабатывает (как инициализация)
     
  9. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    BukkitRunnable который потом запустит скилл и заберёт эффекты?
     
  10. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    Код:
    public List<String> freeze = new ArrayList<String>();
    
      @EventHandler()
            public void onPlayerMove(PlayerMoveEvent e) {
                    if (plugin.freeze.contains(e.getPlayer().getName())) {
                            e.getPlayer().teleport(e.getPlayer().getLocation());
                            e.getPlayer().sendMessage(ChatColor.RED + "фризим");
     
                  else if (*скилл)) {
                            Player player = (Player) sender;
                            if (args.length == 1) {
                                    Player user = player.getServer().getPlayer(args[0]);
                                    if (user == null) {
                                            return false;
                                    }
                                    else {
                                            if (freeze.contains(user.getName())) {
                                                    freeze.remove(user.getName());
                                            }
                                            else {
                                                    freeze.add(user.getName());
                                            }
     
                                    }
                            }
                            else {
                                    return false;
                            }
     
                    }
     
  11. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    Стоп, что-то я запутался
     
  12. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Что-то похожее на переход на текст стадию в Evolution на mineplex
     
  13. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    Просто, если таймер не прошел тепай его
    e.getPlayer().teleport(e.getPlayer().getLocation());
     
  14. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Что-то вроде
     
  15. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Остановку думаю можно бахнуть большой прыгучестью (чтобы не прыгал) и скоростью/или редактированием аттрибута скорости.
    Грузить будет меньше чем PlayerMove
    PHP:
    public void activeSkill(Player player) {
        
    player.addPotionEffect(...);
        new 
    BukkitRunnable() {
            public 
    void run() {
                
    player.removePotionEffect(...);
                
    doSomethingElse();
            }
        }.
    runTaskLater(plugin,5*20);
    }
     
  16. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Но это
    а) затратно
    б) не очень красиво
     
  17. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    Окей.
    Чтобы бить не мог отменяей - EntityDamageEvent

    А чтобы двигаться хз, попробуй наложить замедление 999лвл xD
     
  18. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Повторю:
    Нужен идея а не код
    Спасибо всем кто прислал, но нужно что-то вроде
    Скорость передвижения = 0
    Не может прыгать
    Не может атаковать
     
  19. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
  20. Автор темы
    DaemendLord

    DaemendLord Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    _DaemendLord_
    Спасибо.
    Осталось только главная проблемма:
    Отмена атак. Т к через лист неудобно
     
Статус темы:
Закрыта.

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