用户:
追梦ez查看:14 回复:15 评论:14 创建时间:2023-03-12T21:08:19
神奇代码岛组件:DreamExd正式上线!
现已和145lab合作,以下是1.2版DreamExd的全部脚本:
//@name DreamExd
//@version 1.2
//@authoringarea 145lab
//@author Dream不想变屑awa
var banbenh=1.2
//'set':
var admin=['请填写管喵昵称名单']
var wangyuanjing=1//望远镜
var caidan=1//菜单
var fanzuobi=1//反作弊
var guanliyuan=1//管喵
var fangliandian=1//防连点
var fanghomo=1//防homo
var fangkafangkuai=0//防卡方块
var kadunjiance=1//卡顿检测
var fangguaji=0//防挂机
var fasongzhuangtai=1//是否在地图运行时广播DreamExd设置
function dreamExdError(error){
world.say('⚠DreamExd'+banbenh+'发生错误:'+error+'⚠')
return
}
if(admin[0]=='请填写管喵昵称名单'&&guanliyuan){
dreamExdError('未输入管喵名单')
}else{
try{
dreamExd(admin)
}
catch(e){
dreamExdError('未知错误:\n'+e)
}
}
//'main':
function dreamExd(gly){
world.say('DreamExd运行成功!\n版本号:'+banbenh)
if(fasongzhuangtai){
world.say('[DreamExd'+banbenh+'] 广播设置:'+fasongzhuangtai+'望远镜:'+wangyuanjing+'菜单:'+caidan+'管喵:'+guanliyuan+'防连点:'+fangliandian+'防homo:'+fanghomo+'防卡方块:'+fangkafangkuai+'卡顿检测:'+kadunjiance+'防挂机:'+fangguaji+'管喵列表:'+gly)
}
if(wangyuanjing){
world.onPlayerJoin(async({entity})=>{
entity.cameranum = entity.player.cameraFovY
})
world.onPress(async({button,entity})=>{
if(button == Box3ButtonType.ACTION1){
await sleep(1000)
if(!entity.player.action1Button){return}
while(entity.player.action1Button){
entity.player.cameraFovY = 0.05
await sleep(50)
}
entity.player.cameraFovY = entity.cameranum
}
})}
if(caidan){
world.onChat(async ({ entity, message }) => {
if (message === '/settings') {
const sel = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: '菜单',
content: ``,
options: ['举报','切换人称']
})
if (sel) {
if (sel.value === '举报') {
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,
});
if (!result || result === null) {
return '关闭';
} const result1 = 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},请输入玩家${result}的违规信息:`,
confirmText: '确定', // 确定按钮上面的文字。按下确定按钮后,提交回答。
placeholder: `输入给${result}的违规信息`, // 输入框背景上的提示文字。
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,
});
if (!result1 || result1 === null) {
return '关闭';
} else {
insertRecord_jvbao_box(entity.player.name, result, String(result1))
entity.player.dialog({
type: Box3DialogType.TEXT,
title: '系统',
content: '提交成功!(SQL上传成功!)'
})
//创建文本框
entity.player.dialog({
//类型
type: Box3DialogType.TEXT,
//标题
title: `系统`,
//文本内容
content: `谢谢您的支持!`
})
}
}
else if (sel.value === '切换人称') {
if (entity.player.cameraMode == 'fps') {
entity.player.cameraMode = 'follow';
entity.player.directMessage('已切换至第三人称')
} else if (entity.player.cameraMode == 'follow') {
entity.player.cameraMode = 'fps';
entity.player.directMessage('已切换至第一人称')
}
}
}
}
})}
// 创建表
async function createTables_jvbao_box() {
await db.sql`CREATE TABLE IF NOT EXISTS jvbao_box (
commenternamename VARCHAR(50) NOT NULL,
names VARCHAR(50) NOT NULL,
opinion VARCHAR(200) NOT NULL
)`
}
/* 在脚本开始的时候执行 */
(async function () {
await createTables_jvbao_box()
}());
// 插入数据函数
async function insertRecord_jvbao_box(commentername, name, opinion) {
try {
await db.sql`INSERT INTO jvbao_box VALUES (${commentername},${name}, ${opinion})`
} catch (e) {
world.say(`insert sql error: ${e}`);
}
}
// 创建表
async function createTables_box() {
await db.sql`CREATE TABLE IF NOT EXISTS box (
name TEXT DEFAULT '',
record INTEGER DEFAULT 0,
keys TEXT PRIMARY KEY UNIQUE DEFAULT ''
)`
}
/* 在脚本开始的时候执行 */
(async function () {
await createTables_box()
}());
world.onPlayerJoin(({ entity }) => {
entity.player.suspensionTime = 0;
});
if(fanzuobi){
const dx = [-1, 0, 1, -1, 0, 1, -1, 0, 1], dz = [1, 1, 1, 0, 0, 0, -1, -1, -1];
let pos = new Box3Vector3;
world.onTick(() => {
world.querySelectorAll('player').filter(e => !e.destroyed).forEach((e) => {
pos = e.position;
e.player.suspension = Math.abs(e.velocity.y) < 1;
for (let i = 0; i < 9; i++) {
e.player.suspension &= voxels.getVoxelId(pos.x + dx[i], pos.y - 1.5, pos.z + dz[i]) == 0;
}
if (e.player.suspension) {
e.player.suspensionTime++;
} else {
e.player.suspensionTime = 0;
}
if (e.player.suspensionTime >= 80) {
e.player.suspensionTime = 0;
if (!gly.includes(e.player.name)) {
e.player.kick()
world.say(e.player.name + '因使用第三方插件作弊被踢出了游戏!');
}
}
})
});}
if(guanliyuan){
world.onChat(async({entity, message})=>{
if(message==='/admin') {
if(!gly.includes(entity.player.name))return
const sel = await entity.player.dialog({
type: Box3DialogType.SELECT,
title: '控制面板',
content: `管喵${entity.player.name},欢迎使用控制面板,请选择你要执行的选项( 严 禁 滥 用 管 理 权 !)`,
options: ['禁言','解除禁言','踢人','植入代码','查看举报','重启']
})
if(sel){
if(sel.value==='禁言') {
let options = []
world.querySelectorAll('player').forEach((x) => {
options.push(x.player.name)
})
const e = await entity.player.dialog({
type:'select',
title:'禁言',
content:'您要禁言谁',
options:options
})
if(e) {
world.querySelectorAll('player').forEach((x) => {
if(x.player.name == e.value) {
x.player.muted = true
world.say(`管喵${entity.player.name}禁言了${x.player.name}`)
}
})
}
}
else if(sel.value==='解除禁言') {
let options = []
world.querySelectorAll('player').forEach((x) => {
options.push(x.player.name)
})
const e = await entity.player.dialog({
type:'select',
title:'解除禁言',
content:'您要解除禁言谁',
options:options
})
if(e) {
world.querySelectorAll('player').forEach((x) => {
if(x.player.name == e.value) {
x.player.muted = false
world.say(`管喵${entity.player.name}解除禁言了${x.player.name}`)
}
})
}
}
else if(sel.value==='踢人') {
let options = []
world.querySelectorAll('player').forEach((x) => {
options.push(x.player.name)
})
const e = await entity.player.dialog({
type:'select',
title:'踢人',
content:'您要题踢谁',
options:options
})
if(e) {
world.querySelectorAll('player').forEach((x) => {
if(x.player.name == e.value) {
x.player.kick()
world.say(`管喵${entity.player.name}踢走了${x.player.name}`)
}
})
}
}
else if(sel.value==='植入代码') {
const code = await entity.player.dialog({
type: Box3DialogType.INPUT,
title:'植入代码',
content: '请正确输入指令'
})
world.say(`管喵${entity.player.name}执行了代码${code}`)
try{
entity.player.directMessage('~>'+eval(code))
} catch (err) {
entity.player.directMessage('<~'+err)
}
}
else if(sel.value==='查看举报') {
printRecord_jvbao_Box(entity)
}
else{
for(;;){}
}
}
}
})
world.onChat(async ({ entity, message }) => {
if (gly.includes(entity.player.name)) {
if (message[0] == "$") {
if (gly.includes(entity.player.name)) {
try {
var code = eval(message.slice(1));
world.say(`~>${code}`)
}
catch (e) {
world.say(e)
}
}
}
}
})}
// 创建表
async function createTables_jvbao_box() {
await db.sql`CREATE TABLE IF NOT EXISTS jvbao_box (
commenternamename VARCHAR(50) NOT NULL,
name VARCHAR(50) NOT NULL,
opinion VARCHAR(200) NOT NULL
)`
}
/* 在脚本开始的时候执行 */
(async function() {
await createTables_jvbao_box()
}());
// 插入数据函数
async function insertRecord_jvbao_box(commentername,name, opinion) {
try{
await db.sql`INSERT INTO jvbao_box VALUES (${commentername},${name}, ${opinion})`
} catch (e) {
world.say(`insert sql error: ${e}`) ;
}
}
// 将数据输出
async function printRecord_jvbao_Box(entity) {
rows = await db.sql`SELECT * FROM jvbao_box`
if (rows && !rows.length) {
entity.player.dialog({
type: Box3DialogType.TEXT,
title: `系统`,
content: `目前还没有举报信息哦!`
})
return '目前还没有举报信息哦!';
}
for await (const row of db.sql`SELECT * FROM jvbao_box`) {
const result = await entity.player.dialog({
type: Box3DialogType.TEXT,
title: `系统`,
content: `举报者姓名:${row.commenternamename} : 被举报者姓名: ${row.name} : 举报信息:${row.opinion}`
})
}
await removeAll_jvbao_Box()
}
// 清除表格所有数据 (表格结构不变)
async function removeAll_jvbao_Box() {
await db.sql`DELETE FROM jvbao_box`
}
if(fanghomo){
var homoword = ['114514', '1919810', '514', '1919', '810', '悲', '喜', '恼', '臭', '警撅', '指正', 'homo', '噗叽啪', '撅', '目力', '十分甚至九', '雷普', '特有', '雪', '难视', '野兽先辈', '田所浩二', '李田所', '会员制', '三回', '慈悲', '罢', '下北泽', '下北沢']
world.onChat(async ({ entity, message }) => {
if (entity.isPlayer) {
for (const i of homoword){
if (message.includes(i)) {
world.say(`${entity.player.name}因为提及了homo特有的词汇被慈悲的系统雷普力(悲`)
entity.player.kick()
return
}
}
}
})}
world.onPlayerJoin(async ({ entity, position }) => {
if (!entity.player.userKey&&fangyouke ) { entity.player.kick(); return }
if(fangliandian){
entity.player.cps=0
entity.player.possibleAc=0
world.onPress(async ({ x, y, z, entity, voxel, position, button, raycast: { voxelIndex, normal, distance } }) => {
if (button == 'action0' || button == 'action1') {
entity.player.cps += 1
if (entity.player.cps >= 17) {
entity.player.possibleAc += 1;
if (entity.player.possibleAc >= 40) {
if(gly.includes(entity.player.name)){return}
entity.player.kick()
world.say(entity.player.name + '因使用连点器被踢出游戏!')
return;
}
}
let clickEvent = setTimeout(() => {
entity.player.cps -= 1
clearTimeout(clickEvent)
}, 1000)
}
if (button == 'crouch') {
entity.player.showName = false;
entity.crouchButton=1
}
entity.player.releaseEvent = entity.player.onRelease(({ button }) => {
if (button == 'crouch') {
// 松开shift时显示名字
entity.crouchButton=0
entity.player.showName = true;
} else if (button == 'run') {
entity.player.runButton = false;
entity.player.firstAttack = false;
}
});
})}
})
global.tick = 0;
var afkKickTime = 120;
setInterval(async () => {
++tick
world.querySelectorAll('player').forEach(entity => {if(fangguaji){
if (tick % 20 == 0) {
entity.player.afkTime++;
if (entity.player.afkTime >= afkKickTime) {
world.say(entity.player.name + '因为挂机被踢出了游戏!')
entity.player.kick();
}
}
if (entity.player.walkState != '') {
entity.player.afkTime = 0;
}}
if (entity.tPos&&fangkafangkuai) {
// 卡方块检测
const v = entity.velocity;
if (v.y >= 0.7 || v.y <= -3 || v.x > 2 || v.x < -2 || v.z > 2 || v.z < -2) {
entity.position.copy(entity.tPos.add(new Box3Vector3(0, 1, 0)));
v.x = v.y = v.z = 0;
}
if (entity.ttPos) {
entity.ttPos.copy(entity.tPos);
} else {
entity.ttPos = new Box3Vector3;
}
entity.tPos.copy(entity.position);
} else {
entity.tPos = new Box3Vector3;
}
});
}, 50);
if(kadunjiance){
var kadun = 0
var kadun1 = 0;
world.onTick(({ tick, elapsedTimeMS, skip }) => {
kadun += elapsedTimeMS;
kadun1 += 1
})
caton()
async function caton() {
while (true) {
await sleep(10000)
var a = kadun1 * 喵;
var text = '';
if (kadun < a) {
var b = a - kadun
} else {
var b = kadun - a
};
//if (b == 0) return;
if (b <= 30) {
text = '无延迟'
}
if (b > 30 && b <= 50) {
text = '延迟优良'
}
if (b > 50 && b <= 100) {
text = '延迟良好'
}
if (b > 100 && b <= 200) {
text = '延迟还行'
}
if (b > 200 && b <= 500) {
text = '延迟较高'
}
if (b > 500 && b <= 1000) {
text = '延迟高'
}
if (b > 1000&& b <=9000) {
text = '延迟超高'
}
if (b > 9000) {
text = '服务器可能崩溃'
world.say('将帮您自动重启')
while(1){ }
for(;;);
}
world.say(`当前卡顿为每秒${b}Ms,目前网络状态:${text}!`)
kadun = kadun1 = 0;
}
}
//卡顿检测
Object.assign(Box3Entity.prototype, {
async dialog(prams) {
try {
return await this.player.dialog(prams);
} catch (e) {
world.say('⚠地图卡顿严重,可能会崩溃⚠');
}
}
});
//world.onTick卡顿处理
const code = [];
world.onTick((parameter) => {
code.forEach((e) => {
e(parameter);
})
})
world.onTick = (fn) => {
fn.cancel = () => {
const index = code.indexOf(fn);
if (index !== -1) {
code.splice(index, 1);
}
}
code.push(fn);
return fn;
}
world.onTick(({tick})=>{
world.querySelectorAll("player").forEach((e)=>{
e.tick = tick;
})
});
world.onPlayerJoin(async({entity})=>{
await sleep(喵);
while(true){
let tick = entity.tick;
await sleep(喵);
};
})}
}