Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Вращение компаса

Тема в разделе "Разработка плагинов для новичков", создана пользователем Flllame, 1 май 2017.

  1. Автор темы
    Flllame

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

    Баллы:
    68
    Skype:
    alexsey0001
    if (p.getInventory().getItemInMainHand().equals(tracker)) { //если компас в руке
    Player target = tracks.get(p);
    p.setCompassTarget(target.getLocation()); //то он указывает на игрока
    } else { //если нет то
    p.setCompassTarget( будет быстро вращаться по часовой стрелке с одинаковой скоростью );
    }

    есть ли способ сделать такую функцию ?
     
  2. Хостинг MineCraft
    <
  3. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    BukkitRunnable + немного геометрии(или тригонометрии)
     
  4. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Код:
            Location loc = p.getLocation();
            int radius = 6;
            for(double y = 0; y <= 50; y+=0.05) {
                double x = radius * Math.cos(y);
                double z = radius * Math.sin(y);
                Location l = new Location(player.getWorld(), (float) (loc.getX() + x), (float) (loc.getY() + y), (float) (loc.getZ() + z));
                player.setCompassTarget(l);
            }
     
  5. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Так этож всё мгновенно произойдёт. Или нет?
     
  6. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    new BukkitRunnable() || Thread.sleep
     
  7. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    А. Ну всё правильно. Это на его совести уже.
     
  8. vlad123HIOOF

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

    Баллы:
    66
    Имя в Minecraft:
    Mirol_Play
    А как можно указать конкретные координаты ?
     
  9. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Location loc = p.getLocation();
     
  10. vlad123HIOOF

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

    Баллы:
    66
    Имя в Minecraft:
    Mirol_Play
    Тогда мы получим координаты игрока ,а мне нужно вставить например x123 y3424 z1234234
     
  11. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Учи Bukkit API тогда. С такой тупостью я ничем помочь не могу.
    И да, ты - некропостер.
     
  12. vlad123HIOOF

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

    Баллы:
    66
    Имя в Minecraft:
    Mirol_Play
    Я думал эффективнее написать свой вопрос в закреплённый пост .И простите, но не могли бы вы кинуть мне хороший письменный курс по Bukkit API ?
     
  13. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    bukkit javadoc
     
  14. vlad123HIOOF

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

    Баллы:
    66
    Имя в Minecraft:
    Mirol_Play
    Вы мне очень сильно помогли .Я пропускал этот сайт в гугле из-за отсутствия иконки :)
     
  15. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    new Location(Bukkit.getWorld("World"), х, у, з); ??
     
  16. vlad123HIOOF

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

    Баллы:
    66
    Имя в Minecraft:
    Mirol_Play
    Точно не знаю ,но вот мой код :
    Код:
    package Ad.main;
    
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    
    public class CommandTarget implements CommandExecutor {
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                Player p = (Player) sender;
                if(sender instanceof Player)
                {
                    if(cmd.getName().equalsIgnoreCase("lab"))
                    {
                       
                        Location loc = p.getLocation();
                        loc.setZ(-20);
                        loc.setX(472);
                        p.setCompassTarget(loc);
                       
                    }
         }
         return true;
        }
    
    }
    При этом пишет что команды /lab нету
     
  17. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Зато я знаю, замени p.getLocation() на new Location(Bukkit.getWorld("World"), х, у, з) и убери лок сеты[DOUBLEPOST=1497806027,1497805989][/DOUBLEPOST]И покажи мне главный класс и onEnable, а ещё и плагин юмл можешь.
     
  18. vlad123HIOOF

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

    Баллы:
    66
    Имя в Minecraft:
    Mirol_Play
    Код:
    name: LevelUP
    main: Ad.main.AdStan
    version: 1.0
    commands:
        lab:
    Код:
    package Ad.main;
    
    
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class AdStan extends JavaPlugin {
        public void onEnable()
        {
            getLogger().info("Плагин On");
            getServer().getPluginManager().registerEvents(new jink(),this);
        }
        public void onDisable()
        {
            getLogger().info("Плагин Off");       
        }
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args)
        {
            Player p = (Player) sender;
            if(sender instanceof Player)
            {
                if(cmd.getName().equalsIgnoreCase("lab"))
                {
                   
                    Location loc = p.getLocation();
                    loc.setZ(-20);
                    loc.setX(472);
                    p.setCompassTarget(loc);
                   
                }
            }
            return true;
        }
    }
    Код:
    package Ad.main;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    
    public class CommandTarget implements CommandExecutor {
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
                Player p = (Player) sender;
                if(sender instanceof Player)
                {
                    if(cmd.getName().equalsIgnoreCase("lab"))
                    {
                       
                        Location loc = new Location(Bukkit.getWorld("World"), 472, 60, -20);
                        p.setCompassTarget(loc);
                       
                    }
         }
         return true;
        }
    
    }
     
  19. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    1. @Override
    2. public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args)
    3. {
    4. Player p = (Player) sender;
    5. if(sender instanceof Player)
    6. {
    7. if(cmd.getName().equalsIgnoreCase("lab"))
    8. {
    9. Location loc = p.getLocation();
    10. loc.setZ(-20);
    11. loc.setX(472);
    12. p.setCompassTarget(loc);
    13. }
    14. }
    15. return true;
    16. }
      Это удали
    17. в главном классе
    18. и зарегай команду в onEnable
     
  20. vlad123HIOOF

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

    Баллы:
    66
    Имя в Minecraft:
    Mirol_Play
    19 и 20 можете подсказать как ?
     
  21. Slavkaa

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

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Твой главный класс должен выглядеть как-то так:
    Код:
    package Ad.main;
    import org.bukkit.Location;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class AdStan extends JavaPlugin {
        public void onEnable()
       {
            getLogger().info("Плагин On");
            getServer().getPluginManager().registerEvents(new jink(),
            getCommand("lab").setExecutor(new CommandTarget(this);
       }
        public void onDisable()
       {
            getLogger().info("Плагин Off");    
       }
    }
    
     

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