猫史档案馆


哈哈哈哈哈哈哈哈哈哈!!!!!!!代码来撸!!!

用户:酱油eat酱油eat查看:0 回复:2 评论:0 创建时间:2022-04-30T14:20:14


world.onPlayerJoin(({ entity }) => {     entity.enableDamage = true;     entity.showHealthBar = true;

 

}) world.onVoxelContact(({ entity, voxel, x, y, z }) => {      if (voxel === voxels.id('lava02')) {          entity.hurt(30) ;     }  }) // 玩家喵时,等待5秒后复活。  world.onDie(async({ entity }) => { // 等待事件需要用 async     if (!entity.isPlayer) return;  // 不处理非玩家的喵事件     await sleep(3000);     entity.player.forceRespawn();  // 让玩家重生 });

 

world.say(`欢迎大家来到僵尸校园,因为有人制作僵尸病毒,让这个学校的人都伽马染成了丧失`) /* 玩家进入游戏时,弹出一个欢迎对话框 */ world.onPlayerJoin(({entity}) => {          entity.player.dialog({         type: Box3DialogType.TEXT,         title: "zuo'zhe",         content: `你好,${entity.player.name},很高兴认识你。`,     }); })




const TEST_PLAYER = ['熙熙说乐高', '爽快的小电鼠bMMb', '', ''] world.onPlayerJoin(({ entity }) => {     if (!TEST_PLAYER.includes(entity.player.name)) return;     entity.player.canFly = true; });



// 在玩家离开液体时把在玩家头上的穿戴配件删除 world.onFluidLeave(({ entity }) => {     if (!entity.isPlayer) return;     const headWears = entity.player.wearables(Box3BodyPart.HEAD);       // 假设只有1个装备 `headWears[0]`      entity.player.removeWearable(headWears[0]); });






world.onPlayerJoin(({ entity }) => {     entity.player.onPress(async ({ button }) => {         if (button == Box3ButtonType.ACTION1) {             // 将摄像机看向地图中心             const lookTarget = new Box3Vector3(63, 8, 63);

 

            // 将摄像机的位置置于地图大概中心处,并往上拉升到y轴150处,确保看到完整的地形             const lookEye = new Box3Vector3(63, 150, 63);

 

            // lookUp用来调整相机角度,可以使画面上下左右颠倒。默认值是(0,1,0)             // 由于视线是俯视,需要确保lookUp与相机视线方向不平行,需修改为(1,0,0)或者(0,0,1)             const lookUp = new Box3Vector3(1, 0, 0)

 

            entity.player.dialog({                 type: Box3DialogType.TEXT,                 content: `俯视`,                 lookEye: lookEye,                 lookTarget: lookTarget,                 lookUp: lookUp             })         }     }) }) console.clear() var door = world.querySelector('#-1')   //名称需与模型的名称保持一致 door.enableInteract = true; door.interactRadius = 5; door.interactHint = '移到商店'

 

door.onInteract(({ entity }) => {     entity.position.set(177,45,220) }) world.addCollisionFilter('player','player');




for (const e of world.querySelectorAll('*')) { //遍历每个实体     e.enableDamage = true //允许这个实体 受伤/喵/复活     e.collides = true //允许实体被碰撞      } // 碰到僵尸受伤, 碰到急救包恢复生命 world.onEntityContact(({ entity, other }) => { //other是被触碰的实体     if (other.hasTag('僵尸')) { //当被碰实体有僵尸标签         entity.hurt(20) //受伤     }  })



world.onPlayerJoin(({entity}) => {     entity.player.addWearable({         bodyPart: Box3BodyPart.HEAD,         mesh: '鱿鱼游戏,角形面具.vb',            //使用代码时,此处的名称需与地图中的模型名称保持一致         orientation: new Box3Quaternion(0,1,0,0).rotateY(-Math.PI/2),         offset: new Box3Vector3(0,0.4,0.1),     }); });





console.clear()

 

const mscale = 1 / 16 const n = [-4, -3, -2, -1, 0, 1, 2, 3, 4]

 

// 生成一堆小人 for (let x of n) {     for (let y of n) {         for (let z of n) {             const e = world.createEntity({                 mesh: '000.vb',        //地图中需有一个名称为“小人”的模型                 fixed: true,                 collides: false,                 position: [x * 4 + 喵, y * 3 + 16, z * 4 + 喵],                 meshScale: [mscale, mscale, mscale],             })             e.enableDamage = true             e.onDie(() => {                 e.destroy()             })         }     } }

 

world.onPlayerJoin(({ entity }) => {     entity.enableDamage = true  })



function killZone(pos, radius, fn) { //球状AOE     for (const e of world.querySelectorAll('*')) {//遍历所有实体         const dist = e.position.distance(pos)//计算作用点与当前实体的距离         if (dist <= radius) {//当距离小于等于有效作用半径             fn(e, dist)//传递当前实体和距离到回调函数并执行         }     } }

 

async function killBox(pos, size, fn) { //盒状AOE     //搜索包围盒内的所有实体     const entities = world.searchBox({         lo: [pos.x - size, pos.y - size, pos.z - size], //包围盒下边界         hi: [pos.x + size, pos.y + size, pos.z + size], //包围盒上边界     })

 

    for (const e of entities) { //遍历所有找到的实体         fn(e)     } }

 

async function makeDamage(e, dmg, color) {     e.hurt(Math.max(1, dmg)) //max用于防止负数伤害

 

    e.meshColor.copy(color) //当前实体变色     await sleep(500)     e.meshColor.set(1, 1, 1, 1) //恢复正常颜色 }

 

const RED = new Box3RGBAColor(1, 0, 0, 1) const GREEN = new Box3RGBAColor(0, 1, 0, 1) const BLUE = new Box3RGBAColor(0, 0, 1, 1) world.onPress(({ entity, button, raycast }) => {     if (button === Box3ButtonType.CROUCH) { //下蹲键触发自身球状AOE         const range = 8//AOE有效作用半径         killZone(entity.position, range, async (e, dist) => {             if (e === entity) return//如果当前实体是AOE施放者, 就不继续执行, 避免伤到自己             const ratio = (range - dist) / range //计算距离百分比, 离得越近ratio越趋向1, 离得越远ratio越趋向0             makeDamage(e, 20 * ratio, RED)         })     }     else if (button === Box3ButtonType.ACTION0) { //左键触发远距离球状AOE         const range = 8//AOE有效作用半径         killZone(raycast.hitPosition, range, async (e, dist) => {             if (e === entity) return//如果当前实体是AOE施放者, 就不继续执行, 避免伤到自己             const ratio = (range - dist) / range //计算距离百分比, 离得越近ratio越趋向1, 离得越远ratio越趋向0             makeDamage(e, 20 * ratio, GREEN)         })     }     else if (button === Box3ButtonType.ACTION1) { //右键触发远距离盒状AOE         const size = 7 //AOE盒的大小         killBox(raycast.hitPosition, size, (e) => {             if (e === entity) return//如果当前实体是AOE施放者, 就不继续执行, 避免伤到自己             makeDamage(e, 20, BLUE)         })     } })

 

console.clear() var door = world.querySelector('#4')   //名称需与模型的名称保持一致 door.enableInteract = true; door.interactRadius = 5; door.interactHint = '移到酒店'

 

door.onInteract(({ entity }) => {     entity.position.set(209,20,241) }) world.addCollisionFilter('player','player');


回复

上一页1 页 / 共 1下一页
Weeb_ETOWeeb_ETO

????

点赞0


评论


薹灣解放再改名薹灣解放再改名

哈哈,你格式被吞了

world.onPlayerJoin(({ entity }) => {     entity.enableDamage = true;     entity.showHealthBar = true;

 

}) world.onVoxelContact(({ entity, voxel, x, y, z }) => {      if (voxel === voxels.id('lava02')) {          entity.hurt(30) ;     }  }) // 玩家喵时,等待5秒后复活。  world.onDie(async({ entity }) => { // 等待事件需要用 async     if (!entity.isPlayer) return;  // 不处理非玩家的喵事件     await sleep(3000);     entity.player.forceRespawn();  // 让玩家重生 });
 

world.say(`欢迎大家来到僵尸校园,因为有人制作僵尸病毒,让这个学校的人都伽马染成了丧失`) /* 玩家进入游戏时,弹出一个欢迎对话框 */ world.onPlayerJoin(({entity}) => {          entity.player.dialog({         type: Box3DialogType.TEXT,         title: "zuo'zhe",         content: `你好,${entity.player.name},很高兴认识你。`,     }); })




const TEST_PLAYER = ['熙熙说乐高', '爽快的小电鼠bMMb', '', ''] world.onPlayerJoin(({ entity }) => {     if (!TEST_PLAYER.includes(entity.player.name)) return;     entity.player.canFly = true; });



// 在玩家离开液体时把在玩家头上的穿戴配件删除 world.onFluidLeave(({ entity }) => {     if (!entity.isPlayer) return;     const headWears = entity.player.wearables(Box3BodyPart.HEAD);       // 假设只有1个装备 `headWears[0]`      entity.player.removeWearable(headWears[0]); });






world.onPlayerJoin(({ entity }) => {     entity.player.onPress(async ({ button }) => {         if (button == Box3ButtonType.ACTION1) {             // 将摄像机看向地图中心             const lookTarget = new Box3Vector3(63, 8, 63);
 

            // 将摄像机的位置置于地图大概中心处,并往上拉升到y轴150处,确保看到完整的地形             const lookEye = new Box3Vector3(63, 150, 63);
 

            // lookUp用来调整相机角度,可以使画面上下左右颠倒。默认值是(0,1,0)             // 由于视线是俯视,需要确保lookUp与相机视线方向不平行,需修改为(1,0,0)或者(0,0,1)             const lookUp = new Box3Vector3(1, 0, 0)
 

            entity.player.dialog({                 type: Box3DialogType.TEXT,                 content: `俯视`,                 lookEye: lookEye,                 lookTarget: lookTarget,                 lookUp: lookUp             })         }     }) }) console.clear() var door = world.querySelector('#-1')   //名称需与模型的名称保持一致 door.enableInteract = true; door.interactRadius = 5; door.interactHint = '移到商店'
 

door.onInteract(({ entity }) => {     entity.position.set(177,45,220) }) world.addCollisionFilter('player','player');




for (const e of world.querySelectorAll('*')) { //遍历每个实体     e.enableDamage = true //允许这个实体 受伤/喵/复活     e.collides = true //允许实体被碰撞      } // 碰到僵尸受伤, 碰到急救包恢复生命 world.onEntityContact(({ entity, other }) => { //other是被触碰的实体     if (other.hasTag('僵尸')) { //当被碰实体有僵尸标签         entity.hurt(20) //受伤     }  })



world.onPlayerJoin(({entity}) => {     entity.player.addWearable({         bodyPart: Box3BodyPart.HEAD,         mesh: '鱿鱼游戏,角形面具.vb',            //使用代码时,此处的名称需与地图中的模型名称保持一致         orientation: new Box3Quaternion(0,1,0,0).rotateY(-Math.PI/2),         offset: new Box3Vector3(0,0.4,0.1),     }); });





console.clear()
 

const mscale = 1 / 16 const n = [-4, -3, -2, -1, 0, 1, 2, 3, 4]
 

// 生成一堆小人 for (let x of n) {     for (let y of n) {         for (let z of n) {             const e = world.createEntity({                 mesh: '000.vb',        //地图中需有一个名称为“小人”的模型                 fixed: true,                 collides: false,                 position: [x * 4 + 喵, y * 3 + 16, z * 4 + 喵],                 meshScale: [mscale, mscale, mscale],             })             e.enableDamage = true             e.onDie(() => {                 e.destroy()             })         }     } }
 

world.onPlayerJoin(({ entity }) => {     entity.enableDamage = true  })



function killZone(pos, radius, fn) { //球状AOE     for (const e of world.querySelectorAll('*')) {//遍历所有实体         const dist = e.position.distance(pos)//计算作用点与当前实体的距离         if (dist <= radius) {//当距离小于等于有效作用半径             fn(e, dist)//传递当前实体和距离到回调函数并执行         }     } }
 

async function killBox(pos, size, fn) { //盒状AOE     //搜索包围盒内的所有实体     const entities = world.searchBox({         lo: [pos.x - size, pos.y - size, pos.z - size], //包围盒下边界         hi: [pos.x + size, pos.y + size, pos.z + size], //包围盒上边界     })
 

    for (const e of entities) { //遍历所有找到的实体         fn(e)     } }
 

async function makeDamage(e, dmg, color) {     e.hurt(Math.max(1, dmg)) //max用于防止负数伤害
 

    e.meshColor.copy(color) //当前实体变色     await sleep(500)     e.meshColor.set(1, 1, 1, 1) //恢复正常颜色 }
 

const RED = new Box3RGBAColor(1, 0, 0, 1) const GREEN = new Box3RGBAColor(0, 1, 0, 1) const BLUE = new Box3RGBAColor(0, 0, 1, 1) world.onPress(({ entity, button, raycast }) => {     if (button === Box3ButtonType.CROUCH) { //下蹲键触发自身球状AOE         const range = 8//AOE有效作用半径         killZone(entity.position, range, async (e, dist) => {             if (e === entity) return//如果当前实体是AOE施放者, 就不继续执行, 避免伤到自己             const ratio = (range - dist) / range //计算距离百分比, 离得越近ratio越趋向1, 离得越远ratio越趋向0             makeDamage(e, 20 * ratio, RED)         })     }     else if (button === Box3ButtonType.ACTION0) { //左键触发远距离球状AOE         const range = 8//AOE有效作用半径         killZone(raycast.hitPosition, range, async (e, dist) => {             if (e === entity) return//如果当前实体是AOE施放者, 就不继续执行, 避免伤到自己             const ratio = (range - dist) / range //计算距离百分比, 离得越近ratio越趋向1, 离得越远ratio越趋向0             makeDamage(e, 20 * ratio, GREEN)         })     }     else if (button === Box3ButtonType.ACTION1) { //右键触发远距离盒状AOE         const size = 7 //AOE盒的大小         killBox(raycast.hitPosition, size, (e) => {             if (e === entity) return//如果当前实体是AOE施放者, 就不继续执行, 避免伤到自己             makeDamage(e, 20, BLUE)         })     } })
 

console.clear() var door = world.querySelector('#4')   //名称需与模型的名称保持一致 door.enableInteract = true; door.interactRadius = 5; door.interactHint = '移到酒店'
 

door.onInteract(({ entity }) => {     entity.position.set(209,20,241) }) world.addCollisionFilter('player','player');

点赞0


评论