您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds some functionality to the Solar Crusaders Alpha
当前为
// ==UserScript== // @name BitteWenden's Solar Crusaders Mod // @version 0.1 // @description Adds some functionality to the Solar Crusaders Alpha // @author BitteWenden // @match http://solarcrusaders.com/ // @grant GM_addStyle // @namespace https://greasyfork.org/users/18854 // ==/UserScript== var startupTimerFreq = 5000; // expressed in miliseconds var allShips; var overlay; var shipsToModify; alert("You're using a modified version of the game. Any bugs you encounter could be caused by the modification so please send a message to BitteWenden in the Solar Crusader forums if you encounter a mod caused bug. Feel free to contact me if you have any suggestions! Select some ships and press 'F' to open the mod menu."); function setPlayable(ships) { for (var ship of ships) { ship.isPlayer = true; } } function createInputs() { window.addEventListener('keydown', KeyCheck, true); overlay = document.createElement ('div'); overlay.innerHTML = '<div id="dialog"><h2 id="shipsToEditLabel">No Ships Selected!</h2><label for="shipColorChooser" >Set Ship Color: </label><input id="shipColorChooser" type="color"></input></br><label for="shipScaleChooser" >Set Scale: </label><input placeholder="1" id="shipScaleChooser" type="number"></input></br><h3>Press Enter to Proceed or ESC to exit.</h3></div>'; overlay.setAttribute ('id', 'overlay'); document.body.appendChild (overlay); } function init() { allShips = game.world.getChildAt(1).children; if(allShips[0].isPlayer !== undefined) { clearInterval(startupTestInterval) setPlayable(allShips); createInputs(); } } function KeyCheck(e) { if(overlay.style.visibility == "visible") { if(e.keyCode == 13) { var colorChooser = document.getElementById("shipColorChooser"); var rgbColorObj = hexToRgb(colorChooser.value); var r = rgbColorObj.r.toString(); if(rgbColorObj.r < 100) { r = "0" + r; console.log(r); if(rgbColorObj.r < 10) { r = "0" + r; } } var g = rgbColorObj.g.toString(); if(rgbColorObj.g < 100) { g = "0" + g; console.log(g); if(rgbColorObj.g < 10) { g = "0" + g; } } var b = rgbColorObj.b.toString(); if(rgbColorObj.b < 100) { b = "0" + b; if(rgbColorObj.b < 10) { b = "0" + b; } } console.log(r); console.log(g); console.log(b); var rgbColor = r + g + b; var scaleChooser = document.getElementById("shipScaleChooser"); var scale = scaleChooser.value; if(scale == 0) { scale = 0.1; } for(var ship of shipsToModify) { ship.tint = rgbColor; ship.scale.x = scale, ship.scale.y = scale; } console.log(rgbColor); overlay.style.visibility = "hidden"; } if(e.keyCode == 27) { overlay.style.visibility = "hidden"; } } else if(e.keyCode == 70) { if(overlay != undefined) { overlay.style.visibility = "visible"; shipsToModify = []; for(var ship of allShips) { if(ship.selected === true) shipsToModify.push(ship); } if(shipsToModify.length != 0) { var labelString = "Selected: "; var first = true; for(var ship of shipsToModify) { if(first === true) { first = false; } else { labelString += ","; } if(ship.name) labelString += ship.name; } var label = document.getElementById("shipsToEditLabel"); label.innerHTML = labelString; console.log("Selected:" + labelString); } } } } var startupTestInterval = setInterval(function(){ init() }, startupTimerFreq ); GM_addStyle ( multilineStr ( function () {/*! #overlay { visibility: hidden; position: absolute; left: 0px; top: 0px; width:100%; height:100%; text-align:center; z-index: 1000; } #dialog { width: 30vw; height: 40vh; background-color: rgba(255, 165, 0, 0.8); margin-left: auto; margin-right: auto; margin-top:10vh; } #shipsToEditLabel { height: 2em; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; color:black; } label{ color:black; } h3{ color:black; } */} ) ); function multilineStr (dummyFunc) { var str = dummyFunc.toString (); str = str.replace (/^[^\/]+\/\*!?/, '') // Strip function () { /*! .replace (/\s*\*\/\s*\}\s*$/, '') // Strip */ } .replace (/\/\/.+$/gm, '') // Double-slash comments wreck CSS. Strip them. ; return str; } function hexToRgb(hex) { var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; }