# ==== STARTER: INICJALIZACJA I FUNKCJA TOR ==== # Pobieramy współrzędne gracza na starcie programu # x, y, z będą używane w CAŁYM projekcie # Będziemy tylko aktualizować "z" gracza przy każdym kolejnym etapie pozycja = player.position() x = pozycja.get_value(Axis.X) y = pozycja.get_value(Axis.Y) z = pozycja.get_value(Axis.Z) # Funkcja przygotowująca pierwszy pusty segment toru def tor(): # Tworzymy bryłę ze skały macierzystej — ściany, sufit i podłoga toru # HOLLOW = pusta w środku — gracz może chodzić wewnątrz blocks.fill(BEDROCK, world(x-10, y-1, z-2), world(x+10, y+10, z+35), FillOperation.HOLLOW) # Pierwsza linia aktywacyjna — latarnie morskie, które gracz musi zniszczyć # Zniszczenie tej linii wczyta etap 1 blocks.fill(SEA_LANTERN, world(x-9, y-1, z+3), world(x+9, y-1, z+5)) # Teleport gracza do pozycji startowej i czyszczenie ekwipunku player.teleport(world(x, y, z)) player.execute("/clear") player.on_chat("start", tor) def zniszczenie_bloku_e1(): pozycja = player.position() z = pozycja.get_value(Axis.Z) etap1(z); def etap1(z): player.say("Etap 1") blocks.fill(BEDROCK, world(x-10, y-1, z-2), world(x+10, y+10, z+35), FillOperation.HOLLOW) # Linia z gąbki - zniszczenie jej załaduje ETAP 2 blocks.fill(SPONGE, world(x-9,y-1,z+25), world(x+9, y-1, z+27)) blocks.fill(IRON_BARS, world(x-9, y-1, z+3), world(x+9, y-1, z+20)) while True: if blocks.test_for_block(IRON_BARS, pos(0, -1, 0)): mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_AXE, 1) for i in range(6): mobs.spawn(CREEPER,randpos(world(x-8,y+1,z+3) ,world(x+8,y+1,z+20))) break blocks.on_block_broken(SEA_LANTERN, zniszczenie_bloku_e1)