用户:
Chengxuyee_已退查看:1 回复:3 评论:1 创建时间:2023-08-22T22:02:13
————————————————————————前言————————————————————————
在1年半之前我发过一个帖子,里面写了一些我做的喵代码)
链接:https://shequ.codemao.cn/wiki/forum/459305
有些代码虽然能用)但是总有一些啸问题)所以这次我虽然半退了还是来重置下)
这些代码可以在编辑器里跟你的小伙伴创作的时候坑他来找点乐子)
但是得分场合,不能太过分)不然造成损失本人不负责()
宇宙安全声明(确信)
另外本帖的代码有很多创新代码)不光是更改某个实体属性的值)
PS:
1.以下代码需要修改一些内容,详见第一种喵代码中的注释。
2.以下代码可以在控制台执行。
——————————————————————好,进入正题——————————————————————
1.玻璃封印:在指定玩家的周围生成玻璃罩子把他困住
let name = ['Chengxuyee'];/*将此处修改为你要整的人的名字,
如果有多个人,请输入多个用英文双引号包裹起来的名字,
并将每段名字用英文逗号隔开,
如['Chengxuyee', 'Chengxuyee1', 'Chengxuyee2']
后文同理,不再赘述*/
let list = [[0, 2, 0], [0, 1, 1], [0, 1, -1], [1, 1, 0], [-1, 1, 0], [0, 0, 1], [0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 1], [0, -1, -1], [1, -1, 0], [-1, -1, 0], [0, -2, 0]];
world.querySelectorAll('player').forEach((entity)=>{
if(name.includes(entity.player.name)){
for (let i of list){
let pos = entity.position.add(new Box3Vector3(i[0], i[1], i[2]));
if(voxels.getVoxelId(pos.x, pos.y, pos.z) == 0){
voxels.setVoxel(pos.x, pos.y, pos.z, 'glass');
};
};
};
});
console.clear()
这个代码相比之前加了个判定)如果原来就有方块就不覆盖)所以说一般对地图没有破坏性)
恢复方法:
·如地图处于编辑状态,则可以打破
·如地图处于运行状态,则停止运行即可
1.5:玻璃封印加强版:一直在指定玩家周围生成玻璃罩子把他困住
let name = ['Chengxuyee'];/*将此处修改为你要整的人的名字,
如果有多个人,请输入多个用英文双引号包裹起来的名字,
并将每段名字用英文逗号隔开,
如['Chengxuyee', 'Chengxuyee1', 'Chengxuyee2']
后文同理,不再赘述*/
let list = [[0, 2, 0], [0, 1, 1], [0, 1, -1], [1, 1, 0], [-1, 1, 0], [0, 0, 1], [0, 0, -1], [1, 0, 0], [-1, 0, 0], [0, -1, 1], [0, -1, -1], [1, -1, 0], [-1, -1, 0], [0, -2, 0]];
world.onTick(({})=>{
world.querySelectorAll('player').forEach((entity)=>{
if(name.includes(entity.player.name)){
for (let i of list){
let pos = entity.position.add(new Box3Vector3(i[0], i[1], i[2]));
if(voxels.getVoxelId(pos.x, pos.y, pos.z) == 0){
voxels.setVoxel(pos.x, pos.y, pos.z, 'glass');
};
};
};
});
})
恢复方法:
·如地图处于编辑状态,则运行一次后结束运行,即可打破玻璃罩出来
·如地图处于运行状态,则停止运行即可
2.玩家跟班:让一个玩家一直跟在你旁边无法移动
let name = 'Chengxuyee';/*将此处改成你要整的人的名字*/
let your_name = 'Chengxuyee';/*将此处改成你自己的名字*/
let pos = new Box3Vector3(0, 0, 0);
world.onTick(({})=>{
world.querySelectorAll('player').forEach((entity)=>{
if(entity.player.name == your_name){
pos = entity.position;
}else if(entity.player.name == name){
entity.position = pos.add(new Box3Vector3(1, 0, 0));
};
});
});
恢复方法:
·如地图处于编辑状态,则运行一次后结束运行即可
·如地图处于运行状态,则停止运行即可
3.躲猫猫神器:每时每刻汇报自己、敌方的位置以及敌我距离!
let name = 'Chengxuyee';/*将此处改成你要整的人的名字*/
let your_name = 'Chengxuyee';/*将此处改成你自己的名字*/
let pos = new Box3Vector3(0, 0, 0);
world.onTick(({ tick })=>{
if(tick % 5 == 0){
world.querySelectorAll('player').forEach((entity)=>{
if(entity.player.name == name){
pos = entity.position;
}else if(entity.player.name == your_name){
entity.player.directMessage('我方坐标:{x:' + Math.round(entity.position.x) + ', y:' + Math.round(entity.position.y) + ', z:' + Math.round(entity.position.z) + '};敌方坐标:{x:' + Math.round(pos.x) + ', y:' + Math.round(pos.y) + ', z:' + Math.round(pos.z) + '};敌我距离:' + Math.round(entity.position.distance(pos)));
};
});
};
});
恢复方法:
·如地图处于编辑状态,则运行一次后结束运行即可
·如地图处于运行状态,则停止运行即可
藏好自己,做好清理
4.高科技对话:在另一个玩家旁边生成4个对话框,显示你想要的内容!
let name = 'Chengxuyee';/*将此处改成你要整的人的名字*/
let sentence = '嗨害嗨';/*此处改成你要说的话*/
let list = [[1, 1], [1, -1], [-1, 1], [-1, -1]];
world.querySelectorAll('player').forEach((entity)=>{
if(entity.player.name == name){
for(let i of list){
world.createEntity({
mesh:'',
position:entity.position.add(new Box3Vector3(i[0], -1, i[1])),
fixed:true,
gravity:false,
collides:false
}).say(sentence);
};
};
});
恢复方法:
·如地图处于编辑状态,则运行一次后结束运行即可,然后实体就被删了,应该吧)
·如地图处于运行状态,则停止运行即可
5.大小随心变:指定一位玩家的大小!
let name = 'Chengxuyee';/*修改名称为你要整的人的名称*/
let scale = 5;/*输入你要改变的大小的倍数,可以是小数*/
world.querySelectorAll('player').forEach((entity)=>{
if(entity.player.name == name){
entity.player.scale = scale;
}
})
恢复方法:
·如地图处于编辑状态,则运行一次后结束运行即可
·如地图处于运行状态,则停止运行即可
6.踢出玩家:把一个玩家踢出地图(娱乐性质,谨慎使用)
let name = 'Chengxuyee';/*修改名称为你要整的人的名称*/
world.querySelectorAll('player').forEach((entity)=>{
if(entity.player.name == name){
entity.player.kick();
};
});
OK,就这样了)其实也没改多少)但是我都是重写的,不是修改)如果吞格式我会重发)