Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
4.8 kB
3
Indexable
Never


# Zadanie poczatkowe 
# Funkcja ktora wypisze okreslona ilosc razy powitanie na czacie gry
def powitanie(ileRazy):
    for licznik in range(ileRazy):
        player.say("Czesc po raz " + licznik)
# Przypisz funkcje do czatu
player.on_chat("p", powitanie) # przy uruchamianiu funkcji pamietamy o podaniu argumentu



#funkcja odpowiedzialna za przygotowanie areny
def arenaKonstruktor():
    #ustawiamy noc
    gameplay.time_set(DayTime.NIGHT)
    #pobieramy aktualne kordy gracza z małym przesuniecięm na osi x tak żeby arena nie budowała się na graczu
    pozycja=positions.add(player.position(), pos(10, 0, 0))
    x=pozycja.get_value(Axis.X)
    y=pozycja.get_value(Axis.Y)
    z=pozycja.get_value(Axis.Z)
    #tworzymy arenę
    blocks.fill(STONE_BRICKS, world(x,y,z),world(x+40,y+4,z+40))
    #tworzymy w narożnikach areny diamentowe pola potrzebne dla bloku beacon aby ten mógł wypuścić wiązkę światła
    blocks.fill(DIAMOND_BLOCK, world(x,y+4,z),world(x+2,y+4,z+2))
    blocks.fill(DIAMOND_BLOCK, world(x+38,y+4,z),world(x+40,y+4,z+2))
    blocks.fill(DIAMOND_BLOCK, world(x,y+4,z+38),world(x+2,y+4,z+40))
    blocks.fill(DIAMOND_BLOCK, world(x+38,y+4,z+38),world(x+40,y+4,z+40))

    #dodajemy bloki beacon
    blocks.place(BEACON, world(x+1,y+5,z+1))
    blocks.place(BEACON, world(x+39,y+5,z+1))
    blocks.place(BEACON, world(x+1,y+5,z+39))
    blocks.place(BEACON, world(x+39,y+5,z+39))

    #tworzymy schody
    for i in range(15,21):
        shapes.line(STONE_BRICK_STAIRS, world(x-4,y,z+i), world(x,y+4,z+i))
    
    # daje graczowi ekwipunek
    eq()
    # napis runda 
    blocks.print("RUNDA", SEA_LANTERN, world(x + 35, y + 10, z + 45), WEST)
    # tryb survival
    gameplay.set_game_mode(SURVIVAL, mobs.target(NEAREST_PLAYER))
    # uruchom 1 runde
    runda1(x, y, z, "1")
    # uruchom 2 runde 
    runda2(x, y, z, "2")
player.on_chat("arena", arenaKonstruktor)

# runda 1 
def runda1(x,y,z,runda): # x,y,z -> pozycje, runda -> nr rundy dla tej funkcji to 1
    # dodaje cyferke do istniejacego juz napisu
    blocks.print(runda, SEA_LANTERN, world(x + 5, y + 10, z + 45), WEST)
    # spawn mobow dla 1 rundy 
    #ZOMBIE
    mobs.spawn(ZOMBIE, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    #PAUZA 1s = 1000ms
    loops.pause(1000)
    #SKELETON
    mobs.spawn(SKELETON, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    loops.pause(1000)
    #CREEPER
    mobs.spawn(CREEPER, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    loops.pause(1000)
    #GHAST
    mobs.spawn(GHAST, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    loops.pause(1000)
    #BLAZE
    mobs.spawn(BLAZE, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    # PAUZA 45s = 45000
    loops.pause(45000)

# runda 2
def runda2(x,y,z,runda): # x,y,z -> pozycje, runda -> nr rundy dla tej funkcji to 1
    # dodaje cyferke do istniejacego juz napisu
    blocks.print(runda, SEA_LANTERN, world(x + 5, y + 10, z + 45), WEST)
    # spawn mobow dla 1 rundy
    #ZOMBIE
    mobs.spawn(ZOMBIE, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    mobs.spawn(ZOMBIE, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    #PAUZA 1s = 1000ms
    loops.pause(1000)
    #SKELETON
    mobs.spawn(SKELETON, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    mobs.spawn(SKELETON, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    loops.pause(1000)
    #CREEPER
    mobs.spawn(CREEPER, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    mobs.spawn(CREEPER, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    loops.pause(1000)
    #GHAST
    mobs.spawn(GHAST, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    mobs.spawn(GHAST, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    loops.pause(1000)
    #BLAZE
    mobs.spawn(BLAZE, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    mobs.spawn(BLAZE, randpos(world(x + 5, y + 5, z + 5), world(x + 5, y + 5, z + 40)))
    # PAUZA 45s = 45000
    loops.pause(45000)


# ekwipunek 
def eq():
    mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_SWORD, 1)
    mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_HELMET, 1)
    mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_CHESTPLATE, 1)
    mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_BOOTS, 1)
    mobs.give(mobs.target(NEAREST_PLAYER), DIAMOND_LEGGINGS, 1)
    mobs.give(mobs.target(NEAREST_PLAYER), TORCH, 64)
    mobs.give(mobs.target(NEAREST_PLAYER), BOW, 1)
    mobs.give(mobs.target(NEAREST_PLAYER), ARROW, 256)
    mobs.give(mobs.target(NEAREST_PLAYER), GOLDEN_APPLE, 32)
    mobs.give(mobs.target(NEAREST_PLAYER), BREAD, 64)