https://pastein.ru/t/gOV

  скопируйте уникальную ссылку для отправки


from mcpi.minecraft import Minecraft
from collections.abc import Iterable

import collections
import mcpi.block as block
import time
import random

collections.Iterable = Iterable
mc = Minecraft.create()
pos = mc.player.getTilePos()



mc.setBlocks(pos.x, pos.y - 1, pos.z, pos.x + 110, pos.y - 1, pos.z + 200, 7)
x = pos.x
y = pos.y
z = pos.z
mc.setBlocks(x, y, z, x + 120, y + 20, z + 200, block.AIR.id)
# 11 - dom_N
# 12 - dom_S
# 13 - dom_E
# 14 - dom_W
# 21 - dom2_N
# 22 - dom2_S
# 3 - bashny
# 4 - most
d11 = [3, 0, 13, 13, 13, 13, 13, 0, 3, 0]
d21 = [22, 0, 14, 14, 14, 14, 14, 0, 21, 0]
d31 = [22, 0, 21, 0, 0, 0, 22, 0, 21, 0]
d41 = [22, 0, 21, 4, 22, 0, 21, 0]
d51 = [3, 0, 14, 14, 14, 14, 14, 0, 3, 0]
d61 = [22, 0, 13, 13, 13, 13, 13, 0, 21, 0]


def dom_N():
    sx = pos.x + 2 + 5 / 2  # центр по X

    sy = pos.y + 5 / 2  # центр по Y

    sz = pos.z + 5 / 2  # центр по Z

    mc.setBlocks(pos.x + 1, pos.y, pos.z, pos.x + 6, pos.y + 5, pos.z + 5, block.GOLD_BLOCK.id)

    mc.setBlocks(pos.x + 2, pos.y + 1, pos.z + 1, pos.x + 5, pos.y + 4, pos.z + 4, block.AIR.id)

    mc.setBlocks(sx - 1, pos.y + 1, pos.z, sx, pos.y + 2, pos.z, block.AIR.id)

    mc.setBlocks(sx + 1, sy + 1, pos.z, sx + 1, sy + 2, pos.z, block.GLASS.id)

    mc.setBlocks(sx - 2, sy + 1, pos.z, sx - 2, sy + 2, pos.z, block.GLASS.id)

    mc.setBlocks(pos.x + 1, sy + 1, sz + 2, pos.x + 1, sy + 2, sz + 2, block.GLASS.id)

    mc.setBlocks(pos.x + 1, sy + 1, sz - 1, pos.x + 1, sy + 2, sz - 1, block.GLASS.id)

    mc.setBlocks(pos.x + 6, sy + 1, sz + 2, pos.x + 6, sy + 2, sz + 2, block.GLASS.id)

    mc.setBlocks(pos.x + 6, sy + 1, sz - 1, pos.x + 6, sy + 2, sz - 1, block.GLASS.id)

    mc.setBlocks(pos.x + 1, pos.y + 6, pos.z, pos.x + 6, pos.y + 6, pos.z + 5, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 2, pos.y + 7, pos.z, pos.x + 5, pos.y + 7, pos.z + 5, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 3, pos.y + 8, pos.z, pos.x + 4, pos.y + 8, pos.z + 5, block.IRON_BLOCK.id)


def dom_S():
    sx = pos.x + 2 + 5 / 2  # центр по X

    sy = pos.y + 5 / 2  # центр по Y

    sz = pos.z + 5 / 2  # центр по Z

    mc.setBlocks(pos.x + 1, pos.y, pos.z, pos.x + 6, pos.y + 5, pos.z + 5, block.GOLD_BLOCK.id)

    mc.setBlocks(pos.x + 2, pos.y + 1, pos.z + 1, pos.x + 5, pos.y + 4, pos.z + 4, block.AIR.id)

    mc.setBlocks(sx - 1, pos.y + 1, pos.z + 5, sx, pos.y + 2, pos.z + 5, block.AIR.id)

    mc.setBlocks(sx + 1, sy + 1, pos.z + 5, sx + 1, sy + 2, pos.z + 5, block.GLASS.id)

    mc.setBlocks(sx - 2, sy + 1, pos.z + 5, sx - 2, sy + 2, pos.z + 5, block.GLASS.id)

    mc.setBlocks(pos.x + 1, sy + 1, sz + 2, pos.x + 1, sy + 2, sz + 2, block.GLASS.id)

    mc.setBlocks(pos.x + 1, sy + 1, sz - 1, pos.x + 1, sy + 2, sz - 1, block.GLASS.id)

    mc.setBlocks(pos.x + 6, sy + 1, sz + 2, pos.x + 6, sy + 2, sz + 2, block.GLASS.id)

    mc.setBlocks(pos.x + 6, sy + 1, sz - 1, pos.x + 6, sy + 2, sz - 1, block.GLASS.id)

    mc.setBlocks(pos.x + 1, pos.y + 6, pos.z, pos.x + 6, pos.y + 6, pos.z + 5, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 2, pos.y + 7, pos.z, pos.x + 5, pos.y + 7, pos.z + 5, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 3, pos.y + 8, pos.z, pos.x + 4, pos.y + 8, pos.z + 5, block.IRON_BLOCK.id)


def dom_E():
    sx = pos.x + 2 + 5 / 2  # центр по X

    sy = pos.y + 5 / 2  # центр по Y

    sz = pos.z + 5 / 2  # центр по Z

    mc.setBlocks(pos.x + 1, pos.y, pos.z, pos.x + 6, pos.y + 5, pos.z + 5, block.GOLD_BLOCK.id)

    mc.setBlocks(pos.x + 2, pos.y + 1, pos.z + 1, pos.x + 5, pos.y + 4, pos.z + 4, block.AIR.id)

    mc.setBlocks(pos.x + 6, pos.y + 1, sz, pos.x + 6, pos.y + 2, sz + 1, block.AIR.id)

    mc.setBlocks(pos.x + 6, sy + 1, sz + 2, pos.x + 6, sy + 2, sz + 2, block.GLASS.id)

    mc.setBlocks(pos.x + 6, sy + 1, sz - 1, pos.x + 6, sy + 2, sz - 1, block.GLASS.id)

    mc.setBlocks(sx - 1, sy + 1, pos.z, sx - 1, sy + 2, pos.z, block.GLASS.id)

    mc.setBlocks(sx + 1, sy + 1, pos.z, sx + 1, sy + 2, pos.z, block.GLASS.id)

    mc.setBlocks(sx - 1, sy + 1, pos.z + 5, sx - 1, sy + 2, pos.z + 5, block.GLASS.id)

    mc.setBlocks(sx + 1, sy + 1, pos.z + 5, sx + 1, sy + 2, pos.z + 5, block.GLASS.id)

    mc.setBlocks(pos.x + 1, pos.y + 6, pos.z, pos.x + 6, pos.y + 6, pos.z + 5, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 1, pos.y + 7, pos.z + 1, pos.x + 6, pos.y + 7, pos.z + 4, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 1, pos.y + 8, pos.z + 2, pos.x + 6, pos.y + 8, pos.z + 3, block.IRON_BLOCK.id)


def dom_W():
    sx = pos.x + 2 + 5 / 2  # центр по X

    sy = pos.y + 5 / 2  # центр по Y

    sz = pos.z + 5 / 2  # центр по Z

    mc.setBlocks(pos.x + 1, pos.y, pos.z, pos.x + 6, pos.y + 5, pos.z + 5, block.GOLD_BLOCK.id)

    mc.setBlocks(pos.x + 2, pos.y + 1, pos.z + 1, pos.x + 5, pos.y + 4, pos.z + 4, block.AIR.id)

    mc.setBlocks(pos.x + 1, pos.y + 1, sz, pos.x + 1, pos.y + 2, sz + 1, block.AIR.id)

    mc.setBlocks(pos.x + 1, sy + 1, sz + 2, pos.x + 1, sy + 2, sz + 2, block.GLASS.id)

    mc.setBlocks(pos.x + 1, sy + 1, sz - 1, pos.x + 1, sy + 2, sz - 1, block.GLASS.id)

    mc.setBlocks(sx - 1, sy + 1, pos.z, sx - 1, sy + 2, pos.z, block.GLASS.id)

    mc.setBlocks(sx + 1, sy + 1, pos.z, sx + 1, sy + 2, pos.z, block.GLASS.id)

    mc.setBlocks(sx - 1, sy + 1, pos.z + 5, sx - 1, sy + 2, pos.z + 5, block.GLASS.id)

    mc.setBlocks(sx + 1, sy + 1, pos.z + 5, sx + 1, sy + 2, pos.z + 5, block.GLASS.id)

    mc.setBlocks(pos.x + 1, pos.y + 6, pos.z, pos.x + 6, pos.y + 6, pos.z + 5, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 1, pos.y + 7, pos.z + 1, pos.x + 6, pos.y + 7, pos.z + 4, block.IRON_BLOCK.id)
    mc.setBlocks(pos.x + 1, pos.y + 8, pos.z + 2, pos.x + 6, pos.y + 8, pos.z + 3, block.IRON_BLOCK.id)


def dom2_N():
    d1 = [1, 1, 1, 1, 1]
    d2 = [1, 2, 1, 2, 1]
    d3 = [1, 1, 0, 1, 1]

    # Строим два первых ряда со входом
    for j in range(2):
        for i in range(len(d3)):
            if d3[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d3[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.x = pos.x + 1
        pos.y = pos.y + 1
        pos.x = pos.x - 5

    # строим двасплошных ряда блоков
    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.x = pos.x + 1
        pos.y = pos.y + 1
        pos.x = pos.x - 5

    # строим ряд блоков с окнами
    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.x = pos.x + 1
    pos.y = pos.y + 1
    pos.x = pos.x - 5

    # строим двасплошных ряда блоков
    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.x = pos.x + 1
        pos.y = pos.y + 1
        pos.x = pos.x - 5

    # строим ряд блоков с окнами
    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.x = pos.x + 1
    pos.y = pos.y + 1
    pos.x = pos.x - 5

    for i in range(len(d1)):
        if d1[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d1[i] == 0:
            mc.setBlock(pos.x, pos.y, pos.z, 0)
        pos.x = pos.x + 1

    # строим вторую стену
    pos.y = pos.y - 8
    pos.x = pos.x - 1

    for j in range(4):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for i in range(len(d1)):
        if d1[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d1[i] == 0:
            mc.setBlock(pos.x, pos.y, pos.z, 0)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    # строим третью стену
    pos.y = pos.y - 9
    pos.x = pos.x - 4

    for j in range(4):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for i in range(len(d1)):
        if d1[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d1[i] == 0:
            mc.setBlock(pos.x, pos.y, pos.z, 0)
        pos.z = pos.z + 1

    # строим четвёртую стену
    pos.y = pos.y - 8
    mc.setBlocks(pos.x, pos.y, pos.z, pos.x + 4, pos.y + 8, pos.z, 4)

    # строим крышу
    mc.setBlocks(pos.x, pos.y + 9, pos.z, pos.x + 4, pos.y + 9, pos.z - 5, 20)


def dom2_S():
    d1 = [1, 1, 1, 1, 1]
    d2 = [1, 2, 1, 2, 1]
    d3 = [1, 1, 0, 1, 1]

    # Строим два первых ряда со входом
    for j in range(2):
        for i in range(len(d3)):
            if d3[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z + 5, 4)
            elif d3[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z + 5, 0)
            pos.x = pos.x + 1
        pos.y = pos.y + 1
        pos.x = pos.x - 5

    # строим двасплошных ряда блоков
    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z + 5, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z + 5, 0)
            pos.x = pos.x + 1
        pos.y = pos.y + 1
        pos.x = pos.x - 5

    # строим ряд блоков с окнами
    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z + 5, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z + 5, 20)
        pos.x = pos.x + 1
    pos.y = pos.y + 1
    pos.x = pos.x - 5

    # строим двасплошных ряда блоков
    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z + 5, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z + 5, 0)
            pos.x = pos.x + 1
        pos.y = pos.y + 1
        pos.x = pos.x - 5

    # строим ряд блоков с окнами
    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z + 5, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z + 5, 20)
        pos.x = pos.x + 1
    pos.y = pos.y + 1
    pos.x = pos.x - 5

    for i in range(len(d1)):
        if d1[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z + 5, 4)
        elif d1[i] == 0:
            mc.setBlock(pos.x, pos.y, pos.z + 5, 0)
        pos.x = pos.x + 1

    # строим вторую стену
    pos.y = pos.y - 8
    pos.x = pos.x - 1

    for j in range(4):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for i in range(len(d1)):
        if d1[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d1[i] == 0:
            mc.setBlock(pos.x, pos.y, pos.z, 0)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    # строим третью стену
    pos.y = pos.y - 9
    pos.x = pos.x - 4

    for j in range(4):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for j in range(2):
        for i in range(len(d1)):
            if d1[i] == 1:
                mc.setBlock(pos.x, pos.y, pos.z, 4)
            elif d1[i] == 0:
                mc.setBlock(pos.x, pos.y, pos.z, 0)
            pos.z = pos.z + 1
        pos.y = pos.y + 1
        pos.z = pos.z - 5

    for i in range(len(d2)):
        if d2[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d2[i] == 2:
            mc.setBlock(pos.x, pos.y, pos.z, 20)
        pos.z = pos.z + 1
    pos.y = pos.y + 1
    pos.z = pos.z - 5

    for i in range(len(d1)):
        if d1[i] == 1:
            mc.setBlock(pos.x, pos.y, pos.z, 4)
        elif d1[i] == 0:
            mc.setBlock(pos.x, pos.y, pos.z, 0)
        pos.z = pos.z + 1

    # строим четвёртую стену
    pos.y = pos.y - 8
    mc.setBlocks(pos.x, pos.y, pos.z - 5, pos.x + 4, pos.y + 8, pos.z - 5, 4)

    # строим крышу
    mc.setBlocks(pos.x, pos.y + 9, pos.z, pos.x + 4, pos.y + 9, pos.z - 5, 20)


def bashny():
    # Создаём первую опору башни
    for i in range(5):
        mc.setBlock(x + i, y + i, z, block.STONE.id)

    # Создаём вторую опору башни
    for i in range(5):
        mc.setBlock(x + 10 + i, y + 4 - i, z, block.STONE.id)

    # Создаём площадку на высоте y+5
    mc.setBlocks(x + 5, y + 5, z, x + 10, y + 5, z + 5, block.STONE.id)

    # Создаём третью опору
    for i in range(5):
        mc.setBlock(x + 10 + i, y + 4 - i, z + 5, block.STONE.id)

    # Создаём четвёртую опору
    for i in range(5):
        mc.setBlock(x + i, y + i, z + 5, block.STONE.id)

    # Создаём четыре опоры на высоте y+5
    for w in range(5):
        mc.setBlock(x + 5, y + 5 + w, z, block.STONE.id)
        mc.setBlock(x + 10, y + 5 + w, z, block.STONE.id)
        mc.setBlock(x + 5, y + 5 + w, z + 5, block.STONE.id)
        mc.setBlock(x + 10, y + 5 + w, z + 5, block.STONE.id)

    # создаём площадку на высоте y+10
    mc.setBlocks(x + 5, y + 10, z, x + 10, y + 10, z + 5, block.STONE.id)

    # Создаём две опоры для третьей площадки-крыши
    for i in range(3):
        mc.setBlock(x + 5 + i, y + 11 + i, z, block.STONE.id)
    for i in range(3):
        mc.setBlock(x + 8 + i, y + 13 - i, z, block.STONE.id)

    # Создание третьей площадки-крыши
    mc.setBlocks(x + 7, y + 13, z, x + 8, y + 13, z + 5, block.STONE.id)

    # Создание двух оставшихся опор от второй до третьей площадки
    for i in range(3):
        mc.setBlock(x + 5 + i, y + 11 + i, z + 5, block.STONE.id)
    for i in range(3):
        mc.setBlock(x + 8 + i, y + 13 - i, z + 5, block.STONE.id)

    # Создание в центре башни на второй площадке куба из Золотых и стеклянных блоков с центральным блоком - лава.
    mc.setBlocks(x + 7, y + 6, z + 2, x + 8, y + 6, z + 3, block.GOLD_BLOCK.id)
    mc.setBlocks(x + 6, y + 7, z + 1, x + 9, y + 8, z + 4, block.GLASS.id)
    mc.setBlocks(x + 7, y + 7, z + 2, x + 8, y + 8, z + 3, block.LAVA_FLOWING.id)
    mc.setBlocks(x + 7, y + 9, z + 2, x + 8, y + 9, z + 3, block.GOLD_BLOCK.id)


def most():
    # Создание четырёх опор моста
    mc.setBlocks(x + 1, y, z, x + 1, y + 15, z, 98)
    mc.setBlocks(x + 6, y, z, x + 6, y + 15, z, 98)

    mc.setBlocks(x + 1, y, z + 30, x + 1, y + 15, z + 30, 98)
    mc.setBlocks(x + 6, y, z + 30, x + 6, y + 15, z + 30, 98)

    # Создание площадки моста
    mc.setBlocks(x + 1, y + 5, z, x + 6, y + 5, z + 30, 98)

    # Создание опор для каната
    for i in range(5, 30, 10):
        mc.setBlocks(x + 1, y + 5, z + i, x + 1, y + 10, z + i, 98)
    for i in range(10, 30, 10):
        mc.setBlocks(x + 1, y + 5, z + i, x + 1, y + 15, z + i, 45)
    for i in range(5, 30, 10):
        mc.setBlocks(x + 6, y + 5, z + i, x + 6, y + 10, z + i, 45)
    for i in range(10, 30, 10):
        mc.setBlocks(x + 6, y + 5, z + i, x + 6, y + 15, z + i, 98)

    # Создание каната с одной стороны моста
    for i in range(5):
        mc.setBlock(x + 1, y + 15 - i, z + i, 22)
    for i in range(5):
        mc.setBlock(x + 1, y + 11 + i, z + 5 + i, 22)
    for i in range(5):
        mc.setBlock(x + 1, y + 15 - i, z + 10 + i, 22)
    for i in range(5):
        mc.setBlock(x + 1, y + 11 + i, z + 15 + i, 22)
    for i in range(5):
        mc.setBlock(x + 1, y + 15 - i, z + +20 + i, 22)
    for i in range(5):
        mc.setBlock(x + 1, y + 11 + i, z + 25 + i, 22)

    # Создание каната с другой стороны моста
    for i in range(5):
        mc.setBlock(x + 6, y + 15 - i, z + i, 22)
    for i in range(5):
        mc.setBlock(x + 6, y + 11 + i, z + 5 + i, 22)
    for i in range(5):
        mc.setBlock(x + 6, y + 15 - i, z + 10 + i, 22)
    for i in range(5):
        mc.setBlock(x + 6, y + 11 + i, z + 15 + i, 22)
    for i in range(5):
        mc.setBlock(x + 6, y + 15 - i, z + +20 + i, 22)
    for i in range(5):
        mc.setBlock(x + 6, y + 11 + i, z + 25 + i, 22)

    # Продолжение канатов до земли
    for i in range(17):
        mc.setBlock(x + 6, y + 15 - i, z - 0.5 * i, 22)
    for i in range(17):
        mc.setBlock(x + 1, y + 15 - i, z - 0.5 * i, 22)
    for i in range(17):
        mc.setBlock(x + 6, y + 15 - i, z + 30 + 0.5 * i, 22)
    for i in range(17):
        mc.setBlock(x + 1, y + 15 - i, z + 30 + 0.5 * i, 22)

    # Создание лестниц на мост
    for i in range(5):
        mc.setBlocks(x + 1, y + i, z - 5 + i, x + 6, y + i, z - 5 + i, 35, 14)
    for i in range(5):
        mc.setBlocks(x + 1, y + i, z + 35 - i, x + 6, y + i, z + 35 - i, 35, 14)

    # Создание фрагмента реки
    mc.setBlocks(x - 10, y - 1, z + 3, x + 10, y - 1, z + 27, 8)


def avto1():
    mc.setBlocks(x, y, z, x + 1, y + 2, z + 4, 5)
    mc.setBlocks(x, y + 1, z, x + 1, y + 2, z, 0)
    mc.setBlocks(x, y + 1, z + 2, x + 1, y + 1, z + 2, 0)
    mc.setBlocks(x, y + 1, z + 4, x + 1, y + 2, z + 4, 0)


def avto2():
    mc.setBlocks(x, y, z, x + 4, y + 2, z + 1, 5)
    mc.setBlocks(x, y + 1, z, x, y + 2, z + 1, 0)
    mc.setBlocks(x + 2, y + 1, z, x + 2, y + 1, z + 1, 0)
    mc.setBlocks(x + 4, y + 1, z, x + 4, y + 2, z + 1, 0)


for k in range(len(d11)):
    if d11[k] == 3:
        bashny()
    elif d11[k] == 0:
        mc.setBlocks(pos.x, pos.y, pos.z, pos.x + 5, pos.y + 5, pos.x + 5, 0)
    elif d11[k] == 13:
        dom_E()
    pos.z = pos.z + 20
    x = pos.x
    y = pos.y
    z = pos.z
pos.z = pos.z - 20 * len(d11)
pos.x = pos.x + 15

for k in range(len(d21)):
    if d21[k] == 22:
        dom2_S()
        pos.z = pos.z - 5
    elif d21[k] == 14:
        dom_W()

    pos.z = pos.z + 20
    x = pos.x
    y = pos.y
    z = pos.z
pos.z = pos.z - 20 * len(d21)
pos.x = pos.x + 15

for k in range(len(d31)):
    if d31[k] == 22:
        dom2_S()
        pos.z = pos.z - 5
    elif d31[k] == 21:
        dom2_N()
        pos.z = pos.z - 5
    elif d31[k] == 0:
        mc.setBlocks(pos.x, pos.y, pos.z, pos.x + 5, pos.y + 5, pos.x + 5, 0)

    pos.z = pos.z + 20
    x = pos.x
    y = pos.y
    z = pos.z
pos.z = pos.z - 20 * len(d21)
pos.x = pos.x + 15

for k in range(len(d41)):
    if d41[k] == 22:
        dom2_S()
        pos.z = pos.z - 5
    elif d41[k] == 21:
        dom2_N()
        pos.z = pos.z - 5
    elif d41[k] == 0:
        mc.setBlocks(pos.x, pos.y, pos.z, pos.x + 5, pos.y + 5, pos.x + 5, 0)
    elif d41[k] == 4:
        most()
        pos.z = pos.z + 38

    pos.z = pos.z + 20
    x = pos.x
    y = pos.y
    z = pos.z
pos.z = pos.z - 20 * len(d21)
pos.x = pos.x + 15

for k in range(len(d31)):
    if d31[k] == 22:
        dom2_S()
        pos.z = pos.z - 5
    elif d31[k] == 21:
        dom2_N()
        pos.z = pos.z - 5
    elif d31[k] == 0:
        mc.setBlocks(pos.x, pos.y, pos.z, pos.x + 5, pos.y + 5, pos.x + 5, 0)

    pos.z = pos.z + 20
    x = pos.x
    y = pos.y
    z = pos.z
pos.z = pos.z - 20 * len(d31)
pos.x = pos.x + 15

for k in range(len(d61)):
    if d61[k] == 22:
        dom2_S()
        pos.z = pos.z - 5
    elif d61[k] == 13:
        dom_E()
    elif d61[k] == 0:
        mc.setBlocks(pos.x, pos.y, pos.z, pos.x + 5, pos.y + 5, pos.x + 5, 0)
    elif d61[k] == 21:
        dom2_N()
        pos.z = pos.z - 5
    pos.z = pos.z + 20
    x = pos.x
    y = pos.y
    z = pos.z
pos.z = pos.z - 20 * len(d21)

pos = mc.player.getTilePos()
pos.x = pos.x + 100
x = pos.x
y = pos.y
z = pos.z

for k in range(len(d51)):
    if d51[k] == 3:
        bashny()
    elif d51[k] == 0:
        mc.setBlocks(pos.x, pos.y, pos.z, pos.x + 5, pos.y + 5, pos.x + 5, 0)
    elif d51[k] == 14:
        dom_W()
    pos.z = pos.z + 20
    x = pos.x
    y = pos.y
    z = pos.z

pos = mc.player.getTilePos()

a = pos.x + 5
b = pos.y
d = pos.z + 12
c = [41, 45, 22]
while True:
    x = a
    y = b
    z = d
    while True:
        for i in range(18):

            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 20, pos.y - 1, pos.z + 10, pos.x + 25, pos.y - 1, pos.z + 35, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 88, pos.y - 1, pos.z + 40, pos.x + 100, pos.y - 1, pos.z + 45, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 70, pos.y - 1, pos.z + 125, pos.x + 65, pos.y - 1, pos.z + 145, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 5, pos.y - 1, pos.z + 40, pos.x + 15, pos.y - 1, pos.z + 45, c[ff])
            avto2()
            if mc.getBlock(x, y - 1, z) == 41:
                mc.postToChat("Стоим пять секунд ")
                time.sleep(5)
            elif mc.getBlock(x, y - 1, z) == 45:
                mc.postToChat("Стоим десять секунд ")
                time.sleep(10)
            elif mc.getBlock(x, y - 1, z) == 22:
                mc.postToChat("Движение открыто ")
            x = x + 5
            time.sleep(0.5)
            mc.setBlocks(x - 5, y, z, x, y + 2, z + 1, 0)

        for i in range(24):
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 20, pos.y - 1, pos.z + 10, pos.x + 25, pos.y - 1, pos.z + 35, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 88, pos.y - 1, pos.z + 40, pos.x + 100, pos.y - 1, pos.z + 45, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 70, pos.y - 1, pos.z + 125, pos.x + 65, pos.y - 1, pos.z + 145, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 5, pos.y - 1, pos.z + 40, pos.x + 15, pos.y - 1, pos.z + 45, c[ff])
            avto1()
            if mc.getBlock(x, y - 1, z) == 41:
                mc.postToChat("Стоим пять секунд ")
                time.sleep(5)
            elif mc.getBlock(x, y - 1, z) == 45:
                mc.postToChat("Стоим десять секунд ")
                time.sleep(10)
            elif mc.getBlock(x, y - 1, z) == 22:
                mc.postToChat("Движение открыто ")
            z = z + 5
            time.sleep(0.5)
            mc.setBlocks(x, y, z - 5, x + 1, y + 2, z, 0)

        for i in range(17):
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 20, pos.y - 1, pos.z + 10, pos.x + 25, pos.y - 1, pos.z + 35, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 88, pos.y - 1, pos.z + 40, pos.x + 100, pos.y - 1, pos.z + 45, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 70, pos.y - 1, pos.z + 125, pos.x + 65, pos.y - 1, pos.z + 145, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 5, pos.y - 1, pos.z + 40, pos.x + 15, pos.y - 1, pos.z + 45, c[ff])
            avto2()
            if mc.getBlock(x, y - 1, z) == 41:
                mc.postToChat("Стоим пять секунд ")
                time.sleep(5)
            elif mc.getBlock(x, y - 1, z) == 45:
                mc.postToChat("Стоим десять секунд ")
                time.sleep(10)
            elif mc.getBlock(x, y - 1, z) == 22:
                mc.postToChat("Движение открыто ")
            x = x - 5
            time.sleep(0.5)
            mc.setBlocks(x, y, z, x + 10, y + 2, z + 1, 0)

        for i in range(24):
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 20, pos.y - 1, pos.z + 10, pos.x + 25, pos.y - 1, pos.z + 35, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 88, pos.y - 1, pos.z + 40, pos.x + 100, pos.y - 1, pos.z + 45, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 70, pos.y - 1, pos.z + 125, pos.x + 65, pos.y - 1, pos.z + 145, c[ff])
            ff = random.randint(0, 2)
            mc.setBlocks(pos.x + 5, pos.y - 1, pos.z + 40, pos.x + 15, pos.y - 1, pos.z + 45, c[ff])
            avto1()
            if mc.getBlock(x, y - 1, z) == 41:
                mc.postToChat("Стоим пять секунд ")
                time.sleep(5)
            elif mc.getBlock(x, y - 1, z) == 45:
                mc.postToChat("Стоим десять секунд ")
                time.sleep(10)
            elif mc.getBlock(x, y - 1, z) == 22:
                mc.postToChat("Движение открыто ")
            z = z - 5
            time.sleep(0.5)
            mc.setBlocks(x, y, z, x + 1, y + 2, z + 10, 0)
        break