您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
rewrites the information you get when you hover over a planet
// ==UserScript== // @name hoverTextbox // @description rewrites the information you get when you hover over a planet // @include http://play.planets.nu/* // @include http://test.planets.nu/* // @include http://planets.nu/* // @version 3.0.0 // @homepage https://gf.qytechs.cn/en/users/32642-stephen-piper // @namespace https://gf.qytechs.cn/en/users/32642-stephen-piper // ==/UserScript== //1 Humanoid - Any starbase that is built around a humanoid planet will have tech 10 hull technology automatically. //7 Amphibian - Any starbase that is built around a amphibian planet will have tech 10 beam technology automatically. //8 Ghipsoldal - Any starbase that is built around a ghipsoldal planet will have tech 10 engine technology automatically. //9 Siliconoid - Any starbase that is built around a siliconoid planet will have tech 10 torpedo technology automatically. //2 Bovinoid - Bovinoids are very valuable. Every 10000 Bovinoids will produce 1 supply unit per turn. //3 Reptilian - If there Reptilians living on a planet then your mining rate will be doubled. //4 Avian - Are quick to forgive you for overtaxing them. They will allow you to slightly overtax them without growing unhappy. //5 Amorphous - The only bad natives. The Amorphous lifeforms eat 500 colonists (5 clans) per turn. //6 Insectoid - Insectoids produce twice the normal amount of credits per turn per percentage as other native races. function wrapper() { function hitText() { } hitText.prototype = { nativeTaxAmount : function(c, ntr) { var nt = 0; if (c.nativeclans > 0) { if (c.race == 6 && ntr > 20) { // borg == 6 ntr = 20; } var nt = (c.nativeclans / 100) * (ntr / 10) * (c.nativegovernment / 5); nt = c.nativetype == 5 ? 0 : nt; // amorphous == 5 nt *= c.race == 1 ? 2 : 1; // feds == 1 nt *= c.nativetype == 6 ? 2 : 1; // insect == 6 nt = Math.round(nt); } return nt; }, nativesupportedtax : function(c) { ns = c.clans; ns *= c.race == 1 ? 2 : 1; // feds == 1 ns *= c.nativetype == 6 ? 2 : 1; // insect == 6 return ns; }, miningRate (p, ground, density) { m = vgap.miningRate(p, density); m = m > ground ? ground : Math.round(m); return m; }, spendSuppliesMC : function(d, c, a) { if (c + a <= d.supplies + d.megacredits && c <= d.supplies) { if (d.megacredits < a) { var b = a - d.megacredits; d.megacredits += b; d.supplies -= b; d.suppliessold += b; // console.log(d.id + " supplies "+d.suppliessold +" mc " + // d.megacredits); } d.megacredits -= a; d.supplies -= c; d.changed = true; } }, sbBuildCost : function(sb) { var h = vgap.getHull(sb.buildhullid); mc = 0; if (h) { mc = h.cost; if (sb.buildingengineid > 0) mc += vgap.engines[sb.buildengineid - 1].cost * h.engines; if (sb.buildbeamcount > 0) mc += vgap.beams[sb.buildbeamid - 1].cost * sb.buildbeamcount; if (sb.buildtorpcount > 0) mc += vgap.torpedos[sb.buildtorpedoid - 1].cost * sb.buildtorpcount; } return mc; }, }; var oldHitTextBox = vgapMap.prototype.hitTextBox; vgapMap.prototype.hitTextBox = function(c) { // replace completely, pretty sure i want to do this // oldHitTextBox.apply(this, arguments); var q = ""; q += "<div class='ItemSelectionBox minCorrection'>"; if (c.isPlanet) { if (c.id < 0) { c = vgap.getPlanet(-c.id); } q += "<table class='CleanTable'>"; if (c.ownerid == vgap.player.id && c.readystatus == 0) q += "<tr><td colspan='2' class='WarnText'>" + c.id + ":" + c.name + "</td>"; else q += "<tr><td colspan='2'>" + c.id + ":" + c.name + "</td>"; if (c.clans > 0) { q += "<td align='right' colspan='2'> " + c.clans + "</td>"; q += "<td align='right'> " + c.friendlycode + "</td>"; if (c.temp > 84 || c.temp < 15) q += "<td align='right' class='WarnText'>"; else q += "<td align='right'>"; q += " " + c.temp + "</td>"; } q += "</tr>"; if (c.nativeclans > 0) { q += "<tr><td colspan='2'>" + c.nativeracename + "</td>"; q += "<td align='right' colspan='2'> " + c.nativeclans + "</td>" if (c.ownerid == vgap.player.id) { q += "<td align='right'> " + c.nativehappypoints + "%</td>"; q += "<td align='right'> " + c.nativetaxrate + "%</td>"; } q += "</tr>"; } // if (vgap.player.status == 7 && !c) { // var e = ["None", "Colonization", "Build Starbase", "Supply // Starbase", "Exploration", "Build Special", "Attack", "Defend", // "Move Fuel"]; // return "<tr><td colspan='" + a + "' class='WarnText'>" + // e[b.goal] + "-" + b.goaltarget + "</td></tr>" // } if (c.infoturn != 0 && !vgap.godmode) { // q += this.hitText(c, c.isPlanet).replace(" ", ""); var sp = c.factories; var cs = 0; var nt = 0; var cs10 = 0; var nt10 = 0; var sps = 0; if (c.nativeclans > 0) { if (c.nativetype == 2) { // bovinoid spn = Math.floor(c.nativeclans / 100); sps = c.clans - spn; sp += sps > 0 ? spn : c.clans; } nt = hitText.prototype.nativeTaxAmount(c, c.nativetaxrate); ns = hitText.prototype.nativesupportedtax(c); cs = ns - nt; nt = Math.min(nt, ns); nt10 = hitText.prototype.nativeTaxAmount(c, 10); ns10 = hitText.prototype.nativesupportedtax(c); cs10 = ns10 - nt10; nt10 = Math.min(nt10, ns10); } ct = Math.round(c.clans * c.colonisttaxrate / 1000); mn = hitText.prototype.miningRate(c, c.groundneutronium, c.densityneutronium); md = hitText.prototype.miningRate(c, c.groundduranium, c.densityduranium); mm = hitText.prototype.miningRate(c, c.groundmolybdenum, c.densitymolybdenum); mt = hitText.prototype.miningRate(c, c.groundtritanium, c.densitytritanium); q += "</table><table class='CleanTable'>"; if (c.groundneutronium > 0) { q += "<tr><td>neu:</td><td align='right'>" + c.neutronium + "/ </td><td align='right'>" + c.groundneutronium + "+ </td><td align='right'>" + mn + "</td>"; q += "<td> sup:</td><td align='right'>" + c.supplies + "+ </td><td align='right'>" + sp + "- "; if (sps < 0) q += "</td><td class='WarnText' align='right'>" + (-sps); q += "</td></tr>"; q += "<tr><td>dur:</td><td align='right'>" + c.duranium + "/ </td><td align='right'>" + c.groundduranium + "+ </td><td align='right'>" + md + "</td>"; q += "<td> mc:</td><td align='right'>" + c.megacredits + "+ </td><td align='right'>" + (nt + ct) + "- "; if (cs < 0) q += "</td><td class='WarnText' align='right'>" + (-cs); q += "</td></tr>"; q += "<tr><td>tri:</td><td align='right'>" + c.tritanium + "/ </td><td align='right'>" + c.groundtritanium + "+ </td><td align='right'>" + mt + "</td>"; if (c.nativeclans > 0) { q += "<td> 10%:</td><td> </td><td align='right'>" + nt10 + "- "; if (cs10 < 0) q += "</td><td class='WarnText' align='right'>" + (-cs10); } q += "</td></tr>"; q += "<tr><td>mol:</td><td align='right'>" + c.molybdenum + "/ </td><td align='right'>" + c.groundmolybdenum + "+ </td><td align='right'>" + mm + "</td>"; q += "<td> m/f/d:</td><td colspan=2> " + c.mines + " / " + c.factories + " / " + c.defense + "<td>"; q += "</tr>"; var n = vgap.getStarbase(c.id); if (n != null && (c.ownerid == vgap.player.id || vgap.fullallied(c.ownerid))) { if (n.starbasetype != 2) { if (n.isbuilding) q += "<tr><td colspan='6'>bld: " + vgap.getHull(n.buildhullid).name + "</td></tr>"; else q += "<tr><td colspan='6' class='WarnText'>SB Not Building</td></tr>"; } } } } if (c.ownerid != vgap.player.id && c.ownerid != 0) { var k = vgap.getPlayer(c.ownerid); var l = vgap.getRace(k.raceid); q += "<tr><td colspan='4'>" + l.adjective + " (" + k.username + ")</td></tr>" } q += this.hitText(c, c.isPlanet).replace(" ", "") q += "</table>"; } else { if (c.id < 0) { c = vgap.getShip(-c.id) } var m = c; var e = vgap.getHull(m.hullid); var k = vgap.getPlayer(m.ownerid); var d = "<table class='CleanTable'>"; if (m.ownerid == vgap.player.id && m.readystatus == 0) d += "<tr><td colspan='4' class='WarnText'>" + m.id + ":" + e.name + "</td></tr>"; else d += "<tr><td colspan='4' >" + m.id + ":" + e.name + "</td></tr>"; if (m.ownerid == vgap.player.id || vgap.fullallied(m.ownerid)) { d += "<tr><td>neu:</td><td> " + gsv(m.neutronium) + "/" + e.fueltank + " </td>"; d += "<td> fc:</td><td> " + m.friendlycode + "</td></tr>"; cl = ""; if (m.clans != 0) cl = "<td>clns:</td><td> " + gsv(m.clans) + "</td>"; cs = "<td>sup:</td><td> " + gsv(m.supplies) + "</td>"; mc = "<td>mc:</td><td> " + gsv(m.megacredits) + "</td>"; if (m.duranium != 0 || m.tritanium != 0 || m.molybdenum != 0) { d += "<tr><td>dur:</td><td> " + gsv(m.duranium) + "</td>" + cs + "</tr>"; d += "<tr><td>tri:</td><td> " + gsv(m.tritanium) + "</td>" + mc + "</tr>"; d += "<tr><td>mol:</td><td> " + gsv(m.molybdenum) + "</td>" + cl + "</tr>"; } else { if (m.supplies != 0 || m.megacredits != 0) d += "<tr>" + cs + mc + "</tr>"; if (m.clans != 0 && cl != "") d += "<tr>" + cl + "</tr>"; } if (m.bays > 0 || m.torps > 0 || m.beams > 0) { d += "<tr>"; if (m.beams > 0) { d += "<td colspan='2'>beam/tech: " + m.beams + "/" + m.beamid + "</td>"; } if (m.bays > 0) { d += "<td colspan='2'>fgtr: " + gsv(m.ammo) + "</td>"; } if (m.torps > 0) { d += "<td colspan='2'>torp/tech: " + gsv(m.ammo) + "/" + m.torpedoid + "</td>"; } d += "</tr>"; } if (c.ownerid == vgap.player.id) { e = "<tr>"; // if (m.mission != 0 && m.mission != 4) { if (m.mission == 9) e += "<td colspan='3' class='GoodText'>"; else e += "<td colspan='3'>"; e += vgap.getShipMissionShortText(m); e += ((m.mission == 6 || m.mission == 7 || m.mission == 15 || m.mission == 20) && m.mission1target != 0 ? " " + m.mission1target : ""); e += "</td>"; // } if (m.enemy > 0) { s = vgap.getRace(m.enemy).adjective; s = s.replace(/^The (.+)/, "$1"); e += "<td colspan='5' class='WarnText'>" + s + "</td>"; } e += "</tr>"; if (m.x != m.targetx && m.y != m.targety) { t = Math.round(Math.dist(m.x, m.y, m.targetx, m.targety) * 10) / 10; e += "</tr><tr>"; if (m.target != null && m.target.name != null) e += "<td colspan='2'>" + m.target.id + ": " + m.target.name + "</td>"; else e += "<td colspan='2'>(" + m.targetx + "," + m.targety + ")</td>"; e += "<td> " + t + " ly</td>"; // var t = Math.round(Math.dist(m.x, m.y, m.targetx, m.targety)); trn = Math.ceil(t / (m.warp * m.warp + .4)); if (m.friendlycode == "HYP") { if (t >= 340 && t <= 360 && m.warp > 0) { e += "<td>"; trn = 1; } else e += "<td class='BadText'>"; } else if (trn > 1) e += "<td class='WarnText'>"; else e += "<td>"; e += " " + trn + " trns</td>"; } if (e != "<tr>") d += e + "</tr>"; if (m.damage > 0) { d += "<td>dam:</td><td class='BadText'> " + m.damage + "</td>" } else { d += "<td/></td>" } // } d += "</tr>" } if (c.ownerid != vgap.player.id && vgap.accountsettings.hoverallyplayer) { d += "<tr><td colspan='4'>" + l.adjective + " (" + k.username + ")</td></tr>" } d += "</table>" } else { q += "<div>" + vgap.getRace(k.raceid).adjective + " (" + vgap.getPlayer(c.ownerid).username + ")</div>"; d += "<table class='CleanTable'>"; d += "<tr><td>Heading:</td><td> " + gsv(m.heading) + " at Warp: " + gsv(m.warp) + "</td></tr>"; d += "<tr><td>Mass: </td><td> " + gsv(m.mass) + "</td></tr>"; if (vgap.player.raceid == 7) { for (var f = 0; f < vgap.messages.length; f++) { var g = vgap.messages[f]; if (g.messagetype == 12 && g.target == m.id) { d += "<tr><td class='BadText'>OUT OF FUEL</td></tr>"; break } } } if (m.iscloaked) { d += "<tr><td colspan='2' class='GoodText'>Cloaked</td></tr>" } d += this.hitText(c, c.isPlanet).replace(" ", ""); d += "</table>" } q += d } q += "</div>"; return q }; //shipSurvey var oldShowInfo = vgapMap.prototype.showInfo; vgapMap.prototype.showInfo = function(a, b) { // replace completely // oldShowInfo.apply(this, arguments); var h = Math.round(vgap.map.mapX(a)); var j = Math.round(vgap.map.mapY(b)); var c = null; if (h > 0 && h < 4000 && j > 0 && j < 4000) { c = vgap.map.checkForHit(h, j) } vgap.map.over = c; vgap.map.x = h; vgap.map.y = j; var f = "<span class='coordDisplay titleSelectionBox'> x: " + h + " y: " + j + " </span>"; if (c) { if (c.isPlanet) { f += vgap.map.hitTextBox(c) } var e = vgap.shipsAt(c.x, c.y); for (var d = 0; d < e.length; d++) { f += vgap.map.hitTextBox(e[d]) } } var g = ""; g += vgap.map.ionText(h, j); g += vgap.map.mineText(h, j); g += vgap.map.nebText(h, j); g += vgap.map.starText(h, j); g += vgap.map.debrisText(h, j); if (g != "undefined") { f += g; } if (vgap.map.zoom != 1) { f += "<div class='ItemSelectionBox minCorrection'>Zoom: " + Math.round(vgap.map.zoom * 100) + "% </div>" } vgap.map.loc.html("<div class='ItemSelection_border'>" + f + "</div>"); vgap.map.container.css("cursor", "inherit"); if (vgap.map.over) { if (vgap.map.activePlanet == null && vgap.map.activeShip == null) { vgap.map.container.css("cursor", "pointer") } else { vgap.map.container.css("cursor", "pointer") } } }; var oldShowAssembly = vgapStarbaseScreen.prototype.showAssembly; vgapStarbaseScreen.prototype.showAssembly = function() { oldShowAssembly.apply(this, arguments); s = { "top" : "57px", "position" : "absolute", "line-height" : "16px", "height" : "14px", "padding" : "0 24px", "right" : "14px", }; $("<div class='MoreActionButton' id='SellSuppliesButton'>Sell</div>") .appendTo("#BuyShipBox") .tclick(function() { // c = hitText.prototype.sbBuildCost(vgap.starbaseScreen.starbase); var v = $("#BuildShipCost .val").contents(); c = v[7].data; p = vgap.starbaseScreen.planet; mc = p.megacredits; sp = p.supplies; n = c - mc; if (n > 0) { if (sp - n > 0) { p.megacredits += n; p.supplies -= n; p.suppliessold += n; p.changed = 1; if (v[8].data != undefined) v[8].data = p.megacredits; else if (v[8].childNodes.length > 0) { v[8].className = "GreatText"; v[8].childNodes[0].data = p.megacredits; } $("#SellSuppliesVar").replaceWith("<div id='SellSuppliesVar'>" + p.supplies + "</div>"); $("#SellSuppliesVar").css(s); } } }); // c = hitText.prototype.sbBuildCost(vgap.starbaseScreen.starbase); var v = $("#BuildShipCost .val").contents(); if (v != undefined && v[7] != undefined) { c = v[7].data; p = vgap.starbaseScreen.planet; mc = p.megacredits; sp = p.supplies; r = mc - c; if (r > 0) q = ""; else { r += sp; if (r > 0) q = " class='GreatText'"; else q = " class='BadText'"; } $("#SellSuppliesButton").css(s); $("<div id='SellSuppliesHdr'>Supplies</div>").appendTo("#BuyShipBox"); s.top = 18; s.padding = "0 20"; $("#SellSuppliesHdr").css(s); s.top = 36; $("<div id='SellSuppliesVar'" + q + ">" + p.supplies + "</div>").appendTo("#BuyShipBox"); $("#SellSuppliesVar").css(s); } }; var oldRenderScreen = vgapTransferScreen.prototype.renderScreen; vgapTransferScreen.prototype.renderScreen = function() { oldRenderScreen.apply(this, arguments); e = vgap.getHull(this.to.hullid).name; var to = this.to.id + ":" + e; if (this.from.isPlanet != undefined && this.from.isPlanet == true) { var from = this.from.id + ":" + this.from.name; var title = "planet\>ship"; } else { e = vgap.getHull(this.from.hullid).name; var from = this.from.id + ":" + e; title = "ship\>ship"; } var html = "<table style='width:100%'><tr>"; html += "<td>" + from + "</td>"; html += "<td style='text-align:center'>" + title + "</td>"; html += "<td style='text-align:right'>" + to + "</td>"; html += "</tr></table>"; var m = "#MoreScreen "; var t = "#MoreScreen #TransferScreen "; $(t+".TransferTitle").replaceWith(html); $(t+".LeftRight1000 .lrtext-small").remove(); $(t+"h1").remove(); $(t+".valsup").replaceWith("<td><div> </div></td>"); // t+$(".SellSuppliesTable").remove(); $(t+"td:contains('Total')").replaceWith("<td><div> </div></td>"); // t+$("td:contains('Build Fighters')").parent().remove(); s = { "width" : "230px" }; $(t+".LeftRight1000").css(s); s = { "width" : "24px", "height" : "22px" }; $(t+".sac-small").css(s); s = { "width" : "420px" }; $(m).css(s); $(m).css(s); s = { "font-weight" : "normal", "color" : "white" }; $(t+".TransferVal").css(s); // var st = $("#MoreScreen #TransferScreen #SuppliesTransfer").parent().parent().detach(); // st.insertBefore($("#MoreScreen #TransferScreen #MoneyTransfer").parent().parent()); }; var oldShipTransferView = sharedContent.prototype.shipTransferView; sharedContent.prototype.shipTransferView = function(e) { // oldShipTransferView.apply(this, arguments); d = vgap.map.hitTextBox(e); return d; }; var oldPlanetTransferView = sharedContent.prototype.planetTransferView; sharedContent.prototype.planetTransferView = function(e) { // oldPlanetTransferView.apply(this, arguments); d = vgap.map.hitTextBox(e); return d; }; var oldTransfer = vgapPlanetScreen.prototype.transfer; vgapPlanetScreen.prototype.transfer = function() { oldTransfer.apply(this, arguments); s = { "width" : "210px", "font-weight" : "normal", "font-size" : "11px", "line-height" : "12px" }; $("#SelectLocation").css(s); $("#MoreScreen").width("210px"); }; var oldDrawShip = vgapMap.prototype.drawShip; vgapMap.prototype.drawShip = function(ship, ctx) { oldDrawShip.apply(this, arguments); if (vgap.canInitiateChunnel(ship)) { var b = vgap.getChunnelTarget(ship); if (b != null && vgap.isValidChunnelTarget(ship, b)) { d = Math.round(Math.dist(ship.x, ship.y, b.x, b.y) * 10) / 10; a = (ship.x - b.x) / d; a = Math.degrees(Math.acos(a)); e = (ship.y - b.y) / d; e = Math.degrees(Math.asin(e)); ax = Math.cos(Math.radians(a)) * d * .1; x = b.x + ax; ay = Math.sin(Math.radians(e)) * d *.1; y = b.y + ay; d = 30; // yellow ax = Math.cos(Math.radians(a-15)) * d; x1 = x + ax; // console.log(ship.id+" x:"+x+" ax:"+ax+" x1:"+x1+" a:"+a); ay = Math.sin(Math.radians(e-15)) * d; y1 = y + ay; // console.log(" "+b.id+" y:"+y+" ay:"+ay+" y1:"+y1+" e:"+e); // red ax = Math.cos(Math.radians(a+15)) * d; x2 = x + ax; ay = Math.sin(Math.radians(e+15)) * d; y2 = y + ay; // ctx.beginPath(); // ctx.moveTo(this.screenX(b.x), this.screenY(b.y)); // ctx.lineTo(this.screenX(x), this.screenY(y)); // ctx.strokeStyle = "orange"; // ctx.stroke(); ctx.beginPath(); ctx.moveTo(this.screenX(x1), this.screenY(y1)); ctx.lineTo(this.screenX(x), this.screenY(y)); // ctx.strokeStyle = "aqua"; // ctx.stroke(); // // ctx.beginPath(); // ctx.moveTo(this.screenX(x), this.screenY(y)); ctx.lineTo(this.screenX(x2), this.screenY(y2)); ctx.strokeStyle = "aqua"; ctx.stroke(); } } }; //Converts from degrees to radians. Math.radians = function(degrees) { return degrees * Math.PI / 180; }; // Converts from radians to degrees. Math.degrees = function(radians) { return radians * 180 / Math.PI; }; } ; var script = document.createElement("script"); script.type = "application/javascript"; script.textContent = "(" + wrapper + ")();"; document.body.appendChild(script);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址