You are not logged in.

  • Login

[Bukkit-Plugin] Auto bzw ArmorStand fahren

Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Kianbs

User / Kunde

  • "Kianbs" started this thread

Posts: 3

  • Send private message

1

Saturday, January 26th 2019, 2:18am

Auto bzw ArmorStand fahren

Hallo,
Ich programmiere bereits seit langem ein Auto bzw. Car Plugin.
Ich brauche für ein Auto einen ArmorStand mit einem Eisenschwert am Kopf.
Das habe ich geschafft.
Mein Problem ist, das ich nicht weiß wie ich das fahren programmiere.
Also man kann sich auf den ArmorStand setzen, aber nicht bewegen oder fahren.
Ich hoffe das man mir mit am besten Quellcodes helfen kann.
PS: Ich programmiere auf der version 1.12.2 Spigot

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class CMD_spawnauto implements CommandExecutor {

	@Override
	public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) {
		final Player p = (Player)cs;
		if(p.hasPermission("cmd.spawnauto")) {
		ArmorStand armorstand = (ArmorStand) p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
		armorstand.setVisible(false);
		armorstand.setGravity(false);
		armorstand.setMaxHealth(1);
		Random random = new Random();
		int ID = random.nextInt(999999)+100000;
		armorstand.setHelmet(ItemManager.createItem(Material.IRON_SWORD, (short) 6, "" + ID));
		MySQLData.createFahrzeug(p.getName(), "", ID);
		}
		return true;
	}
	

	
	
}

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ArmorStandManipulateListener implements Listener {
	
	
	@EventHandler
	public void onManipulate(PlayerArmorStandManipulateEvent e) {
		final Player p = e.getPlayer();
		if(e.getArmorStandItem().getType().equals(Material.IRON_SWORD) && e.getArmorStandItem().getItemMeta().getDisplayName().equalsIgnoreCase("" + MySQLData.getFahrzeugID(p.getName()))) {
			e.setCancelled(true);
			e.getRightClicked().addPassenger(p);
				
			
		}
	}

}

sam_messen

User / Kunde

  • "sam_messen" is male

Posts: 199

Location: Schweiz

Occupation: Elektroniker

  • Send private message

2

Saturday, February 2nd 2019, 6:22pm

Hallo Kianbs,

Dein Vorhaben scheint mir leider nicht umsetzbar zu sein. Um ein Enity zu fahren bzw. die Bewegung zu kontrollieren muss es laufen können, das kann ein ArmorStand nicht.
Was du machen könntest wäre ein unsichtbares Enity (würde ein Baby-Pferd empfehlen) zu spawnen auf dem der Spieler reitet und den Armorstand hinterher zu teleportieren.

LG
Sam


do(); fail(); learn(); repeat();
Developer @ Iluminary Network



crysis992

User / Kunde

Posts: 284

  • Send private message

3

Saturday, February 2nd 2019, 7:53pm

Hallo Kianbs,

Dein Vorhaben scheint mir leider nicht umsetzbar zu sein. Um ein Enity zu fahren bzw. die Bewegung zu kontrollieren muss es laufen können, das kann ein ArmorStand nicht.
Was du machen könntest wäre ein unsichtbares Enity (würde ein Baby-Pferd empfehlen) zu spawnen auf dem der Spieler reitet und den Armorstand hinterher zu teleportieren.

LG
Sam
Am einfachsten wäre es einfach ein unsichtbares Pferd zu benutzen, dem Spieler den Armorstand auf den Kopf zu setzen soalange er auf dem Pferd sitzt und das Item Model des Head slots einfach dann auf die Höhe anpassen.
Da müsste man nicht mit teleports arbeiten und es sieht flüssiger aus, da sich der Armorstand an sich nicht mehr bewegt.
Das wäre jetzt mein Ansatz für die Problemlösung.

sam_messen

User / Kunde

  • "sam_messen" is male

Posts: 199

Location: Schweiz

Occupation: Elektroniker

  • Send private message

4

Sunday, February 3rd 2019, 11:05pm

Hey crysis992,

und das Item Model des Head slots einfach dann auf die Höhe anpassen.


Kannst du bitte erklären wie das geht? Habe davon nämlich noch nie was gehört. ?(

LG
Sam


do(); fail(); learn(); repeat();
Developer @ Iluminary Network



crysis992

User / Kunde

Posts: 284

  • Send private message

5

Monday, February 4th 2019, 2:42pm

Hey crysis992,

und das Item Model des Head slots einfach dann auf die Höhe anpassen.


Kannst du bitte erklären wie das geht? Habe davon nämlich noch nie was gehört. ?(

LG
Sam
Naja, jedes Minecraft Model hat verschiedene Slot Positionen bei denen du unter anderem die Höhe anpassen kannst.

Hier mal ein Beispiel Model (In dem Fall einfach nur ein Tisch im Head Slot eines Armorstands)
Dort die Höhe auf -80 gestellt und es wird weit unter dem eigentlichen ArmorStand gerendert.

Es sollte also genug Platz sein um dem Spieler den Armorstand als Passenger zu setzen, den das Model in den Head Slot des Armorstands (oder sogar dem Spieler in den Head Slot legen) und den Spieler dann auf ein Pferd zu setzen.
Ist das Pferd + Armorstand unsichtbar, sollte nur noch das Model zu sehen sein, und da es im Head Slot liegt muss man hier auch nicht mit teleports arbeiten und das ganze sieht nach einer flüssigen bewegung aus.

Natürlich ist das ganze von mir nicht mit einem Auto Model/Pferd etc getestet worden ob es nun wirklich vom Platz her passt, aber das wäre mein Ansatz um das ganze zu lösen.


Kianbs

User / Kunde

  • "Kianbs" started this thread

Posts: 3

  • Send private message

6

Thursday, February 7th 2019, 11:15pm

Hallo,
danke für die Antworten, wie kann ich denn dem Pferd einen bestimmten Speed geben?
Mfg

sam_messen

User / Kunde

  • "sam_messen" is male

Posts: 199

Location: Schweiz

Occupation: Elektroniker

  • Send private message

7

Friday, February 15th 2019, 12:18pm

Hey @Kianbs,

Der Speed sollte sich über die Attributes anpassen lassen, etwa so:

(Ungetestet)

Java source code

1
2
		Horse h = null;
		h.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue(8.0D);


Hey @crysis992,

Aufgrund eines Krankenhausaufenthaltes konnte ich dir leider nicht auf deine Nachricht reagieren. Mir ist leider immer noch nicht klar wie das in Spigot umgesetzt werden kann.
Kannst du mir einen Anhaltspunkt dazu geben (Metohdenname)?

LG
Sam


do(); fail(); learn(); repeat();
Developer @ Iluminary Network



crysis992

User / Kunde

Posts: 284

  • Send private message

8

Friday, February 15th 2019, 11:39pm

Hey @crysis992,

Aufgrund eines Krankenhausaufenthaltes konnte ich dir leider nicht auf deine Nachricht reagieren. Mir ist leider immer noch nicht klar wie das in Spigot umgesetzt werden kann.
Kannst du mir einen Anhaltspunkt dazu geben (Metohdenname)?

LG
Sam
Na das auf meinem Screenshots sind Einstellungen für ein Item Model im Head Slot eines ArmorStands, einfach das Model exportieren und in ein ResourcePack packen.
Wenn man nun das Item mit dem angepassten Model auf den ArmorStand in den Head Slot legt, sieht man es doch.

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net