Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gf2:projekte:minecraft:interaktionen [2023/11/20 09:41] – lehmannr | gf2:projekte:minecraft:interaktionen [2024/12/09 14:07] (aktuell) – marroc | ||
|---|---|---|---|
| Zeile 80: | Zeile 80: | ||
| </ | </ | ||
| + | |||
| + | Falls ein Spieler nicht durch das Programm durch '' | ||
| Dafür kann man auch Command-Blocks verwenden (siehe Punkt 4 unten), doch es ist meist viel einfacher, dies direkt im Python-Code zu tun. | Dafür kann man auch Command-Blocks verwenden (siehe Punkt 4 unten), doch es ist meist viel einfacher, dies direkt im Python-Code zu tun. | ||
| Zeile 124: | Zeile 126: | ||
| - Agent sammelt die Items ein | - Agent sammelt die Items ein | ||
| - Testen, welche Items der Agent im Inventar hat | - Testen, welche Items der Agent im Inventar hat | ||
| + | - Diesen Vorgang könnte man in eine '' | ||
| Beispielcode | Beispielcode | ||
| <sxh python> | <sxh python> | ||
| - | # agent weit weg teleportieren und alles wegschmeissen | + | # Die folgende Funktion testet, ob ein Diamant in der Truhe ist. |
| - | agent.teleport(world(200,-60, | + | # Sie gibt true oder false als Rückgabewert, sodass man sie weiterverwenden kann. |
| - | agent.drop_all(FORWARD) | + | |
| - | # Kiste kopieren (sie steht bei (-7, | + | def isDiamondInChest(): |
| - | blocks.clone(world(-7, -60, 3), world(-7,-60,3), world(-7,-60,10), CloneMask.REPLACE, | + | diamondFound = False |
| - | # Agenten zur Kiste teleportieren | + | # Agent weit weg teleportieren und alles wegschmeissen |
| - | agent.teleport(world(-7, -60, 11), NORTH) | + | agent.teleport(world(20, |
| - | # Kiste zerstören und Objekte aufsammeln | + | agent.drop_all(FORWARD) |
| - | agent.destroy(FORWARD) | + | |
| - | agent.collect_all() | + | # Kiste kopieren (sie steht bei (-7, |
| - | </ | + | blocks.clone(world(2, -60, 12), world(2,-60,12), world(10,-60,12), CloneMask.REPLACE, |
| - | + | ||
| - | <sxh python> | + | |
| - | list = [] | + | agent.teleport(world(10, -60, 13), NORTH) |
| - | slot = 0 | + | |
| - | itemid = 0 | + | |
| - | Success = 0 | + | |
| - | + | ||
| - | def on_on_chat(): | + | |
| - | global list2 | + | |
| - | agent.teleport(world(286, | + | |
| agent.destroy(FORWARD) | agent.destroy(FORWARD) | ||
| agent.collect_all() | agent.collect_all() | ||
| - | | + | |
| + | itemID = agent.get_item_detail(slotNumber) | ||
| + | if (itemID == 264): | ||
| + | diamondFound = True | ||
| + | return diamondFound | ||
| - | player.on_chat("breakbox", | + | # Nun können wir z.B. ein Mal pro Sekunde testen, ob ein Diamand in der Truhe ist |
| + | def on_forever(): | ||
| + | if (isDiamondInChest()==True): | ||
| + | | ||
| + | else: | ||
| + | player.say(" | ||
| + | loops.pause(1000) | ||
| - | def on_on_chat2(): | + | loops.forever(on_forever) |
| - | global slot, itemid | + | </ |
| - | for index in range(27): | + | |
| - | slot = index + 1 | + | |
| - | itemid = agent.get_item_detail(slot) | + | |
| - | player.say(" | + | |
| - | player.say(itemid) | + | |
| - | for index2 in range(5): | + | |
| - | if list2[index2] == itemid: | + | |
| - | player.say(" | + | |
| - | | + | |
| - | player.on_chat(" | ||
| - | |||
| - | def on_on_chat3(): | ||
| - | global Success | ||
| - | Success = 0 | ||
| - | for index3 in range(4): | ||
| - | if list2[index3] != 0: | ||
| - | Success = 1 | ||
| - | if Success == 0: | ||
| - | player.say(" | ||
| - | else: | ||
| - | player.say(" | ||
| - | player.on_chat(" | ||
| - | </ | ||
| - | [[gf2: | ||