Untitled
unknown
python
6 months ago
5.1 kB
1
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) # Listy/Tablice # Listy to zbior wartosci/zmiennych # Zmienna ktora przechowuje wiele wartosci tablica = ["Michal", 25, 2023] # tablica przechowuje 3 wartosci # Odwołanie się do elementu tablicy aby pobrac wartosc player.say(tablica[0]) # wypisz w czacie index 0 / 1 element z tablicy powitanie = "Czesc " + tablica[0] + "w "+ tablica[2] + " roku" + "Masz "+ tablica[1] + "lat" player.say(powitanie) # Przyklad 2 imiona = ["Maciek", "Karol", "Józef"] # tablica przechowuje 3 imiona, for i in range(len(imiona)): # funkcja len(nazwaTablicy) pozwala nam sprawdzic jej dlugosc dla petli for player.say("Witaj " + imiona[i]) # wypisz na czacie kolejne imiona przez odwolanie do index przez licznik petli 'i' # ekwipunek def ekwipunek(): eq = [ DIAMOND_SWORD, 1, # CO, ILOSC TORCH, 128, DIAMOND_HELMET, 1, DIAMOND_BOOTS, 1, BOW, 1, ARROW, 128, GOLDEN_APPLE, 3, ENCHANTED_APPLE, 3, LADDER, 64, DIAMOND_CHESTPLATE, 1, DIAMOND_LEGGINGS, 1, DIAMOND_HORSE_ARMOR, 1, SHIELD, 1, IRON_DOOR, 8, DIAMOND_AXE, 1, DIAMOND_SHOVEL, 1] for i in range(0, len(eq), 2): # petla wykonujaca sie od 0 do konca listy, co 2 => 0, 2, 4, 6, 8, 10 .... przedmiot = eq[i] # index dla przedmiotu ilosc = eq[i + 1] # index dla ilosci mobs.give(mobs.target(NEAREST_PLAYER), przedmiot, ilosc) player.on_chat('eq', ekwipunek) # 1 dodatek - kon def spawnKonia(): mobs.spawn(HORSE, pos(2, 0, 0)) # spawn konia mobs.give(mobs.target(NEAREST_PLAYER), SADDLE, 1) #przypisanie do czatu na litere 'k' lub 'kon' player.on_chat("kon",spawnKonia) # 2 dodatek - enchant luku def zaczarujLuk(): mobs.enchant(mobs.target(NEAREST_PLAYER), "Power", 5) mobs.enchant(mobs.target(NEAREST_PLAYER),"Flame", 1) player.on_chat("luk", zaczarujLuk) # 1 super-atak def deszczStrzalTnt(rodzajStrzal, x, z): # a 0 lub 1 10,10 # Ustalam jaki rodzaj pocisku if(rodzajStrzal == 0): rodzajStrzal = ARROW_PROJECTILE_MOB else: rodzajStrzal = PRIMED_TNT # robie spawn 20xstrzal for i in range(50): pozycja = randpos(pos(x, 15, z), pos(x + 15, 15, z+15)) mobs.spawn(rodzajStrzal, pozycja) player.on_chat("a", deszczStrzalTnt) # przypisanie do czatu # 2 super-atak - NEPTUN def neptun(): gameplay.set_weather(THUNDER) mobs.give(mobs.target(NEAREST_PLAYER), TRIDENT, 1) mobs.enchant(mobs.target(NEAREST_PLAYER), "Channeling", 1) mobs.enchant(mobs.target(NEAREST_PLAYER), "Unbreaking", 3) loops.pause(30000) # 30s = 30 000ms gameplay.set_weather(CLEAR) player.on_chat("n", neptun) # spawn mobow def spawnMobow(liczbaFal): # ustawienia poczatkowe dla swiata, tryb gry etc. gameplay.set_difficulty(NORMAL) gameplay.set_game_mode(SURVIVAL, mobs.target(NEAREST_PLAYER)) gameplay.set_weather(CLEAR) gameplay.time_set(DayTime.NIGHT) # ustalenie listy z mobami do spawnu moby = [CREEPER, ZOMBIE, SKELETON, SPIDER, ENDERMAN, BLAZE, GHAST, WITHER] # ustalenie fal spawnu mobow spawnStart = 5 for i in range(liczbaFal): for j in range(spawnStart): for m in range(len(moby)): # ustalic pozycja startowa pozycja = randpos(pos(20, 3, 20), pos(35, 5, 35)) mobs.spawn(moby[m], pozycja) loops.pause(30000 * liczbaFal) player.on_chat("start", spawnMobow) # start 3