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

Помогите Поставить вагонетку без рельс

Тема в разделе "Разработка плагинов для новичков", создана пользователем robertono, 7 авг 2013.

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

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

    Баллы:
    103
    Как и что нужно написать что бы можно было поставить вагонетку на любой блок?
     
  2. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Если не ошибаюсь, Essentials умеет такое. /mob minecart

    UPD: проверил - работает
    2013-08-08_03.44.08.png
     
    robertono нравится это.
  3. Автор темы
    robertono

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

    Баллы:
    103
    @Dereku, ну вот, значит это реально. А где я могу узнать каким кодом это сделать? Зачем? Я хочу сделать для своего Role Play сервера что то типо управления вагонеткой без рельс. Где есть примеры по спавну различных Entity объектов?
     
    Goldenix нравится это.
  4. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    https://github.com/essentials/Essen...ials/src/com/earth2me/essentials/MobData.java
     
    robertono нравится это.
  5. Автор темы
    robertono

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

    Баллы:
    103
    @Dereku, не могли бы вы принять заявку в скайпе?

    Помимо вопроса этой темы у меня ещё один вопрос. Вопрос о Bukkit API documentation.
    http://jd.bukkit.org/rb/apidocs/
    Вот она сама.
    Допустим я нашёл это :
    http://jd.bukkit.org/rb/apidocs/org/bukkit/entity/Vehicle.html#setVelocity(org.bukkit.util.Vector)
    Информация о setVelocity у Minecart.
    И как мне это использовать? В доках ничего не сказано как это использовать. Просто покажите. И мне уже будет намного понятнее как работать дальше. Я знаю vb.net , С# , javascript. Я пойму.
    Заранее благодарю.
    И ещё вопрос о scoreboard : могу ли я выводить разную информацию у разных юзеров? А не одинаковую в scoreboard у всех. Туда бы я мог вывести что то, например скорость машины. Спасибо.
    @Dereku, с Entity спавном я проблему решил, вот эта маленькая ерунда спавнит вагонетку у игрока:
    player.getWorld().spawnEntity(loc,EntityType.MINECART);
    Но вопросы которые я написал выше всё равно ещё остаются и я буду ждать ответа на них.
     
  6. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ну собственно с setVelocity всё просто. Этот метод есть у энтити, допустим minecart.
    minecart.setVelocity (new Vector (0,1,0));
    даст ускорение "в верх", вагнонетка - взлетит, подпрыгнет

    minecart.setVelocity (new Vector (1,0,0));
    даст ускорение по оси x (положительно) и т.д.
    Значение ускорения - можно задавать в виде дробных значений.

    Можно. Нужно для каждого пользователя создавать новый объект ScoreBoard.
     
  7. Автор темы
    robertono

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

    Баллы:
    103
    @fromgate, Тогда как же можно реализовать движение вагонетки вперёд ? Например игрок поставил вагонетку на шерсть, нажал W и setVelocity(new Vector(1,0,0)) ? Именно как я могу узнать что игрок нажал W т.е. просто вперёд ? Есть евент какой нибудь которым это можно отследить?
    А с сет велосити если с каким нибудь евентом то будет что то типо
    event.getVehicle().setVelocity ?
    если конечно евент связан с Vehicle. Я правильно говорю ?
    Это быстро обрабатывается? Если так будет обновлятся раз в секунду у одновременно 80 игроков. Сильно грузить каждую секунду будет? Или scoreboard шустро работает?
     
  8. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Насчёт движения вагонетки вперёд не подскажу. Хотя поскольку был плагин на машинки, то это реально. Скорее всего отлавливается PlayerMoveEvent

    По поводу скорости отправки ScoreBoard - 80 штук пересчитывать раз в секунду - вполне реально. Другое дело их отправлять. Теоретически это даст дополнительную нагрузку на канал. Попробуйте отправлять в асинхронной задаче - скорее всего будет достаточно.
     
    robertono нравится это.
  9. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    В плагине Carz отлавливается событие движения вагонетки. И это правильно, ведь с недавних пор вагонетки умеют медленно ездить по указанию игрока с помощью божьей помощи.
    А чтобы лишний раз не считать и не хранить на сервере Scoreboard, его можно отправлять пакетами
     
  10. Автор темы
    robertono

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

    Баллы:
    103
    Хорошо спасибо за помощь. Я вот написал код, который спавнит вагонетку когда кликнешь мышкой, спавнит на том блоке куда смотришь.
    Но, она спавнится даже если кликнешь и правой и левой. Мне нужно что бы было только правой. В коде написано что только правой, только всё равно работает и так и так. Как исправить ? Вот код :
    Код:
      @EventHandler
      public void onRightClick(PlayerInteractEvent e)
      {
          Location clickLoc = e.getClickedBlock().getLocation();
          clickLoc.setY(clickLoc.getY() + 2);
          Player player = e.getPlayer();
          if(e.getAction().RIGHT_CLICK_BLOCK != null)
          {
              if(player.getInventory().getItemInHand().getType() == Material.MINECART)
              {
                  player.getWorld().spawnEntity(clickLoc,EntityType.MINECART);
                  ItemStack itemStack = player.getInventory().getItemInHand();
                  player.getInventory().removeItem(itemStack);
              }
          }
      }

    Я делаю такой плагин. потому что был один плагин для 1.3.2, но потом походу сильно изменили API и больше не один плагин по управлению вагонетками не работал.
    А можно как то обращаться к машинам из мода flan's mod ? Там столько крутых машин! Было бы круто тоже их спавнить, проверять и выполнять что то когда игрок сядит в транспорт. Будет ли такое работать если сделать евент VehicleEnterEvent ? Будет очень круто если да. К сожалению у меня сейчас времени тестить это нету.
     
  11. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    В условии проверки клика написан бред. Клик не может быть нулом. Надо так e.getAction() == Action.RIGHT_CLICK_BLOCK
     
    robertono нравится это.
  12. Автор темы
    robertono

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

    Баллы:
    103
    @Den_Abr, спасибо большое, теперь умею отслеживать клики мышки. А как насчет вопроса с подключением flan's mod ?
    Мне кажется это было только в 1.3 - 1.4, а в 1.6 уже такое что то не получается. Убрали мне кажется. Поэтому и плагины отказали старые.
     
  13. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Я не знаю, кем будут машины из фланс мода, сущностью или все таки еще и Vehicle, но в любом случае это возможно
    До 1.3 можно было кататься на лодках, но потом сервер ограничил её нестандартное движение. Теперь на вагонетках только
     
    robertono нравится это.
  14. Автор темы
    robertono

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

    Баллы:
    103
    Странно , у меня вот не движется.
    А насчёт фланс мода : он же основан на паках а не самом моде. Весь контент этого мода создают сторонние люди (если не считать официальные паки). А сам мод - только движок, открывающий и управляющий модельками.
    Поставил я один пак. Sten's пак вроде. Через мой плагин узнал название. Если вагонетка то пишет MINECART. Поставил какую то машину из пака : flan's mod.Vehicle. А вот поставил самолёт : UNKNOWN.
    И flan's mod VEHICLE он пишет с разными машинами. Так что как через код заспавнить конкретную - я не знаю. Есть идеи?
     
  15. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Я с модами не работал да и эклипса рядом нет
     
    robertono нравится это.
  16. Автор темы
    robertono

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

    Баллы:
    103
    @Den_Abr, ну ладно сам буду тестить. А можно средствами буккита над вагонеткой отобразить текст ? Так можно было бы отобразить какой тип машины. Например там чья то или например Полиция.
     
  17. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Текст можно отображать только над LivingEntity. Вагонетка кажется к ним не относится
     
    robertono нравится это.
  18. Автор темы
    robertono

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

    Баллы:
    103
    @Den_Abr, А какими мне другими способами можно это сделать? Допустим едят вагонетки по городу. Мне нужно что бы игрок мог узнать что это полиция, просто игрок или скорая помощь например. В чат писать - не вариант. Но, сервер мой с модами будет, можно будет мод поставить. Но вот покупать или делать сам - не могу.
     
  19. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Можно над водителем подписывать или переписать клиент и сервер
     
    RVXman и robertono нравится это.
  20. Автор темы
    robertono

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

    Баллы:
    103
    @Den_Abr, а кстати, я вот видел на одном сервере (плагиновым, без модов, это shotbow.net ворк), и там короче когда близко подходишь к игроку под ником его пишется цифра 0. Что это ? Можно там отобразить как то?
     
Статус темы:
Закрыта.

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