Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Статус
Закрыто для дальнейших ответов.

robertono

Старожил
Пользователь
Баллы
103
Как и что нужно написать что бы можно было поставить вагонетку на любой блок?
 
@NanoRus, её ведь можно заспавнить, как Entity. Судя по тому что у вас звание Новичок и только 18 баллов - не думаю что бы хорошо в этом разбираетесь. Я видел полно плагинов (К сожалению они были на старом API, для версий 1.1). Там можно было ставить вагонетку без рельс.
Примерно как лодку :)
Если не ошибаюсь, Essentials умеет такое. /mob minecart

UPD: проверил - работает
2013-08-08_03.44.08.png
 
@Dereku, ну вот, значит это реально. А где я могу узнать каким кодом это сделать? Зачем? Я хочу сделать для своего Role Play сервера что то типо управления вагонеткой без рельс. Где есть примеры по спавну различных Entity объектов?
 
@Dereku, ну вот, значит это реально. А где я могу узнать каким кодом это сделать? Зачем? Я хочу сделать для своего Role Play сервера что то типо управления вагонеткой без рельс. Где есть примеры по спавну различных Entity объектов?
https://github.com/essentials/Essen...ials/src/com/earth2me/essentials/MobData.java
 
@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);
Но вопросы которые я написал выше всё равно ещё остаются и я буду ждать ответа на них.
 
http://jd.bukkit.org/rb/apidocs/org/bukkit/entity/Vehicle.html#setVelocity(org.bukkit.util.Vector)
Информация о setVelocity у Minecart.
И как мне это использовать? В доках ничего не сказано как это использовать. Просто покажите. И мне уже будет намного понятнее как работать дальше. Я знаю vb.net , С# , javascript.

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

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

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

Это быстро обрабатывается? Если так будет обновлятся раз в секунду у одновременно 80 игроков. Сильно грузить каждую секунду будет? Или scoreboard шустро работает?
 
Насчёт движения вагонетки вперёд не подскажу. Хотя поскольку был плагин на машинки, то это реально. Скорее всего отлавливается PlayerMoveEvent

По поводу скорости отправки ScoreBoard - 80 штук пересчитывать раз в секунду - вполне реально. Другое дело их отправлять. Теоретически это даст дополнительную нагрузку на канал. Попробуйте отправлять в асинхронной задаче - скорее всего будет достаточно.
 
Насчёт движения вагонетки вперёд не подскажу. Хотя поскольку был плагин на машинки, то это реально. Скорее всего отлавливается PlayerMoveEvent

По поводу скорости отправки ScoreBoard - 80 штук пересчитывать раз в секунду - вполне реально. Другое дело их отправлять. Теоретически это даст дополнительную нагрузку на канал. Попробуйте отправлять в асинхронной задаче - скорее всего будет достаточно.
В плагине Carz отлавливается событие движения вагонетки. И это правильно, ведь с недавних пор вагонетки умеют медленно ездить по указанию игрока с помощью божьей помощи.
А чтобы лишний раз не считать и не хранить на сервере Scoreboard, его можно отправлять пакетами
 
Хорошо спасибо за помощь. Я вот написал код, который спавнит вагонетку когда кликнешь мышкой, спавнит на том блоке куда смотришь.
Но, она спавнится даже если кликнешь и правой и левой. Мне нужно что бы было только правой. В коде написано что только правой, только всё равно работает и так и так. Как исправить ? Вот код :
Код:
  @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);
          }
      }
  }

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

Я делаю такой плагин. потому что был один плагин для 1.3.2, но потом походу сильно изменили API и больше не один плагин по управлению вагонетками не работал.
А можно как то обращаться к машинам из мода flan's mod ? Там столько крутых машин! Было бы круто тоже их спавнить, проверять и выполнять что то когда игрок сядит в транспорт. Будет ли такое работать если сделать евент VehicleEnterEvent ? Будет очень круто если да. К сожалению у меня сейчас времени тестить это нету.
 
В условии проверки клика написан бред. Клик не может быть нулом. Надо так e.getAction() == Action.RIGHT_CLICK_BLOCK
 
@Den_Abr, спасибо большое, теперь умею отслеживать клики мышки. А как насчет вопроса с подключением flan's mod ?
В плагине Carz отлавливается событие движения вагонетки. И это правильно, ведь с недавних пор вагонетки умеют медленно ездить по указанию игрока с помощью божьей помощи.

Мне кажется это было только в 1.3 - 1.4, а в 1.6 уже такое что то не получается. Убрали мне кажется. Поэтому и плагины отказали старые.
 
@Den_Abr, спасибо большое, теперь умею отслеживать клики мышки. А как насчет вопроса с подключением flan's mod?
Я не знаю, кем будут машины из фланс мода, сущностью или все таки еще и Vehicle, но в любом случае это возможно
Мне кажется это было только в 1.3 - 1.4, а в 1.6 уже такое что то не получается. Убрали мне кажется. Поэтому и плагины отказали старые.
До 1.3 можно было кататься на лодках, но потом сервер ограничил её нестандартное движение. Теперь на вагонетках только
 
До 1.3 можно было кататься на лодках, но потом сервер ограничил её нестандартное движение. Теперь на вагонетках только

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

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

Назад
Верх