首先先下载油猴,记住是红色的,可以安装到浏览器的
然后再脚本页面输入:
// ==UserScript==
// @name box3plus
// @version 0.1.5.220805
// @description 重写Alan_Best的box3++,保留部分功能,涵盖爬取皮肤,第1/3人称视角转换等……持续更新中
// @author _async_function_
// @match https://box3.codemao.cn/p/*
// @match https://box3.fun/p/*
// @icon https://static.box3.codemao.cn/img/QmUX51Fo1NTRP5H4cQa4UMcTCP7ZhyDwLvQsKM2zbStdMJ_520_216_cover.avif
// @grant none
// @require https://cdn.jsdelivr.net/npm/lil-gui@0.16
// @license GPL
// @namespace https://greasyfork.org/zh-CN/users/942818-async-function
// ==/UserScript==
(function () {
var box3plus = {
flying: false,
saveblocks: [],
}
function a() {
try {
var box3CoreElement = document.querySelector('#react-container');
var reactNodeName = Object.keys(box3CoreElement).filter((v) =>
v.includes('reactContain')
)[0];
var core =
box3CoreElement[reactNodeName].updateQueue.baseState.element.props.children
.props.children.props;
window.core = core;
document.func = document.querySelector('.desktop')._reactRootContainer._internalRoot.current.updateQueue.baseState.element.props.children.props.children.props.state;
return true;
} catch (e) {
console.warn(e)
return undefined;
};
};
var interval = setInterval(async () => {
if (a()) {
clearInterval(interval);
a();
console.log('box3plus加载完毕');
var con = confirm(`
box3plus已加载完成,您好,请认真阅读以下条款:
1.box3plus有权采集您的公开用户信息,包括用户名,boxId等
2.box3plus为您无偿提供的有关服务(包括但不限于飞行,获取皮肤等),在您使用box3plus提供的服务时所造成的一切后果,均需您自己承担
单击确定将视作您同意box3plus服务条款,box3plus将自动为您进入地图并提供box3plus的所有功能;
单击取消将不会为您提供任何box3plus的服务,您仍然可以正常进入地图
`);
if (!con) return;
console.log('正在进入地图');
core.start();
var doNotShield = {
width: 180,
height: 180,
'未开发': () => {
console.log('点击-未开发')
confirm('开发中,敬请期待');
},
'调试中': () => {
console.log('点击-调试中')
confirm('功能正在调试,暂时无法使用,敬请谅解');
},
};
var map = {
'大小': (() => {
confirm('地图尺寸为:' + document.func.box3.state.voxel.shape);
}),
};
var player = {
'皮肤': () => {
console.log('点击-皮肤')
core.state.brpc.skin.api
.getAll()
.then(
(a) => (core.state.box3.state.secret.availableSkin = a.map((o) => o.name))
);
confirm('获取成功')
},
'禁言': () => {
console.log('点击-禁言')
document.func.box3.state.secret.replica.canChat = true
confirm('解除成功(可能对muted无效)');
},
'飞行': () => {
console.log('点击-飞行')
confirm('可能会卡顿')
if (box3plus.flying) {
console.log('关闭飞行')
confirm('调试中')
/*
var index = 0;
var bolckIndex = 0;
var block = box3plus.saveblocks[0][0];
var lastIndex = box3plus.saveblocks[0][1];
for (y = 0; y < document.func.box3.state.voxel.shape[1]; y++) {
for (x = 0; x < document.func.box3.state.voxel.shape[0]; x++) {
for (z = 0; z < document.func.box3.state.voxel.shape[2]; z++) {
document.func.box3.voxel._setVoxel(x, y, z, block);
index++;
if (index == lastIndex) {
bolckIndex++;
lastIndex += box3plus.saveblocks[bolckIndex][1];
block = box3plus.saveblocks[bolckIndex][0];
};
};
};
};
confirm('已关闭飞行模式');
box3plus.flying=false;
*/
} else {
console.log('开启飞行')
// var low = prompt('需飞行的y坐标下限?(低于0无效)');
// var high = prompt('需飞行的y坐标上限?(高于'+document.func.box3.state.voxel.shape[1]+'无效)');
var blocks = [];
function append(item) {
if (blocks.length > 0 && blocks[blocks.length - 1][0] === item) {
blocks[blocks.length - 1][1] += 1;
} else {
blocks.push([item, 1]);
};
};
function forEach(fun) {
for (var l of blocks) {
for (var x = 0; x < l[1]; x++) {
fun(l[0]);
};
};
};
for (var x = 0; x <= document.func.box3.state.voxel.shape[0]; x++) {
try {
document.func.box3.voxel
for (var z = 0; z <= document.func.box3.state.voxel.shape[2]; z++) {
for (var y = 0; y <= document.func.box3.state.voxel.shape[1]; y++) {
if (document.func.box3.voxel.getVoxel(x, y, z) == 0) {
document.func.box3.voxel._setVoxel(x, y, z, 364);
};
append(document.func.box3.voxel.getVoxel(x, y, z));
};
};
} catch (e) {
// confirm('error:' + e);
console.warn(e);
};
};
box3plus.saveblocks = [];
blocks.forEach((i) => {
box3plus.saveblocks.push([i[0], i[1]]);
});
confirm('您可以飞行了,快去试试吧');
box3plus.flying = true
}
},
'第一人称': () => {
console.log('点击-第一人称')
document.func.box3.state.secret.replica.camera.mode = 2;
confirm('切换成功')
},
'第三人称': () => {
console.log('点击-第三人称')
document.func.box3.state.secret.replica.camera.mode = 0;
confirm('切换成功')
},
'fovY': () => {
console.log('点击-fovY')
document.func.box3.state.secret.replica.camera.fovY = prompt('请问您要将fovY调为几?目前为' + document.func.box3.state.secret.replica.camera.fovY);
confirm('切换成功')
},
};
window.gui = new lil.GUI({ title: '🧰box3plus工具箱' });
window.gui.domElement.style.top = 'unset';
window.gui.domElement.style.bottom = '0';
window.gui.domElement.style.userSelect = 'none';
var page1 = gui.addFolder('地图');
page1.add(map, '大小').name('地图尺寸');
var page2 = gui.addFolder('玩家');
var page2_1 = page2.addFolder('通用');
page2_1.add(player, '皮肤').name('获取所有皮肤');
page2_1.add(player, '禁言').name('解除系统禁言');
page2_1.add(player, '飞行').name('开/关飞行模式');
page2_1.add(doNotShield, '未开发').name('改变自身大小');
var page2_2 = page2.addFolder('视角');
page2_2.add(player, '第一人称').name('切换第一人称');
page2_2.add(player, '第三人称').name('切换第三人称');
page2_2.add(player, 'fovY').name('修改cameraFovY');
var page2_3 = page2.addFolder('音乐');
page2_3.add(doNotShield, '未开发').name('开发中');
};
}, 100);
})();
在进入代码岛进地图页面即可正常使用