用户:tater查看:0 回复:1 评论:0 创建时间:2023-07-17T14:51:20
Ct填充速建代码
适用于非官方指定大小地图
用法和123+类似
此速建代码会持续更新
(想要其他速建代码可私聊)
用法如下:
代码如下:
/*Ct填充*/
console.clear();
const admin_Ct = ['tater'];/*在此添加名称*/
let ability_Ct = ['ENR', 'BLO', 'POS', 'FIN', 'REP', 'INT', 'clear'];
function ENR_Ct(message, entity) {
let ship = entity.position;
for (var x = Math.floor(ship.x) - 3; x <= Math.floor(ship.x) + 3; x++) {
for (var y = Math.floor(ship.y) - 3; y <= Math.floor(ship.y) + 3; y++) {
for (var z = Math.floor(ship.z) - 3; z <= Math.floor(ship.z) + 3; z++) {
if (voxels.getVoxelId(x, y, z) === voxels.id(message) && voxels.getVoxelId(x, y, z) !== 0) {
if (!entity.first_Ct) {
entity.data_Ct[0] = x;
entity.data_Ct[1] = y;
entity.data_Ct[2] = z;
entity.voxel_on_Ct[0] = voxels.getVoxel(x, y + entity.pos_Ct, z);
entity.voxel_in_Ct[0] = voxels.getVoxel(x, y + entity.pos_Ct + 1, z);
entity.first_Ct = true;
}
else {
entity.data_Ct[3] = x;
entity.data_Ct[4] = y;
entity.data_Ct[5] = z;
entity.voxel_on_Ct[1] = voxels.getVoxel(x, y + entity.pos_Ct, z);
entity.voxel_in_Ct[1] = voxels.getVoxel(x, y + entity.pos_Ct + 1, z);
entity.first_Ct = false;
break;
}
}
}
}
}
console.log(`录取成功,方块名称:${message},data:${entity.data_Ct}`)
}
const Fill_Ct = {
'BLO': {/*方块*/
Fill_Block: async function (entity) {
if (entity.data_Ct[3] === -1) return;
for (let x1 = (entity.data_Ct[0] <= entity.data_Ct[3] ? entity.data_Ct[0] : entity.data_Ct[3]); x1 <= (entity.data_Ct[0] >= entity.data_Ct[3] ? entity.data_Ct[0] : entity.data_Ct[3]); x1++) {
for (let y1 = (entity.data_Ct[1] <= entity.data_Ct[4] ? entity.data_Ct[1] : entity.data_Ct[4]); y1 <= (entity.data_Ct[1] >= entity.data_Ct[4] ? entity.data_Ct[1] : entity.data_Ct[4]); y1++) {
for (let z1 = (entity.data_Ct[2] <= entity.data_Ct[5] ? entity.data_Ct[2] : entity.data_Ct[5]); z1 <= (entity.data_Ct[2] >= entity.data_Ct[5] ? entity.data_Ct[2] : entity.data_Ct[5]); z1++) {
voxels.setVoxelId(x1, y1, z1, (entity.voxel_on_Ct[0] == 0 ? entity.voxel_on_Ct[1] : entity.voxel_on_Ct[0]));
}
}
await sleep(0.01);
}
entity.player.directMessage('方块填充完毕')
}
},
'FIN': {/*查找*/
Fill_Block: async function (message) {
let shape = voxels.shape;
let number = 0;
for (let x = 0; x <= shape.x; x++) {
for (let y = 0; y <= shape.y; y++) {
for (let z = 0; z <= shape.z; z++) {
if (voxels.getVoxel(x, y, z) == voxels.id(message)) {
number++;
}
}
}
}
console.log(` ${message} 方块有 ${number} 个`);
}
},
'REP': {/*方块替换*/
Fill_Block: async function (entity) {
if (entity.data_Ct[3] === -1) return;
for (let x1 = (entity.data_Ct[0] <= entity.data_Ct[3] ? entity.data_Ct[0] : entity.data_Ct[3]); x1 <= (entity.data_Ct[0] >= entity.data_Ct[3] ? entity.data_Ct[0] : entity.data_Ct[3]); x1++) {
for (let y1 = (entity.data_Ct[1] <= entity.data_Ct[4] ? entity.data_Ct[1] : entity.data_Ct[4]); y1 <= (entity.data_Ct[1] >= entity.data_Ct[4] ? entity.data_Ct[1] : entity.data_Ct[4]); y1++) {
for (let z1 = (entity.data_Ct[2] <= entity.data_Ct[5] ? entity.data_Ct[2] : entity.data_Ct[5]); z1 <= (entity.data_Ct[2] >= entity.data_Ct[5] ? entity.data_Ct[2] : entity.data_Ct[5]); z1++) {
if (voxels.getVoxel(x1, y1, z1) == (entity.voxel_in_Ct[0] == 0 ? entity.voxel_in_Ct[1] : entity.voxel_in_Ct[0])) {
voxels.setVoxelId(x1, y1, z1, (entity.voxel_on_Ct[0] == 0 ? entity.voxel_on_Ct[1] : entity.voxel_on_Ct[0]));
}
}
}
await sleep(0.001);
}
entity.player.directMessage('方块替换完毕')
}
}
};
async function init_Ct(entity) {
entity.data_Ct = [-1, -1, -1, -1, -1, -1];
entity.voxel_on_Ct = [0, 0];
entity.voxel_in_Ct = [0, 0];
entity.pos_Ct = 1;
entity.first_Ct = false;
entity.player.directMessage('Ct初始化成功');
}
world.onChat(async ({ entity, message }) => {
if (!admin_Ct.includes(entity.player.name)) return;
if (!entity.pos_Ct) { await init_Ct(entity); }
let message_new = message.split(';');
for (let a = 0; a < message_new.length; a++) {
let c = message_new[a].split(/\s+/);
if (c[0] !== 'C') { return; }
if (!ability_Ct.includes(c[1])) { entity.player.directMessage('wrong'); console.warn(`Warn: ${c[1]} is not defined`); continue; }
switch (c[1]) {
case 'INT':
console.log(
`名称:Ct填充\n
作者:tater\n
鸣谢:cloud 三角函数 Nelson 及其他试用、提供技术支持者\n
介绍:一种适合 非 官 方 给 定 大 小 地图的工具\n
用法:\n
(注意空格)(程序可用分号间隔)(BLO请注意关注地图指定方块数量)\n
1.C ENR 方块名称\n
如C ENR add\n
记录方块位置\n
2.C BLO 方块名称\n
如C BLO\n
填充两个方块形成的长方体/正方体\n
只需在其中一个方块的POS位置放置要填充的方块即可(不放为清除)\n
3.C FIN 方块名称\n
查找方块有多少个,不限制方块名称\n
4.C REP\n
类似BLO的放置方法,但需要在其中一个方块的POS位置上放置两个方块\n
从下往上为替换方块、被替换方块(不放为清除)\n
5.C POS\n
例如:\n
C POS 1\n
默认值:1\n
6.C clear\n
清空控制台\n
留言:如想要其他速建或给出建议请私聊(Q在总群能搜索到)\n
谢谢@@`,
);
continue;
case 'ENR':
await ENR_Ct(c[2], entity); continue;
case 'FIN':
await Fill_Ct[c[1]].Fill_Block(c[2]); continue;
case 'POS':
entity.pos_Ct = parseInt(c[2]);
if (!entity.pos_Ct || entity.pos_Ct == 0) {
entity.pos_Ct = 1;
} entity.player.directMessage(`已将pos设置为 ${entity.pos_Ct}`);
continue;
case 'clear':
console.clear(); continue;
default:
await Fill_Ct[c[1]].Fill_Block(entity);
continue;
}
}
})