猫史档案馆


每日一个建图小技巧:设置进阶版复活点!

用户:神岛吉吉喵神岛吉吉喵查看:2452 回复:22 评论:13 创建时间:2021-12-16T18:42:28


center_image

 

跑酷、pvp游戏必备的小技巧来啦!

学会这三种进阶版的复活点写法

基本上就能驾驭大部分的地图玩法了~

所用到的代码如下:

// 获取场景里的复活点模型,命名为respawnPoint
// 具体模型可以用任意你喜欢的模型替换,名称也可以替换成你想要的命名
const respawnPoint = world.querySelector(`#复活点`)

// 监听方块与实体的碰撞
world.onVoxelContact(({entity, voxel})=> {
    // 将方块id转换名称
    const voxelName = voxels.name(voxel);
    // 如果方块名称是熔岩
    if (voxelName === 'lava02'){
        // 使实体受到100点伤害
        // 目的是为了直接触发实体的'onDie'事件
        //  *这里为了方便演示,将伤害值直接调到生命值(hp)的上限100点,
        //   具体调到多少点可以自行设置,只要玩家累计受到100点伤害就会触发entity的'onDie'事件
        entity.hurt(100)
    }
})

// 当玩家进入地图时
world.onPlayerJoin(({ entity }) => {
    // 首先要开启enableDamage(允许伤害),如果不设置为true的话,玩家是不会受到伤害的!
    entity.enableDamage = true
    // 给玩家的'onDie'事件添加处理的逻辑
    // 'onDie'事件会在玩家的生命值(hp)减少到0及以下时触发
    entity.onDie(() => {
        // 设置复活点的主要API: entity.player.spawnPoint

        // 1.在指定位置复活。
        // 复活点设置为世界里的'复活点模型'的坐标(position)
        // 当角色复活的时候就会出现在'复活点模型'的位置上
        // -------------------------打开下面一行注释测试效果,同时给2&3的代码注释掉---------------------------------
        entity.player.spawnPoint = respawnPoint.position.clone();
        // -------------------------打开上面一行注释测试效果,同时给2&3的代码注释掉---------------------------------

        // 2.在指定区域复活
        // const xPos = 72 + Math.random() * 5
        // const zPos = 63 + Math.random() * 5
        // entity.player.spawnPoint = new Box3Vector3(xPos, 15, zPos);


        // 3.在随机区域复活
        // const xPos = 0 + Math.random() * 126
        // const zPos = 0 + Math.random() * 126
        // entity.player.spawnPoint = new Box3Vector3(xPos, 15, zPos);

        // 设置好复活点之后,记得调用forceRespawn() API
        // 这样就可以强制玩家复活到上面设置好的位置了
        entity.player.forceRespawn()
    })
})

运行任意一种复活点的方式时

记得把其他两种方式的代码注释使其不能运行

不然会报错哦

加入神奇代码岛官方内测Q喵

官网:box3.fun

下面的二维码会扫出来什么呢?( =•ω•= )m

center_image

 


回复

上一页第 1 页 / 共 1 页下一页
我是一个冲锋手我是一个冲锋手

沙发

点赞0


评论

沙发!

寄生抢沙发

抢(捉)

官方一起抢沙发)


蔡宁进(大家再见)蔡宁进(大家再见)

我要当第二

点赞0


评论

呀!!!


果果1~果果1~

第三!

点赞0


评论


天下第一皮卡丘天下第一皮卡丘

(小)沙发

点赞0


评论


许pTgk许pTgk

前排

点赞0


评论


1086爱编程1086爱编程

第六

点赞0


评论


啸着玩。啸着玩。

前排

点赞0


评论

讲的好,但是都知道)

捕捉~


IDF哲宇MIKEIDF哲宇MIKE

还有沙发吗?

点赞0


评论


无人质问无人质问

前排

点赞0


评论


源码极客源码极客

有必要这么麻烦吗?弄好存档之后让玩家碰到某个方块就会存档点不就完了

点赞0


评论

嗯,不愧是编程社团优秀学生!


百变喵啊百变喵啊

能拿走就拿走我

吉吉喵更新下一期,因为你有币了,长按点赞三连点亮了

点赞0


评论


全能代码师全能代码师

前排

点赞1


评论


Fliere_tammy_Fliere_tammy_

2小时,还热乎着、、、

点赞0


评论

6个月,还热乎着'''

啊对对对(((


快乐的皮卡丘A快乐的皮卡丘A

能不能出一个跑酷排行榜教程

点赞1


评论

排行榜的基础代码上期已经教过了,建议尝试自己学习摸索哦

出一个飞机教程!坦克教程!(吉吉你有点佛系了,都是男生啊!这些主题都不是我们想要的)


浮生awa浮生awa

前排

点赞0


评论


A332A332

吉吉猫,我有一串代码想请教
function joinRed(entity){
entity.addTag('red')
entity.player.coler.set(1,0,0)
world.say('${entity.player.name}加入红队')
}

function joinBlue(entity){
entity.addTag('blue')
entity.player.coler.set(0,0,1)
world.say('${entity.player.name}加入蓝队')
}

world.onPlayerJoin(({entity}) => {
c喵t red = world.querySelectorAll(".red")
c喵t blue = world.querySelectorAll(".blue")
if(red.length === blue.length) {
if(Math.random() < 0.5) {
joinBlue(entity)
}
else {
joinRed(entity)

}
}
else if (red.length > blue.length {
joinBlue(entity)
}
else {
joinRed(entity)
}
})
哪里有问题?

点赞0


评论

coler写错了应改成color,当引号里面有$时要用反引号``


A332A332

那是你的教程,可是有bug呀

点赞0


评论


墨染云天墨染云天

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E6%90%93%E5%A4%B4.gif"alt="emotion_编程猫_搓头"

点赞0


评论


枫原冷月枫原冷月

吉吉喵,能与我合作地图吗?我快被累死了

点赞2


评论


AP03AP03

for (const e of world.querySelectorAll('*')) {
    if (e.id.startsWith('存档点')) {
        e.collides = true 
        e.fixed = true 
        e.onEntityContact(({ other }) => { 
            if (other.isPlayer) { 
                if (e.position !== other.player.spawnPoint) { 
                    other.player.spawnPoint = e.position
                }
            }
        })
    }
}

world.onPlayerJoin(({ entity }) => {
    entity.onFluidEnter(({voxel}) => {
        if (voxel === voxels.id('lava02')) { 
            entity.position.copy(entity.player.spawnPoint)
            entity.position.y += 15
        }
    })
})

点赞0


评论


酳飞酳飞

🆗

点赞0


评论


yyds二营长yyds二营长

收藏

点赞0


评论