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

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

Discussion in 'Разработка плагинов для новичков' started by Flllame, May 1, 2017.

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Code:
            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 Активный участник Пользователь

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

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

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

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    B1ruk
    Location loc = p.getLocation();
     
  10. vlad123HIOOF

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

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

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    B1ruk
    bukkit javadoc
     
  14. vlad123HIOOF

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

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

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

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

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

    Trophy Points:
    66
    Имя в Minecraft:
    Mirol_Play
    Точно не знаю ,но вот мой код :
    Code:
    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 Активный участник Пользователь

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

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

    Trophy Points:
    66
    Имя в Minecraft:
    Mirol_Play
    Code:
    name: LevelUP
    main: Ad.main.AdStan
    version: 1.0
    commands:
        lab:
    Code:
    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;
        }
    }
    Code:
    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 Активный участник Пользователь

    Trophy Points:
    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 Активный участник Пользователь

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

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

    Trophy Points:
    21
    Имя в Minecraft:
    Slavok2001
    Твой главный класс должен выглядеть как-то так:
    Code:
    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");    
       }
    }
    
     

Share This Page