
Lv.1
小号 KUPIR_horn
签名:Micosoft永远的神
在 招人啦!!!!!!链接喵ao.cn/e/65e77153e505 中回复
链接老是错误的,重发:https://box3.cod喵/e/65e77153e5051e6fe27f
2021-09-02T20:40:01 点赞:0
在 生存世界——代码岛招管喵?试玩 中回复
imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E5%86%B7%E6%BC%A0.gif"alt="emotion_编程猫_冷漠"imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E5%86%B7%E6%BC%A0.gif"alt="emotion_编程猫_冷漠"
2021-09-05T15:18:24 点赞:0
在 生存世界——代码岛招管喵?试玩 中回复
imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%BF%BB%E7%99%BD%E7%9C%BC.gif"alt="emotion_编程猫_翻白眼"
2021-09-05T15:18:31 点赞:0
在 谁知道岛3如何申请编辑资格? 中回复
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
2021-09-18T20:11:33 点赞:0
在 找……找代码师傅 中回复
functionjoinRed(entity){ entity.addTag('red')//加红队标签 entity.player.color.set(1,0,0)//变红 world.say(`${entity.player.name}被分配到红队`) entity.player.spawnPoint.set(114,8,114)//设置红队的出生点在地图的一边 } functionjoinBlue(entity){ entity.addTag('blue')//加蓝队标签 entity.player.color.set(0,0,1)//变蓝 world.say(`${entity.player.name}被分配到蓝队`) entity.player.spawnPoint.set(114,8,114)//设置蓝队的出生点在地图的另一边 } world.onPlayerJoin(({entity})=>{ constred=world.querySelectorAll('.red')//红队玩家列表 constblue=world.querySelectorAll('.blue')//蓝队玩家列表 if(red.length===blue.length){//如果两队人数相同 if(Math.random()<0.5){//随机加入其中一队 joinBlue(entity)//加入蓝队 } else{ joinRed(entity)//加入红队 } } elseif(red.length>blue.length){//如果红队人多 joinBlue(entity)//加入蓝队 } else{ joinRed(entity)//加入红队 } entity.player.forceRespawn()//传送到自己队伍的出生点 entity.enableDamage=true//允许玩家受伤 entity.onDie(async({attacker})=>{ letattackerTeam=teamName(attacker)//对手的队名 letmyTeam=teamName(entity)//玩家的队名 world.say(`[${attackerTeam}]${attacker.player.name}击败了[${myTeam}]${entity.player.name}`) attacker.score+=1//当玩家被击败时,给对手加1分 awaitsleep(5000)//等待5秒后复活 entity.player.forceRespawn()//满血回到出生点 }) }) functionteamName(entity){ if(entity.hasTag('red')){//如果有红队标签 return'红队' } elseif(entity.hasTag('blue')){//如果有蓝队标签 return'蓝队' } return'未知队伍' } world.onClick(({entity,clicker})=>{ if(//如果攻击者和被击者在不同的队伍,则被击者会受伤 (entity.hasTag('red')&&clicker.hasTag('blue'))||//被击者是红队,攻击者是蓝队 (entity.hasTag('blue')&&clicker.hasTag('red'))&&//或者被击者是蓝队,攻击者是红队 ((entity.hp)!=0)//并且玩家不能在喵的时候攻击 ){ entity.hurt(10,{attacker:clicker})//被点击者受到10点伤害,并将点击者传递给onDie事件 } }) world.onPress(({entity,button})=>{ if(button==Box3ButtonType.ACTION1){//右键查看自己的分数 entity.player.dialog({ type:Box3DialogType.TEXT, content:`你一共击败了${entity.score}个对手` }) } })
2021-09-18T20:18:50 点赞:0
在 找……找代码师傅 中回复
(async function(){var i, j;function mathRandomInt(a, b) { if (a > b) { var c = a; a = b; b = c; } return Math.floor(Math.random() * (b - a + 1) + a);}world.say('毁图喵即将爆炸!');console.warn('毁图喵即将爆炸!');for (i = 1; i <= 9; i++) { await sleep(1000); console.clear(); world.say(['当前还剩',10 - i,'秒爆炸!'].join('')); console.error((['当前还剩',10 - i,'秒爆炸!'].join('')));}await sleep(1000);console.clear();world.say('轰~~~');console.warn('你失败了~');for (j = 1; j <= 10000; j++) { voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("air"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("air"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("air"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("leaf_01"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("leaf_02"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("dirt"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("grass"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("stone"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("green_leaf"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("snowland"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("ice"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("polar_ice"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("polar_region"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("rock"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("water"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("wooden_box"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("glass"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("board_01"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("stainless_steel"))); await sleep(1);}console.log('你熬过了输入者对你的折磨');world.say('毁图结束');})();(async function(){var i, j;function mathRandomInt(a, b) { if (a > b) { var c = a; a = b; b = c; } return Math.floor(Math.random() * (b - a + 1) + a);}world.say('毁图喵即将爆炸!');console.warn('毁图喵即将爆炸!');for (i = 1; i <= 9; i++) { await sleep(1000); console.clear(); world.say(['当前还剩',10 - i,'秒爆炸!'].join('')); console.error((['当前还剩',10 - i,'秒爆炸!'].join('')));}await sleep(1000);console.clear();world.say('轰~~~');console.warn('你失败了~');for (j = 1; j <= 10000; j++) { voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("air"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("air"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("air"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("leaf_01"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("leaf_02"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("dirt"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("grass"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("stone"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("green_leaf"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("snowland"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("ice"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("polar_ice"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("polar_region"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("rock"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("water"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("wooden_box"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("glass"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("board_01"))); voxels.setVoxel((mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(mathRandomInt(0, 128)),(voxels.id("stainless_steel"))); await sleep(1);}console.log('你熬过了输入者对你的折磨');world.say('毁图结束');})();
2021-09-18T20:19:53 点赞:0
在 找……找代码师傅 中回复
/**
* project-2 p2
* 足球代码
*/
/* 点击踢球 */
world.onClick(async ({ entity, clicker, distance, raycast }) => {
if (entity.id != 'ball' || entity.isPlayer) {
return;
}
if (distance >= 5) {
return;
}
entity.velocity.x += raycast.direction.x * (5 - distance) * 0.7;
entity.velocity.y += 0.05 * raycast.direction.y * (5 - raycast.distance) * 0.5;
entity.velocity.z += raycast.direction.z * (5 - distance) * 0.7;
})
let rx = 0;
let ry = 0;
let rz = 0;
world.onVoxelContact(({ entity, force }) => {
if (entity.id != 'ball') {
return;
}
rx += Math.abs(entity.velocity.x * 3);
ry += Math.abs(entity.velocity.y * 3);
rz += Math.abs(entity.velocity.z * 3);
if (force.y > 0.02) {
entity.velocity.y = force.y * 20;
entity.velocity.x = force.x * 40;
entity.velocity.z = force.z * 40;
}
})
/* 球的旋转 */
world.onTick(async () => {
world.querySelectorAll('#ball').forEach((entity) => {
if (entity.velocity.x != 0 || entity.velocity.z != 0) {
entity.meshOrientation.x = Math.cos(Math.round(entity.velocity.x * 0.05 * 180 / Math.PI));/* 感谢某位无名大佬帮忙完善(小鹰/cm/...) */
entity.meshOrientation.y = Math.cos(Math.round(entity.velocity.y * 0.05 * 180 / Math.PI));/* 感谢某位无名大佬帮忙完善(小鹰/cm/...) */
entity.meshOrientation.z = Math.cos(Math.round(entity.velocity.z * 0.05 * 180 / Math.PI));/* 感谢某位无名大佬帮忙完善(小鹰/cm/...) */
}
})
})
world.querySelector('#ball').meshScale = new Box3Vector3(1 / 19, 1 / 19, 1 / 19);
2021-09-18T20:20:30 点赞:0
在 找……找代码师傅 中回复
/**
* godzilla
*/
world.querySelectorAll('#哥斯拉头套-1').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉装甲-1').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉尾巴-1').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-1').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-2').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-3').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-4').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-5').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-6').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-7').forEach((e) => e.destroy());
world.querySelectorAll('#哥斯拉左小腿-8').forEach((e) => e.destroy());
const WEAPON = {
1: { // 头部
mesh: world.querySelector('#哥斯拉头套-1').mesh,
parts: [Box3BodyPart.HEAD],
scale: new Box3Vector3(0.52, 0.41, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, -1).rotateX(0).rotateY(0),
offset: new Box3Vector3(0, 0.58, 0), //调整位置
},
2: { // 身体
mesh: world.querySelector('#哥斯拉装甲-1').mesh,
parts: [Box3BodyPart.TORSO],
scale: new Box3Vector3(0.36, 0.37, 0.34), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0).rotateX(0).rotateY(0),
offset: new Box3Vector3(0, 0.22, -0.15), //调整位置
},
3: { // 尾巴
mesh: world.querySelector('#哥斯拉尾巴-1').mesh,
parts: [Box3BodyPart.HIPS],
scale: new Box3Vector3(0.25, 0.25, 0.25), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0).rotateX(0).rotateY(0),
offset: new Box3Vector3(0, 0.1, -0.73), //调整位置
},
4: { // 左上臂
mesh: world.querySelector('#哥斯拉左小腿-1').mesh,
parts: [Box3BodyPart.LEFT_UPPER_ARM],
scale: new Box3Vector3(0.52, 0.31, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0).rotateX(0).rotateY(0).rotateZ(0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
5: { // 左下臂
mesh: world.querySelector('#哥斯拉左小腿-2').mesh,
parts: [Box3BodyPart.LEFT_LOWER_ARM],
scale: new Box3Vector3(0.52, 0.31, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
6: { // 右上臂
mesh: world.querySelector('#哥斯拉左小腿-3').mesh,
parts: [Box3BodyPart.RIGHT_UPPER_ARM],
scale: new Box3Vector3(0.52, 0.31, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
7: { // 右下臂
mesh: world.querySelector('#哥斯拉左小腿-4').mesh,
parts: [Box3BodyPart.RIGHT_LOWER_ARM],
scale: new Box3Vector3(0.52, 0.31, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
8: { // 左大腿
mesh: world.querySelector('#哥斯拉左小腿-5').mesh,
parts: [Box3BodyPart.LEFT_UPPER_LEG],
scale: new Box3Vector3(0.52, 0.53, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
9: { // 左小腿
mesh: world.querySelector('#哥斯拉左小腿-6').mesh,
parts: [Box3BodyPart.LEFT_LOWER_LEG],
scale: new Box3Vector3(0.52, 0.53, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
10: { // 右大腿
mesh: world.querySelector('#哥斯拉左小腿-7').mesh,
parts: [Box3BodyPart.RIGHT_UPPER_LEG],
scale: new Box3Vector3(0.52, 0.53, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
11: { // 右小腿
mesh: world.querySelector('#哥斯拉左小腿-8').mesh,
parts: [Box3BodyPart.RIGHT_LOWER_LEG],
scale: new Box3Vector3(0.52, 0.53, 0.52), // 调整大小
orientation: new Box3Quaternion(0, 1, 0, 0),
offset: new Box3Vector3(0, 0, 0), //调整位置
},
};
function godzillaWeapon(entity, camp) {
WEAPON[camp].parts.forEach((part) => entity.player.addWearable({
bodyPart: part, // 装备
mesh: WEAPON[camp].mesh, // 设置武器mesh
orientation: WEAPON[camp].orientation, // 设置方向
scale: WEAPON[camp].scale, // 设置大小
offset: WEAPON[camp].offset, // 设置位置
}));
}
function trueGodzillaWeapon(entity){
godzillaWeapon(entity, '1')
godzillaWeapon(entity, '2')
godzillaWeapon(entity, '3')
godzillaWeapon(entity, '4')
godzillaWeapon(entity, '5')
godzillaWeapon(entity, '6')
godzillaWeapon(entity, '7')
godzillaWeapon(entity, '8')
godzillaWeapon(entity, '9')
godzillaWeapon(entity, '10')
godzillaWeapon(entity, '11')
}
2021-09-18T20:21:20 点赞:0
在 找……找代码师傅 中回复
1.用entity.hurt让玩家进入地图后就受到伤害 console.clear() world.onPlayerJoin(({entity})=>{ entity.enableDamage=true//允许这个实体受伤/喵/复活 entity.hurt(50)//去掉玩家半管血 console.log('hp:'+entity.hp)//现在受伤后只剩50了 console.log('maxHp:'+entity.maxHp)//生命值上限,box3里所有实体默认maxHp是100 }) 2.恢复玩家血量 console.clear() world.onPlayerJoin(({entity})=>{ entity.enableDamage=true//允许这个实体受伤/喵/复活 entity.hp-=100//让玩家受100点伤害当场去世 }) world.onChat(({entity})=>{ entity.hp=entity.maxHp*0.5//复活至一半最大生命值 }) 3.让其他模型实体受到伤害 for(consteofworld.querySelectorAll('*')){//遍历每个实体 e.enableDamage=true//允许这个实体受伤/喵/复活 e.hurt(50)//把实体打剩半条命 } 4.点击其他实体,让其受到伤害 for(consteofworld.querySelectorAll('*')){//遍历每个实体 e.enableDamage=true//允许这个实体受伤/喵/复活 } //利用点击事件对点中的实体造成伤害 world.onClick(({entity,clicker})=>{//entity是被点击的实体,clicker是点击了这个实体的玩家 if(entity.isPlayer){//如果被点击的是个玩家实体 world.say(`${clicker.player.name}击中${entity.player.name}`)//显示玩家的名字 }else{ world.say(`${clicker.player.name}击中${entity.id}`)//显示实体的id } entity.hurt(20) }) 5.碰到某个特定的方块受到伤害或或回血(如岩浆) //碰到岩浆受伤,碰到字母H恢复生命 world.onVoxelContact(({entity,voxel,x,y,z})=>{//当触碰方块 if(voxel===voxels.id('lava02')){//如果方块类型是岩浆 entity.hurt(20)//受伤 }elseif(voxel===voxels.id('H')){//如果方块类型是H字母 entity.hp=entity.maxHp//恢复满血 voxels.setVoxel(x,y,z,'')//消掉H方块 } }) 6.触碰实体怪物受到伤害或回血(记得给实体打上相应标签) for(consteofworld.querySelectorAll('*')){//遍历每个实体 e.enableDamage=true//允许这个实体受伤/喵/复活 e.collides=true//允许实体被碰撞 e.gravity=true//开启重力,这样实体才不会一碰就飘走 } //碰到僵尸受伤,碰到急救包恢复生命 world.onEntityContact(({entity,other})=>{//other是被触碰的实体 if(other.hasTag('僵尸')){//当被碰实体有僵尸标签 entity.hurt(20)//受伤 }elseif(other.hasTag('急救包')){//当被碰实体有急救包标签 entity.hp=entity.maxHp//恢复满血 other.destroy()//把急救包从地图删除,destroy()只能删除非玩家实体 } }) 7.加入不同类型的伤害(触碰伤害和点击伤害) for(consteofworld.querySelectorAll('.僵尸')){//遍历每个僵尸实体 e.enableDamage=true//允许这个实体受伤/喵/复活 e.collides=true//允许实体被碰撞 e.gravity=true//开启重力,这样实体才不会一碰就飘走 } world.onPlayerJoin(({entity})=>{ entity.enableDamage=true//允许这个实体受伤/喵/复活 entity.id=entity.player.name//喵家名字赋值到id,以便和其它实体一样可以统一通过entity.id获取名字 }) world.onEntityContact(({entity,other})=>{ if(other.hasTag('僵尸')){//如果被碰实体有僵尸标签 entity.hurt(30,{ damageType:'病毒',//伤害类型为病毒 attacker:other,//告诉引擎攻击者是被碰到的这个实体 }) } }) world.onClick(({entity,clicker})=>{//entity是被点击的实体,clicker是点击了这个实体的玩家 entity.hurt(20,{ damageType:'喵击',//伤害类型为喵击 attacker:clicker,//告诉引擎攻击者是触发点击的这个玩家实体 }) }) world.onTakeDamage(({entity,attacker,damage,damageType})=>{//每次地图里有实体受伤 world.say(`${attacker.id}对${entity.id}造成${damage}点${damageType}伤害`) }) 8.不同伤害导致的gameover这样表示 world.onDie(({entity,attacker,damageType})=>{//每次地图里有实体喵 if(entity.isPlayer){//如果是玩家实体 if(damageType==='病毒'){//如果是病毒致喵 entity.player.color.set(0,1,0)//玩家实体颜色变绿 } }else{//如果非玩家实体 if(damageType==='喵击'){//如果是喵击致喵 entity.destroy()//从地图上消失 } } })
2021-09-18T20:22:21 点赞:0
在 找……找代码师傅 中回复
var waterLevel = 10;/*水平面 */
async function summon(times) {/*由于尹子比较懒就直接把曾经做的手绘这种地形的代码改了一下放在了这儿 */
world.say("放置中...");
for (let iiii = 0; iiii < times; iiii++) {
var pos = new Box3Vector3(Math.round(Math.random() * 256), Math.round(Math.random() * 50), Math.round(Math.random() * 256));
var r = 8;
var voxel = "board10";
for (let i = pos.x - r; i <= pos.x + r; i++) {
for (let j = pos.z - r; j <= pos.z + r; j++) {
for (let k = pos.y; k <= pos.y + r; k++) {
if (new Box3Vector3(i, k, j).distance(pos) <= r && voxels.getVoxel(i, k, j) == 0) {
for (let x = k - 1; x >= 0; x--) {
if (voxels.getVoxel(i, x, j) != 0) {
voxels.setVoxel(i, x + 1, j, voxel);
break;
}
}
}
}
}
}
if (iiii % 10 == 0) await sleep(10);
}
world.say("放置中...");
for (let iiii = 0; iiii < times; iiii++) {
var pos = new Box3Vector3(Math.round(Math.random() * 256), Math.round(Math.random() * 50), Math.round(Math.random() * 256));
var r = 15;
var voxel = "board10";
for (let i = pos.x - r; i <= pos.x + r; i++) {
for (let j = pos.z - r; j <= pos.z + r; j++) {
if (new Box3Vector3(i, pos.y, j).distance(pos) <= r && voxels.getVoxel(i, pos.y, j) == 0) {
for (let x = pos.y - 1; x >= 0; x--) {
if (voxels.getVoxel(i, x, j) != 0) {
voxels.setVoxel(i, x + 1, j, voxel);
break;
}
}
}
}
}
if (iiii % 10 == 0) await sleep(10);
}
};
async function noiseDestroy(num) {
world.say("消噪初始化...");
for (let kkkk = 0; kkkk < num; kkkk++) {
var voxelReadyBreak = [];
var d = [/*四个方向 */
[1, 0, 0],
[0, 0, 1],
[-1, 0, 0],
[0, 0, -1]
];
for (let i = 0; i < 257; i++) {
for (let j = 0; j < 257; j++) {
for (let k = 0; k < 60; k++) {
if (voxels.getVoxel(i, k, j) == 0) {/*找出空气方块周围有>=3块都是实体方块并填充 */
var cnt = 0;
for (let s = 0; s < d.length; s++) {
if ([127, 125].includes(voxels.getVoxel(i + d[s][0], k + d[s][1], j + d[s][2]))) {
cnt++;
}
}
if (cnt >= 3) {
if (k < waterLevel) {
voxelReadyBreak.push([i, k, j, "dirt"]);
} else if (k == waterLevel) {
voxelReadyBreak.push([i, k, j, "sand"]);
} else {
voxelReadyBreak.push([i, k, j, "grass"]);
}
}
} else if ([127, 125].includes(voxels.getVoxel(i, k, j))) {/*找出实体方块周围有>=3块都是液体或者空气的并清除 */
var cnt = 0;
for (let s = 0; s < d.length; s++) {
if ([0, 3喵].includes(voxels.getVoxel(i + d[s][0], k + d[s][1], j + d[s][2]))) {
cnt++;
}
}
var voxel = 0;
if (k < waterLevel) voxel = 3喵;
if (k == waterLevel) voxel = 135;
if (cnt >= 3) voxelReadyBreak.push([i, k, j, voxel]);
}
}
}
}
for (let i = 0; i < voxelReadyBreak.length; i++) {/*最后一起放置,以避免误差 */
voxels.setVoxel(voxelReadyBreak[i][0], voxelReadyBreak[i][1], voxelReadyBreak[i][2], voxelReadyBreak[i][3])
}
world.say("消噪中...进度" + kkkk + "/"+num);
await sleep(100);
}
world.say("地形正常化...");/*把消噪的时候出问题的方块还原 */
for (let i = 0; i < 257; i++) { for (let j = 0; j < 257; j++)for (let k = 0; k <= waterLevel; k++) { if (voxels.getVoxel(i, k, j) == 0) { voxels.setVoxel(i, k, j, "water") } } }
for (let i = 0; i < 257; i++) { for (let j = 0; j < 257; j++)for (let k = 0; k < 60; k++) { if (voxels.getVoxel(i, k, j) == voxels.id("dirt") && voxels.getVoxel(i, k + 1, j) == 0) { voxels.setVoxel(i, k, j, "grass") } } };
for (let i = 0; i < 257; i++) { for (let j = 0; j < 257; j++)for (let k = 0; k < 60; k++) { if (voxels.getVoxel(i, k, j) == voxels.id("grass") && voxels.getVoxel(i, k + 1, j) != 0) { voxels.setVoxel(i, k, j, "dirt") } } }
world.say("完毕");
};
async function color(){
for (let i = 0; i < 257; i++) {
for (let j = 0; j < 257; j++) {
for (let k = 0; k < 60; k++) {
if (voxels.getVoxel(i, k, j) == 453) {
if (voxels.getVoxel(i, k + 1, j) == 0) {
if (k > waterLevel) {
voxels.setVoxel(i, k, j, "grass");
continue;
} else if (k == waterLevel) {
voxels.setVoxel(i, k, j, "sand");
continue;
} else {
voxels.setVoxel(i, k, j, "dirt");
}
} else {
voxels.setVoxel(i, k, j, "dirt");
continue;
}
}
}
}
await sleep(10);
}
};
(async function () {
/*生成一堆球 */
await summon(700);
/*生成一堆圆柱 */
world.say("上色中...");
await color();
await sleep(100);
await noiseDestroy(7);/*消除噪点 */
})();
2021-09-18T20:23:02 点赞:0
在 招人啦!!!!!!!!!!链接喵ao.cn/e/cfa54883 中回复
重发链接:https://box3.codemao.cn/e/cfa548838d77ee9bb07f
2021-09-20T12:51:31 点赞:0