猫史档案馆


Ct填充速建代码

用户:tatertater查看: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;
        }
    }
})


回复

上一页1 页 / 共 1下一页
tatertater

(你永远不知道我有多少速建代码存稿owo)

以后会给一些 更好玩的(划) 更有用的速建代码

敬请期待o-o

点赞1


评论