Untitled
unknown
python
3 years ago
3.8 kB
8
Indexable
#aktualne miejsce odrodzenia gracza, zmienne w zależności od checkpointu, który zaliczymy aktualnaPozycjaOdrodzenia = player.position() #zmienna pomocnicza dzięki niej dany etap będzie tworzony raz w ramach jednej rozgrywki czyEtap1 = False czyEtap2 = False czyEtap3 = False #budujemy schody oraz pierwszą platformę ładującą etap 1 def nowyParkour(): #teleportujemy konstruktor w okolice gracza builder.teleport_to(pos(5, 0, 0)) #obrót builder.face(EAST) for i in range(70): #konstruktor umieszcza blok schodów builder.place(PURPUR_STAIRS) builder.shift(1,1,0) builder.mark() builder.shift(2, 0, -4) #konstruktor wypełnia przestrzeń blokami od znaku(mark) do obecnej pozycji builder.fill(DIAMOND_BLOCK) player.on_chat("start", nowyParkour) def smierc(): player.teleport(aktualnaPozycjaOdrodzenia) player.on_died(smierc) #pętla sterująca ładowaniem etapów oraz system checkpoint while True: if blocks.test_for_block(DIAMOND_BLOCK, pos(0, -1, 0)) and not czyEtap1: aktualnaPozycjaOdrodzenia = player.position() czyEtap1 = True etap1(RIGHT_TURN,SLIME_BLOCK,GOLD_BLOCK) elif blocks.test_for_block(GOLD_BLOCK, pos(0, -1, 0)) and not czyEtap2: aktualnaPozycjaOdrodzenia = player.position() czyEtap2 = True etap2() elif blocks.test_for_block(MOSS_STONE, pos(0, -1, 0)) and not czyEtap3: aktualnaPozycjaOdrodzenia = player.position() czyEtap3 = True etap3() def etap1(obrotKonstruktora,rodzajToru,rodzajCheckpointu): #teleport konstruktora pod platformę i przesunięcie 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 w celu zrobienia przerwy pomiędzy blokami builder.move(FORWARD, randint(2, 4)) #oznaczamy aktualną pozycję żeby to od niej budowała się kolejna linia builder.mark() #obrót konstruktora builder.turn(obrotKonstruktora) #tworzymy nową platformę builder.mark() builder.shift(2, 0, -4) builder.fill(rodzajCheckpointu) def etap2(): #tworzymy kule 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 pozycję pierwotną później wrócimy w to miejsce konstruktorem i będziemy dodawać ogień builder.set_origin() builder.move(FORWARD, 65) builder.line(NETHERRACK) #wracamy aby dodać ogień builder.teleport_to_origin() builder.move(UP, 1) for i in range(11): builder.move(FORWARD, randint(3,8)) builder.place(FIRE) #budujemy platforme builder.mark() builder.shift(2, 0, -4) builder.fill(MOSS_STONE) def etap3(): #projektujemy skok wiary builder.move(DOWN, 30) builder.face(SOUTH) builder.move(FORWARD, 6) #budujemy studnię 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 kończy swoje działanie kiedy gracz stanie na ostatniej platformie for i in range(30): builder.place(POLISHED_GRANITE) builder.move(FORWARD,1) builder.move(UP, 1) builder.turn(RIGHT_TURN)
Editor is loading...