python

mail@pastecode.io avatar
unknown
plain_text
2 years ago
5.4 kB
7
Indexable
Never
# funkcja tworząca zamek
# minimalna długość murów to 20 przy mniejszych wartościach schody nie generują się poprawnie
# liczba określająca długość murów musi być PARZYSTA żeby wierzchołki się poprawnie wygenerowały
# zalecana wysokość muru to 4, tylko wtedy creppery będą mogły się aktywować i wybuchnąć

def zamekKonstruktor(mur, wysokosc):
    dlMuru = mur
    dlMuruKopia = dlMuru / 2
    wysokoscMuru = wysokosc
    builder.teleport_to(pos(-5, 0, 5))
    builder.set_origin()
    builder.mark()
    i = 0
    # pętla tworząca 3 warstwowe mury dookoła gracza
    while i < 3:
        j = 0
        while j < 4:
            builder.move(FORWARD, dlMuru)
            builder.raise_wall(MOSSY_STONE_BRICKS, wysokoscMuru)
            builder.turn(RIGHT_TURN)
            j += 1
        dlMuru += -2
        builder.move(RIGHT, 1)
        builder.move(FORWARD, 1)
        builder.mark()
        i += 1
    builder.move(UP, wysokoscMuru - 1)
    builder.face(WEST)
    builder.move(BACK, 15)
    builder.mark()
    i = 0
    #pętla tworząca schody
    while i < wysokoscMuru - 1:
        builder.shift(1, -1, 0)
        builder.line(STONE_BRICK_STAIRS)
        i += 1
    builder.teleport_to_origin()
    builder.move(UP, wysokoscMuru)
    builder.face(NORTH)
    builder.mark()
    i = 0
    #pętla tworząca wierzchołki
    while i < 4:
        j = 0
        while j < dlMuruKopia:
            builder.place(SEA_LANTERN)
            builder.move(FORWARD, 2)
            j += 1
        builder.turn(RIGHT_TURN)
        i += 1
player.on_chat("zamek", zamekKonstruktor) # zamek 20 4 


# funkcja ewkipunek
def eq():
    # LISTY w PYTHON
    # zmienna przechowuje -> 1 wartość 
    # lista jest to zmienna która przechowuje wiele wartości 
    # JAK TWORZYC LISTE W PYTHON? 
    # nazwaListy = [wartosc0, wartosc1, wartosc2, wartosc3]
    # lista z ekwipunkiem = [przedmiot,ilosc,przedmiot1,ilosc1]
    listaEq = [ LADDER, 64, STONE_BRICKS, 64,
                OBSIDIAN, 64, NETHERITE_SWORD, 2,
                TORCH, 64, NETHER_BRICK, 64,
                NETHERITE_CHESTPLATE, 2, NETHERITE_LEGGINGS, 2,
                NETHERITE_BOOTS, 2, NETHERITE_HELMET, 2,
                NETHERITE_PICKAXE, 2, NETHERITE_HOE, 2,
                ENCHANTED_APPLE, 2, TNT, 64,
                REDSTONE, 64, SPRUCE_DOOR, 64,
                BOW, 1, ARROW, 128, 
                WATER_BUCKET, 2, LAVA_BUCKET, 2, 
                CARROT, 64, BOAT, 2, PINK_SHULKER_BOX, 64]
    # petla for ktora rozda przedmioty 
    # petla for od 0 do konca listyEq, co 2 kroki
    for i in range(0, len(listaEq), 2): 
        # przedmiot do przekazania
        przedmiot = listaEq[i] 
        # ilosc przedmiotu do przekazania
        ilosc = listaEq[i + 1] 
        mobs.give(mobs.target(NEAREST_PLAYER), przedmiot, ilosc)

player.on_chat("eq", eq) # przypinam do czatu 

def zaczarowanyLuk():
    # czaruje łuk na maksymalne obrazenia
    mobs.enchant(mobs.target(NEAREST_PLAYER), "Power", 5)
    # czaruje plonace strzaly
    mobs.enchant(mobs.target(NEAREST_PLAYER), "Flame", 1)
    
player.on_chat("luk", zaczarowanyLuk)

# SUPER ATAKI

# ATAK NEPTUN -> 
def neptun():
    # 1. Zmieniam pogodę na burza 
    gameplay.set_weather(THUNDER)
    # 2. DOSTAJE TROJZAB
    mobs.give(mobs.target(NEAREST_PLAYER), TRIDENT, 1)
    # 3. DODAJE ENCHANT "Unbreaking" "Channeling",
    mobs.enchant(mobs.target(NEAREST_PLAYER),"Unbreaking", 3)
    mobs.enchant(mobs.target(NEAREST_PLAYER),"Channeling", 1)
    # 4. Dodaje pauze na czas tego ataku loops.pause(30000)
    loops.pause(30000)
    # 5. Czyszcze pogodę 
    gameplay.set_weather(CLEAR)
# 6. Podpiac super atak 
player.on_chat("n", neptun)

# Atak mobów
def atakMobow(iloscMobow): # -> atak 10 --> 10 x rodzaj potwora 
    # 1. Przestaw tryb na survival
    gameplay.set_game_mode(SURVIVAL, mobs.target(NEAREST_PLAYER))
    # 2. Ustaw czas na noc
    gameplay.time_set(DayTime.NIGHT)
    # 3. Stworz liste  - listaMobow -> 1 rodzaj to 1 poziom
    listaMobow = [ZOMBIE, SKELETON, SPIDER, CREEPER, PIG_ZOMBIE,DROWNED, ENDERMAN]
    # 4. Petla for dla listaMobow
    for i in range(len(listaMobow)):
        # 5. Petla for dla ilosciMobow do spawnu
        for j in range(iloscMobow):
            # 6. Spawn mobo w randpos(pos(25,0,25),pos(30,0,30))
            mobs.spawn(listaMobow[i],randpos(pos(25,0,25),pos(30,0,30)))
        # 7. Pauza na poziom np. 10s loops.pause(10000)
        loops.pause(60000) # 1minuta na poziom
# 8. Dopisz do czatu atak
player.on_chat("atak", atakMobow)

#   Super Ataki
# Deszcz TNT lub strzał
def superAtak(rodzajAtaku):
    # 1. Sprawdz jaki rodzaj ataku -> if rodzajAtaku == 0:
    if rodzajAtaku == 0:
        # 2. Dla parametru 0 daj strzały rodzajAtaku = ARROW_PROJECTILE_MOB
        rodzajAtaku = ARROW_PROJECTILE_MOB
    # 3. Dla kazdego innego -> else:
    else:
        # 4. Dla kazdego innego daj TNT rodzajAtaku = PRIMED_TNT
        rodzajAtaku = PRIMED_TNT
    # 5. Odpal salwe 4 x 20 strzalów wybranym pociskem for i in range(20):
    for i in range(4):
        for i in range(20):
            # 6. Spawn rodzajAtaku mobs.spawn(rodzajAtaku, randpos(pos(0,0,15), pos(0,0,25)))
            mobs.spawn(rodzajAtaku, randpos(pos(0,0,15), pos(0,0,25)))
        loops.pause(1000) # pauza 1s
# 7. Przypisanie do czatu player.on_chat("s",superAtak)
player.on_chat("s",superAtak)