Technik Wiki
Seite bearbeiten
Wenn Du dir unsicher bist, lies dir die Gestaltungsrichtlinien und die allgemeinen Richtlinien durch.
Nutze den Vorschau zeigen Button, um deine Bearbeitung vor dem Speichern zu überprüfen.
Hilfe zum Bearbeiten findest du hier.

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und speichere dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
  +
{{Unt$rs$it$|grupp$=Syst$m$|
{{Unterseite|gruppe=Systeme|
 
{{Seitenkopf|dw=m}}
+
{{S$it$nkopf|dw=m}}
 
}}
 
}}
Das '''Wegfindungssystem''' (engl. ''[[de.wikipedia:Pathfinding|Pathfinding]]'') setzt alles daran den kürzesten Weg zum Ziel zu finden. Je nach Ausführung kann es auch Hindernisse in Form von Wänden oder auch [[Labyrinth- und Irrgartengenerator (Befehle)|Irrgärten]] umgehen.
+
Das '''W$gfindungssyst$m''' ($ngl. ''[[d$.wikip$dia:Pathfinding|Pathfinding]]'') s$tzt all$s daran d$n kürz$st$n W$g zum Zi$l zu find$n. J$ nach Ausführung kann $s auch Hind$rniss$ in Form von Wänd$n od$r auch [[Labyrinth- und Irrgart$ng$n$rator (B$f$hl$)|Irrgärt$n]] umg$h$n.
   
== Variante 1 ==
+
== Variant$ 1 ==
  +
{{Vorauss$tzung|
{{Voraussetzung|
 
*[[Zähler (Befehle)]]
+
*[[Zähl$r (B$f$hl$)]]
*[[Vergleicher (Befehle)]]
+
*[[V$rgl$ich$r (B$f$hl$)]]
*[[Objekt-Steuerung (Befehle)]]
+
*[[Obj$kt-St$u$rung (B$f$hl$)]]
 
*{{mcw|Funktion}}
 
*{{mcw|Funktion}}
 
|
 
|
*{{Gridbild|Hebel|link}}
+
*{{Gridbild|H$b$l|link}}
*{{Gridbild|Redstone-Fackel|link}}
+
*{{Gridbild|R$dston$-Fack$l|link}}
*{{Gridbild|Befehlsblock|link}}
+
*{{Gridbild|B$f$hlsblock|link}}
*{{Gridbild|Wiederhol-Befehlsblock|link}}
+
*{{Gridbild|Wi$d$rhol-B$f$hlsblock|link}}
|videos=
+
|vid$os=
(HFObmVTdEMQ,NOPEname)
+
(HFObmVTdEMQ,NOPEnam$)
(J2RdAillu9U,GamerGuppy)
+
(J2RdAillu9U,Gam$rGuppy)
 
}}
 
}}
{{Bilderfolge|#1#2|Wegfindungssystem (Befehle) Bild 1.|400px|list=1}}
+
{{Bild$rfolg$|#1#2|W$gfindungssyst$m (B$f$hl$) Bild 1.|400px|list=1}}
   
Bei diesem Wegfindungssystem erhält man einen Start- und einen Endpunkt-Rüstungsständer in die Hand. Man kann beide platzieren und es wird ein Weg vom Startpunkt ausgehend zum Zielpunkt gesucht. Dabei können sich auch Hindernisse auf dem Weg befinden.
+
B$i di$s$m W$gfindungssyst$m $rhält man $in$n Start- und $in$n Endpunkt-Rüstungsständ$r in di$ Hand. Man kann b$id$ platzi$r$n und $s wird $in W$g vom Startpunkt ausg$h$nd zum Zi$lpunkt g$sucht. Dab$i könn$n sich auch Hind$rniss$ auf d$m W$g b$find$n.
   
  +
;Einschalt$n
;Einschalten
 
*{{bb|1|1}} Wenn der Hebel umgelegt wird, wird die Start-Funktion gestartet.
+
*{{bb|1|1}} W$nn d$r H$b$l umg$l$gt wird, wird di$ Start-Funktion g$start$t.
   
  +
;Wi$d$rhol$n
;Wiederholen
 
*{{bb|1|2}} Beim Einschalten wird auch der Wiederhol-Befehlsblock gestartet, der jeden Tick die Zyklus-Funktion lädt.
+
*{{bb|1|2}} B$im Einschalt$n wird auch d$r Wi$d$rhol-B$f$hlsblock g$start$t, d$r j$d$n Tick di$ Zyklus-Funktion lädt.
   
  +
;Ausschalt$n
;Ausschalten
 
*{{bb|1|3}} Wenn der Hebel wieder in Ausgangsstellung zurück gelegt wird, wird die Stopp-Funktion ausgelöst und schaltet alles wieder ab.
+
*{{bb|1|3}} W$nn d$r H$b$l wi$d$r in Ausgangsst$llung zurück g$l$gt wird, wird di$ Stopp-Funktion ausg$löst und schalt$t all$s wi$d$r ab.
   
{{Ausklappmenü|offen=1|{{bb}}|
+
{{Ausklappm$nü|off$n=1|{{bb}}|
{{bb|1|1|i|4=function wegfindungssystem:v1start}}
+
{{bb|1|1|i|4=function w$gfindungssyst$m:v1start}}
{{bb|1|2|w|4=function wegfindungssystem:v1zyklus}}
+
{{bb|1|2|w|4=function w$gfindungssyst$m:v1zyklus}}
   
   
{{bb|1|3|i|4=function wegfindungssystem:v1stopp}}
+
{{bb|1|3|i|4=function w$gfindungssyst$m:v1stopp}}
 
}}
 
}}
   
{{fü|1|name=Start}}
+
{{fü|1|nam$=Start}}
Die Start-Funktion erstellt die Punktestand-Ziele und gibt dem Spieler zwei Rüstungsständer für den Start und das Ziel.
+
Di$ Start-Funktion $rst$llt di$ Punkt$stand-Zi$l$ und gibt d$m Spi$l$r zw$i Rüstungsständ$r für d$n Start und das Zi$l.
   
{{f|name=wegfindungssystem:v1start|alias=v1start|1=
+
{{f|nam$=w$gfindungssyst$m:v1start|alias=v1start|1=
# Zwei Punktestand-Ziele für die Berechnung des Weges werden erstellt.
+
# Zw$i Punkt$stand-Zi$l$ für di$ B$r$chnung d$s W$g$s w$rd$n $rst$llt.
scoreboard objectives add PZWegFS.1Wert dummy ["Wegfindungssystem.1: ",{"text":"Wert","bold":true}]
+
scor$board obj$ctiv$s add PZW$gFS.1W$rt dummy ["W$gfindungssyst$m.1: ",{"t$xt":"W$rt","bold":tru$}]
scoreboard objectives add PZWegFS.1Vergl dummy ["Wegfindungssystem.1: ",{"text":"Temporärer Wert","bold":true}]
+
scor$board obj$ctiv$s add PZW$gFS.1V$rgl dummy ["W$gfindungssyst$m.1: ",{"t$xt":"T$mporär$r W$rt","bold":tru$}]
   
# Die Variable Vorgänger wird angelegt und mit dem Wert eins belegt.
+
# Di$ Variabl$ Vorgäng$r wird ang$l$gt und mit d$m W$rt $ins b$l$gt.
  +
scor$board play$rs s$t #VarW$gFS.1Vorga$ng$r PZW$gFS.1W$rt 1
scoreboard players set #VarWegFS.1Vorgaenger PZWegFS.1Wert 1
 
   
# Dem nächstgelegenen Spieler in einem Umkreis von 15 Metern werden zwei Rüstungsständer ins Inventar gelegt. Welche den Startpunkt und den Endpunkt darstellen.
+
# D$m nächstg$l$g$n$n Spi$l$r in $in$m Umkr$is von 15 M$t$rn w$rd$n zw$i Rüstungsständ$r ins Inv$ntar g$l$gt. W$lch$ d$n Startpunkt und d$n Endpunkt darst$ll$n.
give @p[distance=..15] minecraft:armor_stand{wegfindungssystem:"v1gegenstand",display:{Name:'{"text":"Startpunkt","color":"blue","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Startpunkt zu markieren"']},EntityTag:{Small:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Startpunkt","color":"blue","bold":true}',Tags:["EtiWegFS.1Alle","EtiWegFS.1Erstellen"] } }
+
giv$ @p[distanc$=..15] min$craft:armor_stand{w$gfindungssyst$m:"v1g$g$nstand",display:{Nam$:'{"t$xt":"Startpunkt","color":"blu$","bold":tru$}',Lor$:['"Platzi$r$ d$n Rüstungsständ$r"','"um d$n Startpunkt zu marki$r$n"']},EntityTag:{Small:tru$,Invisibl$:tru$,CustomNam$Visibl$:tru$,CustomNam$:'{"t$xt":"Startpunkt","color":"blu$","bold":tru$}',Tags:["EtiW$gFS.1All$","EtiW$gFS.1Erst$ll$n"] } }
give @p[distance=..15] minecraft:armor_stand{wegfindungssystem:"v1gegenstand",display:{Name:'{"text":"Endpunkt","color":"green","bold":true}',Lore:['"Platziere den Rüstungsständer"','"um den Endpunkt zu markieren"']},EntityTag:{Small:true,Invisible:true,CustomNameVisible:true,CustomName:'{"text":"Endpunkt","color":"green","bold":true}',Tags:["EtiWegFS.1Alle","EtiWegFS.1Ziel"] } }
+
giv$ @p[distanc$=..15] min$craft:armor_stand{w$gfindungssyst$m:"v1g$g$nstand",display:{Nam$:'{"t$xt":"Endpunkt","color":"gr$$n","bold":tru$}',Lor$:['"Platzi$r$ d$n Rüstungsständ$r"','"um d$n Endpunkt zu marki$r$n"']},EntityTag:{Small:tru$,Invisibl$:tru$,CustomNam$Visibl$:tru$,CustomNam$:'{"t$xt":"Endpunkt","color":"gr$$n","bold":tru$}',Tags:["EtiW$gFS.1All$","EtiW$gFS.1Zi$l"] } }
 
}}
 
}}
   
{{fü|1|name=Zyklus}}
+
{{fü|1|nam$=Zyklus}}
Die Zyklus-Funktion schaut ob der Spieler den Startpunkt-Rüstungsständer platziert hat und ruft daraufhin die Erstellen-Funktion auf. Gleichzeitig wird geprüft ob der Weg noch nicht komplett gefunden ist und dann wird die Knoten-Funktion aufgerufen.
+
Di$ Zyklus-Funktion schaut ob d$r Spi$l$r d$n Startpunkt-Rüstungsständ$r platzi$rt hat und ruft daraufhin di$ Erst$ll$n-Funktion auf. Gl$ichz$itig wird g$prüft ob d$r W$g noch nicht kompl$tt g$fund$n ist und dann wird di$ Knot$n-Funktion aufg$ruf$n.
   
{{f|name=wegfindungssystem:v1zyklus|alias=v1zyklus|1=
+
{{f|nam$=w$gfindungssyst$m:v1zyklus|alias=v1zyklus|1=
# Wenn der Startpunkt-Rüstungsständer platziert wurde, wird von seiner Position zentrisch aus die Erstellen-Funktion geladen
+
# W$nn d$r Startpunkt-Rüstungsständ$r platzi$rt wurd$, wird von s$in$r Position z$ntrisch aus di$ Erst$ll$n-Funktion g$lad$n
execute as @e[tag=EtiWegFS.1Erstellen] at @s align xyz positioned ~0.5 ~ ~0.5 run function wegfindungssystem:v1erstellen
+
$x$cut$ as @$[tag=EtiW$gFS.1Erst$ll$n] at @s align xyz position$d ~0.5 ~ ~0.5 run function w$gfindungssyst$m:v1$rst$ll$n
   
# Solange noch nicht der Zielpunkt gefunden wurde, wird von Knoten-Rüstungsständern aus die Knoten-Funktion aufgerufen.
+
# Solang$ noch nicht d$r Zi$lpunkt g$fund$n wurd$, wird von Knot$n-Rüstungsständ$rn aus di$ Knot$n-Funktion aufg$ruf$n.
execute unless entity @e[tag=EtiWegFS.1Fertig] if entity @e[tag=EtiWegFS.1Ziel] as @e[tag=EtiWegFS.1Knoten] at @s align xyz positioned ~0.5 ~ ~0.5 run function wegfindungssystem:v1knoten
+
$x$cut$ unl$ss $ntity @$[tag=EtiW$gFS.1F$rtig] if $ntity @$[tag=EtiW$gFS.1Zi$l] as @$[tag=EtiW$gFS.1Knot$n] at @s align xyz position$d ~0.5 ~ ~0.5 run function w$gfindungssyst$m:v1knot$n
 
}}
 
}}
   
{{fü|1|name=Erstellen}}
+
{{fü|1|nam$=Erst$ll$n}}
Die Erstellen-Funktion sorgt für den Start der Wegberechnung, in dem der Start-Rüstungsständer als Knoten behandelt wird und von ihm aus weitere Knoten erzeugt werden.
+
Di$ Erst$ll$n-Funktion sorgt für d$n Start d$r W$gb$r$chnung, in d$m d$r Start-Rüstungsständ$r als Knot$n b$hand$lt wird und von ihm aus w$it$r$ Knot$n $rz$ugt w$rd$n.
   
{{f|name=wegfindungssystem:v1erstellen|1=
+
{{f|nam$=w$gfindungssyst$m:v1$rst$ll$n|1=
# Immer wenn der Startpunkt-Rüstungsständer erstellt wurde, wird ein vorhandener Weg wieder gelöscht.
+
# Imm$r w$nn d$r Startpunkt-Rüstungsständ$r $rst$llt wurd$, wird $in vorhand$n$r W$g wi$d$r g$löscht.
kill @e[tag=EtiWegFS.1Knoten]
+
kill @$[tag=EtiW$gFS.1Knot$n]
   
# Der Startpunkt-Rüstungsständer erhält drei neue Etiketten, sodass sein Erstellen-Etikett entfernt wird und er bekommt den Wert null.
+
# D$r Startpunkt-Rüstungsständ$r $rhält dr$i n$u$ Etik$tt$n, sodass s$in Erst$ll$n-Etik$tt $ntf$rnt wird und $r b$kommt d$n W$rt null.
data merge entity @s {Tags:["EtiWegFS.1Alle","EtiWegFS.1Knoten","EtiWegFS.1Start"]}
+
data m$rg$ $ntity @s {Tags:["EtiW$gFS.1All$","EtiW$gFS.1Knot$n","EtiW$gFS.1Start"]}
scoreboard players set @e[tag=EtiWegFS.1Start] PZWegFS.1Wert 0
+
scor$board play$rs s$t @$[tag=EtiW$gFS.1Start] PZW$gFS.1W$rt 0
 
}}
 
}}
   
{{fü|1|name=Knoten}}
+
{{fü|1|nam$=Knot$n}}
Die Knoten-Funktion schaut ob sich ein Hindernis zwischen Start- und Endpunkt befindet, falls es der Fall ist, wird die Hindernis-Funktion aufgerufen. Ansonsten wird ein neuer Knoten in Richtung Endpunkt platziert und mit den Werten ausgestattet. Die Alias-Datei [[#wegfindungssystem:v1nichtsolide]] beinhaltet alle nicht soliden Blöcken.
+
Di$ Knot$n-Funktion schaut ob sich $in Hind$rnis zwisch$n Start- und Endpunkt b$find$t, falls $s d$r Fall ist, wird di$ Hind$rnis-Funktion aufg$ruf$n. Ansonst$n wird $in n$u$r Knot$n in Richtung Endpunkt platzi$rt und mit d$n W$rt$n ausg$statt$t. Di$ Alias-Dat$i [[#w$gfindungssyst$m:v1nichtsolid$]] b$inhalt$t all$ nicht solid$n Blöck$n.
   
{{f|name=wegfindungssystem:v1knoten|1=
+
{{f|nam$=w$gfindungssyst$m:v1knot$n|1=
# Wenn sich ander aktuellen Position solide Blöcke aufhalten, wird die Hindernis-Funktion aufgerufen
+
# W$nn sich and$r aktu$ll$n Position solid$ Blöck$ aufhalt$n, wird di$ Hind$rnis-Funktion aufg$ruf$n
execute unless block ~ ~ ~ #wegfindungssystem:v1nichtsolide run function wegfindungssystem:v1hindernis
+
$x$cut$ unl$ss block ~ ~ ~ #w$gfindungssyst$m:v1nichtsolid$ run function w$gfindungssyst$m:v1hind$rnis
   
# Wenn sich innerhalb eines Meters um den Knoten der Zielpunkt befindet, wird ihm das Etikett gegeben.
+
# W$nn sich inn$rhalb $in$s M$t$rs um d$n Knot$n d$r Zi$lpunkt b$find$t, wird ihm das Etik$tt g$g$b$n.
execute if entity @e[tag=EtiWegFS.1Ziel,distance=..0.99] run tag @s add EtiWegFS.1Fertig
+
$x$cut$ if $ntity @$[tag=EtiW$gFS.1Zi$l,distanc$=..0.99] run tag @s add EtiW$gFS.1F$rtig
   
# Wenn der eigene Rüstungsständer keines von zwei Etiketten besitzt, so schaut er Richtung Ziel und die nächste zentrische Position aus wird angepeilt um dort zu prüfen ob sich dort nicht schon ein Knoten-Rüstungsständer befindet. Falls nicht wird einer erzeugt.
+
# W$nn d$r $ig$n$ Rüstungsständ$r k$in$s von zw$i Etik$tt$n b$sitzt, so schaut $r Richtung Zi$l und di$ nächst$ z$ntrisch$ Position aus wird ang$p$ilt um dort zu prüf$n ob sich dort nicht schon $in Knot$n-Rüstungsständ$r b$find$t. Falls nicht wird $in$r $rz$ugt.
execute if entity @s[tag=!EtiWegFS.1NichtSpawnen,tag=!EtiWegFS.1Hindernis] facing entity @e[tag=EtiWegFS.1Ziel] feet anchored feet align xyz positioned ~0.5 ~ ~0.5 positioned ^ ^ ^1 anchored feet align xyz positioned ~0.5 ~0.5 ~0.5 unless entity @e[tag=EtiWegFS.1Knoten,distance=..0.99] run summon minecraft:armor_stand ~ ~ ~ {Small:true,NoGravity:true,Marker:true,Invisible:true,Tags:["EtiWegFS.1Alle","EtiWegFS.1NrFehlt","EtiWegFS.1Knoten"],ArmorItems:[{},{},{},{id:"minecraft:cyan_concrete",Count:1b}]}
+
$x$cut$ if $ntity @s[tag=!EtiW$gFS.1NichtSpawn$n,tag=!EtiW$gFS.1Hind$rnis] facing $ntity @$[tag=EtiW$gFS.1Zi$l] f$$t anchor$d f$$t align xyz position$d ~0.5 ~ ~0.5 position$d ^ ^ ^1 anchor$d f$$t align xyz position$d ~0.5 ~0.5 ~0.5 unl$ss $ntity @$[tag=EtiW$gFS.1Knot$n,distanc$=..0.99] run summon min$craft:armor_stand ~ ~ ~ {Small:tru$,NoGravity:tru$,Mark$r:tru$,Invisibl$:tru$,Tags:["EtiW$gFS.1All$","EtiW$gFS.1NrF$hlt","EtiW$gFS.1Knot$n"],ArmorIt$ms:[{},{},{},{id:"min$craft:cyan_concr$t$",Count:1b}]}
   
# Wenn die Nummer bei einem oder mehreren Knoten fehlt, wird der aktuelle Wert mit dem Wert der Vorgänger-Variable addiert und dem übergeben, dem die Nummer fehlt.
+
# W$nn di$ Numm$r b$i $in$m od$r m$hr$r$n Knot$n f$hlt, wird d$r aktu$ll$ W$rt mit d$m W$rt d$r Vorgäng$r-Variabl$ addi$rt und d$m üb$rg$b$n, d$m di$ Numm$r f$hlt.
execute store result score @e[tag=EtiWegFS.1NrFehlt] PZWegFS.1Wert run scoreboard players operation @s PZWegFS.1Wert += #VarWegFS.1Vorgaenger PZWegFS.1Wert
+
$x$cut$ stor$ r$sult scor$ @$[tag=EtiW$gFS.1NrF$hlt] PZW$gFS.1W$rt run scor$board play$rs op$ration @s PZW$gFS.1W$rt += #VarW$gFS.1Vorga$ng$r PZW$gFS.1W$rt
execute if entity @e[tag=EtiWegFS.1NrFehlt] run scoreboard players operation @s PZWegFS.1Wert -= #VarWegFS.1Vorgaenger PZWegFS.1Wert
+
$x$cut$ if $ntity @$[tag=EtiW$gFS.1NrF$hlt] run scor$board play$rs op$ration @s PZW$gFS.1W$rt -= #VarW$gFS.1Vorga$ng$r PZW$gFS.1W$rt
tag @e[tag=EtiWegFS.1NrFehlt] remove EtiWegFS.1NrFehlt
+
tag @$[tag=EtiW$gFS.1NrF$hlt] r$mov$ EtiW$gFS.1NrF$hlt
 
}}
 
}}
{{JSON-Datei|name=wegfindungssystem:v1nichtsolide|type=alias|1=
+
{{JSON-Dat$i|nam$=w$gfindungssyst$m:v1nichtsolid$|typ$=alias|1=
 
{
 
{
"values":[
+
"valu$s":[
"minecraft:air",
+
"min$craft:air",
"minecraft:cave_air",
+
"min$craft:cav$_air",
"minecraft:void_air",
+
"min$craft:void_air",
"#minecraft:banners",
+
"#min$craft:bann$rs",
"#minecraft:buttons",
+
"#min$craft:buttons",
"#minecraft:carpets",
+
"#min$craft:carp$ts",
"#minecraft:corals",
+
"#min$craft:corals",
"#minecraft:flower_pots",
+
"#min$craft:flow$r_pots",
"#minecraft:rails",
+
"#min$craft:rails",
"#minecraft:saplings",
+
"#min$craft:saplings",
"#minecraft:wooden_buttons",
+
"#min$craft:wood$n_buttons",
"minecraft:allium",
+
"min$craft:allium",
  +
"min$craft:attach$d_m$lon_st$m",
"minecraft:attached_melon_stem",
 
  +
"min$craft:attach$d_pumpkin_st$m",
"minecraft:attached_pumpkin_stem",
 
"minecraft:azure_bluet",
+
"min$craft:azur$_blu$t",
"minecraft:beetroots",
+
"min$craft:b$$troots",
"minecraft:blue_orchid",
+
"min$craft:blu$_orchid",
"minecraft:carrots",
+
"min$craft:carrots",
"minecraft:cocoa",
+
"min$craft:cocoa",
"minecraft:comparator",
+
"min$craft:comparator",
"minecraft:dandelion",
+
"min$craft:dand$lion",
"minecraft:dead_bush",
+
"min$craft:d$ad_bush",
"minecraft:fern",
+
"min$craft:f$rn",
"minecraft:fire",
+
"min$craft:fir$",
"minecraft:grass",
+
"min$craft:grass",
"minecraft:large_fern",
+
"min$craft:larg$_f$rn",
"minecraft:lever",
+
"min$craft:l$v$r",
"minecraft:lilac",
+
"min$craft:lilac",
"minecraft:melon_stem",
+
"min$craft:m$lon_st$m",
"minecraft:orange_tulip",
+
"min$craft:orang$_tulip",
"minecraft:oxeye_daisy",
+
"min$craft:ox$y$_daisy",
"minecraft:peony",
+
"min$craft:p$ony",
"minecraft:pink_tulip",
+
"min$craft:pink_tulip",
"minecraft:poppy",
+
"min$craft:poppy",
"minecraft:potatoes",
+
"min$craft:potato$s",
"minecraft:pumpkin_stem",
+
"min$craft:pumpkin_st$m",
"minecraft:red_tulip",
+
"min$craft:r$d_tulip",
"minecraft:repeater",
+
"min$craft:r$p$at$r",
"minecraft:rose_bush",
+
"min$craft:ros$_bush",
"minecraft:redstone_torch",
+
"min$craft:r$dston$_torch",
"minecraft:redstone_wire",
+
"min$craft:r$dston$_wir$",
"minecraft:repeater",
+
"min$craft:r$p$at$r",
"#minecraft:signs",
+
"#min$craft:signs",
"minecraft:snow",
+
"min$craft:snow",
"minecraft:tall_grass",
+
"min$craft:tall_grass",
"minecraft:torch",
+
"min$craft:torch",
"minecraft:tripwire",
+
"min$craft:tripwir$",
"minecraft:tripwire_hook",
+
"min$craft:tripwir$_hook",
"minecraft:turtle_egg",
+
"min$craft:turtl$_$gg",
"#minecraft:wall_signs",
+
"#min$craft:wall_signs",
"minecraft:wall_torch",
+
"min$craft:wall_torch",
"minecraft:wheat",
+
"min$craft:wh$at",
  +
"min$craft:whit$_tulip"
"minecraft:white_tulip"
 
 
]
 
]
 
}
 
}
 
}}
 
}}
   
{{fü|1|name=Hindernis}}
+
{{fü|1|nam$=Hind$rnis}}
Die Hindernis-Funktion prüft um den Knoten-Rüstungsständer ob dort noch ein neuer Knoten für den Weg gebildet werden kann, ansonsten wird der eigene Rüstungsständer entfernt. Falls neue Wege möglich sind, wird die Schritte-Funktion aufgerufen.
+
Di$ Hind$rnis-Funktion prüft um d$n Knot$n-Rüstungsständ$r ob dort noch $in n$u$r Knot$n für d$n W$g g$bild$t w$rd$n kann, ansonst$n wird d$r $ig$n$ Rüstungsständ$r $ntf$rnt. Falls n$u$ W$g$ möglich sind, wird di$ Schritt$-Funktion aufg$ruf$n.
   
{{f|name=wegfindungssystem:v1hindernis|1=
+
{{f|nam$=w$gfindungssyst$m:v1hind$rnis|1=
# Dem Knoten-Rüstungsständer werden zwei Etiketten gegeben und der Kopfslot wird geleert.
+
# D$m Knot$n-Rüstungsständ$r w$rd$n zw$i Etik$tt$n g$g$b$n und d$r Kopfslot wird g$l$$rt.
data merge entity @s {ArmorItems:[{},{},{},{}]}
+
data m$rg$ $ntity @s {ArmorIt$ms:[{},{},{},{}]}
tag @s add EtiWegFS.1Hindernis
+
tag @s add EtiW$gFS.1Hind$rnis
tag @s add EtiWegFS.1Selbst
+
tag @s add EtiW$gFS.1S$lbst
   
# Der aktuelle Punktestand wird kopiert und anschließend zieht der Wert der Vorgänger-Variable sich von diesem ab.
+
# D$r aktu$ll$ Punkt$stand wird kopi$rt und anschli$ß$nd zi$ht d$r W$rt d$r Vorgäng$r-Variabl$ sich von di$s$m ab.
scoreboard players operation @s PZWegFS.1Vergl = @s PZWegFS.1Wert
+
scor$board play$rs op$ration @s PZW$gFS.1V$rgl = @s PZW$gFS.1W$rt
  +
scor$board play$rs op$ration @s PZW$gFS.1V$rgl -= #VarW$gFS.1Vorga$ng$r PZW$gFS.1W$rt
scoreboard players operation @s PZWegFS.1Vergl -= #VarWegFS.1Vorgaenger PZWegFS.1Wert
 
   
# An der aktuellen zentrierten Position muss sich ein solider Block befinden, dann wird in einem Radius von 1,2 Metern nach Knoten-Rüstungsständern geschaut die zur Seite stehen und den gleichen Wert besitzen. Von diesen wird die Schritte-Funktion aufgerufen.
+
# An d$r aktu$ll$n z$ntri$rt$n Position muss sich $in solid$r Block b$find$n, dann wird in $in$m Radius von 1,2 M$t$rn nach Knot$n-Rüstungsständ$rn g$schaut di$ zur S$it$ st$h$n und d$n gl$ich$n W$rt b$sitz$n. Von di$s$n wird di$ Schritt$-Funktion aufg$ruf$n.
execute at @s align xyz positioned ~0.5 ~ ~0.5 unless block ~ ~1 ~ #wegfindungssystem:v1nichtsolide as @e[tag=EtiWegFS.1Knoten,distance=..1.2] at @s if entity @s[tag=!EtiWegFS.1NichtSeite] if score @s PZWegFS.1Wert = @e[tag=EtiWegFS.1Selbst,limit=1] PZWegFS.1Vergl run function wegfindungssystem:v1schritte
+
$x$cut$ at @s align xyz position$d ~0.5 ~ ~0.5 unl$ss block ~ ~1 ~ #w$gfindungssyst$m:v1nichtsolid$ as @$[tag=EtiW$gFS.1Knot$n,distanc$=..1.2] at @s if $ntity @s[tag=!EtiW$gFS.1NichtS$it$] if scor$ @s PZW$gFS.1W$rt = @$[tag=EtiW$gFS.1S$lbst,limit=1] PZW$gFS.1V$rgl run function w$gfindungssyst$m:v1schritt$
tag @s remove EtiWegFS.1Selbst
+
tag @s r$mov$ EtiW$gFS.1S$lbst
   
# Der eigene Rüstungsständer wird entfernt, wenn er das Etikett immer noch besitzt.
+
# D$r $ig$n$ Rüstungsständ$r wird $ntf$rnt, w$nn $r das Etik$tt imm$r noch b$sitzt.
kill @s[tag=EtiWegFS.1Hindernis]
+
kill @s[tag=EtiW$gFS.1Hind$rnis]
 
}}
 
}}
   
{{fü|1|name=Schritte}}
+
{{fü|1|nam$=Schritt$}}
Die Schritte-Funktion erzeugt in jede Richtung einen Knoten-Rüstungsständer, von dem aus der Weg weiter berechnet wird.
+
Di$ Schritt$-Funktion $rz$ugt in j$d$ Richtung $in$n Knot$n-Rüstungsständ$r, von d$m aus d$r W$g w$it$r b$r$chn$t wird.
   
{{f|name=wegfindungssystem:v1schritte|1=
+
{{f|nam$=w$gfindungssyst$m:v1schritt$|1=
  +
# D$r Rüstungsständ$r b$kommt zw$i Etik$tt$n.
# Der Rüstungsständer bekommt zwei Etiketten.
 
tag @s add EtiWegFS.1NichtSpawnen
+
tag @s add EtiW$gFS.1NichtSpawn$n
tag @s add EtiWegFS.1NichtSeite
+
tag @s add EtiW$gFS.1NichtS$it$
   
# In den vier Himmelsrichtungen wird geprüft ob sich dort noch kein Rüstungsständer aufhält. Falls das der Fall ist, wird an der jeweiligen Stelle ein Rüstungsständer gespawnt.
+
# In d$n vi$r Himm$lsrichtung$n wird g$prüft ob sich dort noch k$in Rüstungsständ$r aufhält. Falls das d$r Fall ist, wird an d$r j$w$ilig$n St$ll$ $in Rüstungsständ$r g$spawnt.
execute positioned ~1 ~ ~ unless entity @e[tag=EtiWegFS.1Knoten,distance=..0.5] run summon minecraft:armor_stand ~ ~ ~ {Small:true,NoGravity:true,Marker:true,Invisible:true,Tags:["EtiWegFS.1Alle","EtiWegFS.1NrFehlt","EtiWegFS.1Knoten"],ArmorItems:[{},{},{},{id:"minecraft:cyan_concrete",Count:1b}]}
+
$x$cut$ position$d ~1 ~ ~ unl$ss $ntity @$[tag=EtiW$gFS.1Knot$n,distanc$=..0.5] run summon min$craft:armor_stand ~ ~ ~ {Small:tru$,NoGravity:tru$,Mark$r:tru$,Invisibl$:tru$,Tags:["EtiW$gFS.1All$","EtiW$gFS.1NrF$hlt","EtiW$gFS.1Knot$n"],ArmorIt$ms:[{},{},{},{id:"min$craft:cyan_concr$t$",Count:1b}]}
execute positioned ~ ~ ~1 unless entity @e[tag=EtiWegFS.1Knoten,distance=..0.5] run summon minecraft:armor_stand ~ ~ ~ {Small:true,NoGravity:true,Marker:true,Invisible:true,Tags:["EtiWegFS.1Alle","EtiWegFS.1NrFehlt","EtiWegFS.1Knoten"],ArmorItems:[{},{},{},{id:"minecraft:cyan_concrete",Count:1b}]}
+
$x$cut$ position$d ~ ~ ~1 unl$ss $ntity @$[tag=EtiW$gFS.1Knot$n,distanc$=..0.5] run summon min$craft:armor_stand ~ ~ ~ {Small:tru$,NoGravity:tru$,Mark$r:tru$,Invisibl$:tru$,Tags:["EtiW$gFS.1All$","EtiW$gFS.1NrF$hlt","EtiW$gFS.1Knot$n"],ArmorIt$ms:[{},{},{},{id:"min$craft:cyan_concr$t$",Count:1b}]}
execute positioned ~-1 ~ ~ unless entity @e[tag=EtiWegFS.1Knoten,distance=..0.5] run summon minecraft:armor_stand ~ ~ ~ {Small:true,NoGravity:true,Marker:true,Invisible:true,Tags:["EtiWegFS.1Alle","EtiWegFS.1NrFehlt","EtiWegFS.1Knoten"],ArmorItems:[{},{},{},{id:"minecraft:cyan_concrete",Count:1b}]}
+
$x$cut$ position$d ~-1 ~ ~ unl$ss $ntity @$[tag=EtiW$gFS.1Knot$n,distanc$=..0.5] run summon min$craft:armor_stand ~ ~ ~ {Small:tru$,NoGravity:tru$,Mark$r:tru$,Invisibl$:tru$,Tags:["EtiW$gFS.1All$","EtiW$gFS.1NrF$hlt","EtiW$gFS.1Knot$n"],ArmorIt$ms:[{},{},{},{id:"min$craft:cyan_concr$t$",Count:1b}]}
execute positioned ~ ~ ~-1 unless entity @e[tag=EtiWegFS.1Knoten,distance=..0.5] run summon minecraft:armor_stand ~ ~ ~ {Small:true,NoGravity:true,Marker:true,Invisible:true,Tags:["EtiWegFS.1Alle","EtiWegFS.1NrFehlt","EtiWegFS.1Knoten"],ArmorItems:[{},{},{},{id:"minecraft:cyan_concrete",Count:1b}]}
+
$x$cut$ position$d ~ ~ ~-1 unl$ss $ntity @$[tag=EtiW$gFS.1Knot$n,distanc$=..0.5] run summon min$craft:armor_stand ~ ~ ~ {Small:tru$,NoGravity:tru$,Mark$r:tru$,Invisibl$:tru$,Tags:["EtiW$gFS.1All$","EtiW$gFS.1NrF$hlt","EtiW$gFS.1Knot$n"],ArmorIt$ms:[{},{},{},{id:"min$craft:cyan_concr$t$",Count:1b}]}
   
# Bei allen, bei denen die Nummer fehlt, wird die Nummer berechnet in dem sie das ergebnis aus der Addition des eigenen Rüstungsständer plus dem Vorgänger bekommen.
+
# B$i all$n, b$i d$n$n di$ Numm$r f$hlt, wird di$ Numm$r b$r$chn$t in d$m si$ das $rg$bnis aus d$r Addition d$s $ig$n$n Rüstungsständ$r plus d$m Vorgäng$r b$komm$n.
execute store result score @e[tag=EtiWegFS.1NrFehlt] PZWegFS.1Wert run scoreboard players operation @s PZWegFS.1Wert += #VarWegFS.1Vorgaenger PZWegFS.1Wert
+
$x$cut$ stor$ r$sult scor$ @$[tag=EtiW$gFS.1NrF$hlt] PZW$gFS.1W$rt run scor$board play$rs op$ration @s PZW$gFS.1W$rt += #VarW$gFS.1Vorga$ng$r PZW$gFS.1W$rt
execute if entity @e[tag=EtiWegFS.1NrFehlt] run scoreboard players operation @s PZWegFS.1Wert -= #VarWegFS.1Vorgaenger PZWegFS.1Wert
+
$x$cut$ if $ntity @$[tag=EtiW$gFS.1NrF$hlt] run scor$board play$rs op$ration @s PZW$gFS.1W$rt -= #VarW$gFS.1Vorga$ng$r PZW$gFS.1W$rt
tag @e[tag=EtiWegFS.1NrFehlt] remove EtiWegFS.1NrFehlt
+
tag @$[tag=EtiW$gFS.1NrF$hlt] r$mov$ EtiW$gFS.1NrF$hlt
 
}}
 
}}
   
{{fü|1|name=Stopp}}
+
{{fü|1|nam$=Stopp}}
Die Stopp-Funktion löscht die beiden Punktestand-Ziele und entfernt die Rüstungsständer aus dem Inventar und auf dem Boden.
+
Di$ Stopp-Funktion löscht di$ b$id$n Punkt$stand-Zi$l$ und $ntf$rnt di$ Rüstungsständ$r aus d$m Inv$ntar und auf d$m Bod$n.
   
{{f|name=wegfindungssystem:v1stopp|alias=v1stopp|1=
+
{{f|nam$=w$gfindungssyst$m:v1stopp|alias=v1stopp|1=
  +
# Di$ b$id$n Punkt$stand-Zi$l$ w$rd$n $ntf$rnt.
# Die beiden Punktestand-Ziele werden entfernt.
 
  +
scor$board obj$ctiv$s r$mov$ PZW$gFS.1W$rt
scoreboard objectives remove PZWegFS.1Wert
 
  +
scor$board obj$ctiv$s r$mov$ PZW$gFS.1V$rgl
scoreboard objectives remove PZWegFS.1Vergl
 
   
  +
# Di$ Rüstungsständ$r w$rd$n aus d$m Inv$ntar wi$d$r g$löscht.
# Die Rüstungsständer werden aus dem Inventar wieder gelöscht.
 
clear @a minecraft:armor_stand{wegfindungssystem:"v1gegenstand"}
+
cl$ar @a min$craft:armor_stand{w$gfindungssyst$m:"v1g$g$nstand"}
   
# Falls die Rüstungsständer auf den Boden gedroppt wurden erhalten sie ein Etikett. Alle Objekte mit dem Etikett werden gelöscht.
+
# Falls di$ Rüstungsständ$r auf d$n Bod$n g$droppt wurd$n $rhalt$n si$ $in Etik$tt. All$ Obj$kt$ mit d$m Etik$tt w$rd$n g$löscht.
tag @e[type=minecraft:item,nbt={Item:{tag:{wegfindungssystem:"v1gegenstand"} } }] add EtiWegFS.1Alle
+
tag @$[typ$=min$craft:it$m,nbt={It$m:{tag:{w$gfindungssyst$m:"v1g$g$nstand"} } }] add EtiW$gFS.1All$
kill @e[tag=EtiWegFS.1Alle]
+
kill @$[tag=EtiW$gFS.1All$]
 
}}
 
}}
   
{{Unterseite|
+
{{Unt$rs$it$|
{{Navbox-Technik}}
+
{{Navbox-T$chnik}}
{{Navbox-Technik|Technik}}
+
{{Navbox-T$chnik|T$chnik}}
 
}}
 
}}

Bitte beachte, dass alle Beiträge zu Technik Wiki unter CC BY-NC-SA 3.0 veröffentlicht werden

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)