Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Hungerpunkte-System (Befehle)

Aus Technik Wiki
(Weitergeleitet von Hungerpunkt-System (Befehle))
Wechseln zu: Navigation, Suche
Gruppe: Grid Ketten-Befehlsblock.png
Systeme

Grid Roter Sand blass.png mit Mechaniken

Grid Redstone blass.png mit Redstone
                Hier:
Grid Befehlsblock.png mit Befehlen

Die vorgestellte Technik kann in der Mechanik-Welt angesehen werden.

Ein Hungerpunkte-System kann auf verschiedene Weise realisiert werden. Man kann das zu einseitige Essen von Nahrungsmittel mit Hungereffekten bestrafen oder neue Möglichkeiten einführen um Hungerpunkte aufzufüllen. Ebenfalls ist es auch möglich Getränken einen weiteren Nutzen zu verleihen, sodass Spieler auch auf ihre Flüssigkeitswerte achten müssen. Mit dem Befehl /gamerule naturalRegeneration lässt sich außerdem die natürliche Regeneration ausschalten.

Inhaltsverzeichnis

Variante 1[Bearbeiten | Quelltext bearbeiten]

Roter Sand.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Mechanik-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Hungerpunkte-System (Befehle) Bild 1.1.png

Dieses Hungerpunkte-System gibt Spielern die sich ständig nur einseitig ernähren einen starken Hungereffekt und Lähmung. Spieler müssen auf ihre Nahrungsvielfalt achten und müssen schauen was sie zu sich nehmen.

Einschalten

Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus

Wiederholen

Mit dem Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus

Ausschalten

Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert


Befehlsblöcke mit Befehlen:


Variante 1: Start-Funktion
Die Start-Funktion erstellt mehrere Punktestand-Ziele, welche für das prüfen der Essensmenge nötig sind. Der Spieler wird in den Überlebensmodus gesetzt, falls er nicht bereits in diesem Modus war. Er bekommt auch einen starken Hungereffekt, damit er gleich einen guten Appetit besitzt, für die Lebensmittel die er ins Inventar gelegt bekommt. Auch wird eine kleine Anleitung im Chat ausgegeben, damit man weiss was zu tun ist.

Editor Icon.png hungerpunkte-system:v1start.mcfunction
# Punktestand-Ziele werden erstellt
scoreboard objectives add PZHungS.1GlEss dummy ["Hungerpunkte-System.1: ",{"text":"Gleiches Essen","bold":true}]

scoreboard objectives add PZHungS.1Apfel minecraft.used:minecraft.apple ["Hungerpunkte-System.1: ",{"text":"Apfel essen","bold":true}]
scoreboard objectives add PZHungS.1GeSchfl minecraft.used:minecraft.cooked_porkchop ["Hungerpunkte-System.1 :",{"text":"Gebratenes Schweinefleisch essen","bold":true}]
scoreboard objectives add PZHungS.1Brot minecraft.used:minecraft.bread ["Hungerpunkte-System.1: ",{"text":"Brot essen","bold":true}]
scoreboard objectives add PZHungS.1GeKabj minecraft.used:minecraft.cooked_cod ["Hungerpunkte-System.1: ",{"text":"Gebratener Kabeljau essen","bold":true}]

# Der Spieler wird in den Überlebensmodus gesetzt
gamemode survival @a[distance=..15,gamemode=!survival]

# Der Spieler bekommt den Hunger-Effekt, damit er die Nahrung sofort essen kann
effect give @a[distance=..15] minecraft:hunger 6 255 true

# Dem Spieler werden verschiedene Nahrungsmittel gegeben, die er essen kann
give @a[distance=..15] minecraft:apple{hungerpunkte-system:"v1gegenstand",display:{Lore:['"Iss mich"']} } 64
give @a[distance=..15] minecraft:cooked_porkchop{hungerpunkte-system:"v1gegenstand",display:{Lore:['"Iss mich"']} } 64
give @a[distance=..15] minecraft:bread{hungerpunkte-system:"v1gegenstand",display:{Lore:['"Iss mich"']} } 64
give @a[distance=..15] minecraft:cooked_cod{hungerpunkte-system:"v1gegenstand",display:{Lore:['"Iss mich"']} } 64

# Eine Nachricht mit Anleitung für den Spieler
tellraw @a[distance=..15] ["Hungerpunkte-System.1: ",{"text":"Iss verschiedene Nahrungsmittel, damit dein Nahrungshaushalt abwechselungsreich bleibt, isst du dagegen immer nur das gleiche, so schadest du dir nach einiger Zeit selbst.","bold":true}]

Variante 1: Zyklus-Funktion
Die Zyklus-Funktion testet jeden Tick welche Nahrungsmittel man zu sich genommen hat. Wenn man nur ein Nahrungsmittel ständig ist, wird der Wert für das einseitige Essen von Nahrung immer weiter ansteigen. Hat man dies geschafft, erhält man einen sehr starken Hungereffekt und man kann kaum laufen.

Editor Icon.png hungerpunkte-system:v1zyklus.mcfunction
# Falls der Spieler eine andere bestimmte Nahrung als das letzte Mal isst, erhält er ein Etikett dafür
tag @a[scores={PZHungS.1Brot=1}] add EtiHungS.1AnderesEssen
tag @a[scores={PZHungS.1Apfel=1}] add EtiHungS.1AnderesEssen
tag @a[scores={PZHungS.1GeSchfl=1}] add EtiHungS.1AnderesEssen
tag @a[scores={PZHungS.1GeKabj=1}] add EtiHungS.1AnderesEssen

# Falls der eine andere Nahrung zu sich genommen hat, wird ihm sein Punktestand für einseitiges Essen um fünf Punkte reduziert
scoreboard players remove @a[tag=EtiHungS.1AnderesEssen,scores={PZHungS.1GlEss=6..}] PZHungS.1GlEss 5

# Falls der Spieler abwechselungsreiche Nahrung zu sich nimmt, werden die Punktestände der jeweils anderen Nahrungssorten zurückgesetzt
scoreboard players set @a[tag=EtiHungS.1AnderesEssen,scores={PZHungS.1Apfel=2..}] PZHungS.1Apfel 0
scoreboard players set @a[tag=EtiHungS.1AnderesEssen,scores={PZHungS.1Brot=2..}] PZHungS.1Brot 0
scoreboard players set @a[tag=EtiHungS.1AnderesEssen,scores={PZHungS.1GeSchfl=2..}] PZHungS.1GeSchfl 0
scoreboard players set @a[tag=EtiHungS.1AnderesEssen,scores={PZHungS.1GeKabj=2..}] PZHungS.1GeKabj 0

# Die Etiketten für das Essen von anderer Nahrung oder für einseitige Ernährung werden entfernt
tag @a[tag=EtiHungS.1AnderesEssen] remove EtiHungS.1AnderesEssen
tag @a[tag=EtiHungS.1EinseitigesEssen,scores={PZHungS.1GlEss=..3}] remove EtiHungS.1EinseitigesEssen

# Wenn der Spieler eine bestimmte Nahrung das erste mal zu sich nimmt, wird der Punktestand für das gleiche zu Essen um eins erhöht andernfalls wird es jedesmal um zwei erhöht
scoreboard players add @a[scores={PZHungS.1Apfel=1}] PZHungS.1GlEss 1
scoreboard players set @a[scores={PZHungS.1Apfel=1}] PZHungS.1Apfel 2
scoreboard players add @a[scores={PZHungS.1Apfel=3..}] PZHungS.1GlEss 2
scoreboard players set @a[scores={PZHungS.1Apfel=3..}] PZHungS.1Apfel 2

scoreboard players add @a[scores={PZHungS.1Brot=1}] PZHungS.1GlEss 1
scoreboard players set @a[scores={PZHungS.1Brot=1}] PZHungS.1Brot 2
scoreboard players add @a[scores={PZHungS.1Brot=3..}] PZHungS.1GlEss 2
scoreboard players set @a[scores={PZHungS.1Brot=3..}] PZHungS.1Brot 2

scoreboard players add @a[scores={PZHungS.1GeSchfl=1}] PZHungS.1GlEss 1
scoreboard players set @a[scores={PZHungS.1GeSchfl=1}] PZHungS.1GeSchfl 2
scoreboard players add @a[scores={PZHungS.1GeSchfl=3..}] PZHungS.1GlEss 2
scoreboard players set @a[scores={PZHungS.1GeSchfl=3..}] PZHungS.1GeSchfl 2

scoreboard players add @a[scores={PZHungS.1GeKabj=1}] PZHungS.1GlEss 1
scoreboard players set @a[scores={PZHungS.1GeKabj=1}] PZHungS.1GeKabj 2
scoreboard players add @a[scores={PZHungS.1GeKabj=3..}] PZHungS.1GlEss 2
scoreboard players set @a[scores={PZHungS.1GeKabj=3..}] PZHungS.1GeKabj 2

# Wenn der Spieler bereits mehrmals das gleiche gegessen hat, erhält er eine Warnung, dass er anfängt zu einseitig zu essen
title @a[tag=!EtiHungS.1EinseitigesEssen,scores={PZHungS.1GlEss=10..12}] actionbar ["",{"text":"Du fängst an zu einseitig zu Essen!","color":"dark_red","bold":true}]
tag @a[tag=!EtiHungS.1EinseitigesEssen,scores={PZHungS.1GlEss=10..12}] add EtiHungS.1EinseitigesEssen

# Wenn der Spieler die maximale Anzahl einer gleichen Nahrung zu sich genommen hat, erhält er wieder eine Warnung, diesmal aber einen Hungereffekt und der Wert bleibt stehen
title @a[scores={PZHungS.1GlEss=27..}] actionbar ["",{"text":"Du isst zu einseitig!","color":"dark_purple","bold":true}]
effect give @a[scores={PZHungS.1GlEss=27..}] minecraft:hunger 5 255 true
scoreboard players remove @a[scores={PZHungS.1GlEss=27..}] PZHungS.1GlEss 1

Variante 1: Stopp-Funktion
Die Stopp-Funktion löscht die Punktestand-Ziele wieder und setzt den Spieler wieder in den Kreativmodus. Er wird von allen Statuseffekten befreit und alle Nahrungsmittel die er ins Inventar bekommen hat, werden wieder gelöscht. Falls er davon welche auf den Boden geworfen hat, werden diese ebenfalls gelöscht.

Editor Icon.png hungerpunkte-system:v1stopp.mcfunction
# Punktestand-Ziele werden gelöscht
scoreboard objectives remove PZHungS.1GlEss

scoreboard objectives remove PZHungS.1Apfel
scoreboard objectives remove PZHungS.1GeSchfl
scoreboard objectives remove PZHungS.1Brot
scoreboard objectives remove PZHungS.1GeKabj

# Der Spieler wird in den Kreativmodus gesetzt
gamemode creative @a[distance=..15,gamemode=!creative]

# Eventuell vorhandene Effekte werden entfernt
effect clear @a[distance=..15,nbt={ActiveEffects:[{}]}]

# Alle Nahrungsmittel die der Spieler noch nicht gegessen hatte, werden wieder entfernt
clear @a minecraft:apple{hungerpunkte-system:"v1gegenstand"}
clear @a minecraft:cooked_porkchop{hungerpunkte-system:"v1gegenstand"}
clear @a minecraft:bread{hungerpunkte-system:"v1gegenstand"}
clear @a minecraft:cooked_cod{hungerpunkte-system:"v1gegenstand"}

# Falls Nahrungsmittel auf dem Boden geworfen wurden, werden sie ebenfalls gelöscht
kill @e[type=minecraft:item,nbt={Item:{tag:{hungerpunkte-system:"v1gegenstand"} } }]

Variante 2[Bearbeiten | Quelltext bearbeiten]

Roter Sand.png
Diese neue oder überarbeitete Technik ist noch nicht in der aktuellen Mechanik-Welt vorhanden.
In einem der nächsten Updates wird sie dort hinzugefügt werden.

Hungerpunkte-System (Befehle) Bild 2.1.png

Dieses Hungerpunkt-System fügt die Möglichkeit einer Trinkpunkte-Leiste hinzu. Man kann alle Getränke trinken um Flüssigkeitspunkte zu erhalten. Alle tausend Ticks verliert man einen Flüssigkeitspunkt und muss so immer wieder auf den Wert schauen, der mit ⇧ Shift angesehen werden kann. Falls man nur noch wenig Flüssigkeitspunkte hat, wird einem über der Schnellzugriffsleiste dies mitgeteilt. Wenn man einen kritischen Wert unterschritten hat, erhält man Hungereffekte und wird, falls man nichts dagegen tut dehydrieren.

Einschalten

Wird der Hebel umgelegt, startet der Befehlsblock und führt die Start-Funktion einmal aus

Wiederholen

Mit dem Wiederhol-Befehlsblock führt jeden Tick die Zyklus-Funktion aus

Ausschalten

Sobald der Hebel wieder in Ausgangsstellung zurück gelegt wurde, wird die Stopp-Funktion aktiviert


Befehlsblöcke mit Befehlen:


Variante 2: Start-Funktion
Die Start-Funktion erstellt mehrere Punktestand-Ziele für viele Nahrungsmittel mit Wasseranteil. Spieler werden in den Überlebensmodus gesetzt, falls sie es nicht schon sind. Damit die Spieler direkt die Nahrungsmittel trinken oder essen können, erhalten sie einen starken Hungereffekt. Ihr Wasserhaushalt wird auf 80 von maximal 100 gesetzt. Die Spieler erhalten auch viele Getränke und Nahrung mit viel Flüssigkeitsgehalt. Als letztes wird allen Spielern eine Anleitung im Chat angezeigt.

Editor Icon.png hungerpunkte-system:v2start.mcfunction
# Punktestand-Ziele werden erstellt
scoreboard objectives add PZHungS.2Zeit minecraft.custom:minecraft.play_one_minute ["Hungerpunkte-System.2: ",{"text":"Spielzeit","bold":true}]

scoreboard objectives add PZHungS.2Trinken dummy ["Hungerpunkte-System.2: ",{"text":"Trinken","bold":true}]
scoreboard objectives setdisplay list PZHungS.2Trinken

scoreboard objectives add PZHungS.2WasFl minecraft.used:minecraft.potion ["Hungerpunkte-System.2: ",{"text":"Wasserflasche trinken","bold":true}]
scoreboard objectives add PZHungS.2Milch minecraft.used:minecraft.milk_bucket ["Hungerpunkte-System.2 :",{"text":"Milch trinken","bold":true}]
scoreboard objectives add PZHungS.2Ragout minecraft.used:minecraft.rabbit_stew ["Hungerpunkte-System.2: ",{"text":"Kaninchenragout löffeln","bold":true}]
scoreboard objectives add PZHungS.2PilzS minecraft.used:minecraft.mushroom_stew ["Hungerpunkte-System.2: ",{"text":"Pilzsuppe löffeln","bold":true}]
scoreboard objectives add PZHungS.2Bortsch minecraft.used:minecraft.beetroot_soup ["Hungerpunkte-System.2: ",{"text":"Borschtsch löffeln","bold":true}]
scoreboard objectives add PZHungS.2Melone minecraft.used:minecraft.melon_slice ["Hungerpunkte-System.2: ",{"text":"Melonenscheibe essen","bold":true}]

# Der Spieler wird in den Überlebensmodus gesetzt
gamemode survival @a[distance=..15,gamemode=!survival]

# Der Spieler erhält einen Hungereffekt, damit er direkt die Nahrung zu sich nehmen kann
effect give @a[distance=..15] minecraft:hunger 6 255 true

# Dem Spieler wird direkt eine Trinkbilanz von 80 gegeben, damit er nicht direkt dehydriert aber auch nicht zu viel getrunken hat
scoreboard players set @a[distance=..15] PZHungS.2Trinken 80

# Den Spielern werden verschiedene Nahrungsmittel gegeben die den Wasserhaushalt des Spielers erhöhen
give @a[distance=..15] minecraft:potion{hungerpunkte-system:"v2gegenstand",display:{Lore:['"Drink mich"']},Potion:"minecraft:water"} 1
give @a[distance=..15] minecraft:milk_bucket{hungerpunkte-system:"v2gegenstand",display:{Lore:['"Drink mich"']} } 1
give @a[distance=..15] minecraft:rabbit_stew{hungerpunkte-system:"v2gegenstand",display:{Lore:['"Drink mich"']} } 1
give @a[distance=..15] minecraft:mushroom_stew{hungerpunkte-system:"v2gegenstand",display:{Lore:['"Drink mich"']} } 1
give @a[distance=..15] minecraft:beetroot_soup{hungerpunkte-system:"v2gegenstand",display:{Lore:['"Drink mich"']} } 1
give @a[distance=..15] minecraft:melon_slice{hungerpunkte-system:"v2gegenstand",display:{Lore:['"Drink mich"']} } 64

# Eine Nachricht mit Anleitung für den Spieler
tellraw @a[distance=..15] ["Hungerpunkte-System.2: ",{"text":"Trinke nach Gelegenheit immer etwas, da sich dein Wasserhaushalt nach Zeiten immer verringert. Den Wasserhaushalt kann man sich mit der Shift-Taste oben in der Mitte anzeigen lassen.","bold":true}]

Variante 2: Zyklus-Funktion
Die Zyklus-Funktion erhöht den Wassergehalt, wenn man Wasserhaltige Nahrung zu sich nimmt. Jedoch sollte man nicht übertreiben, sonst wird es einem schlecht und man wird ganz schwitzig. Umgekehrt, wenn man fast kein Wasser mehr hat, wird einem der Hungereffekt und Langsamkeitseffekt gegeben.

Editor Icon.png hungerpunkte-system:v2zyklus.mcfunction
# Alle 1000 Ticks wird der Wasserhaushalt des Spielers um einen Punkt gesenkt
scoreboard players remove @a[scores={PZHungS.2Zeit=100,PZHungS.2Trinken=1..}] PZHungS.2Trinken 1
scoreboard players set @a[scores={PZHungS.2Zeit=1000..}] PZHungS.2Zeit 0

# Wenn der Spieler zu viel Flüssigkeit zu sich genommen hat, erhält er eine Warnung und es entstehen ganz viele Tropfen und die Punkte werden auf 100 abgesenkt
title @a[scores={PZHungS.2Trinken=100..101}] actionbar ["",{"text":"Trinke nicht zu viel, du platzt gleich!","color":"dark_blue","bold":true}]
scoreboard players remove @a[scores={PZHungS.2Trinken=100..}] PZHungS.2Trinken 1
effect give @a[scores={PZHungS.2Trinken=100..}] minecraft:nausea 1 4 true
execute at @a[scores={PZHungS.2Trinken=100..}] run particle minecraft:fishing ~ ~1 ~ 0.2 0.4 0.2 0.01 100 force @a[distance=..25]

# Je nach dem was der Spieler an Flüssigkeit zu sich nimmt, wird der Wasserhaushalt entsprechend angehoben
scoreboard players add @a[scores={PZHungS.2WasFl=1..}] PZHungS.2Trinken 15
scoreboard players set @a[scores={PZHungS.2WasFl=1..}] PZHungS.2WasFl 0

scoreboard players add @a[scores={PZHungS.2Milch=1..}] PZHungS.2Trinken 45
scoreboard players set @a[scores={PZHungS.2Milch=1..}] PZHungS.2Milch 0

scoreboard players add @a[scores={PZHungS.2Ragout=1..}] PZHungS.2Trinken 5
scoreboard players set @a[scores={PZHungS.2Ragout=1..}] PZHungS.2Ragout 0

scoreboard players add @a[scores={PZHungS.2PilzS=1..}] PZHungS.2Trinken 5
scoreboard players set @a[scores={PZHungS.2PilzS=1..}] PZHungS.2PilzS 0

scoreboard players add @a[scores={PZHungS.2Bortsch=1..}] PZHungS.2Trinken 5
scoreboard players set @a[scores={PZHungS.2Bortsch=1..}] PZHungS.2Bortsch 0

scoreboard players add @a[scores={PZHungS.2Melone=1..}] PZHungS.2Trinken 5
scoreboard players set @a[scores={PZHungS.2Melone=1..}] PZHungS.2Melone 0

# Wenn der Wasserhaushalt nur noch bei der Hälfte liegt, erhält der Spieler eine kurze Warnung und ein Etikett, damit die Warnung nur einmal erscheint
title @a[tag=!EtiHungS.2HaelfteWasser,scores={PZHungS.2Trinken=49..51}] actionbar ["",{"text":"Dein Wasserhaushalt liegt aktuell nur noch bei der Hälfte!","color":"dark_red","bold":true}]
tag @a[tag=!EtiHungS.2HaelfteWasser,scores={PZHungS.2Trinken=49..51}] add EtiHungS.2HaelfteWasser

# Wenn der Spieler eine Warnung mit Etikett erhalten hatte, wird dieses wieder entfernt, falls er sich darüber oder darunter befindet
tag @a[tag=EtiHungS.2HaelfteWasser,scores={PZHungS.2Trinken=..48}] remove EtiHungS.2HaelfteWasser
tag @a[tag=EtiHungS.2HaelfteWasser,scores={PZHungS.2Trinken=52..}] remove EtiHungS.2HaelfteWasser

# Wenn der Spieler fast oder kein Wasser mehr besitzt, erhält er eine permanente Warnung und den Hunger- sowie den Langsamkeitseffekt
title @a[scores={PZHungS.2Trinken=0..2}] actionbar ["",{"text":"Trinke was, um nicht zu dehydrieren!","color":"dark_purple","bold":true}]
effect give @a[scores={PZHungS.2Trinken=0..2}] minecraft:hunger 5 255 true
effect give @a[scores={PZHungS.2Trinken=0..2}] minecraft:slowness 1 4 true

Variante 2: Stopp-Funktion
Die Stopp-Funktion löscht sämtliche Punktestand-Ziele wieder und setzt den Spieler wieder in den Kreativmodus. Vorhandene Effekte werden entfernt. Ein eventuell vorhandenes Etikett wird entfernt und alle Lebensmittel werden aus dem Inventar entfernt und falls sie auf den Boden geworfen sind auch dort entfernt.

Editor Icon.png hungerpunkte-system:v2stopp.mcfunction
# Punktestand-Ziele werden gelöscht
scoreboard objectives remove PZHungS.2Zeit

scoreboard objectives remove PZHungS.2Trinken

scoreboard objectives remove PZHungS.2WasFl
scoreboard objectives remove PZHungS.2Milch
scoreboard objectives remove PZHungS.2Ragout
scoreboard objectives remove PZHungS.2PilzS
scoreboard objectives remove PZHungS.2Bortsch
scoreboard objectives remove PZHungS.2Melone

# Der Spieler wird in den Kreativmodus gesetzt
gamemode creative @a[distance=..15,gamemode=!creative]

# Eventuell vorhandene Effekte werden wieder entfernt
effect clear @a[distance=..15,nbt={ActiveEffects:[{}]}]

# Das Etikett wird entfernt, falls es vorhanden war
tag @a[tag=EtiHungS.2HaelfteWasser] remove EtiHungS.2HaelfteWasser

# Alle Nahrungsmittel werden wieder entfernt
clear @a minecraft:potion{hungerpunkte-system:"v2gegenstand"}
clear @a minecraft:milk_bucket{hungerpunkte-system:"v2gegenstand"}
clear @a minecraft:rabbit_stew{hungerpunkte-system:"v2gegenstand"}
clear @a minecraft:mushroom_stew{hungerpunkte-system:"v2gegenstand"}
clear @a minecraft:beetroot_soup{hungerpunkte-system:"v2gegenstand"}
clear @a minecraft:melon_slice{hungerpunkte-system:"v2gegenstand"}

clear @a[distance=..15] minecraft:bowl
clear @a[distance=..15] minecraft:bucket
clear @a[distance=..15] minecraft:glass_bottle

# Falls die Nahrungsmittel auf den Boden geworfen sind, werden sie ebenfalls entfernt
kill @e[distance=..50,type=minecraft:item,nbt={Item:{tag:{hungerpunkte-system:"v2gegenstand"} } }]