猫史档案馆


【每日一个岛3建图小技巧】分组对战?来战斗吧!

用户:神岛吉吉喵神岛吉吉喵查看:6 回复:26 评论:6 创建时间:2021-07-27T18:33:18


center_image

给玩家分组对战的进阶版教程来力!

所需代码

function joinRed(entity) {
    entity.addTag('red')//加红队标签
    entity.player.color.set(1, 0, 0)//变红
    world.say(`${entity.player.name} 被分配到红队`)
    entity.player.spawnPoint.set(5, 10, 喵)//设置红队的出生点在地图的一边
}

function joinBlue(entity) {
    entity.addTag('blue')//加蓝队标签
    entity.player.color.set(0, 0, 1)//变蓝
    world.say(`${entity.player.name} 被分配到蓝队`)
    entity.player.spawnPoint.set(122, 10, 喵)//设置蓝队的出生点在地图的另一边
}

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

    const red = world.querySelectorAll('.red') //红队玩家列表
    const 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)//加入红队
    }

    entity.player.forceRespawn() //传送到自己队伍的出生点
    entity.enableDamage = true //允许玩家受伤
    entity.score = 0 //玩家初始得分为0
    entity.onDie(async ({ attacker }) => {
        let attackerTeam = teamName(attacker)//对手的队名
        let myTeam = teamName(entity)//玩家的队名

        world.say(`[${attackerTeam}]${attacker.player.name} 击败了 [${myTeam}]${entity.player.name}`)
        attacker.score += 1 //当玩家被击败时, 给对手加1分

        await sleep(5000) //等待5秒后复活
        entity.player.forceRespawn() //满血回到出生点
    })
})

function teamName(entity) {
    if (entity.hasTag('red')) {//如果有红队标签
        return '红队'
    }
    else if (entity.hasTag('blue')) {//如果有蓝队标签
        return '蓝队'
    }
    return '未知队伍'
}

world.onClick(({ entity, clicker }) => {
    if ( //如果攻击者和被击者在不同的队伍, 则被击者会受伤
        (entity.hasTag('red') && clicker.hasTag('blue')) || //被击者是红队, 攻击者是蓝队
        (entity.hasTag('blue') && clicker.hasTag('red')) //或者 被击者是蓝队, 攻击者是红队
    ) {
        entity.hurt(10, { attacker: clicker }) //被点击者受到10点伤害, 并将点击者传递给onDie事件
    }
})

world.onPress(({ entity, button }) => {
    if (button == Box3ButtonType.ACTION1) { //右键查看自己的分数
        entity.player.dialog({
            type: Box3DialogType.TEXT,
            content: `本回合你击败了${entity.score}个对手`
        })
    }
})

 上一期分组对战教程指路:

https://shequ.codemao.cn/community/379286

center_image

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

官网:box3.fun

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

center_image

 


回复

上一页1 页 / 共 1下一页
神岛吉吉喵神岛吉吉喵

创作节下半场进度过半

详情指路:https://shequ.cod喵/community/386815

你的地图目前情况如何呢?

emotion_编程猫_加油

点赞0


评论


全网一个白虎兄全网一个白虎兄

沙发

 

点赞0


评论


成熟的强袭编程猫548成熟的强袭编程猫548

沙发

点赞0


评论


成熟的强袭编程猫548成熟的强袭编程猫548

某吉,分身的代码到底是什么

点赞0


评论


阳光的流熔怪Uyt5阳光的流熔怪Uyt5

emmm……当玩家离开时没有维护诶

点赞1


评论


SHEL深空无尽SHEL深空无尽

热乎

点赞0


评论


SHEL深空无尽SHEL深空无尽

前排

点赞1


评论


SHEL深空无尽SHEL深空无尽

沙发

点赞0


评论


化石茄子的铁镐化石茄子的铁镐

前排!!!

点赞0


评论


AbnormalLOGAbnormalLOG

后排

点赞0


评论


ASWRYTSASWRYTS

怎么每30秒重置分数(相当于每30秒1局游戏)

点赞0


评论


IaeaIaea

打卡

点赞0


评论


AlcalaAlcala

ohhhh

点赞0


评论


逍遥WYC逍遥WYC

emotion_编程猫_点赞

点赞0


评论


果敢的超能鸭viwX果敢的超能鸭viwX

怎么分身

点赞0


评论


好奇的疾电猴Z8Y1F2好奇的疾电猴Z8Y1F2

我又来借代码啦emotion_雷电猴_捂嘴笑

点赞1


评论


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

”白嫖“

点赞0


评论


堂主の犬堂主の犬

怎么隐藏自己的名字

 

点赞0


评论


MrAssMrAss

挖坟

点赞0


评论


冰糖葫芦_冰糖葫芦_

收藏

点赞0


评论


咖喱盖饭澄妍咖喱盖饭澄妍

hh

点赞0


评论


loc浪迹天涯loc浪迹天涯

imgsrc="https://static.cod喵/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%82%B9%E8%B5%9E.gif"alt="emotion_编程猫_点赞"

点赞0


评论


自信的重金怪268自信的重金怪268

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%82%B9%E8%B5%9E.gif"alt="emotion_编程猫_点赞"

点赞0


评论


yyds二营长yyds二营长

收藏

点赞0


评论


SCS_user_rUu1OtmY5iSCS_user_rUu1OtmY5i

收藏ing

 

点赞0


评论


WitheredWonderWitheredWonder

()()()()

点赞0


评论