猫史档案馆


【Box3干货】如何在地图中实现抽奖/选取一位幸运儿

用户:CenCen查看:6 回复:14 评论:6 创建时间:2023-01-25T13:56:59


在某些地图中

可能会用到抽奖这个功能

话不多说,直接上代码与注释!

globalThis.CJ = async() =>{
    var item = [];//设置一个玩家列表
    world.querySelectorAll('player').forEach((e) => {
        item.push(e.player.name);//将地图中所有玩家的昵称加入到玩家列表内
    });
    world.say('【抽奖】开始抽奖了!');//开始抽奖提示
    await sleep(1000);//添加时间等待
    world.say('【抽奖】本次的幸运儿是——');
    await sleep(2000);//设置等待
    var XYplayer = item[Math.floor(Math.random() * item.length)];//获取玩家列表内随机一项
    world.say(`@${XYplayer} !`);//宣布获奖的玩家
    world.querySelectorAll('player').forEach((e) => {
        if(e.player.name == XYplayer){//寻找获奖玩家
            e.player.directMessage(`[系统]恭喜你中奖了!`);//告诉获奖玩家自己中奖了
            //可以在这里添加一些中奖的奖项,比如让玩家发光,允许飞行或者给予装备之类的(可在API查)
        };
    });
}

使用方法:

CJ()

为了让萌新更好理解,这里写的都是最简单的代码,如有错误可在评论区指出,如有疑问可以在评论区提出!


回复

上一页1 页 / 共 1下一页
CenCen

沙发

点赞1


评论


海上钢琴师1海上钢琴师1

龙椅

点赞1


评论


无极玄天无极玄天

拖走sofa()

点赞0


评论


被遗忘的屑被遗忘的屑

建议把CJ换Lottery()不喜欢拼音)

点赞0


评论


浮生awa浮生awa

en=world.querySelectorAll('player').find(e=>e.player.name===XYplayer)

找寻玩家为什么不用这个(恼

点赞0


评论


浮生awa浮生awa

globalThis.CJ = async() =>{
    world.say('【抽奖】开始抽奖了!');//开始抽奖提示
    await sleep(1000);//添加时间等待
    world.say('【抽奖】本次的幸运儿是——');
    await sleep(2000);//设置等待
    var en = world.querySelectorAll('player')[Math.floor(Math.random() * world.querySelectorAll('player').length)];
    world.say(`@${en.player.name} !`);//宣布获奖的玩家
}
CJ()

混淆一下()

点赞0


评论


PoiresPoires

()这个代码怎么执行,控制台吗?

点赞0


评论


馫龘飝鱻灥麤靐飍朤馫譶龘飝虪齺馫龘飝鱻灥麤靐飍朤馫譶龘飝虪齺

 

老区转新区回馈: 阳光猫已经采集1区玩家等级数据

统计有近1000名老玩家符合领取资格

活动时间: 2022年12月22日 至 2023年1月31日截止

100级以上玩可领取:剑羽飞仙1把+100劵

200级以上玩家可领取:绝星长喵1把+200劵

300级以上玩家可领取:护摩之杖+300劵

400级以上玩家可领取:红莲 +400劵

500级以上玩家可领取:雾切之回光+500劵

600级以上玩家可领取:薪炎大剑+600劵

700级以上玩家可领取:苍古自由之誓+700劵

800级以上玩家可领取:终极三叉戟+1000劵

那在2023.1.25 采集一下数据吗?

 

点赞0


评论


望柒望柒

这个必须顶上去!

点赞0


评论


仙之鹤仙之鹤

喵喵

点赞0


评论


raearaea

ddd

点赞0


评论


SCS_user_LoeheodVOQSCS_user_LoeheodVOQ

// 简单版:
globalThis.CJ = async() =>{
    world.say('【抽奖】开始抽奖了!');//开始抽奖提示
    await sleep(1000);//添加时间等待
    world.say('【抽奖】本次的幸运儿是——');
    await sleep(2000);//设置等待
    world.say(`@${(XYplayer = world.querySelectorAll('player')[Math.floor(Math.random() * world.querySelectorAll('player').length)]).player.name} !`);//宣布获奖的玩家
    XYplayer.player.directMessage(`[系统]恭喜你中奖了!`);//告诉获奖玩家自己中奖了
}

// 随手改的()应该没问题()()()

点赞0


评论


抬头就是你抬头就是你

lass Admin {
    constructor() {}

    static async CJ(admin = new Box3Entity) {
        var item_cj = [];
        world.querySelectorAll('player').forEach((e) => {
            item_cj.push(e.player.name);//将地图中所有玩家的昵称加入到玩家列表内
        });
        world.say('【抽奖】开始抽奖了!');//开始抽奖提示
        await sleep(1000);//添加时间等待
        world.say('【抽奖】本次的幸运儿是——');
        await sleep(2000);//设置等待
        var XYplayer = item_cj[Math.floor(Math.random() * item_cj.length)];//获取玩家列表内随机一项
        world.say(`@${XYplayer} !`);//宣布获奖的玩家
        world.querySelectorAll('player').forEach((e) => {
            if (e.player.name == XYplayer) {//寻找获奖玩家
                e.player.directMessage(`[系统]恭喜你中奖了!金币加1000~`);
                e.player.coin += 1000
                text(e, '[系统]', '恭喜你中奖了!')
            };
        });
    }
}

改了一改(

点赞0


评论


Aaa求佛yaAaa求佛ya

emotion_编程猫_加油

点赞0


评论