用户:勇敢的阿尔法r9sy查看:0 回复:0 评论:0 创建时间:2021-03-21T11:29:43
if (voxel === voxels.id('H')) { //如果方块类型是H字母
entity.hp = entity.maxHp //恢复满血
voxels.setVoxel(x, y, z, '') //消掉H方块
}
const lava_hurt=[465,467]//触碰时被岩浆伤害的指定方块
const ice_hurt=[398,347]//触碰时被冰伤害的指定方块
const poison_hurt=[99,101]//懒得说了
const light_hurt=[285,299]//懒得说了
world.onPlayerJoin(({entity:e/*将entity重命名为e*/})=>{
e.enableDamage=true//别忘了这玩意!
e.onVoxelContact(({x,y,z})=>{//这里onVoxelContect()必须嵌在onPlayerJoin里,否则所有实体碰到都会被伤害
const vox = voxels.getVoxelId(x,y,z)
if(lava_hurt.includes(vox)){//includes函数可以判断lava_hurt方块中是否包括vox
e.hurt(30,{damageType:'火焰_0'})//综合喆喵所讲的知识(doge)
e.player.directMessage('你收到了30点火焰伤害')
}else if(ice_hurt.includes(vox)){
e.hurt(20,{damageType:'冰冻_1'})
e.player.directMessage('你收到了20点冰冻伤害')
}else if(poison_hurt.includes(vox)){
const m =Math.floor(Math.random()*50)
e.hurt(m,{damageType:'毒素_2'})
e.player.directMessage('你收到了'+m+'点毒素伤害')
}else if(light_hurt.includes(vox)){
e.hurt(20,{damageType:'闪光_3'})
e.player.directMessage('你收到了30点闪光伤害')
}
})
})
world.onDie(async({ entity:e,damageType }) => {
const damtyp=damageType.split('_')//分割,以便后面进行运算
if(damtyp[1]=='0'){
e.player.color.set(1,0,0)//红色
}else if(damtyp[1]=='1'){
e.player.color.set(0,0,1)//蓝色
}else if(damtyp[1]=='3'){
e.player.color.set(0,0,0)//蓝色
}else{
e.player.color.set(0,1,0)//爱色
}
world.say(`${e.player.name}收到了${damtyp[0]}伤害后不幸喵亡`)//广播消息
for(i=10;i>0;i--){
e.player.directMessage(i+'秒后复活')
await sleep(1000)
}
e.player.color.set(1,1,1)
e.player.forceRespawn()
})
world.onPlayerJoin(({ entity }) => {
entity.player.enable3DCursor = true // 开启方块光标
entity.selected = 'stone' // 玩家当前选定dirt方块
})
world.onPress(async ({ entity, raycast, button }) => {
if (button === Box3ButtonType.ACTION0) {
const pos = raycast.voxelIndex.add(raycast.normal) // 射线指到的方块位置加上被选中的面的法线向量
voxels.setVoxel(pos.x, pos.y, pos.z, entity.selected)
}
else if (button === Box3ButtonType.ACTION1) {
const selection = await entity.player.dialog({
type: Box3DialogType.SELECT,
content: '选择方块类型(闪光、毒素、火焰、冰冻、恢复)',
options: ['white_light','yellow_light','olive_green','yellow_green','polar_ice','ice','lava01','lava02','H'],
})
if (selection) {
entity.selected = selection.value // 更新玩家当前选定方块
}
}
})
//代码参考:吉吉喵、没名某人
完!