https://pastein.ru/t/M3V

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


import time
import random
import mcpi.block as block
import collections
from mcpi.minecraft import Minecraft

collections.Iterable = collections.abc.Iterable

mc = Minecraft.create()
resp = mc.player.getTilePos()

sh = 11
mc.setBlocks(resp.x, resp.y, resp.z, resp.x + sh + 1, resp.y + 5, resp.z + sh + 1, block.AIR.id)
mc.setBlocks(resp.x + 1, resp.y, resp.z + 1, resp.x + sh, resp.y + 5, resp.z + sh, block.STONE_BRICK.id)
mc.setBlocks(resp.x + 2, resp.y, resp.z + 2, resp.x + sh - 1, resp.y + 4, resp.z + sh - 1, block.AIR.id)

mc.setBlocks(resp.x + 1, resp.y - 1, resp.z + 1, resp.x + sh, resp.y - 1, resp.z + sh, block.SANDSTONE.id)
mc.setBlocks(resp.x + 6, resp.y, resp.z + 1, resp.x + 6, resp.y + 1, resp.z + 1, block.AIR.id)

mc.setBlocks(resp.x, resp.y + 5, resp.z, resp.x + sh + 1, resp.y + 5, resp.z + sh + 1, block.COBBLESTONE.id)
mc.setBlocks(resp.x + 1, resp.y + 6, resp.z + 1, resp.x + sh, resp.y + 6, resp.z + sh, block.COBBLESTONE.id)
mc.setBlocks(resp.x + 2, resp.y + 7, resp.z + 2, resp.x + sh - 1, resp.y + 7, resp.z + sh - 1, block.COBBLESTONE.id)
mc.setBlocks(resp.x + 3, resp.y + 8, resp.z + 3, resp.x + sh - 2, resp.y + 8, resp.z + sh - 2, block.COBBLESTONE.id)

x1 = resp.x
x2 = resp.x + sh + 2
z1 = resp.z
z2 = resp.z + sh + 2

game = True
completed = False

while game:
    pos = mc.player.getTilePos()
    if x1 < pos.x < x2 and z1 < pos.z < z2:
        mc.postToChat("Пожалуйста, добро пожаловать в загадочный дом!")
        time.sleep(2)
        mc.setBlocks(resp.x + 6, resp.y, resp.z + 1, resp.x + 6, resp.y + 1, resp.z + 1, block.STONE_BRICK.id)
        mc.postToChat("Мы тебе поможем спрятаться от огненного монстра. Собери 10 литров волшебной воды и огненный монстр будет побежден!")
        time.sleep(3)
        mission = True
        liters = 0
        total = 20
        mc.postToChat("Вода скоро появится! Нужно её собрать!")
        time.sleep(3)
        mc.setBlocks(resp.x + 1, resp.y + 5, resp.z + 1, resp.x + sh, resp.y + 5, resp.z + sh, block.GLOWSTONE_BLOCK.id)
        while mission:
            xw = random.randint(resp.x + 2, resp.x + sh - 1)
            yw = resp.y
            zw = random.randint(resp.z + 2, resp.z + sh - 1)
            w = block.WATER_STATIONARY.id
            mc.setBlock(xw, yw, zw, w)
            timer = 1
            while timer > 0:
                time.sleep(2)
                pos = mc.player.getTilePos()
                target = mc.getBlock(pos.x, pos.y, pos.z)
                if target == w:
                    liters += 1
                    mc.postToChat("Ты собрал " + str(liters) + " л. воды. В источнике осталось - " + str(total))
                    timer = 0
                timer -= 1
            mc.setBlock(xw, yw, zw, block.AIR.id)
            total -= 1
            mc.postToChat("В источнике осталось - " + str(total) + " л.")
            if liters == 10:
                mc.postToChat("Ты собрал всю воду и мы смогли победить огненного монстра!!! Можешь смело идти гулять. Заходи в гости, когда будет время :)")
                mc.setBlocks(resp.x + 6, resp.y, resp.z + 1, resp.x + 6, resp.y + 1, resp.z + 1, block.AIR.id)
                time.sleep(3)
                mc.setBlocks(resp.x + 1, resp.y + 5, resp.z + 1, resp.x + sh, resp.y + 5, resp.z + sh, block.STONE_BRICK.id)
                total = 20
                mission = False
                game = False
                completed = True
            if total == 0:
                mc.postToChat("О нет! Мы не успели!!!")
                mc.setBlocks(resp.x + 2, resp.y, resp.z + 2, resp.x + sh - 1, resp.y + 4, resp.z + sh - 1, block.FIRE.id)
                time.sleep(1)
                mc.postToChat("Нам конец!")
                time.sleep(5)
                mc.setBlocks(resp.x, resp.y, resp.z, resp.x + sh + 1, resp.y + 8, resp.z + sh + 1, block.AIR.id)
                mc.setBlocks(resp.x, resp.y - 1, resp.z, resp.x + sh + 1, resp.y - 1, resp.z + sh + 1, block.GRASS.id)
                mission = False
                game = False
    else:
        time.sleep(0.5)
        mc.setBlock(pos.x, pos.y, pos.z, block.FIRE.id)

while completed:
    time.sleep(0.5)
    mc.setBlocks(resp.x + 1, resp.y - 1, resp.z + 1, resp.x + sh, resp.y - 1, resp.z + sh, block.DIAMOND_BLOCK.id)
    time.sleep(0.5)
    mc.setBlocks(resp.x + 1, resp.y - 1, resp.z + 1, resp.x + sh, resp.y - 1, resp.z + sh, block.IRON_BLOCK.id)
    time.sleep(0.5)
    mc.setBlocks(resp.x + 1, resp.y - 1, resp.z + 1, resp.x + sh, resp.y - 1, resp.z + sh, block.GOLD_BLOCK.id)