Initial commit
This commit is contained in:
26
secondBook/derevannuyKon.py
Normal file
26
secondBook/derevannuyKon.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from mcpi.minecraft import Minecraft
|
||||
mc = Minecraft.create()
|
||||
import mcpi.block as block
|
||||
import minecraftstuff as minecraftstuff
|
||||
import time
|
||||
|
||||
horseBlocks = [
|
||||
minecraftstuff.ShapeBlock(0,0,0,block.WOOD_PLANKS.id),
|
||||
minecraftstuff.ShapeBlock(-1,0,0,block.WOOD_PLANKS.id),
|
||||
minecraftstuff.ShapeBlock(1,0,0,block.WOOD_PLANKS.id),
|
||||
minecraftstuff.ShapeBlock(-1,-1,0,block.WOOD_PLANKS.id),
|
||||
minecraftstuff.ShapeBlock(1,-1,0,block . WOOD_PLANKS.id),
|
||||
minecraftstuff.ShapeBlock(1,1,0,block.WOOD_PLANKS.id),
|
||||
minecraftstuff.ShapeBlock(2,1,0,block.WOOD_PLANKS.id)]
|
||||
|
||||
horsePos = mc.player.getTilePos()
|
||||
horsePos.z = horsePos.z + 1
|
||||
horsePos.y = horsePos.y + 1
|
||||
|
||||
horseShape = minecraftstuff.MinecraftShape(mc,horsePos,horseBlocks)
|
||||
|
||||
for count in range(1,10):
|
||||
horseShape = minecraftstuff.MinecraftShape(mc, horsePos, horseBlocks)
|
||||
time.sleep(1)
|
||||
horseShape.moveBy(1,0,0)
|
||||
horseShape.clear()
|
||||
150
secondBook/labirint.py
Normal file
150
secondBook/labirint.py
Normal file
@@ -0,0 +1,150 @@
|
||||
from mcpi.minecraft import Minecraft as minecraft
|
||||
mc = minecraft.create()
|
||||
import mcpi.block as block
|
||||
import minecraftstuff
|
||||
import time
|
||||
import random
|
||||
import _thread
|
||||
deltype = int(input("вы на земле или в воздухе? если на земле-введите 1, если в воздухе - 2 "))
|
||||
|
||||
|
||||
ARENAX = 10
|
||||
ARENAZ = 20
|
||||
ARENAY = 3
|
||||
def createArena(pos):
|
||||
mc.setBlocks(pos.x - 1 , pos.y, pos.z - 1,pos.x + ARENAX + 1, pos.y - 3, pos.z + ARENAZ + 1, block.GRASS.id)
|
||||
mc.setBlocks(pos.x - 1, pos.y + 1, pos.z - 1,pos.x + ARENAX + 1, pos.y + ARENAY, pos.z + ARENAZ + 1,block.GLASS.id)
|
||||
mc.setBlocks(pos.x, pos.y + 1, pos.z,pos.x + ARENAX, pos.y + ARENAY, pos.z + ARENAZ, block.AIR.id)
|
||||
|
||||
def delArena2(pos):
|
||||
mc.setBlocks(pos.x - 1 , pos.y, pos.z - 1,pos.x + ARENAX + 1, pos.y - 3, pos.z + ARENAZ + 1, block.AIR.id)
|
||||
mc.setBlocks(pos.x - 1, pos.y + 1, pos.z - 1,pos.x + ARENAX + 1, pos.y + ARENAY, pos.z + ARENAZ + 1,block.AIR.id)
|
||||
mc.setBlocks(pos.x, pos.y + 1, pos.z,pos.x + ARENAX, pos.y + ARENAY, pos.z + ARENAZ, block.AIR.id)
|
||||
|
||||
def delArena1(pos):
|
||||
mc.setBlocks(pos.x - 1, pos.y, pos.z - 1, pos.x + ARENAX + 1, pos.y - 3, pos.z + ARENAZ + 1, block.GRASS.id)
|
||||
mc.setBlocks(pos.x - 1, pos.y, pos.z - 1,pos.x + ARENAX + 1, pos.y + ARENAY, pos.z + ARENAZ + 1,block.AIR.id)
|
||||
mc.setBlocks(pos.x, pos.y + 1, pos.z,pos.x + ARENAX, pos.y + ARENAY, pos.z + ARENAZ, block.AIR.id)
|
||||
|
||||
def theWall(arenaPos, wallZPos):
|
||||
wallPos = mc.Vec3(arenaPos.x, arenaPos.y + 1, arenaPos.z + wallZPos)
|
||||
wallBlocks = []
|
||||
for x in range(0, ARENAX + 1):
|
||||
for y in range(1, ARENAY):
|
||||
wallBlocks.append(minecraftstuff.ShapeBlock(x, y, 0, block.BRICK_BLOCK.id))
|
||||
wallShape = minecraftstuff.MinecraftShape(mc, wallPos, wallBlocks)
|
||||
while not gameOver:
|
||||
wallShape.moveBy(0,1,0)
|
||||
time.sleep(1)
|
||||
wallShape.moveBy(0,-1,0)
|
||||
time.sleep(1)
|
||||
def theRiver(arenaPos, riverZPos):
|
||||
RIVERWIDTH = 4
|
||||
BRIDGEWIDTH = 2
|
||||
mc.setBlocks(arenaPos.x, arenaPos.y - 2, arenaPos.z + riverZPos,arenaPos.x + ARENAX, arenaPos.y,arenaPos.z + riverZPos + RIVERWIDTH - 1, block.AIR.id)
|
||||
mc.setBlocks(arenaPos.x, arenaPos.y - 2, arenaPos.z + riverZPos,arenaPos.x + ARENAX, arenaPos.y - 2,arenaPos.z + riverZPos + RIVERWIDTH - 1, block.WATER.id)
|
||||
bridgePos = mc.Vec3(arenaPos.x, arenaPos.y, arenaPos.z + riverZPos + 1)
|
||||
bridgeBlocks = []
|
||||
for x in range(0, BRIDGEWIDTH):
|
||||
for z in range(0, RIVERWIDTH - 2):
|
||||
bridgeBlocks.append(minecraftstuff.ShapeBlock(x, 0, z, block.WOOD_PLANKS.id))
|
||||
bridgeShape = minecraftstuff.MinecraftShape(mc, bridgePos, bridgeBlocks)
|
||||
steps = ARENAX - BRIDGEWIDTH
|
||||
while not gameOver:
|
||||
for left in range(0, steps):
|
||||
bridgeShape.moveBy(1,0,0)
|
||||
time.sleep(1)
|
||||
for right in range(0, steps):
|
||||
bridgeShape.moveBy(-1,0,0)
|
||||
time.sleep(1)
|
||||
def theHoles(arenaPos, holesZPos):
|
||||
|
||||
HOLES = 15
|
||||
HOLESWIDTH = 3
|
||||
while not gameOver:
|
||||
|
||||
holes = []
|
||||
for count in range(0,HOLES):
|
||||
x = random.randint(arenaPos.x, arenaPos.x + ARENAX)
|
||||
z = random.randint(arenaPos.z + holesZPos,arenaPos.z + holesZPos + HOLESWIDTH)
|
||||
holes.append(mc.Vec3(x, arenaPos.y, z))
|
||||
for hole in holes:
|
||||
mc.setBlock(hole.x, hole.y, hole.z, block.WOOL.id, 15)
|
||||
time.sleep(0.25)
|
||||
for hole in holes:
|
||||
mc.setBlocks(hole.x, hole.y, hole.z,
|
||||
hole.x, hole.y - 2, hole.z, block.AIR.id)
|
||||
|
||||
time.sleep(2)
|
||||
for hole in holes:
|
||||
mc.setBlocks(hole.x, hole.y, hole.z,hole.x, hole.y - 2, hole.z, block.GRASS.id)
|
||||
time.sleep(0.25)
|
||||
def createDiamonds(arenaPos, number):
|
||||
for diamond in range(0, number):
|
||||
x = random.randint(arenaPos.x, arenaPos.x + ARENAX)
|
||||
z = random.randint(arenaPos.z, arenaPos.z + ARENAZ)
|
||||
mc.setBlock(x, arenaPos.y + 1, z, block.DIAMOND_BLOCK.id)
|
||||
gameOver = False
|
||||
arenaPos = mc.player.getTilePos()
|
||||
createArena(arenaPos)
|
||||
WALLZ = 10
|
||||
_thread.start_new_thread(theWall, (arenaPos, WALLZ))
|
||||
RIVERZ = 4
|
||||
_thread.start_new_thread(theRiver, (arenaPos, RIVERZ))
|
||||
HOLESZ = 15
|
||||
|
||||
_thread.start_new_thread(theHoles, (arenaPos, HOLESZ))
|
||||
|
||||
LEVELS = 3
|
||||
DIAMONDS = [3,5,9]
|
||||
TIMEOUTS = [30,25,20]
|
||||
level = 0
|
||||
points = 0
|
||||
while not gameOver:
|
||||
createDiamonds(arenaPos, DIAMONDS[level])
|
||||
diamondsLeft = DIAMONDS[level]
|
||||
|
||||
mc.player.setPos(arenaPos.x + 1, arenaPos.y + 1, arenaPos.z + 1)
|
||||
start = time.time()
|
||||
levelComplete = False
|
||||
while not gameOver and not levelComplete:
|
||||
time.sleep(0.1)
|
||||
hits = mc.events.pollBlockHits()
|
||||
for hit in hits:
|
||||
blockHitType = mc.getBlock(hit.pos.x, hit.pos.y, hit.pos.z)
|
||||
if blockHitType == block.DIAMOND_BLOCK.id:
|
||||
|
||||
mc.setBlock(hit.pos.x,hit.pos.y, hit.pos.z, block.AIR.id)
|
||||
|
||||
diamondsLeft = diamondsLeft - 1
|
||||
|
||||
pos = mc.player.getTilePos()
|
||||
|
||||
if pos.y < arenaPos.y:
|
||||
mc.player.setPos(arenaPos.x + 1, arenaPos.y + 1, arenaPos.z + 1)
|
||||
|
||||
if pos.z == arenaPos.z + ARENAZ and diamondsLeft == 0:
|
||||
levelComplete = True
|
||||
|
||||
secondsLeft = TIMEOUTS[level] - (time.time() - start)
|
||||
if secondsLeft < 0:
|
||||
gameOver = True
|
||||
mc.postToChat("Vrema vislo...")
|
||||
|
||||
if levelComplete:
|
||||
points = points + (DIAMONDS[level] * int(secondsLeft))
|
||||
mc.postToChat("Uroven proyden! Ochki - " + str(points))
|
||||
|
||||
level = level + 1
|
||||
|
||||
if level == LEVELS:
|
||||
gameOver = True
|
||||
mc.postToChat("Super! Ti proshol vse urovni")
|
||||
|
||||
mc.postToChat("Igra okonchena. Ochki - " + str(points))
|
||||
time.sleep(1)
|
||||
if deltype == 1:
|
||||
delArena1(arenaPos)
|
||||
else:
|
||||
delArena2(arenaPos)
|
||||
|
||||
16
secondBook/maze1.csv
Normal file
16
secondBook/maze1.csv
Normal file
@@ -0,0 +1,16 @@
|
||||
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
|
||||
1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1
|
||||
1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,1
|
||||
1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1
|
||||
1,1,0,1,0,1,1,1,1,1,1,1,1,0,1,1
|
||||
1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1
|
||||
1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1
|
||||
1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1
|
||||
1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1
|
||||
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
|
||||
1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1
|
||||
1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1
|
||||
1,0,1,0,1,1,1,1,0,1,1,1,1,1,0,1
|
||||
1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1
|
||||
1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1
|
||||
|
54
secondBook/megaChasi.py
Normal file
54
secondBook/megaChasi.py
Normal file
@@ -0,0 +1,54 @@
|
||||
from mcpi.minecraft import Minecraft
|
||||
mc = Minecraft.create()
|
||||
import mcpi.block as block
|
||||
import minecraftstuff
|
||||
import time
|
||||
import datetime
|
||||
import math
|
||||
|
||||
mcdrawing = minecraftstuff.MinecraftDrawing(mc)
|
||||
pos = mc.player.getTilePos()
|
||||
|
||||
def findPointOnCircle(cx, су, radius, angle ) :
|
||||
x = cx + math. sin(math . radians(angle) ) * radius
|
||||
y = су + math .cos(math . radians(angle) ) * radius
|
||||
x = int(round(x, 0 ) )
|
||||
y = int(round(y, 0 ) )
|
||||
return (x,y)
|
||||
|
||||
clockMiddle = pos
|
||||
clockMiddle .y = clockMiddle . y + 25
|
||||
CLOCK_RADIUS = 20
|
||||
HOUR_HAND_LENGTH = 10
|
||||
MIN_HAND_LENGTH = 18
|
||||
SEC_HAND_LENGTH = 20
|
||||
|
||||
mcdrawing.drawCircle(clockMiddle.x, clockMiddle.y,clockMiddle.z, CLOCK_RADIUS, block.DIAMOND_BLOCK.id)
|
||||
|
||||
while True:
|
||||
timeNow = datetime.datetime.now()
|
||||
hours = timeNow.hour
|
||||
if hours >= 12:
|
||||
hours = timeNow.hour - 12
|
||||
minutes = timeNow.minute
|
||||
seconds = timeNow.second
|
||||
hourHandAngle = (360 / 12) * hours
|
||||
hourHandX, hourHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y, HOUR_HAND_LENGTH, hourHandAngle)
|
||||
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z, hourHandX, hourHandY, clockMiddle.z, block.DIRT.id)
|
||||
|
||||
minHandAngle = (360 / 60) * minutes
|
||||
minHandX, minHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y,MIN_HAND_LENGTH, minHandAngle)
|
||||
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z - 1,minHandX, minHandY, clockMiddle.z - 1,block.WOOD_PLANKS.id)
|
||||
|
||||
secHandAngle = (360 / 60) * seconds
|
||||
secHandX, secHandY = findPointOnCircle(clockMiddle.x, clockMiddle.y,SEC_HAND_LENGTH, secHandAngle)
|
||||
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z + 1,secHandX, secHandY, clockMiddle.z + 1, block.STONE.id)
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
mcdrawing.drawLine(
|
||||
clockMiddle.x, clockMiddle.y, clockMiddle.z,hourHandX, hourHandY, clockMiddle.z,block.AIR.id )
|
||||
mcdrawing.drawLine(
|
||||
clockMiddle.x, clockMiddle.y, clockMiddle.z - 1,
|
||||
minHandX, minHandY, clockMiddle.z - 1,block.AIR.id)
|
||||
mcdrawing.drawLine(clockMiddle.x, clockMiddle.y, clockMiddle.z + 1,secHandX, secHandY, clockMiddle.z + 1,block.AIR.id)
|
||||
31
secondBook/object1.csv
Normal file
31
secondBook/object1.csv
Normal file
@@ -0,0 +1,31 @@
|
||||
5,5,5
|
||||
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
|
||||
1,1,1,1,1
|
||||
0,0,0,0,1
|
||||
0,0,0,0,1
|
||||
0,0,0,0,1
|
||||
1,1,1,1,1
|
||||
|
||||
1,1,1,1,1
|
||||
0,0,0,0,1
|
||||
0,0,0,0,1
|
||||
0,0,0,0,1
|
||||
1,1,1,1,1
|
||||
|
||||
1,1,1,1,1
|
||||
0,0,0,0,1
|
||||
0,0,0,0,1
|
||||
0,0,0,0,1
|
||||
1,1,1,1,1
|
||||
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
1,1,1,1,1
|
||||
|
58
secondBook/umniyBlock.py
Normal file
58
secondBook/umniyBlock.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import mcpi.minecraft as minecraft
|
||||
mc = minecraft.Minecraft.create()
|
||||
import minecraftstuff
|
||||
mcdrawing = minecraftstuff.MinecraftDrawing(mc )
|
||||
import mcpi.block as block
|
||||
import time
|
||||
import math
|
||||
|
||||
|
||||
def distanceBetweenPoints(pointl, point2) :
|
||||
xd = point2.x - pointl.x
|
||||
yd = point2.y - pointl.y
|
||||
zd = point2.z - pointl.z
|
||||
return math.sqrt((xd*xd) + (yd*yd) + (zd*zd))
|
||||
|
||||
TOO_FAR_AWAY = 15
|
||||
|
||||
blockMood = "happy"
|
||||
|
||||
friend = mc.player.getTilePos()
|
||||
friend.x = friend.x + 5
|
||||
friend.y = mc.getHeight(friend.x, friend.z)
|
||||
|
||||
mc.setBlock(friend.x, friend.y, friend . z, block.DIAMOND_BLOCK.id )
|
||||
|
||||
mc.postToChat("<block> Privet, drug :). Da, a almazniy block!")
|
||||
|
||||
target = friend.clone()
|
||||
|
||||
while True:
|
||||
pos = mc.player.getTilePos()
|
||||
distance = distanceBetweenPoints(pos, friend)
|
||||
|
||||
if blockMood == "happy":
|
||||
if distance < TOO_FAR_AWAY:
|
||||
target = pos.clone()
|
||||
|
||||
if distance >= TOO_FAR_AWAY:
|
||||
blockMood = "sad"
|
||||
mc.postToChat("<block> Vernis ko mne! Mne grustno:( Obnimi mena!(stan radom so mnoy)")
|
||||
|
||||
elif blockMood == "sad":
|
||||
if distance <= 1:
|
||||
blockMood = "happy"
|
||||
mc.postToChat(" <block> Spasibo! Ti takoy klassniy:) Poshli dalshe")
|
||||
|
||||
if friend != target:
|
||||
blocksBetween = mcdrawing.getLine(friend.x, friend.y, friend.z, target.x, target.y, target.z)
|
||||
|
||||
for blockBetween in blocksBetween[: -1]:
|
||||
mc.setBlock(friend.x, friend.y, friend.z, block.AIR.id)
|
||||
friend = blockBetween.clone()
|
||||
friend.y = mc.getHeight(friend.x, friend.z)
|
||||
mc.setBlock(friend.x, friend.y, friend.z,block.DIAMOND_BLOCK.id)
|
||||
time.sleep(0.25)
|
||||
target = friend.clone()
|
||||
|
||||
time.sleep(0.25)
|
||||
67
secondBook/umniyBlockNewFunction.py
Normal file
67
secondBook/umniyBlockNewFunction.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import mcpi.minecraft as minecraft
|
||||
mc = minecraft.Minecraft.create()
|
||||
import minecraftstuff
|
||||
mcdrawing = minecraftstuff.MinecraftDrawing(mc )
|
||||
import mcpi.block as block
|
||||
import time
|
||||
import math
|
||||
import random
|
||||
|
||||
def distanceBetweenPoints(pointl, point2) :
|
||||
xd = point2.x - pointl.x
|
||||
yd = point2.y - pointl.y
|
||||
zd = point2.z - pointl.z
|
||||
return math.sqrt((xd*xd) + (yd*yd) + (zd*zd))
|
||||
|
||||
TOO_FAR_AWAY = 15
|
||||
|
||||
blockMood = "happy"
|
||||
|
||||
friend = mc.player.getTilePos()
|
||||
friend.x = friend.x + 5
|
||||
friend.y = mc.getHeight(friend.x, friend.z)
|
||||
|
||||
mc.setBlock(friend.x, friend.y, friend . z, block.DIAMOND_BLOCK.id )
|
||||
|
||||
mc.postToChat("<block> Privet, drug :). Da, a almazniy block!")
|
||||
|
||||
target = friend.clone()
|
||||
|
||||
while True:
|
||||
pos = mc.player.getTilePos()
|
||||
distance = distanceBetweenPoints(pos, friend)
|
||||
|
||||
if blockMood == "happy":
|
||||
if distance < TOO_FAR_AWAY:
|
||||
target = pos.clone()
|
||||
|
||||
if distance >= TOO_FAR_AWAY:
|
||||
blockMood = "sad"
|
||||
mc.postToChat("<block> Vernis ko mne! Mne grustno:( Obnimi mena!(stan radom so mnoy)")
|
||||
|
||||
elif blockMood == "sad":
|
||||
if distance <= 1:
|
||||
blockMood = "happy"
|
||||
mc.postToChat(" <block> Spasibo! Ti takoy klassniy:) Poshli dalshe")
|
||||
if random.randint(1, 100) == 100:
|
||||
blockMood = "hadenough"
|
||||
mc.postToChat("<block> Vse, hvatit. Ti mena brosaesh! A uhozhu ot teba! I bolshe ne razgovarivau")
|
||||
|
||||
elif blockMood == "hadenough":
|
||||
if random.randint(1, 50) == 50:
|
||||
if distance <= 1:
|
||||
blockMood = "happy"
|
||||
mc.postToChat(" <block> ladno,spasibo! Ti takoy klassniy:) Poshli dalshe. A proshau vse obidi! ;)")
|
||||
|
||||
if friend != target:
|
||||
blocksBetween = mcdrawing.getLine(friend.x, friend.y, friend.z, target.x, target.y, target.z)
|
||||
|
||||
for blockBetween in blocksBetween[: -1]:
|
||||
mc.setBlock(friend.x, friend.y, friend.z, block.AIR.id)
|
||||
friend = blockBetween.clone()
|
||||
friend.y = mc.getHeight(friend.x, friend.z)
|
||||
mc.setBlock(friend.x, friend.y, friend.z,block.DIAMOND_BLOCK.id)
|
||||
time.sleep(0.25)
|
||||
target = friend.clone()
|
||||
|
||||
time.sleep(0.25)
|
||||
76
secondBook/vtorzenieInoplanetan.py
Normal file
76
secondBook/vtorzenieInoplanetan.py
Normal file
@@ -0,0 +1,76 @@
|
||||
from mcpi.minecraft import Minecraft
|
||||
mc = Minecraft.create()
|
||||
import mcpi.block as block
|
||||
import minecraftstuff as minecraftstuff
|
||||
mcdrawing = minecraftstuff.MinecraftDrawing(mc)
|
||||
import time
|
||||
import math
|
||||
import random
|
||||
|
||||
|
||||
def distanceBetweenPoints(point1, point2):
|
||||
xd = point2.x - point1.x
|
||||
yd = point2.y - point1.y
|
||||
zd = point2.z - point1.z
|
||||
return math.sqrt((xd*xd) + (yd*yd) + (zd*zd))
|
||||
|
||||
HOVER_HEIGHT = 15
|
||||
ALIEN_TAUNTS = ["<àîȉɇĦЅ>Ti ne smozes ubegat veshno",
|
||||
"<àîȉɇĦЅ>Soprotivlenie bespolzno!",
|
||||
"<àîȉɇĦЅ>Mi vsevo lish hotim bit druzami"]
|
||||
|
||||
|
||||
alienPos = mc.player.getTilePos()
|
||||
alienPos.y = alienPos.y + 50
|
||||
mode = "landing"
|
||||
|
||||
alienBlocks = [
|
||||
minecraftstuff.ShapeBlock(-1,0,0, block.WOOL.id, 5),
|
||||
minecraftstuff.ShapeBlock(0,0,-1, block.WOOL.id, 5),
|
||||
minecraftstuff.ShapeBlock(1,0,0, block.WOOL.id, 5),
|
||||
minecraftstuff.ShapeBlock(0,0,1, block.WOOL.id, 5),
|
||||
minecraftstuff.ShapeBlock(0,-1,0, block.GLOWSTONE_BLOCK.id),
|
||||
minecraftstuff . ShapeBlock(0,1,0,block.GLOWSTONE_BLOCK.id)]
|
||||
|
||||
alienShape = minecraftstuff.MinecraftShape(mc, alienPos, alienBlocks)
|
||||
|
||||
while mode != "missionaccomplished":
|
||||
playerPos = mc.player.getTilePos()
|
||||
if mode == "landing":
|
||||
mc.postToChat("<àîȉɇĦЅ>Mi prishli ne s mirom-pozaluysta, panikuyte!")
|
||||
alienTarget = playerPos.clone()
|
||||
alienTarget.y = alienTarget.y + HOVER_HEIGHT
|
||||
mode = "attack"
|
||||
elif mode == "attack":
|
||||
if alienPos.x == playerPos.x and alienPos.z == playerPos.z:
|
||||
mc.postToChat("<àîȉɇĦЅ>Teper ti nash! ")
|
||||
|
||||
mc.setBlocks(0,50,0,6,56,6, block.BEDROCK.id)
|
||||
mc.setBlocks(1,51,1,5,55,5, block.AIR.id)
|
||||
mc.setBlock(3,55,3, block.GLOWSTONE_BLOCK.id)
|
||||
|
||||
mc.player.setTilePos(3,51,5)
|
||||
time.sleep(20)
|
||||
mc.postToChat(" <àîȉɇĦЅ>ne samoe interesboe-otpravit nazad" )
|
||||
time.sleep(2)
|
||||
|
||||
mc.player.setTilePos(playerPos.x, playerPos.y, playerPos.z)
|
||||
|
||||
mc.setBlocks(0,50,0,6,56,6, block.AIR.id)
|
||||
mode = "missionaccomplished"
|
||||
|
||||
else:
|
||||
mc.postToChat(ALIEN_TAUNTS[random.randint(0, len(ALIEN_TAUNTS) - 1)])
|
||||
alienTarget = playerPos.clone()
|
||||
alienTarget.y = alienTarget.y + HOVER_HEIGHT
|
||||
|
||||
if alienPos != alienTarget:
|
||||
blocksBetween = mcdrawing.getLine(alienPos.x, alienPos.y, alienPos.z,alienTarget.x, alienTarget.y, alienTarget.z)
|
||||
|
||||
for blockBetween in blocksBetween:
|
||||
alienShape.move(blockBetween.x, blockBetween.y, blockBetween.z)
|
||||
time.sleep(0.25)
|
||||
alienPos = alienTarget.clone()
|
||||
|
||||
alienShape.clear()
|
||||
|
||||
Reference in New Issue
Block a user