猫史档案馆


【岛3】喵战士代码公开

用户:治愈绾兮治愈绾兮查看:21 回复:8 评论:21 创建时间:2021-07-31T14:12:27


由于喵战士现在也不火了,所以我决定把代码公开,如果你要复制到你地图里,记得分几次,不然会卡喵的。以下是代码:

(async () => {
    while (true) {
        let hongdui = 0;
        let landui = 0;
        for (let i = 1; i <= 127; i++) {
            for (let j = 1; j <= 127; j++) {
                if (voxels.getVoxelId(i, 8, j) == 105) {
                    hongdui += 1;
                } else if (voxels.getVoxelId(i, 8, j) == 363) {
                    landui += 1;
                }
            }
        }
        if (hongdui > landui) {
            world.say("时间到,红队胜利,红队:" + hongdui + "分,蓝队:" + landui + "分")
        } else if (landui > hongdui) {
            world.say("时间到,蓝队胜利,红队:" + hongdui + "分,蓝队:" + landui + "分")
        } else {
            world.say("时间到,平局,红队:" + hongdui + "分,蓝队:" + landui + "分")
        }
        world.say("3秒后开启新的一局")
        await sleep(1000)
        world.say("2秒后开启新的一局")
        await sleep(1000)
        world.say("1秒后开启新的一局")
        for (y = 8; y < 128; y++) {
            for (x = 0; x < 128; x++) {
                for (z = 0; z < 128; z++) {
                    if (voxels.getVoxel(x, y, z) == voxels.id("red") || voxels.getVoxel(x, y, z) == voxels.id("blue") || voxels.getVoxel(x, y, z) == voxels.id("black_glass")) {
                        voxels.setVoxel(x, y, z, voxels.id("stainless_steel"))
                    }
                }
            }
        }
        world.addZone({
            selector: "entity",
            bounds: {
                lo: [0, 8, 0],
                hi: [128, 60, 128],
            },
            fogEnabled: true,
            fogColor: new Box3RGBColor(255, 255, 255),
            fogDensity: 0,
        })
        world.querySelectorAll("player").forEach((x) => {
            hongduirenshu = 0;
            landuirenshu = 0;
            x.player.jinbi = 50;
            x.player.zhushou = 1;
            x.player.zidan = 0;
            x.player.youqitong = 0;
            x.player.yanwudan = 0;
            x.player.huojianpao = 0;
            x.player.shunyiqi = 0;
            x.player.dilei = 0;
            x.player.jujiqiangzidan = 0;
            x.player.sanchajishiyongcishu = 0;
            x.player.zidongtiaoyue = 0;
            x.player.keyi = 1;
            x.player.shiyong = 0;
            x.player.jisha = 0;
            x.player.siwang = 0;
            if (x.player.duiwu == 1) {
                hongduirenshu += 1;
                world.say(x.player.name + "加入了红队")
                x.position.set(124, 10, 124)
                x.player.backupplayermesh = x.mesh;
                x.player.spawnPoint.set(124, 10, 124)
                x.player.color = new Box3RGBColor(1000, 0, 0);
            } else {
                landuirenshu += 1;
                world.say(x.player.name + "加入了蓝队")
                x.position.set(3, 10, 3)
                x.player.backupplayermesh = x.mesh;
                x.player.spawnPoint.set(3, 10, 3)
                x.player.color = new Box3RGBColor(0, 0, 1000);
            }
        })
        await sleep(1000)
        world.say("初始化成功,新的一局现在开始")
        await sleep(600000);
    }
})()
//地图初始化
const TEST_PLAYER = ["尹氏集团CEO", "机器人5号", "小斌js", "没名某人", "MX的一只萌新"]
const DASHEN1 = ["尹氏集团CEO", "机器人5号", "小斌js", "MX的一只萌新", "史诗喵", "没名某人", "追梦喵aowC"]
const DASHEN2 = ["尹氏集团CEO", "机器人5号", "小斌js", "MX的一只萌新", "史诗喵", "没名某人"]
const DASHEN3 = ["尹氏集团CEO", "机器人5号", "小斌js", "MX的一只萌新", "没名某人"]
var BOOM = []
var messages = [];
var pointer = 0;
hongduirenshu = 0;
landuirenshu = 0;
world.addCollisionFilter("player", "player");
console.clear();
//玩家初始化
world.onPlayerJoin(async ({ entity }) => {
    entity.player.directMessage("输入操作说明查看操作说明,输入武器说明查看武器说明,输入大神说明查看大神说明")
    entity.player.cameraMode = "fps";
    entity.player.enable3DCursor = true;
    entity.player.jinbi = 50;
    entity.player.zhushou = 1;
    entity.player.zidan = 0;
    entity.player.youqitong = 0;
    entity.player.yanwudan = 0;
    entity.player.huojianpao = 0;
    entity.player.shunyiqi = 0;
    entity.player.dilei = 0;
    entity.player.jujiqiangzidan = 0;
    entity.player.sanchajishiyongcishu = 0;
    entity.player.zidongtiaoyue = 0;
    entity.player.keyi = 1;
    entity.player.shiyong = 0;
    entity.player.jisha = 0;
    entity.player.siwang = 0;
    if (TEST_PLAYER.includes(entity.player.name)) {
        world.say("欢迎作者 " + entity.player.name + " 进入地图!");
    }
    if (DASHEN1.includes(entity.player.name)) {
        world.say("欢迎1级大神 " + entity.player.name + " 进入地图!")
    }
    if (DASHEN2.includes(entity.player.name)) {
        world.say("欢迎2级大神 " + entity.player.name + " 进入地图! ")
    }
    if (DASHEN3.includes(entity.player.name)) {
        world.say("欢迎3级大神 " + entity.player.name + " 进入地图! ")
    }
    if (hongduirenshu < landuirenshu) {
        entity.player.duiwu = 1;
    } else if (hongduirenshu > landuirenshu) {
        entity.player.duiwu = 2;
    } else {
        entity.player.duiwu = 1 + Math.round(Math.random() * 1)
    }
    if (entity.player.duiwu == 1) {
        hongduirenshu += 1;
        world.say(entity.player.name + "加入了红队")
        entity.position.set(124, 10, 124)
        entity.player.backupplayermesh = entity.mesh;
        entity.player.spawnPoint.set(124, 10, 124)
        entity.player.color = new Box3RGBColor(1000, 0, 0);
    } else {
        landuirenshu += 1;
        world.say(entity.player.name + "加入了蓝队")
        entity.position.set(3, 10, 3)
        entity.player.backupplayermesh = entity.mesh;
        entity.player.spawnPoint.set(3, 10, 3)
        entity.player.color = new Box3RGBColor(0, 0, 1000);
    }
})
//退出
world.onPlayerLeave(async ({ entity }) => {
    if (entity.player.duiwu == 1) {
        hongduirenshu -= 1;
    } else {
        landuirenshu -= 1;
    }
    if (entity.player.shiyong == 1) {
        world.addZone({
            selector: "entity",
            bounds: {
                lo: [0, 8, 0],
                hi: [128, 60, 128],
            },
            fogEnabled: true,
            fogColor: new Box3RGBColor(255, 255, 255),
            fogDensity: 0,
        })
    }
});
//语言
world.onChat(async ({ entity, message }) => {
    if (message === "挂机") {
        entity.position.set(63, 4, 63)
        entity.player.color = new Box3RGBColor(1000, 1000, 1000);
        entity.player.jinbi = 0;
        entity.player.zidan = 0;
        entity.player.youqitong = 0;
        entity.player.yanwudan = 0;
        entity.player.huojianpao = 0;
        entity.player.jujiqiangzidan = 0;
        entity.player.sanchajishiyongcishu = 0;
    } else if (message === "操作说明") {
        entity.player.directMessage("你的初始金币为50,可在基地旁边的自助商店购买武器和消耗品,左键使用武器,右键切换主手,比赛后看哪队在地上铺的格子数多哪队就胜利")
    } else if (message === "武器说明") {
        entity.player.directMessage("子弹:用来喵,喵有10第伤害和击退,打在地上可生成1*1的色块;油漆桶:用来喷漆,倒在地上可生成5*5的色块;喵:用来生成烟雾,使用1次可生成烟雾15秒;火箭炮:用来喷漆,发射在地上可生成15*15的色块;瞬移器:用来移动,左键点击一个位置可瞬移到那里;喵:伤害50,换弹较慢;三叉戟:上古神器,伤害100000")
    } else if (message === "大神说明") {
        entity.player.directMessage("击杀>30且喵<10可申请1级大神,击杀>50且喵<20可申请2级大神,击杀>100且喵<40可申请3级大神;一级大神增加无限子弹特权,2级大神增加无限油漆桶特权,3级大神增加无限瞬移器特权;申请途径:https://shequ.codemao.cn/community/367907,帖子名称:【喵战士】大神申请区!")
    }
})
world.onChat(async ({ entity, message }) => {
    if (entity.player) {
        if (TEST_PLAYER.includes(entity.player.name)) {
            entity.player.mess = message;
            var name = entity.player.mess.slice(3);
            world.querySelectorAll("player").forEach((x) => {
                if (x.player.name == name) {
                    x.position.x = 63;
                    x.position.y = 4;
                    x.position.z = 63;
                    world.say("作者把" + x.player.name + "关进了监狱")
                    x.player.directMessage("你被作者关进了监狱")
                }
            })
        }
    }
})
//得金币
world.onVoxelContact(async ({ voxel, entity }) => {
    const block = voxels.id("white");
    if (voxel === block && entity.player.keyi == 1) {
        entity.player.directMessage("获得1金币");
        entity.player.jinbi += 1;
        entity.player.keyi = 0;
        await sleep(500)
        entity.player.keyi = 1;
    }
})
//自动跳跃
world.onVoxelContact(async ({ entity, axis, x, y, z }) => {
    if (entity.isPlayer && entity.player.zidongtiaoyue == 1) {
        if (axis.y < 1 && axis.y > -1) {
            if (voxels.getVoxelId(x, y + 1, z) == voxels.id("air")) {
                entity.velocity.y = 1.25;
            }
        }
    }
});
//三叉戟代码
world.onPlayerJoin(async ({ entity }) => {
    entity.enableDamage = true;
    entity.player.onPress(async ({ button, raycast: { hitEntity, direction } }) => {
        if (button !== "action0" || !hitEntity || entity.player.zhushou != 8 || entity.player.sanchajishiyongcishu <= 0) {
            return;
        }
        if (entity.player.duiwu == hitEntity.player.duiwu) {
            entity.player.directMessage("禁止打队友")
        } else {
            if (TEST_PLAYER.includes(entity.player.name)) {
                hitEntity.hurt(100, {
                    attacker: entity,
                });
            } else {
                if (TEST_PLAYER.includes(hitEntity.player.name)) {
                    entity.player.directMessage("禁止打作者")
                } else {
                    hitEntity.hurt(1000000, {
                        attacker: entity,
                    });
                }
            }
            await sleep(500)
        }
    });
});
//喵代码
world.onPlayerJoin(async ({ entity }) => {
    entity.enableDamage = true;
    entity.player.onPress(async ({ button, raycast: { hitEntity, direction } }) => {
        if (button !== "action0" || !hitEntity || entity.player.zhushou != 7 || entity.player.jujiqiangzidan <= 0) {
            return;
        }
        if (entity.player.duiwu == hitEntity.player.duiwu) {
            entity.player.directMessage("禁止打队友")
        } else {
            if (TEST_PLAYER.includes(entity.player.name)) {
                hitEntity.hurt(100, {
                    attacker: entity,
                });
            } else {
                if (TEST_PLAYER.includes(hitEntity.player.name)) {
                    entity.player.directMessage("禁止打作者")
                } else {
                    hitEntity.hurt(99, {
                        attacker: entity,
                    });
                }
            }
            await sleep(500)
        }
    });
});
//射击
world.onPlayerJoin(async ({ entity }) => {
    entity.enableDamage = true;
    entity.player.onPress(async ({ button, raycast: { hitEntity, direction } }) => {
        if (button !== "action0" || !hitEntity || entity.player.zhushou != 1 || entity.player.zidan <= 0) {
            return;
        }
        if (entity.player.duiwu == hitEntity.player.duiwu) {
            entity.player.directMessage("禁止打队友")
        } else {
            if (TEST_PLAYER.includes(entity.player.name)) {
                hitEntity.hurt(100, {
                    attacker: entity,
                });
            } else {
                if (TEST_PLAYER.includes(hitEntity.player.name)) {
                    entity.player.directMessage("禁止打作者")
                } else {
                    hitEntity.hurt(10, {
                        attacker: entity,
                    });
                }
            }
            await sleep(500)
        }
    });
});
world.onTakeDamage(async ({ entity, attacker, damage }) => {
    entity.player.directMessage("[剩余HP: " + entity.hp + "]: 你受到了 " + damage + " 点伤害");
});
world.onDie(async ({ entity, attacker }) => {
    entity.player.dilei = 0;
    entity.player.jinbi = 50;
    entity.player.zidan = 0;
    entity.player.youqitong = 0;
    entity.player.yanwudan = 0;
    entity.player.huojianpao = 0;
    entity.player.shunyiqi = 0;
    entity.player.siwang += 1;
    entity.player.jujiqiangzidan = 0;
    entity.player.sanchajishiyongcishu = 0;

    if (!attacker || attacker == null) { entity.player.forceRespawn(); entity.player.directMessage("击杀:" + entity.player.jisha + " 喵:" + entity.player.siwang) }
    try {
        world.say(attacker.player.name + "击杀了" + entity.player.name + ",获得金币:" + entity.player.jinbi)
        attacker.player.jisha += 1;
        attacker.player.jinbi += entity.player.jinbi;
        entity.player.siwang += 1;
        attacker.player.directMessage("击杀:" + attacker.player.jisha + " 喵:" + attacker.player.siwang)
        entity.player.directMessage("击杀:" + entity.player.jisha + " 喵:" + entity.player.siwang)
        entity.player.forceRespawn();
    } catch (e) {
        return
    }
});
//喷漆
world.onPress(async ({ button, entity, raycast }) => {
    if (button == "action0" && entity.player.zhushou == 1) {
        if (entity.player.zidan <= 0) {
            entity.player.directMessage("你没子弹了!")
            return;
        }
        entity.player.zidan -= 1;
        entity.player.directMessage("当前剩余子弹:" + entity.player.zidan)
        const pos = raycast.voxelIndex;
        if (entity.player.duiwu == 1) {
            if (voxels.getVoxelId(pos.x, pos.y, pos.z) == 247 || voxels.getVoxelId(pos.x, pos.y, pos.z) == 363) {
                voxels.setVoxel(pos.x, pos.y, pos.z, "red")
            }
        } else {
            if (voxels.getVoxelId(pos.x, pos.y, pos.z) == 247 || voxels.getVoxelId(pos.x, pos.y, pos.z) == 105) {
                voxels.setVoxel(pos.x, pos.y, pos.z, "blue")
            }
        }
    }
})


world.onPress(async ({ button, entity, raycast }) => {
    if (button == "action0" && entity.player.zhushou == 7) {
        if (entity.player.jujiqiangzidan <= 0) {
            entity.player.directMessage("你没子弹了!")
            return;
        }
        entity.player.jujiqiangzidan -= 1;
        entity.player.directMessage("当前剩余喵子弹:" + entity.player.jujiqiangzidan)
    }
})

world.onPress(async ({ button, entity, raycast }) => {
    if (button == "action0" && entity.player.zhushou == 8) {
        if (entity.player.sanchajishiyongcishu <= 0) {
            entity.player.directMessage("你没有使用次数了!!")
            return;
        }
        entity.player.sanchajishiyongcishu -= 1;
        entity.player.directMessage("当前剩余三叉戟使用次数:" + entity.player.sanchajishiyongcishu)
    }
})
world.onPress(async ({ button, entity, raycast }) => {
    if (button == "action0" && entity.player.zhushou == 2) {
        if (entity.player.youqitong <= 0) {
            entity.player.directMessage("你没有油漆桶了")
            return;
        }
        entity.player.youqitong -= 1;
        entity.player.directMessage("当前油漆桶:" + entity.player.youqitong)
        const pos = raycast.voxelIndex;
        if (entity.player.duiwu == 1) {
            for (let a = -2; a <= 2; a++) {
                for (let b = -2; b <= 2; b++) {
                    if (voxels.getVoxelId(pos.x + a, pos.y, pos.z + b) == 247 || voxels.getVoxelId(pos.x + a, pos.y, pos.z + b) == 363) {
                        voxels.setVoxel(pos.x + a, pos.y, pos.z + b, "red")
                    }
                }
            }
        } else {
            for (let c = -2; c <= 2; c++) {
                for (let d = -2; d <= 2; d++) {
                    if (voxels.getVoxelId(pos.x + c, pos.y, pos.z + d) == 247 || voxels.getVoxelId(pos.x + c, pos.y, pos.z + d) == 105) {
                        voxels.setVoxel(pos.x + c, pos.y, pos.z + d, "blue")
                    }
                }
            }
        }
    }
})
world.onPress(async ({ button, entity, raycast }) => {
    if (button == "action0" && entity.player.zhushou == 4) {
        if (entity.player.huojianpao <= 0) {
            entity.player.directMessage("你没有火箭炮了")
            return;
        }
        entity.player.huojianpao -= 1;
        entity.player.directMessage("当前火箭炮:" + entity.player.huojianpao)
        await sleep(5000)
        const pos = raycast.voxelIndex;
        if (entity.player.duiwu == 1) {
            for (let a = -7; a <= 7; a++) {
                for (let b = -7; b <= 7; b++) {
                    if (voxels.getVoxelId(pos.x + a, pos.y, pos.z + b) == 247 || voxels.getVoxelId(pos.x + a, pos.y, pos.z + b) == 363) {
                        voxels.setVoxel(pos.x + a, pos.y, pos.z + b, "red")
                    }
                }
            }
        } else {
            for (let c = -7; c <= 7; c++) {
                for (let d = -7; d <= 7; d++) {
                    if (voxels.getVoxelId(pos.x + c, pos.y, pos.z + d) == 247 || voxels.getVoxelId(pos.x + c, pos.y, pos.z + d) == 105) {
                        voxels.setVoxel(pos.x + c, pos.y, pos.z + d, "blue")
                    }
                }
            }
        }
    }
})
//喵
world.onPress(async ({ entity, button, raycast: { hitPosition } }) => {
    if (button == "action0" && entity.player.zhushou == 3) {
        if (entity.player.yanwudan <= 0) {
            entity.player.directMessage("你没有喵了")
            return;
        }
        if (entity.player.shiyong == 0) {
            entity.player.yanwudan -= 1;
            entity.player.directMessage("当前喵:" + entity.player.yanwudan)
            world.say("有人使用了喵,15秒后消散")
            entity.player.shiyong = 1;
            world.addZone({
                selector: "entity",
                bounds: {
                    lo: [0, 8, 0],
                    hi: [128, 60, 128],
                },
                fogEnabled: true,
                fogColor: new Box3RGBColor(255, 255, 255),
                fogDensity: 0.2,
            })
            await sleep(15000)
            world.addZone({
                selector: "entity",
                bounds: {
                    lo: [0, 8, 0],
                    hi: [128, 60, 128],
                },
                fogEnabled: true,
                fogColor: new Box3RGBColor(255, 255, 255),
                fogDensity: 0,
            })
            entity.player.shiyong = 0;
        } else {
            entity.player.directMessage("已有喵!")
        }
    }
})
//火箭炮
const Quat = new Box3Quaternion(0, 1, 0, 0)
const Quat2 = new Box3Quaternion(0, 1, 0, 0)
var roc = world.querySelector(".炮弹")
roc.meshOrientation.set(0, 1, -1, 0)
var flyTime = 5;
world.onPress(async ({ entity, button, raycast: { hitPosition } }) => {
    if (button == "action0" && entity.player.zhushou == 4) {
        world.querySelectorAll(".火箭炮").forEach(async (e) => {
            var direction = hitPosition.sub(e.position);
            var orientation = Quat.rotateY(Math.atan2(direction.z, direction.x))
            var orientation2 = Quat2.rotateY(Math.atan2(direction.z, direction.x))
            e.meshOrientation.copy(orientation)
            var crted = world.createEntity();
            crted.ctrl = false;
            crted.meshOrientation.copy(orientation2);
            crted.position.set(e.position.x, e.position.y, e.position.z);
            crted.mesh = roc.mesh;
            crted.meshScale = roc.meshScale;
            crted.gravity = true; crted.fixed = false;
            crted.launcher = e;
            crted.addTag("lchr");
            crted.mass = 1;
            crted.particleLimit = 1000;
            crted.particleRate = 1000;
            crted.particleColor = [new Box3RGBColor(1, 1, 0), new Box3RGBColor(1, 0, 0)]
            crted.particleSize = [5, 4]
            crted.particleAcceleration.set(0, -5, 0)
            crted.particleVelocitySpread.set(5, 1, 5);
            crted.particleLifetime = 2;
            crted.gravity = false;
            crted.velocity.y = 2;
            for (let i = 0; i < 10; i++) {
                crted.velocity.x += direction.x / 200;
                crted.velocity.z += direction.z / 200;
                await sleep(30);
            }
            crted.tar = hitPosition;
            crted.ctrl = true;
            setTimeout(() => { crted.destroy() }, flyTime * 1000)
        })
    }
})
world.onVoxelContact(async ({ entity, x, y, z }) => {
    if (entity.hasTag("lchr")) {
        entity.particleVelocity.set(0, 30, 0);
        await sleep(500);
        entity.destroy()
    }
})
world.onTick(async () => {
    world.querySelectorAll(".lchr").forEach((e) => {
        var orientation2 = Quat2.rotateY(Math.atan2(e.velocity.z, e.velocity.x))
        e.meshOrientation.copy(orientation2);
        e.meshOrientation.y = -Math.atan2(e.velocity.y, Math.sqrt(e.velocity.x * e.velocity.x + e.velocity.z * e.velocity.z))
        e.particleVelocity.set(-e.velocity.x, -e.velocity.y, -e.velocity.z);
        if (e.ctrl) {
            var direction = e.tar.sub(e.position);
            e.velocity.x = (direction.x + direction.x / 2) / 20;
            e.velocity.y -= 0.1;
            e.velocity.z = (direction.z + direction.z / 2) / 20;
        }
    })
})
//瞬移器
world.onPress(async ({ entity, button, raycast: {
    voxelIndex, normal, distance } }) => {
    if (button == "action0" && entity.player.zhushou == 5) {
        if (entity.player.shunyiqi <= 0) {
            entity.player.directMessage("你没有瞬移器了")
            return;
        }
        let v = voxelIndex.add(normal);
        if (distance == "Infinity") {
            entity.player.directMessage("这里是虚空")
            return;
        }
        entity.hurt(distance / 5, {
            attacker: entity,
        });
        entity.player.shunyiqi -= 1;
        entity.player.directMessage("当前瞬移器:" + entity.player.shunyiqi)
        entity.position.set(v.x, v.y + 2, v.z)
    }
});
//地雷
function boom(x, y, z) {
    world.createEntity({
        mesh: 'mesh/方块.vb',
        id: 'boom',
        position: new Box3Vector3(x, y, z),
        collides: false,
        fixed: true,
        gravity: false,
    })
    world.querySelectorAll('#boom').forEach(async (x) => {
        x.meshInvisible = true
        Object.assign(x, {
            particleLimit: 100,
            particleLifetime: 1,
            particleRate: 400,
            particleRateSpread: 200,
            particleSize: [7, 7, 7, 7, 7],
            particleColor: [
                new Box3RGBColor(1, 1, 0),
                new Box3RGBColor(1, 0.75, 0),
                new Box3RGBColor(1, 0.5, 0),
                new Box3RGBColor(1, 0.25, 0),
                new Box3RGBColor(1, 0, 0),
            ],
            particleVelocitySpread: new Box3Vector3(10, 10, 10),
            particleNoise: 6,
        });
        await sleep(1000 * 2)
        x.destroy()
    })
}
world.onPress(async ({ button, entity, raycast: { voxelIndex, normal } }) => {
    if (button == Box3ButtonType.ACTION0 && entity.player.zhushou == 6) {
        if (entity.player.dilei <= 0) {
            entity.player.directMessage("你没有地雷了")
            return;
        }
        if (voxels.name(voxels.getVoxelId(voxelIndex.x, voxelIndex.y, voxelIndex.z)) != 'stainless_steel') {
            entity.player.directMessage("此位置无法放置")
            return;
        }
        entity.player.dilei -= 1;
        entity.player.directMessage("当前地雷:" + entity.player.dilei)
        voxels.setVoxel(voxelIndex.x, voxelIndex.y, voxelIndex.z, 'black_glass')
        BOOM.push([voxelIndex.x, voxelIndex.y - 1, voxelIndex.z, entity.player.name])
        entity.player.directMessage("放置成功")
    }
})
world.onPlayerJoin(({ entity }) => {
    entity.onVoxelContact(({ x, y, z, voxel }) => {
        const block = voxels.id("black_glass");
        if (voxel === block && entity.player.keyi == 1) {
            entity.hurt(50)
            boom(x, y, z)
            voxels.setVoxel(x, y, z, 247);
        }
    });
});
//雷达
const npc = world.querySelector('#雷达');
npc.enableInteract = true;
npc.interactRadius = 5;
npc.interactHint = npc.id;
npc.onInteract(async ({ entity }) => {
    entity.player.enable3DCursor = false;
    entity.position.set(63, 128, 66)
    await entity.player.dialog({
        type: Box3DialogType.TEXT,
        title: "雷达",
        lookEye: entity,
        lookTarget: npc,
        content: "地面实时监控",
    });
    entity.player.enable3DCursor = true;
    entity.position.set(60, 13, 66)
});
//主手
world.onPress(async ({ button, entity }) => {
    if (button == "action1") {
        try {
            const result = await entity.player.dialog({
                type: Box3DialogType.SELECT,
                title: "切换主手",
                content: "你要切换什么?",
                options: ["喵", "油漆桶", "喵", "火箭炮", "瞬移器", "地雷", "喵", "三叉戟", "开启自动跳跃", "关闭自动跳跃", "大神特权"],
            });
            if (result.index === 0) {
                if (entity.player.zidan > 0) {
                    entity.player.zhushou = 1;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index === 1) {
                if (entity.player.youqitong > 0) {
                    entity.player.zhushou = 2;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index === 2) {
                if (entity.player.yanwudan > 0) {
                    entity.player.zhushou = 3;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index == 3) {
                if (entity.player.huojianpao > 0) {
                    entity.player.zhushou = 4;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index === 4) {
                if (entity.player.shunyiqi > 0) {
                    entity.player.zhushou = 5;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index === 5) {
                if (entity.player.dilei > 0) {
                    entity.player.zhushou = 6;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index === 6) {
                if (entity.player.jujiqiangzidan > 0) {
                    entity.player.zhushou = 7;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index === 7) {
                if (entity.player.sanchajishiyongcishu > 0) {
                    entity.player.zhushou = 8;
                    entity.player.directMessage("切换成功")
                } else {
                    entity.player.directMessage("你没有此物品")
                }
            } else if (result.index === 8) {
                entity.player.zidongtiaoyue = 1;
                entity.player.directMessage("开启成功")
            } else if (result.index === 9) {
                entity.player.zidongtiaoyue = 0;
                entity.player.directMessage("关闭成功")
            } else if (result.index === 10) {
                DASHEN3.push('MX的一只萌新')
                if (DASHEN3.includes(entity.player.name)) {
                    entity.player.zidan = 喵;
                    entity.player.youqitong = 100000000;
                    entity.player.shunyiqi = 100000000;
                    entity.player.directMessage("3级大神特权使用成功")
                } else if (DASHEN2.includes(entity.player.name)) {
                    entity.player.zidan = 10000;
                    entity.player.youqitong = 10000;
                    entity.player.directMessage("2级大神特权使用成功")
                } else if (DASHEN1.includes(entity.player.name)) {
                    entity.player.zidan = 10000;
                    entity.player.directMessage("1级大神特权使用成功")
                } else {
                    entity.player.directMessage("你不是大神")
                }
            }
        } catch (err) {
            return;
        }
    }
})
//商店
world.onPlayerJoin(async ({ entity }) => { entity.addTag(entity.player.name) })
world.querySelectorAll(".自助商店").forEach((finder) => {
    finder.enableInteract = true;
    finder.interactRadius = 4;
    finder.interactHint = "自助商店";
    finder.interactColor = new Box3RGBColor(1, 1, 1);
    finder.onInteract(async ({ entity }) => {
        try {
            const result = await entity.player.dialog({
                type: Box3DialogType.SELECT,
                title: "自助商店",
                content: "你喵 + entity.player.jinbi + "个金币,想买什么?",
                options: ["子弹*50(50金币)", "油漆桶*20(50金币)", "喵*5(100金币)", "火箭炮*5(150金币)", "瞬移器*3(200金币)", "地雷*5(250金币)", "喵子弹*20(500金币)", "三叉戟使用次数*20(5555金币)"]
            });
            if (result.index === 0) {
                if (entity.player.jinbi >= 50) {
                    entity.player.zidan += 50;
                    entity.player.jinbi -= 50;
                    entity.player.directMessage("成功购买50发子弹")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            } else if (result.index === 1) {
                if (entity.player.jinbi >= 50) {
                    entity.player.youqitong += 20;
                    entity.player.jinbi -= 50;
                    entity.player.directMessage("成功购买20个油漆桶")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            } else if (result.index === 2) {
                if (entity.player.jinbi >= 100) {
                    entity.player.yanwudan += 5;
                    entity.player.jinbi -= 100;
                    entity.player.directMessage("成功购买5个喵")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            } else if (result.index === 3) {
                if (entity.player.jinbi >= 150) {
                    entity.player.huojianpao += 5;
                    entity.player.jinbi -= 150;
                    entity.player.directMessage("成功购买5个火箭炮")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            } else if (result.index === 4) {
                if (entity.player.jinbi >= 200) {
                    entity.player.shunyiqi += 5;
                    entity.player.jinbi -= 200;
                    entity.player.directMessage("成功购买5个瞬移器")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            } else if (result.index === 5) {
                if (entity.player.jinbi >= 250) {
                    entity.player.dilei += 5;
                    entity.player.jinbi -= 250;
                    entity.player.directMessage("成功购买5个地雷")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            } else if (result.index === 6) {
                if (entity.player.jinbi >= 500) {
                    entity.player.jujiqiangzidan += 20
                    entity.player.jinbi -= 20;
                    entity.player.directMessage("成功购买20个喵子弹")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            } else if (result.index === 7) {
                if (entity.player.jinbi >= 5555) {
                    entity.player.sanchajishiyongcishu += 20;
                    entity.player.jinbi -= 5555;
                    entity.player.directMessage("成功购买20次三叉戟使用次数")
                } else {
                    entity.player.directMessage("你的钱不够")
                }
            }
        } catch (err) {
            return;
        }
    })
})
//管喵
world.onChat(async ({ entity, message }) => {
    if (entity && entity.isPlayer) {
        if (message[0] === "$") {
            if (TEST_PLAYER.includes(entity.player.name)) {
                try {
                    world.say("<~" + eval(message.slice(1, message.length)))
                } catch (error) {
                    world.say("Error:" + error);
                };
            }
        };
    }
});


回复

上一页1 页 / 共 1下一页
成熟的强袭编程猫548成熟的强袭编程猫548

沙发

点赞0


评论


费艾诺费艾诺

喷射战士??肖战??

点赞1


评论


一个STUB用户_14302596一个STUB用户_14302596

明正之举,开源的心态,这也是5号的地图虽然不好玩但是我也要关注的原因,也请大家不要抄袭,自觉一点

点赞5


评论


egg鸡蛋蛋egg鸡蛋蛋

好诶

(板凳)

点赞0


评论


IaeaIaea

打卡

点赞0


评论


alopdopsalopdops

emmmmmmmmmmmmmmmmmm

点赞0


评论


灵清帝王吃爆一切厕所灵清帝王吃爆一切厕所

wow挖坟好玩()

点赞0


评论


令人闻风丧胆的赛车手令人闻风丧胆的赛车手

挖坟

点赞0


评论