您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Delete level 0 & level 1 planet of dark forest
当前为
// ==UserScript== // @name filter planet // @namespace http://github.com/harryhare // @version 0.1.2 // @description Delete level 0 & level 1 planet of dark forest // @author You // @match https://zkga.me/play/* // @match https://dfgame.277dao.com/play/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @license GPL3.0 // ==/UserScript== function get_planet_level(id) { let str = id.substring(8, 14); let s = parseInt(str, 16); //const PLANET_LEVEL_THRESHOLDS=df.contractConstants.planetLevelThresholds; const PLANET_LEVEL_THRESHOLDS = [ 16777216, 4194292, 1048561, 262128, 65520, 16368, 4080, 1008, 240, 48 ]; let level = -1; for (let i = 9; i >= 0; i--) { if (s < PLANET_LEVEL_THRESHOLDS[i]) { level = i; break; } } return level; } function delete_small(value) { let filtered = []; for (let i = 0; i < value.l.length; i++) { const h = value.l[i].h; const level = get_planet_level(h); if (level >= 2) { filtered.push(value.l[i]); } } console.log(filtered.length); value.l = filtered; return value; } async function openDB(db_name) { return new Promise((resolve, reject) => { let request = indexedDB.open(db_name); request.onupgradeneeded = function (event) { console.log("upgrade needed"); resolve(event.target.result); }; request.onsuccess = function (event) { resolve(event.target.result); }; request.onerror = function (event) { reject(event.target.error); }; }); } function update(db, table_name, key, value) { return new Promise((resolve, reject) => { let request = db.transaction(table_name, "readwrite").objectStore(table_name).put(value, key); request.onsuccess = function (event) { resolve(event.target.result); console.log("update", key); }; request.onerror = function (event) { reject(event.target.error); }; }); } function filterAll(db) { return new Promise((resolve, reject) => { const table_name = "knownBoard"; var request = db.transaction(table_name).objectStore(table_name).openCursor(); request.onsuccess = function (event) { var cursor = event.target.result; if (cursor) { console.log('id: ', cursor.id); console.log('key: ', cursor.key); console.log('value: ', cursor.value); update(db, table_name, cursor.key, delete_small(cursor.value)); cursor.continue(); } else { console.log('没有更多数据了!'); resolve(event.target.result); } }; request.onerror = function (event) { reject(event.target.error); }; }); } (function () { 'use strict'; let container = document.createElement("div"); container.style.position = "fixed"; container.style.top = "0"; container.style.left = "0"; container.style.height = "200px"; container.style.width = "200px"; let input = document.createElement("input"); input.style.width = "100%"; input.placeholder = "address"; let button = document.createElement("button"); button.style.width = "100%"; button.style.backgroundColor = "grey"; button.innerText = "过滤星球"; button.onclick = async () => { let gameId = window.location.href.substring("31"); //let userId = '0xb4de376b58a5a0e0b57ccf497ae902d8f2101588'; let userId = input.value; if (gameId.length !== 42) { return; } if (userId.length !== 42) { return; } //db_name = "darkforest-0x65580edf65670620be0965d22544a8e9c7955eb1-0xb4de376b58a5a0e0b57ccf497ae902d8f2101588"; let db_name = `darkforest-${gameId}-${userId}`; console.log(db_name); button.innerText="过滤中..."; button.disabled=true; let db = await openDB(db_name); await filterAll(db); button.innerText="过滤星球"; button.disabled=false; }; container.appendChild(input); container.appendChild(button); document.body.appendChild(container); })();