Jump to content
  • 0

Normalen Block durch setzbaren Block ersetzen (Adventurmode)


Greendragon

Frage

Hallo zusammen!

ich habe folgendes vor:

In meiner Map (Minecraft 8.1 PC) sollen die Spieler spezielle Blöcke finden, die auch im Gamemode 2 gesetzt werden können.


 /give @p minecraft:wool 1 11 {CanPlaceOn:[minecraf:gold_block],HideFlags:16}

einen blauen Wollblock, der auf einem Goldblock gesetzt werden kann aber der Spieler nicht sieht das er ihn auf einem Goldblock setzen kann.

Die Spieler können dann die Wollblöcke mit einer Schere wieder abbauen.


/give @p minecraft:shears 1 0 {CanDestroy:[minecraft:wool]}

Jetzt hat aber der Spieler einen normalen Wollblock, den er nicht mehr setzen kann im Inventar.

Ich müsste nun herausfinden ob ein Spieler einen normalen Wollblock in seinem Inventar hat und diesen dann durch einen platzierbaren Wollblock ersetzen.

Ich bin jetzt soweit, dass ich einen blauen Wollblock erkennen kann.


/testfor @p {Inventory:[{id:minecraft:wool,Damage:11s}]}

Das Problem ist nur das nicht unterschieden wird, ob dies ein normaler oder ein platzierbarer Wollblock ist.

Wenn diese Problem gelöst ist, muss dieser Wollblock gelöscht werden mit z.B.:


/clear @p minecraft:wool 11

und gleichzeitig soll er dann den platzierbaren Wollblock erhalten.

Falls es nicht möglich ist dem selben Spieler der den Wollblock aufgenommen hat den platzierbaren Wollblock zu geben kann ich den Wollblock in einer Kiste spawnen. Das bekomm ich auch ohne Hilfe hin. Mir wäre es nur lieber wenn der Spieler den Wollblock gleich zurückbekommt.

Beachtet das es mehr als einen Spieler gibt und ich nicht weiß wo die Spieler den Wollblock wieder aufnehmen, da man den Wollblock fast überall setzen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

3 Antworten auf diese Frage

Empfohlene Beiträge

  • 0

Eh könntest du nicht, egal was für ein wolleblock es ist, diesen entfernen und durch einen modifiziertten ersetzen?

Diese Möglichkeit gefällt mir nicht, da dann immer zu alle Wollblöcke in den Inventaren getauscht werden würden. Außerdem weiß ich dann immernoch nicht wie ich dem Spieler der den Wollblock hat auch den plazierbaren Wollblock zurück gebe.

Für das erkennen eines normalen Wollblocks hab ich jetzt eine Lösung:

Ich teste jetzt zeitgleich ob es eine normaler Wollblock ist und ob es ein plazierbarer Wollblock ist.

/testfor @a {Inventory:[{id:minecraft:wool,Damage:11s}]}/testfor @a {Inventory:[{id:minecraft:wool,Damage:11s,tag:{CanPlaceOn:[minecraf:gold_block]}}]}

Ist der plazierbare Wollblock im Inventar geben beide Kommandblöcke ein Signal aus.

Ist ein normaler Wollblock im inventar gibt es nur ein Signal welches über eine kleine Schaltung so gelegt ist das nur wenn dieses Signal anliegt ein Ausgabesignal gibt.

Jetzt bin ich am zweiten Problem:

Dem Spieler der den normalen Wollblock hat soll der normale gegen den plazierbare Wollblock getauscht werden.

Ich hab auch schon eine Idee, von der ich leider nicht weiß wie ich die umsetzen kann.

Ich würde gern, wenn die Schaltung ein Signal ausgibt, dass ein Spieler einen normalen Wollblock hat, diesem Spieler einen Scorboardeintrag geben. Dann den normalen Wollblock löschen und anschließend dem Spieler mit dem Scorboardeintrag den plazierbaren Wollblock geben.

Ich weiß nur noch nicht ob das überhaupt geht, da ich mit Scorboard noch nicht viel gemacht habe. Ich hoffe jemand hat eine Idee ob und wie das geht.

Danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Ich würde da garnicht erst mit dem Inventar anfangen. Die Items werden beim abbauen IMMER erst gedroppt, wodurch du mit einem /entitydata Befehl den Tag einfach hinzufügen kannst: /entitydata @e[type=Item,score_wool_min=1] {Item:{id:wool,Damage:11,tag:{CanPlaceOn:["minecraft:gold_block"]}}

Zum "score":

1. Erstelle das Objective "wool" (dummy)

2. Folgenden Befehl an eine 20 Hertz clock anschließen: /scoreobard players set @e[type=Item] wool 1 {Item:{id:wool}}.

(Den Entitydata befehl ebenfalls an eine Clock anschließen).

Dadurch dürften alle Wool Items zu einer blauen Wolle werden, welche sich auf Goldblöcken platzieren lässt. Falls es Probleme oder Rückfragen gibt, bin ich auch per Skype zu erreichen (PlayLikeLars1)

LG Lars

Danke für deine Antwort!

ich hab das mal so versucht wie du es vorgeschlagen hast. Leider scheint etwas bei folgendem Befehl nicht zu stimmen

/scoreobard players set @e[type=Item] wool 1 {Item:{id:wool}}

Ohne {Item:{id:wool}} erkennt er alle Items. Mit {Item:{id:wool}} werden keine Items erkannt (auch keine Wolle).

Erlichgesag gefält mir die Idee von dir recht gut. Ich hab zwischenzeitlich eine eigene Lösung über das Inventar gefunden.

Wie ich erkenne ob ein Spieler einen normalen Wollblock hat habe ich ja oben schon beschrieben. Mit dem Signal setz ich nun einen Scoreboardeintrag für jeden Spieler der einen blauen Wollblock im Spielfeld im Inventar hat und im Adanturemod ist:

/scoreboard objectives add woolblue dummy woolblue

/scoreboard players add @a[x=439,y=56,z=282,dx=153,dy=72,dz=103,m=2] woolblue 1

{Inventory:[{id:minecraft:wool,Damage:11s}]}

Dann wird der Wollblock gelöscht:

/clear @a[x=439,y=56,z=282,dx=153,dy=72,dz=103,m=2] minecraft:wool 11

und dann jedem Spieler der einen Scoreboardeintrag hat einen plazierbaren Wollblock gegeben:

/give @a[x=439,y=56,z=282,dx=153,dy=72,dz=103,m=2,score_woolblue_min=1] minecraft:wool 1 11

{CanPlaceOn:[minecraf:gold_block],HideFlags:16}

Anschließend wird der Scoreboardeintag für alle Spieler gelöscht:

/scoreboard players reset @a[x=439,y=56,z=282,dx=153,dy=72,dz=103,m=2] woolblue

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B