aktualnaPozycjaOdrodzenia = player.position() czyEtap1 = False czyEtap2 = False czyEtap3 = False #budujemy schody oraz pierwszą platforme def nowyParkour(): #teleportujemy konstruktor w okolice gracza builder.teleport_to(pos(5, 0, 0)) #obrocic na wschod builder.face(EAST) for i in range(70): #konstruktor umieszcza blok schodów builder.place(PURPUR_STAIRS) #konstruktor przemieszcza się o 1 blok w przód i góre builder.shift(1,1,0) #oznaczamy bieżacą pozycje konstruktora builder.mark() builder.shift(2, 0, -4) #konsturotr wypelnia przestrzeń blokami od znaku do ocenej pozycji builder.fill(DIAMOND_BLOCK) player.on_chat("start", nowyParkour) def smierc(): loops.pause(500) player.teleport(aktualnaPozycjaOdrodzenia) player.on_died(smierc) while True: if blocks.test_for_block(DIAMOND_BLOCK, pos(0, -1, 0)) and not czyEtap1: #aktualizowac pozycje odrodzenia gracza aktualnaPozycjaOdrodzenia = player.position() czyEtap1 = True etap1i2(RIGHT_TURN, SLIME_BLOCK, GOLD_BLOCK) elif blocks.test_for_block(GOLD_BLOCK, pos(0, -1, 0)) and not czyEtap2: #aktualizowac pozycje odrodzenia gracza aktualnaPozycjaOdrodzenia = player.position() czyEtap2 = True etap1i2(LEFT_TURN, MAGENTA_STAINED_GLASS_PANE, BEDROCK) elif blocks.test_for_block(BEDROCK, pos(0, -1, 0)) and not czyEtap3: aktualnaPozycjaOdrodzenia = player.position() czyEtap3 = True etap3() def etap1i2(obrotKonstruktora, rodzajToru, rodzajCheckpoint): #teleport konstrukora na platforme i przesuniecie builder.teleport_to(pos(1, -4, 0)) builder.mark() builder.face(EAST) for i in range(2): for j in range(5): #przesuwamy konstruktor builder.move(FORWARD, randint(3, 8)) #tworzymy linie z danego bloku builder.line(rodzajToru) #przesuwamy konstruktor zeby zrobic przerwe builder.move(FORWARD, randint(2,3)) #oznaczy aktualna pozycje znakiem builder.mark() builder.turn(obrotKonstruktora) #budowa nowej platformy do checkpointa builder.mark() builder.shift(2, 0, -4) builder.fill(rodzajCheckpoint) def etap3(): #tworzymy kulę ze szlamu shapes.sphere(SLIME_BLOCK, pos(4, -30, 0), 1, ShapeOperation.REPLACE) builder.teleport_to(pos(6, -32, 0)) builder.mark() builder.face(EAST) #ustawiamy pozycje pierwona do któej później wrócimy konstruktorem builder.set_origin() builder.move(FORWARD, 65) # builder.shift(65, 0, 0) builder.line(NETHERRACK) #budujemy platforme builder.move(FORWARD, 4) builder.mark() builder.shift(2, 0, -4) builder.fill(MOSS_STONE) #wracamy zeby dodac ogien builder.teleport_to_origin() builder.move(UP, 1) for i in range(11): builder.move(FORWARD, randint(3,8)) builder.place(FIRE) def etap4(): #projektujemy skok wiary builder.move(DOWN, 30) builder.face(SOUTH) builder.move(FORWARD, 6) #budujemy studnie z wodą builder.mark() builder.shift(2, 2, 2) builder.fill(BRICKS) builder.shift(-1, 0, -1) builder.place(WATER) builder.move(FORWARD, 4) builder.set_origin() #pętla tworząca schody spiralne w każdej #chwili możę być przerwana kiedy gracz stanie na ostatniej platformie while not (blocks.test_for_block(SEA_LANTERN, pos(0, -1, 0))): builder.teleport_to_origin() builder.face(SOUTH) #budowanie schodów, w każdej chwili może przerwać kiedy staniemy na ostatniej platformie for i in range(30): if not blocks.test_for_block(SEA_LANTERN, pos(0, -1, 0)): builder.place(POLISHED_GRANITE) builder.move(FORWARD, 1) builder.move(UP, 1) builder.turn(RIGHT_TURN) else: break