archiv:gf:gf2020_2021:minecraft:projekt:2d1:armandmatteo:start

Dies ist eine alte Version des Dokuments!


1. Minecraft Projekt

Minecraft Projekt: Icy solace

Wir hatten schon Anfangs die Idee eine eigene Map zusammenzustellen in dem ein Spieler sich frei bewegen und nach eigenem Willen handeln könnte.

Matteo spezialisierte sich in die Funtkionalität und den Code der Welt, während Armand Ideen die Grundlegenden Ideen, als Bauer und Planer umsetzte. Die erste Idee war es eine pompöse Pyramide zu bauen, unter ihrer Struktur einen mehrstöckigen unterirdischen Dungeon zu bauen, der in jedem Stockwerk eine Herausforderung haben sollte.

Dazu hatten eine die Vorstellung eine indirekte Erzählung einzubauen, die über die Umgebung vermittelt werden sollte. Dazu bauten wir eine kleine Siedlug vor der Pyramide, die als Einleitung zu unserer Welt werden sollte. Um die Siedlung dennoch etwas natürlich wirken zu lassen benutzten wir nicht eine volle Code-Vorgehensweise, aber eher ein Kompromiss. Als Hauptwerkzeug diente uns der „Fill“ Befehl, der uns grosse strukturen relativ einfach bauen liess. Beispiel:

def on_on_chat():
    blocks.fill(PRISMARIN_BRICKS, world(260, 65, -822  ), world(235, 69, -822 ))

player.on_chat("wall", on_on_chat)

Das Ausgangshaus

In einem sehr modestem Haus fängt hier der Spieler seine Entdeckung der Siedlung an. Der Worldspawn wurde auch darin gesetzt.


Das Rathaus

Ein grösseres Gebäude der wahrscheinlich einmal der Mittelpunkt dieses Ortes war.


Das Wohngebäude

Es scheint das hier die meisten gewohnt haben, aber nun scheint es von Monster infestiert zu sein.


Die Bibliothek

Ein Gebäude voll mit Staub und Spinnenweben, die meisten Bücher aber scheinen noch intakt zu sein.


Die Brauerei

Dieses Gebäude hat einen Keller, was ist denn in den Fässer?


Die Kirche

Was für einen Glauben hatten wohl diese Leute?


Die Pyramide wird im Gegensatz zur Siedlung aber wird direkt mit Code und kann nach Aufrufen des Befehls gebaut werden. Wobei dieser das Auffinden acht Bücher in der Siedlung bedeutet. Sobald die acht Bücher gefunden würden, kann der Code im Chat geschrieben sein.

l1 = [[0,0,0,1,0,0,0,0,0,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,1,0,0],[0,1,0,0,0,1,0,1,0,0,0,1,0],[0,1,0,0,1,1,2,1,1,0,0,1,0],[0,1,1,1,1,1,2,1,1,1,1,1,0],[0,0,0,1,1,1,2,1,1,1,0,0,0],[0,1,0,1,1,1,2,1,1,1,0,1,0],[0,1,0,1,1,1,2,1,1,1,0,1,0],[0,0,1,1,1,1,2,1,1,1,1,0,0],[0,0,0,2,2,2,2,2,2,2,0,0,0],[0,0,0,1,1,1,1,1,1,1,0,0,0],[0,0,1,1,1,1,1,1,1,1,1,0,0],[0,0,1,0,1,1,1,1,1,0,1,0,0],[0,0,1,0,0,1,1,1,0,0,1,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0],[0,0,0,0,1,0,2,0,1,0,0,0,0]]
l2 = [[2,0,0,0,1,1,1,1,1,0,0,0,2],[0,2,1,1,0,0,1,0,0,1,1,2,0],[0,1,0,0,0,1,2,1,0,0,0,1,0],[1,0,0,0,0,1,2,1,0,0,0,0,1],[0,1,0,0,0,0,1,0,0,0,0,1,0],[0,2,1,1,0,0,0,0,0,1,1,2,0],[2,0,0,0,1,1,1,1,1,0,0,0,2]]
l3 = [[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,2,2,2,2,2,2,0,0],[0,0,2,0,0,0,2,2,2,2,0,0,0],[0,0,2,3,0,0,2,2,2,2,0,3,0],[0,0,2,0,3,0,3,3,3,3,0,3,0],[0,0,2,0,2,0,3,3,3,3,0,2,0],[0,0,2,0,3,3,2,2,2,2,3,3,0],[0,0,1,0,0,2,2,2,2,2,2,0,0],[0,1,2,1,0,0,2,3,3,2,0,0,0],[0,0,1,0,0,2,3,3,3,3,2,0,0],[0,0,0,0,0,2,3,3,3,3,2,0,0],[0,0,0,0,0,2,3,0,0,3,2,0,0],[0,0,0,0,0,2,3,0,0,3,2,0,0]]
l4 = [1,4,1,3,1,1,1,1,1,3,1,3,3,3,3,2,2,2,2,2,2,2,3,3,1,3,3,3,1,3,3,3,1,3,3,3,1,1,3,3,3,3,3,3,1,3,1,3,3,1,1,1,4,1,1,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,1,1,3,3,3,3,3,3,1,4]
def build_it(x0,y0,z0,zahl):
    xdiff = 0
    ydiff = 0
    zdiff = 0
    if zahl == 1:
        liste1 = l1
    elif zahl == 2:
        liste1 = l2
    elif zahl == 3:
        liste1 = l3
    for j in liste1:
        for i in j:
            if i == 0:
                blocks.place(AIR, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 1:
                blocks.place(DARK_PRISMARINE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 2:
                blocks.place(GOLD_BLOCK, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 3:
                blocks.place(BLUE_CONCRETE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            zdiff = zdiff - 1
        ydiff = ydiff + 1
        xdiff = xdiff - 1 
        zdiff = 0

def build_it2(x0,y0,z0,zahl):
    xdiff = 0
    ydiff = 0
    zdiff = 0
    if zahl == 1:
        liste1 = l1
    elif zahl == 2:
        liste1 = l2
    elif zahl == 3:
        liste1 = l3
    for j in liste1:
        for i in j:
            if i == 0:
                blocks.place(AIR, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 1:
                blocks.place(DARK_PRISMARINE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 2:
                blocks.place(GOLD_BLOCK, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 3:
                blocks.place(BLUE_CONCRETE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            zdiff = zdiff - 1
        ydiff = ydiff + 1
        xdiff = xdiff + 1  
        zdiff = 0

def skellet():
    for i in range(0, 61,1):
        blocks.fill(PRISMARINE_BRICKS, world(i+323, 66+i,i-907),world(323+120-i, 66+i, 120-i-907))
    for l in range(0,59,1):       
        blocks.fill(AIR, world(l+325, 66+l, l-905),world(439-l, 67+l, 119-l-908))
    blocks.fill(PRISMARINE_BRICKS, world(323, 66, -907), world(443, 66, -788))
    for i in range(0,8,1):
        blocks.fill(GOLD_BLOCK, world(391-i, 118+i, -839-i), world(375+i, 118+i, -855+i))
    blocks.place(BEACON, world(383, 125, -847))
    blocks.place(YELLOW_STAINED_GLASS, world(383, 126, -847))
    blocks.fill(AIR, world(323, 67, -851), world(331, 72, -843))
    blocks.fill(PRISMARINE_BRICKS, world(320,66,-851), world(338, 72, -843))
    blocks.fill(AIR, world(321,67,-850), world(337, 71, -844))
    blocks.fill(AIR, world(320,67,-848), world(320, 69, -846))
    blocks.fill(AIR, world(320, 72, -851), world(328, 72, -851))
    blocks.fill(AIR, world(320, 72, -843), world(328, 72, -843))
    blocks.place(AIR, world(320,70, -847))

def relief():
    build_it(432,78,-841,1)
    build_it(404,106,-841,2)
    build_it(426,84,-819,3)
    build_it(426,84,-863,3)

def relief2():
    build_it2(334,78,-841,1)
    build_it2(362,106,-841,2)
    build_it2(340,84,-819,3)
    build_it2(340 ,84,-863,3)

def pyramide():
    skellet()
    relief2()
    relief()
    
player.on_chat("wobistdu", pyramide)
      
        

Es gibt ein kleines Spiel, dass durch das Auffinden von 3 Schlüssel erreichbar wird. Die 3 Schlüssel müssen im Haus mit der Rotten Flaggen deponiert werden. Das Spiel ist ein TnT Run! Es ist ein kleines Spiel in dem der Spieler ein vermintes Feld überqueren muss, wobei das Spiel sich immer zurücksetzt wenn der Spieler stirbt.

l4 = [1,4,1,3,1,1,1,1,1,3,1,3,3,3,3,2,2,2,2,2,2,2,3,3,1,3,3,3,1,3,3,3,1,3,3,3,1,1,3,3,3,3,3,3,1,3,1,3,3,1,1,1,4,1,1,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,1,1,3,3,3,3,3,3,1,4]
def floor(x,y,z):
    x1 = x
    z1 = z
    for i in l4:
        if i == 1:
            x1 = x1 - 1
        elif i == 2:
            x1 = x1 +1
        elif i == 3:
            z1 = z1 + 1
        elif i == 4:
            z1 = z1 - 1
        blocks.place(PRISMARINE_BRICKS, world(x1, y, z1))
        
def tntrun():
    blocks.fill(SAND, world(-930, 112, -1514), world(-907, 112, -1481))
    blocks.fill(TNT, world(-930, 111, -1514), world(-907, 111, -1481))
    blocks.fill(STONE_PRESSURE_PLATE,world(-930, 113, -1514), world(-907,113,-1481))
    floor(-906,111,-1512)
    blocks.fill(LAVA, world(-930, 84, -1514), world(-907, 87, -1481))


player.on_died(tntrun)

Nach diesen Spiel gibt es 3 Rätsel. Diese sind nicht sehr schwierig und haben sehr wenig Code. Jeden Rästel hat ein Thema und seinen Raum zu diesen Thema. Die Antwort des Rästel sollte vom Spieler im Chat gesagt werden und wenn es richtig ist, kann der Spieler weiter gehen. Code für die Rätsel:

def rätsel1():
    blocks.place(STONE_PRESSURE_PLATE, world(-910, 77, -1500))

def rätsel2():
     blocks.place(STONE_PRESSURE_PLATE, world(-920, 77, -1484))

def rätsel3():
     blocks.place(STONE_PRESSURE_PLATE, world(-907, 67, -1488))
 
player.on_chat("anubis", rätsel1)
player.on_chat("fabel", rätsel2)
player.on_chat("island", rätsel3)

Ganzer Code:

l1 = [[0,0,0,1,0,0,0,0,0,1,0,0,0],[0,0,1,0,0,0,0,0,0,0,1,0,0],[0,1,0,0,0,1,0,1,0,0,0,1,0],[0,1,0,0,1,1,2,1,1,0,0,1,0],[0,1,1,1,1,1,2,1,1,1,1,1,0],[0,0,0,1,1,1,2,1,1,1,0,0,0],[0,1,0,1,1,1,2,1,1,1,0,1,0],[0,1,0,1,1,1,2,1,1,1,0,1,0],[0,0,1,1,1,1,2,1,1,1,1,0,0],[0,0,0,2,2,2,2,2,2,2,0,0,0],[0,0,0,1,1,1,1,1,1,1,0,0,0],[0,0,1,1,1,1,1,1,1,1,1,0,0],[0,0,1,0,1,1,1,1,1,0,1,0,0],[0,0,1,0,0,1,1,1,0,0,1,0,0],[0,0,0,1,0,0,0,0,0,1,0,0,0],[0,0,0,0,1,0,2,0,1,0,0,0,0]]
l2 = [[2,0,0,0,1,1,1,1,1,0,0,0,2],[0,2,1,1,0,0,1,0,0,1,1,2,0],[0,1,0,0,0,1,2,1,0,0,0,1,0],[1,0,0,0,0,1,2,1,0,0,0,0,1],[0,1,0,0,0,0,1,0,0,0,0,1,0],[0,2,1,1,0,0,0,0,0,1,1,2,0],[2,0,0,0,1,1,1,1,1,0,0,0,2]]
l3 = [[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,0,3,0,0,3,0,0,0],[0,0,2,0,0,2,2,2,2,2,2,0,0],[0,0,2,0,0,0,2,2,2,2,0,0,0],[0,0,2,3,0,0,2,2,2,2,0,3,0],[0,0,2,0,3,0,3,3,3,3,0,3,0],[0,0,2,0,2,0,3,3,3,3,0,2,0],[0,0,2,0,3,3,2,2,2,2,3,3,0],[0,0,1,0,0,2,2,2,2,2,2,0,0],[0,1,2,1,0,0,2,3,3,2,0,0,0],[0,0,1,0,0,2,3,3,3,3,2,0,0],[0,0,0,0,0,2,3,3,3,3,2,0,0],[0,0,0,0,0,2,3,0,0,3,2,0,0],[0,0,0,0,0,2,3,0,0,3,2,0,0]]
l4 = [1,4,1,3,1,1,1,1,1,3,1,3,3,3,3,2,2,2,2,2,2,2,3,3,1,3,3,3,1,3,3,3,1,3,3,3,1,1,3,3,3,3,3,3,1,3,1,3,3,1,1,1,4,1,1,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,1,1,3,3,3,3,3,3,1,4]
def build_it(x0,y0,z0,zahl):
    xdiff = 0
    ydiff = 0
    zdiff = 0
    if zahl == 1:
        liste1 = l1
    elif zahl == 2:
        liste1 = l2
    elif zahl == 3:
        liste1 = l3
    for j in liste1:
        for i in j:
            if i == 0:
                blocks.place(AIR, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 1:
                blocks.place(DARK_PRISMARINE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 2:
                blocks.place(GOLD_BLOCK, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 3:
                blocks.place(BLUE_CONCRETE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            zdiff = zdiff - 1
        ydiff = ydiff + 1
        xdiff = xdiff - 1 
        zdiff = 0

def build_it2(x0,y0,z0,zahl):
    xdiff = 0
    ydiff = 0
    zdiff = 0
    if zahl == 1:
        liste1 = l1
    elif zahl == 2:
        liste1 = l2
    elif zahl == 3:
        liste1 = l3
    for j in liste1:
        for i in j:
            if i == 0:
                blocks.place(AIR, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 1:
                blocks.place(DARK_PRISMARINE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 2:
                blocks.place(GOLD_BLOCK, world(x0+xdiff, y0+ydiff, z0+zdiff))
            elif i == 3:
                blocks.place(BLUE_CONCRETE, world(x0+xdiff, y0+ydiff, z0+zdiff))
            zdiff = zdiff - 1
        ydiff = ydiff + 1
        xdiff = xdiff + 1  
        zdiff = 0

def floor(x,y,z):
    x1 = x
    z1 = z
    for i in l4:
        if i == 1:
            x1 = x1 - 1
        elif i == 2:
            x1 = x1 +1
        elif i == 3:
            z1 = z1 + 1
        elif i == 4:
            z1 = z1 - 1
        blocks.place(PRISMARINE_BRICKS, world(x1, y, z1))



def skellet():
    for i in range(0, 61,1):
        blocks.fill(PRISMARINE_BRICKS, world(i+323, 66+i,i-907),world(323+120-i, 66+i, 120-i-907))
    for l in range(0,59,1):       
        blocks.fill(AIR, world(l+325, 66+l, l-905),world(439-l, 67+l, 119-l-908))
    blocks.fill(PRISMARINE_BRICKS, world(323, 66, -907), world(443, 66, -788))
    for i in range(0,8,1):
        blocks.fill(GOLD_BLOCK, world(391-i, 118+i, -839-i), world(375+i, 118+i, -855+i))
    blocks.place(BEACON, world(383, 125, -847))
    blocks.place(YELLOW_STAINED_GLASS, world(383, 126, -847))
    blocks.fill(AIR, world(323, 67, -851), world(331, 72, -843))
    blocks.fill(PRISMARINE_BRICKS, world(320,66,-851), world(338, 72, -843))
    blocks.fill(AIR, world(321,67,-850), world(337, 71, -844))
    blocks.fill(AIR, world(320,67,-848), world(320, 69, -846))
    blocks.fill(AIR, world(320, 72, -851), world(328, 72, -851))
    blocks.fill(AIR, world(320, 72, -843), world(328, 72, -843))
    blocks.place(AIR, world(320,70, -847))
def relief():
    build_it(432,78,-841,1)
    build_it(404,106,-841,2)
    build_it(426,84,-819,3)
    build_it(426,84,-863,3)

def relief2():
    build_it2(334,78,-841,1)
    build_it2(362,106,-841,2)
    build_it2(340,84,-819,3)
    build_it2(340 ,84,-863,3)

def tntrun():
    blocks.fill(SAND, world(-930, 112, -1514), world(-907, 112, -1481))
    blocks.fill(TNT, world(-930, 111, -1514), world(-907, 111, -1481))
    blocks.fill(STONE_PRESSURE_PLATE,world(-930, 113, -1514), world(-907,113,-1481))
    floor(-906,111,-1512)
    blocks.fill(LAVA, world(-930, 84, -1514), world(-907, 87, -1481))

def pyramide():
    skellet()
    relief2()
    relief()
    
def rätsel1():
    blocks.place(STONE_PRESSURE_PLATE, world(-910, 77, -1500))

def rätsel2():
     blocks.place(STONE_PRESSURE_PLATE, world(-920, 77, -1484))

def rätsel3():
     blocks.place(STONE_PRESSURE_PLATE, world(-907, 67, -1488))

player.on_died(tntrun)
player.on_chat("wobistdu", pyramide)
player.on_chat("anubis", rätsel1)
player.on_chat("fabel", rätsel2)
player.on_chat("island", rätsel3)

Herunterladen der Welt

Link zum Ordner mit den World Versionen. Bitte die neueste Version heunterladen!

  • archiv/gf/gf2020_2021/minecraft/projekt/2d1/armandmatteo/start.1661616509.txt.gz
  • Zuletzt geändert: 2022/08/27 18:08
  • von lehmannr