C++宫殿
#include <iostream>
#include <string>
#include <windows.h>
#include "minecraft.h"
using namespace std;
TxMinecraft mc;
int x1();
int y1();
int z1();
void no1();
void no2();
void no3();
void no4();
void no5();
void no6();
void no7();
void no8();
void no9();
void no4_1(int t_x){
int x=x1(),y=y1(),z=z1(),id=44,data=15;
for(int i=0;i<3;i++){
mc.setBlock(x+t_x+i,y,z+45,id,data);
mc.setBlock(x,y,z+t_x+i,id,data);
mc.setBlock(x+45,y,z+t_x+i,id,data);
mc.setBlock(x+t_x+i,y,z,id,data);
}
}
void no6_1(int i);
void no7_1(int i,int x,int y,int z,int data);
void no8_1(int i,int x,int y,int z,int data);
int main(int argc, char** argv) {
cout<<"开始连接";
string server="luyi";
string key="c0e82bcbb33d4da78f849760464c61a4";
bool con=mc.ConnectMinecraft(server,key);
if(!con){
cout<<"连接失败";
} else{
cout<<"连接成功";
}
no1();
no2();
no3();
no4();
no5();
no6();
no7();
no8();
no9();
return 0;
}
int x1(){
int x=23;
return x;
}
int y1(){
int y=65;
return y;
}
int z1(){
int z=517;
return z;
}
void no1(){
cout<<"成功";
//地基
int x=x1();
int y=y1();
int z=z1();
int id=98;
int data=0;//石砖
for(int i=0;i<46;i++){
mc.setBlock(x+i,y,z,id,data);
mc.setBlock(x,y,z+i,id,data);
mc.setBlock(x+45,y,z+i,id,data);
mc.setBlock(x+i,y,z+45,id,data);
}
//向上提高一格用草方块围成一个圈
id=2;//草方块
x-=1;
y-=1;
z-=1;
for(int i=0;i<48;i++){
mc.setBlock(x+i,y,z,id,data);
mc.setBlock(x,y,z+i,id,data);
mc.setBlock(x+47,y,z+i,id,data);
mc.setBlock(x+i,y,z+47,id,data);
}
//用石墙围起来
x=x1();
y=y1();
z=z1();
x=x-2;
z=z-2;
y-=1;
id=139; //石砖
for(int i=0;i<50;i++){
mc.setBlock(x+i,y,z,id,data);
mc.setBlock(x,y,z+i,id,data);
mc.setBlock(x+49,y,z+i,id,data);
mc.setBlock(x+i,y,z+49,id,data);
}
//格外在做一圈
x=x1(),y=y1(),z=z1();
x=x-3;
z=z-3;
y-=2;
id=98; //石砖
for (int i=0;i<52;i++){
mc.setBlock(x+i,y,z,id,data);
mc.setBlock(x,y,z+i,id,data);
mc.setBlock(x+51,y,z+i,id,data);
mc.setBlock(x+i,y,z+51,id,data);
}
//用石墙围起来
x=x1();
y=y1();
z=z1();
x=x-4;
z=z-4;
y-=2;
id=139; //石砖
for(int i=0;i<54;i++){
mc.setBlock(x+i,y,z,id,data);
mc.setBlock(x,y,z+i,id,data);
mc.setBlock(x+53,y,z+i,id,data);
mc.setBlock(x+i,y,z+53,id,data) ;
}
//柱子之间的连接点 石英块2格高度
x=x1(),y=y1(),z=z1(),id=155;
y=y1()+7;
for(int i=0;i<46;i++){
for(int t_y=0;t_y<2;t_y++){
//mc.setBlock(x+i,y+1,z-1,96,4) #活板门 关闭状态
//mc.setBlock(x-1,y+1,z+i,96,6) #活板门 关闭状态
//mc.setBlock(x+i,y+1,z+46,96,5) #活板门 关闭状态
//mc.setBlock(x+46,y+1,z+i,96,7) #活板门 关闭状态
mc.setBlock(x+i,y+t_y,z,id,data);
mc.setBlock(x+i,y+t_y,z+45,id,data);
mc.setBlock(x+45,y+t_y,z+i,id,data);
mc.setBlock(x,y+t_y,z+i,id,data);
}
}
}
void no2(){
//做柱子 石砖上4个角都放置上红色染色粘土
//柱子之间的连接点 石英块2格高度
int x=x1(),y=y1(),z=z1(),id=155,data=0;
y=y1()+7;
for(int i=0;i<46;i++){
for(int t_y=0;t_y<2;t_y++){
mc.setBlock(x+i,y+1,z-1,96,4); //活板门 关闭状态
mc.setBlock(x-1,y+1,z+i,96,6); //活板门 关闭状态
mc.setBlock(x+i,y+1,z+46,96,5); //活板门 关闭状态
mc.setBlock(x+46,y+1,z+i,96,7); //活板门 关闭状态
mc.setBlock(x+i,y+t_y,z,id,data);
mc.setBlock(x+i,y+t_y,z+45,id,data);
mc.setBlock(x+45,y+t_y,z+i,id,data);
mc.setBlock(x,y+t_y,z+i,id,data);
}
}
//从4个点出发,每隔5格放置一个染色粘土。每个点都是向外延伸4个
x=x1(),y=y1(),z=z1();
y+=1;
id=251,data=14; //红色混凝土
//在每个染色粘土的最高处,分别倒置一个橡木楼梯。
for(int t_y=0;t_y<8;t_y++){
for(int i=0;i<4;i++){
mc.setBlock(x+i*6,y+t_y,z,id,data);
mc.setBlock(x+45-i*6,y+t_y,z,id,data);
mc.setBlock(x+i*6,y+t_y,z+45,id,data);
mc.setBlock(x+45-i*6,y+t_y,z+45,id,data);
//mc.setBlock(x+6,y,z,id,data);
mc.setBlock(x,y+t_y,z+i*6,id,data) ;
mc.setBlock(x,y+t_y,z+45-i*6,id,data);
mc.setBlock(x+45,y+t_y,z+i*6,id,data);
mc.setBlock(x+45,y+t_y,z+45-i*6,id,data);
if (t_y ==7){
mc.setBlock(x-1,y+t_y,z+i*6,53,4); //放楼梯
mc.setBlock(x-1,y+t_y,z+45-i*6,53,4);
mc.setBlock(x+46,y+t_y,z+i*6,53,5);
mc.setBlock(x+46,y+t_y,z+45-i*6,53,5);
mc.setBlock(x+i*6,y+t_y,z-1,53,6);
mc.setBlock(x+45-i*6,y+t_y,z-1,53,6);
mc.setBlock(x+i*6,y+t_y,z+46,53,7);
mc.setBlock(x+45-i*6,y+t_y,z+46,53,7);
}
}
}
//注意边缘放2个楼梯
mc.setBlock(x-1,y+7,z-1,53,4);
mc.setBlock(x+46,y+7,z-1,53,5);
mc.setBlock(x+46,y+7,z+46,53,7);
mc.setBlock(x-1,y+7,z+46,53,7);
}
void no3(){
//做柱子之间的连接 石英楼梯倒置
int x=x1(),y=y1(),z=z1();
y=y+6;
for(int i=0;i<3;i++){
mc.setBlock(x+1+i*6,y,z,156,5);
mc.setBlock(x+5+i*6,y,z,156,4);
mc.setBlock(x+7+i*6,y,z,156,5);
mc.setBlock(x+45-1-i*6,y,z,156,4);
mc.setBlock(x+45-5-i*6,y,z,156,5);
mc.setBlock(x+45-7-i*6,y,z,156,4);
}
for(int i=0;i<3;i++){
mc.setBlock(x+1+i*6,y,z+45,156,5);
mc.setBlock(x+5+i*6,y,z+45,156,4);
mc.setBlock(x+7+i*6,y,z+45,156,5);
mc.setBlock(x+45-1-i*6,y,z+45,156,4);
mc.setBlock(x+45-5-i*6,y,z+45,156,5);
mc.setBlock(x+45-7-i*6,y,z+45,156,4);
}
for(int i=0;i<3;i++){
mc.setBlock(x,y,z+1+i*6,156,7);
mc.setBlock(x,y,z+5+i*6,156,6);
mc.setBlock(x,y,z+7+i*6,156,7);
mc.setBlock(x,y,z+45-1-i*6,156,6);
mc.setBlock(x,y,z+45-5-i*6,156,7);
mc.setBlock(x,y,z+45-7-i*6,156,6);
}
for(int i=0;i<3;i++){
mc.setBlock(x+45,y,z+1+i*6,156,7);
mc.setBlock(x+45,y,z+5+i*6,156,6);
mc.setBlock(x+45,y,z+7+i*6,156,7);
mc.setBlock(x+45,y,z+45-1-i*6,156,6);
mc.setBlock(x+45,y,z+45-5-i*6,156,7);
mc.setBlock(x+45,y,z+45-7-i*6,156,6);
}
}
void no4(){
//处理每根柱子之间的细节
//把石英换成半砖
int x=x1(),y=y1(),z=z1(),id=44,data=15;
y=y+7;
//X轴
for(int i=0;i<3;i++){
mc.setBlock(x+2+i,y,z,id,data);
mc.setBlock(x+8+i,y,z,id,data);
mc.setBlock(x+14+i,y,z,id,data);
mc.setBlock(x+21+i,y,z,id,data);
mc.setBlock(x+22+i,y,z,id,data);
mc.setBlock(x+29+i,y,z,id,data);
mc.setBlock(x+35+i,y,z,id,data);
mc.setBlock(x+41+i,y,z,id,data);
}
//简化
no4_1(2);
no4_1(8);
no4_1(14);
no4_1(21);
no4_1(22);
no4_1(29);
no4_1(35);
no4_1(41);
//橡木栅栏围一圈
y=y1()+1;
id=189,data=0;
for(int t_x=0;t_x<46;t_x++){
if(t_x==0||t_x==6||t_x==12||t_x==18||t_x==27||t_x==33||t_x==39||t_x==45){
//跳过柱子
continue;
}
if(t_x>18 && t_x<27){
//跳过大门
continue;
}
mc.setBlock(x+t_x,y,z,id,data);
mc.setBlock(x+t_x,y,z+45,id,data);
mc.setBlock(x,y,z+t_x,id,data);
mc.setBlock(x+45,y,z+t_x,id,data);
}
}
void no5(){
//铺地板
int x=x1(),y=y1(),z=z1();
x+=1;
z+=1;
int id=5,data=5;
mc.fillBlocks(x,y,z,x+43,y,z+43,id,data);
}
void no6(){
//铺楼梯
int x=x1(),y=y1(),z=z1(),id=126,data=2;
no6_1(18);
no6_1(27);
for(int i=0;i<8;i++){
//X轴
mc.setBlock(x+19+i,y,z,id,data);
mc.setBlock(x+19+i,y-1,z-1,id,data+8);
mc.setBlock(x+19+i,y-1,z-2,id,data);
mc.setBlock(x+19+i,y-2,z-3,id,data+8);
mc.setBlock(x+19+i,y-2,z-4,id,data);
//对面的
mc.setBlock(x+19+i,y,z+45,id,data);
mc.setBlock(x+19+i,y-1,z+45+1,id,data+8);
mc.setBlock(x+19+i,y-1,z+45+2,id,data);
mc.setBlock(x+19+i,y-2,z+45+3,id,data+8);
mc.setBlock(x+19+i,y-2,z+45+4,id,data);
//Z轴
mc.setBlock(x,y,z+19+i,id,data);
mc.setBlock(x-1,y-1,z+19+i,id,data+8);
mc.setBlock(x-2,y-1,z+19+i,id,data);
mc.setBlock(x-3,y-2,z+19+i,id,data+8);
mc.setBlock(x-4,y-2,z+19+i,id,data);
//Z轴
mc.setBlock(x+45,y,z+19+i,id,data);
mc.setBlock(x+45+1,y-1,z+19+i,id,data+8);
mc.setBlock(x+45+2,y-1,z+19+i,id,data);
mc.setBlock(x+45+3,y-2,z+19+i,id,data+8);
mc.setBlock(x+45+4,y-2,z+19+i,id,data);
}
}
void no6_1(int i){
int x=x1(),y=y1(),z=z1(),id=126,data=2;
//X轴
mc.setBlock(x+i,y,z-1,44,5); //石砖半砖
mc.setBlock(x+i,y-1,z-2,44,5+8);
mc.setBlock(x+i,y-1,z-3,44,5) ;
mc.setBlock(x+i,y-2,z-4,98,0); //石砖
//X轴对面的
mc.setBlock(x+i,y,z+45+1,44,5) ;//石砖半砖
mc.setBlock(x+i,y-1,z+45+2,44,5+8);
mc.setBlock(x+i,y-1,z+45+3,44,5);
mc.setBlock(x+i,y-2,z+45+4,98,0) ;//石砖
//Z轴
mc.setBlock(x-1,y,z+i,44,5); //石砖半砖
mc.setBlock(x-2,y-1,z+i,44,5+8) ;
mc.setBlock(x-3,y-1,z+i,44,5);
mc.setBlock(x-4,y-2,z+i,98,0); //石砖
//Z轴
mc.setBlock(x+45+1,y,z+i,44,5); //石砖半砖
mc.setBlock(x+45+2,y-1,z+i,44,5+8);
mc.setBlock(x+45+3,y-1,z+i,44,5) ;
mc.setBlock(x+45+4,y-2,z+i,98,0); //石砖
}
void no7(){
/*
开始造屋顶了
首先在距离石英一格远的活板门上面放置一圈【石砖】
然后在【石砖】外围放置一圈【石砖半砖】
*/
int x=x1(),y=y1(),z=z1(),id=98,data=0;
y+=9;
z-=1;
x-=1;
mc.drawLine(x,y,z,x+47,y,z,id,data);
mc.drawLine(x,y,z+47,x+47,y,z+47,id,data);
mc.drawLine(x,y,z,x,y,z+47,id,data);
mc.drawLine(x+47,y,z,x+47,y,z+47,id,data);
//外围在放一圈半砖
z-=1;
x-=1;
id=44,data=5;
mc.drawLine(x,y,z,x+49,y,z,id,data);
mc.drawLine(x,y,z+49,x+49,y,z+49,id,data);
mc.drawLine(x,y,z,x,y,z+49,id,data);
mc.drawLine(x+49,y,z,x+49,y,z+49,id,data);
//石砖向上,依次递增半格的半砖,总共累积6层
x=x1(),y=y1(),z=z1(),id=44,data=5;
y+=10;
mc.drawLine(x,y,z,x+45,y,z,id,data);
mc.drawLine(x,y,z+45,x+45,y,z+45,id,data);
mc.drawLine(x,y,z,x,y,z+45,id,data);
mc.drawLine(x+45,y,z,x+45,y,z+45,id,data);
//以下几层代码做优化
x+=1;
z+=1;
no7_1(44,x,y,z,data);
x+=1;
z+=1;
y+=1;
no7_1(42,x,y,z,data);
x+=1;
z+=1;
no7_1(40,x,y,z,data);
x+=1;
z+=1;
y+=1;
no7_1(38,x,y,z,data);
x+=1;
z+=1;
no7_1(36,x,y,z,data);
}
void no7_1(int i,int x,int y,int z,int data){
int id=44;
if(i==44||i==40||i==36){
data+=8;
} else{
data=5;
}
for(int level=0;level<i;level++){
mc.setBlock(x+level,y,z,id,data);
mc.setBlock(x+level,y,z+i-1,id,data);
mc.setBlock(x,y,z+level,id,data);
mc.setBlock(x+i-1,y,z+level,id,data);
}
}
void no8(){
int x=x1(),y=y1(),z=z1(),id=251,data=14;
//第二层柱子和墙壁
x+=5;
z+=5;
y+=13;
for(int i=0;i<36;i++){
if (i%5==0){
id=251,data=14; //是柱子
}else{
id=155,data=0; //是墙壁
mc.setBlock(x+i,y+1,z-1,96,4); //活板门 关闭状态
mc.setBlock(x-1,y+1,z+i,96,6); //活板门 关闭状态
mc.setBlock(x+i,y+1,z+36,96,5); //活板门 关闭状态
mc.setBlock(x+36,y+1,z+i,96,7); //活板门 关闭状态
}
for(int j=0;j<2;j++){
mc.setBlock(x+i,y+j,z,id,data) ;
mc.setBlock(x+i,y+j,z+35,id,data);
mc.setBlock(x,y+j,z+i,id,data);
mc.setBlock(x+35,y+j,z+i,id,data);
}
}
//外围放一层石砖
id=98,data=0;
z-=1;
x-=1;
y+=2;
for(int i=0;i<38;i++){
mc.setBlock(x+i,y,z,id,data);
mc.setBlock(x+i,y,z+37,id,data);
mc.setBlock(x,y,z+i,id,data);
mc.setBlock(x+37,y,z+i,id,data);
}
//外围在放一圈半砖
z-=1;
x-=1;
id=44,data=5;
mc.drawLine(x,y,z,x+39,y,z,id,data);
mc.drawLine(x,y,z+39,x+39,y,z+39,id,data);
mc.drawLine(x,y,z,x,y,z+39,id,data);
mc.drawLine(x+39,y,z,x+39,y,z+39,id,data);
//半砖依次上升 以下几层代码做优化
x+=1;
z+=1;
no8_1(38,x,y,z,data);
x+=1;
z+=1;
y+=1;
no8_1(36,x,y,z,data);
x+=1;
z+=1;
no8_1(34,x,y,z,data);
x+=1;
z+=1;
y+=1;
no8_1(32,x,y,z,data);
x+=1;
z+=1;
no8_1(30,x,y,z,data);
x+=1;
z+=1;
y+=1;
no8_1(28,x,y,z,data);
x+=1;
z+=1;
no8_1(26,x,y,z,data);
x+=1;
z+=1;
y+=1;
no8_1(24,x,y,z,data);
x+=1;
z+=1;
no8_1(22,x,y,z,data);
//封顶
data=13;
mc.fillBlocks(x,y,z,x+21,y,z+21,id,data);
}
void no8_1(int i,int x,int y,int z,int data){
int id=44;
if(i==38||i==34||i==30||i==26||i==22){
data+=8;
}else{
data=5;
}
for(int level=0;level<i;level++){
mc.setBlock(x+level,y,z,id,data);
mc.setBlock(x+level,y,z+i-1,id,data);
mc.setBlock(x,y,z+level,id,data);
mc.setBlock(x+i-1,y,z+level,id,data);
}
}
void no9(){
//屋顶放置“吻兽”用半砖,依次3格,2格,1格,放置4个角
int x=x1(),y=y1(),z=z1(),id=44,data=5;
x+=12;
y+=20;
z+=12;
//1.
mc.setBlock(x,y,z,98,0);
mc.setBlock(x,y+1,z,id,data);
mc.setBlock(x+1,y,z,98,0);
mc.setBlock(x,y,z+1,98,0);
mc.setBlock(x+2,y,z,id,data);
mc.setBlock(x,y,z+2,id,data);
//2.
mc.setBlock(x,y,z+21,98,0);
mc.setBlock(x,y+1,z+21,id,data);
mc.setBlock(x+1,y,z+21,98,0);
mc.setBlock(x,y,z+20,98,0);
mc.setBlock(x+2,y,z+21,id,data);
mc.setBlock(x,y,z+19,id,data);
//3.
mc.setBlock(x+21,y,z+21,98,0);
mc.setBlock(x+21,y+1,z+21,id,data);
mc.setBlock(x+21,y,z+20,98,0);
mc.setBlock(x+20,y,z+21,98,0);
mc.setBlock(x+21,y,z+19,id,data);
mc.setBlock(x+19,y,z+21,id,data);
//4.
mc.setBlock(x+21,y,z,98,0);
mc.setBlock(x+21,y+1,z,id,data);
mc.setBlock(x+21,y,z+1,98,0);
mc.setBlock(x+20,y,z,98,0);
mc.setBlock(x+21,y,z+2,id,data);
mc.setBlock(x+19,y,z,id,data);
}
浙公网安备 33010602011771号