Wie kann man in Java/Bukkit Entities an Ort und Stelle fixieren?
Ich bin gerade ein kleines Plugin für meinen Mc-Server am schreiben. Ich habe das Problem, dass ich nicht weiß, wie man Entities an einer Stelle fixiert. Die Entities (Zombies) sollten sich am besten nicht bewegen können. Danke schonmal für Antworten! :)
5 Antworten
Ah okay danke für die schnelle Antwort, wäre es möglich, das in ein Plugin einzubinden? :)
du musst den beim spawnen mit nem befehlsblock am besten gleich ne slowness von glaube -10000 geben und diese muss endlos anhalten... (am besten noch die partikel ausblenden)
oder wenn die schon stehen, kannste nen werfbaren trank mit diesen eigenschaften dir über nen befehlsblock geben und dann auf das entity haun
im minecraft wiki stehen die entsprechenden befehle und formalen dinge dazu...
Kommt auf deine Minecraft Version an (mit Command Blocks):
ich hab das ganze nicht getestet, aber du kannst es ja versuchen:
/execute @e[type=Cow]
effect 2 7 9999999999
führt für alle entities vom typ Kuh den effekt 2(Slowness) stärke 7(Laut minecraft die höhe, bei dem sich spieler nichtmehr bewegen können) und für 9999999999 Sekunden :D hoffe das reicht
Also ich halt mich hier ans Minecraft-Wiki, da ich eigentlich nur "alte" Versionen (dank Modding) spiele.
Hier Steht folgendes:
Mit einer UUID kann man beliebige Elemente kennzeichnen, Spieler sind dabei nur eine von zahllosen Möglichkeiten. In Minecraft haben z.B. sämtliche Objekte (d.h. alle Kreaturen, Fahrzeuge, Geschosse, Drops etc.) eine UUID. Sie ist im Entity Format in zwei Hälften geteilt, die in den TAGs "UUIDLeast" und "UUIDMost" gespeichert werden. "UUIDMost" gibt die ersten drei Gruppen an, "UUIDLeast" die letzten zwei. Will man einen Wert für "UUIDLeast" oder "UUIDMost" setzen, muss man ein L anhängen. Außerdem ist zu beachten, dass die angegebene Zahl für diese TAGs dezimal notiert ist. Auch die Attribut-Modifikatoren haben in Minecraft eine UUID.
Existieren in Minecraft Objekte mit derselben UUID, kann es zu Fehlern kommen. Unter anderem können dann Fehlermeldungen wie "Dieses Objekt kann nicht gefunden werden" auftreten. Man kann dieses Problem nur lösen, indem man diese Objekte per Hand tötet oder nach dem Töten eines dieser Objekte mit dem Befehl
/kill
die Welt neu öffnet.
dh. kurz versuchs mit "/kill" bevor du den Befehl nochmal eingibst
Schade, ich dachte so gehts :( aber jetzt hat mich das Thema neugierig gemacht :D dh. ich werd mal rumprobieren und sehen obs auch ohne Plugin läuft.
Zu testzwecken, welche Version benutzt du ?
ich benutze die 1.8 :D -vielen dank für deine Hilfe !!!
Hab eine Lösung gefunden :D und die ist weit einfacher wie ich es mir vorgestellt habe
/effect @e[type=Cow] 2 99999999999999 7 true
kannst ja mit nem command block alle 10 sekunden aufrufen, sodass auch Kühe/Zombies die nachträglich spawnen stehen bleiben
Hier nochmal die Lösung "ohne Plugin" als Antwort:
/effect @e[type=Cow] 2 99999999999999 7 true
im Command Block eingeben und alle 10 Sekunden ausführen, sodass auch nachträglich spawnende Mobs den effekt bekommen (das "true" entfernt übrigens auch noch die Partikel)
Im Programmier weg wird es wahrscheinlich durch Attribute gesetzt z.B.
{
AttributeModifiers:[
{
AttributeName:"generic.movementSpeed",
Name:"generic.movementSpeed",
Amount:0,
UUIDLeast:894654,
UUIDMost:2872
}
]
}
du kannst es dir aber auch einfach machen und auf den uhrsprünglichen Befehl zuweisen, bevor du die Attribute aller Entities veränderst
in der 1.8. kannst du Mobs die AI entfernen, der Vorteil gegenüber dem Slowness-Effekt ist, dass sich der Mob gar nicht bewegt, d.h. auch nicht den Kopf und auch kein Rückstoß, Geräusche macht er auch keine. Google einfach mal "minecraft noAI Tag"
Also du kannst das ganze per effect machen einfacher funktioniert aber schlechter da sich da glaube ich der Kopf noch dreht oder du schaust mal nach einem guten nms entity tutorial. Du kannst da das mit nms sehr schwer ist auch noch zu dem trank den Mob einfach alle 5 Ticks teleportieren.
btw geht das auch ohne bukkit in vanilla minecraft