Untitled
unknown
python
3 years ago
5.1 kB
9
Indexable
#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
Editor is loading...