用户:
星惠awa查看:13 回复:16 评论:13 创建时间:2022-05-04T17:19:40
代码还行,就是每个玩家进入游戏都开一个on Tick ,就是耗费亿点资源
本人觉得代码这样写更好:
//挂机检测(大约4分钟)
world.onPlayerJoin(({entity})=>{//当玩家进入地图
entity.time1=0;//初始化玩家私有属性time1
r.resume();//开启Tick循环
})
const r= world.onTick(()=>{
world.querySelectorAll('player').forEach((entity)=>{
if(entity.player.walkState==''){//判断玩家行走状态,无行走为""也就是挂机
entity.time1++;
}
else{
entity.time1=0;
}
if(entity.time1 >= 3000){//当挂机时间超过3000Tick
world.say(`玩家${entity.player.name}因为挂机过久被系统送入挂机房!`)
entity.player.dialog({
type: Box3DialogType.TEXT,
title: `系统`,
content: '你因为挂机太久被系统送入挂机房!'
})
entity.position.set(喵,121,喵)//传送玩家
r.cancel();//关闭Tick循环
}
})
})
//注意: 借鉴使用需得到作者许嘉茗本人同意,否则默认成抄袭!!!
world.onPlayerLeave(({entity})=>{//当玩家离开地图
r.cancel();//关闭Tick循环
})
点赞0
评论
var wanjia = []
world.onPlayerJoin(({entity}) => {
entity.player.maxHp = 100
entity.player.Hp = 100
entity.player.coin = 0
entity.player.jurisdiction = ‘玩家’
if (entity.player.name == ‘许嘉茗’){
world.say(本图独家代码顾问(兼代码师)${entity.player.name}来到了地图!大家欢迎!)
entity.addTag(‘本图独家代码顾问(兼代码师)’)
entity.player.jurisdiction = ‘本图独家代码顾问(兼代码师)’
}else if (entity.player.name == ‘玉耒.ZHYUE’){
world.say(本图作者${entity.player.name}来到了地图!大家欢迎!)
entity.addTag(‘作者’)
entity.player.jurisdiction = ‘作者’
}else if (entity.player.name == ‘奇异果博士’){
world.say(本图管喵${entity.player.name}来到了地图!大家欢迎!)
entity.addTag(‘管喵’)
entity.player.jurisdiction = ‘管喵’
}
})
world.onChat(async ({ entity, message }) => {
if (admin.includes(entity.player.name) && (entity.player.jurisdiction == ‘作者’ ||
entity.player.jurisdiction == ‘管喵’ || entity.player.jurisdiction == ‘本图独家代码顾问(兼代码师)’)) {
if (message == ‘作者权限’) { world.say(‘作者特权:特殊功能包含日出、天亮、傍晚、天黑变大、变小、还原大小、飞行、解除飞行、隐身、现身、隐藏名字、显示名字、幽灵模式、解除幽灵、发光、还原发光、反光、还原反光、变红色、变蓝色、变绿色、变黄色、变浅蓝色、还原颜色、全部还原、封神,禁言(例如:禁言+禁言者名字)、解除禁言(例如:解除禁言+被禁言者名字),提示(禁言和禁言者名字间不要加空格)设置临时管喵,删除临时管喵,查看临时管喵名单,发布公告,踢出(例如:踢出+踢出者名字),关闭粒子特效、开启粒子特效、变彩虹,清屏,击杀(例如:击杀+击杀名字),加金币,金币清0,重置服务器,重置方块倒计时,进监狱(例如:进监狱+进监狱玩家的名字),出监狱(例如:出监狱+出监狱玩家的名字),手动添喵誉值,手动减少信誉值,作者权限选项版’)}
if (message == ‘变大’) { entity.player.scale = 1.5; world.say(‘作者’ + entity.player.name + ‘变大了’) }
if (message == ‘变小’) { entity.player.scale = 0.5; world.say(‘作者’ + entity.player.name + ‘变小了’) }
if (message == ‘还原大小’) { entity.player.scale = 1; world.say(‘作者’ + entity.player.name + ‘还原了大小’) }
if (message == ‘飞行’) { entity.player.canFly = true; world.say(‘作者’ + entity.player.name + ‘开启了飞行模式’) }
if (message == ‘关闭飞行’) { entity.player.canFly = false; world.say(‘作者’ + entity.player.name + ‘关闭了飞行模式’) }
if (message == ‘加速’) {
entity.player.walkSpeed += 300
entity.player.runSpeed += 190
entity.player.flySpeed += 100
world.say(‘作者’ + entity.player.name + ‘ clock up’)
}
if (message == ‘隐身’) { entity.player.invisible = true; world.say(‘作者’ + entity.player.name + ‘隐身’) }
if (message == ‘现身’) { entity.player.invisible = false; world.say(‘作者’ + entity.player.name + ‘现身了’) }
if (message == ‘隐藏名字’) { entity.player.showName = false; world.say(‘作者’ + entity.player.name + ‘隐藏了名字’) }
if (message == ‘显示名字’) { entity.player.showName = true; world.say(‘作者’ + entity.player.name + ‘显示了名字’) }
if (message == ‘幽灵模式’) { entity.player.spectator = true; world.say(‘作者’ + entity.player.name + ‘开启了幽灵模式’) }
if (message == ‘关闭幽灵’) { entity.player.spectator = false; world.say(‘作者’ + entity.player.name + ‘关闭了幽灵模式’) }
if (message == ‘发光’) { entity.player.emissive = 1; world.say(‘作者’ + entity.player.name + ‘开启了发光效果’) }
if (message == ‘还原发光’) { entity.player.emissive = 0; world.say(‘作者’ + entity.player.name + ‘还原了发光效果’) }
if (message == ‘反光’) { entity.player.shininess = 1; world.say(‘作者’ + entity.player.name + ‘开启了反光效果’) }
if (message == ‘关闭反光’) { entity.player.shininess = 0; world.say(‘作者’ + entity.player.name + ‘还原了反光效果’) }
if (message == ‘变红色’) { entity.player.color.set(1, 0, 0); world.say(‘作者’ + entity.player.name + ‘变成了红色’) }
if (message == ‘变绿色’) { entity.player.color.set(0, 1, 0); world.say(‘作者’ + entity.player.name + ‘变成了绿色’) }
if (message == ‘变蓝色’) { entity.player.color.set(0, 0, 1); world.say(‘作者’ + entity.player.name + ‘变成了蓝色’) }
if (message == ‘变黄色’) { entity.player.color.set(1, 1, 0); world.say(‘作者’ + entity.player.name + ‘变成了黄色’) }
if (message == ‘变浅蓝色’) { entity.player.color.set(0, 1, 1); world.say(‘作者’ + entity.player.name + ‘变成了浅蓝色’) }
if (message == ‘还原颜色’) { entity.player.color.set(1, 1, 1); world.say(‘作者’ + entity.player.name + ‘还原了颜色’) }
if (message === “日出”) { world.sunPhase = 0; entity.player.directMessage(‘已设置到日出’) }
if (message === “天亮”) { world.sunPhase = 0.25; entity.player.directMessage(‘已设置到天亮’) }
if (message === “傍晚”) { world.sunPhase = 0.5; entity.player.directMessage(‘已设置到傍晚’) }
if (message === “天黑”) { world.sunPhase = 0.75; entity.player.directMessage(‘已设置到天黑’) }
if (message == ‘封神’) {
entity.player.invisible = true;
entity.player.showName = false;
entity.player.spectator = true;
entity.atta = 1;
entity.player.canFly = true;
entity.player.walkSpeed += 500;
entity.player.runSpeed += 500;
entity.player.flySpeed += 500;
entity.player.jumpPower = 5;
Object.assign(entity, {
particleRate: 1000,//粒子数量,可更改,越大粒子越多
particleSize: [1, 3, 5, 3, 1],//粒子在每个阶段的大小,可更改
particleColor: [//例子在每个阶段的颜色,可更改
new Box3RGBColor(6, 0, 0),//第一阶段
new Box3RGBColor(5, 0, 0),//第二阶段
new Box3RGBColor(5, 0, 0),//第三阶段
new Box3RGBColor(8, 6, 0),//第四阶段
new Box3RGBColor(9, 0, 0),//第五阶段
],
particleLifetime: 0.4,
particleVelocitySpread: new Box3Vector3(2, 2, 2),
});
world.say(‘作者’ + entity.player.name + ‘封神了!’)
};
if (message == ‘清屏’) {
for (let x = 0; x < 50; x++) {
world.say(‘清屏中······’)
}
for (let x = 0; x < 1000; x++) {
world.say(‘’)
}
world.say(‘清屏完成’)
}
if (message.startsWith(‘击杀’)) {
if (message.slice(4) == entity.player.name) {
entity.player.directMessage(‘无法击杀自己,请重新尝试!’)
} else {
world.querySelectorAll(‘player’).forEach((x) => {
if (x.player.name == message.slice(4)) {
x.player.directMessage(‘击杀’)
world.say(玩家${x.player.name}被作者${entity.player.name}击杀了)
x.player.hp -= 999999999999999999999
}
})
}
}
if (message == ‘全部还原’) {
entity.player.scale = 1;
entity.player.canFly = false;
entity.player.showName = true;
entity.player.spectator = false;
entity.player.invisible = false;
entity.player.emissive = 0;
entity.player.shininess = 0;
entity.player.color.set(1, 1, 1);
Object.assign(entity, { particleRate: 250, });
world.say(entity.player.name + ‘全部还原了’);
}
if (message.startsWith(‘禁言’)) {
if (message.slice(2) == entity.player.name) {
entity.player.directMessage(‘这么想禁言自己??’)
} else {
world.querySelectorAll(‘player’).forEach((x) => {
if (x.player.name == message.slice(2)) {
x.player.dialog({
type:Box3DialogType.TEXT,
title:’系统’,
content:你已被作者${entity.player.name}禁言,请等待作者${entity.player.name}解除禁言!,
})
world.say(玩家${x.player.name}犯了错,被作者${entity.player.name}禁言了)
x.player.muted = true
}
})
}
}
if (message.startsWith(‘解除禁言’)) {
if (message.slice(4) == entity.player.name) {
entity.player.directMessage(‘无法解除禁言自己’)
} else {
world.querySelectorAll(‘player’).forEach((x) => {
if (x.player.name == message.slice(4)) {
x.player.dialog({
type:Box3DialogType.TEXT,
title:’系统’,
content:你已被作者${entity.player.name}解除禁言,下次不要再乱说话了!,
})
world.say(玩家${x.player.name}被作者${entity.player.name}解除禁言了!)
x.player.muted = false
}
})
}
}if (message == ‘设置临时管喵’){
const result = await entity.player.dialog({
type: Box3DialogType.INPUT,
title: “系统”,
titleTextColor: new Box3RGBAColor(1, 1, 1, 1),
titleBackgroundColor: new Box3RGBAColor(0, 0, 0, 0.98),
content: 亲爱的作者${entity.player.name},你要给谁临时权限呢?,
confirmText: ‘确定’, // 确定按钮上面的文字。按下确定按钮后,提交回答。
placeholder: ‘输入那个人的名字’, // 输入框背景上的提示文字。
contentTextColor: new Box3RGBAColor(1, 1, 1, 1),
contentBackgroundColor: new Box3RGBAColor(0, 0, 0, 0.98),
lookEye: entity.position.add(entity.player.facingDirection.scale(5)),
lookTarget: entity,
});
点赞0
评论
for (const e of world.querySelectorAll('*')) {//遍历所有实体
if (e.id.startsWith('存档点')) {//如果当前实体名左边部分刚好是"存档点", 比如 存档点-1 存档点-2...
e.collides = true //开启碰撞
e.fixed = true //固定实体不被推移
e.meshScale = e.meshScale.scale(2) //放大2倍
e.onEntityContact(({ other }) => { //每当存档点碰到另一个实体
if (other.isPlayer) { //另一个实体是玩家
if (e.position !== other.player.spawnPoint) { // 检测当前存档点是否玩家重生点, 避免反复在同一个存档点做多余的保存
other.player.directMessage('到达新的重生点') // 给玩家发消息
other.player.spawnPoint = e.position // 喵家重生点坐标设置成存档点的坐标
}
}
})
}
}
world.onPlayerJoin(({ entity }) => {
entity.onFluidEnter(() => {//当玩家掉到水里
entity.position.copy(entity.player.spawnPoint)
entity.position.y += 4
})
})
点赞0
评论
world.onPlayerJoin(async({ entity })=> {
//设置视角
entity.player.cameraMode = "relative"
entity.player.cameraTarget.y = 1
entity.player.cameraPosition.set(0, 0, -20)//3个数随便调,假设是a1,a2,a3,那么这一行的意思就是指从x+a1,y+a2,z+a3的地方看你()
//禁用WS
entity.player.disableInputDirection = Box3InputDirection.VERTICAL;//这东西是禁止ws的
entity.player.swapInputDirection = true//把这一行注释了后就可以搞事情了(?)
//防止移动出错
entity.player.freezedForwardDirection = new Box3Vector3(1, 0, 0);
})
点赞0
评论
https://box3.codemao.cn/e/ce531f6b8f65ce6186a2?p=1n3UBJD5vjqqQFh3Q4CxeBp4c2fAWzVnU1Fxrc5XBSA4qKzEePM喵ndWVzdA%3D%3D
点赞0
评论