您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds bars to AP HP and MP
// ==UserScript== // @name Nexus Clash Stat Bars // @namespace http://userscripts.org/users/125692 // @description Adds bars to AP HP and MP // @include http://nexusclash.com/modules.php?name=Game* // @include http://www.nexusclash.com/modules.php?name=Game* // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @version 1.08 // ==/UserScript== //for nexus clash. this script // adds coloured bars to under AP/HP/MP to provide visual referenece to depletion of these stats. try{ if (!this.GM_getValue || (this.GM_getValue.toString && this.GM_getValue.toString().indexOf("not supported")>-1)) { this.GM_getValue=function (key,def) { return localStorage[key] || def; }; this.GM_setValue=function (key,value) { return localStorage[key]=value; }; this.GM_deleteValue=function (key) { return delete localStorage[key]; }; } } catch (err) { console.log('Test if GM_getValue supported error:\n' + err.message); } //check if start screen and store max values. var isstart = document.evaluate( "//h2[starts-with(.,'Welcome back to Nexus Clash!')]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); if (isstart.snapshotLength == 1) { //we on start screen. //Store max ap/hp/mp values. var charlinks = document.evaluate( "//a[starts-with(@href,'modules.php?name=Game&op=character&id=')]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var charid; var charmaxhp=0; var charmaxap=0; var charmaxmp=0; if (charlinks.snapshotLength > 1) {//found some charlinks var charlink=0; for (i=0;charlink=charlinks.snapshotItem(i);i++){ //alert(i); charid=charlink.href.match(/id=(\d+)/)[1]; charlink=charlink.parentNode.nextElementSibling.nextElementSibling; charmaxap=charlink.textContent.match(/\/(\d+)/)[1]; charlink=charlink.nextElementSibling; charmaxhp=charlink.textContent.match(/\/(\d+)/)[1]; charlink=charlink.nextElementSibling; charmaxmp=charlink.textContent.match(/\/(\d+)/)[1]; //now store 'em away GM_setValue("maxap"+charid,charmaxap); GM_setValue("maxhp"+charid,charmaxhp); GM_setValue("maxmp"+charid,charmaxmp); } } return; //as that is all we want to do as we are on the start screen } //we not on start screen so we probably in game so apply rest of script. //add styles GM_addStyle(".barap{height:6px;background-color:#505050;}");//COLOUR FOR BACKGROUND OF AP BAR ##0000ff is blue GM_addStyle(".barhp{height:6px;background-color:#ff0000;}"); //COLOUR FOR BACKGROUND OF HP BAR ##FF0000 is red GM_addStyle(".barmp{height:6px;background-color:#0050f0;}");//COLOUR FOR BACKGROUND OF MP BAR ##8000ff is purple GM_addStyle(".barslider{height:5px;position:absolute;left:0px;background-color:#00ff00;}");// SET COLOUR FOR FOREGROUND OF BAR 00ff00 is green GM_addStyle(".statbardiv{width:100%;position:absolute;top:20px;bottom:0px;left:0px;right:0px;}"); GM_addStyle(".bartd{position:relative;}"); var OVERMAXCOLOUR="#0000FF";//colour to make bar for when over max //ADD COLOUR BARS TO AP/HP/MP if(document.getElementById("CharacterInfo")){ var charinfodiv=document.getElementById("CharacterInfo"); var charlinks = document.evaluate( ".//a[starts-with(@href,'modules.php?name=Game&op=character&id=')]", charinfodiv, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var charid=0; if (charlinks.snapshotLength==1){ charid=charlinks.snapshotItem(0).href.match(/id=(\d+)/)[1]; } var charmax = new Array();//lol at this way. makes code a bit shorter in for charmax[0]=GM_getValue("maxap"+charid,0); charmax[1]=GM_getValue("maxhp"+charid,0); charmax[2]=GM_getValue("maxmp"+charid,0); //alert("heh"); if (charmax[0]&&charmax[1]&&charmax[2]){//only if all are true(ie we got a proper value) for(i=0;i<3;i++){//for each stat add bar var statbardiv=document.createElement('div'); var backdiv=document.createElement('div'); var frontdiv=document.createElement('div'); statbardiv.className="statbardiv"; backdiv.className = i==0?"barap":i==1?"barhp":"barmp"; frontdiv.className="barslider"; var font=charinfodiv.getElementsByTagName("font")[i];//get font charstat=font.innerHTML.match(/-?\d+/); //get ap/hp/mp and if -ve if(i==1){//the hp doesn't refill automatically most of the time. backdiv.title=charstat+"/"+charmax[i]+" Need "+ (Number(charmax[i])-Number(charstat))+"hp healed"; } else{// for ap and mp backdiv.title = charstat+"/"+charmax[i]+" Full in "+ (Number(charmax[i])-Number(charstat))/4+" hours";//assume ap/mp +1 per tick } var frontwidth=Math.round(100*(Number(charstat)/Number(charmax[i]))); if (frontwidth>100){//for some reason we over max frontwidth=100; frontdiv.style.backgroundColor=OVERMAXCOLOUR;//set to blue to signify over max } else if (frontwidth<0){//for some reason we at -ve values frontwidth=0; } frontdiv.style.width=""+frontwidth+"%";//Doing it as %; frontdiv.title=charstat+"/"+charmax[i]; //alert('here'); var hptd = charinfodiv.getElementsByTagName("td")[i+2]; hptd.className='bartd'; backdiv.appendChild(frontdiv); statbardiv.appendChild(backdiv); hptd.appendChild(statbardiv); } } }// ==UserScript== // @name Nexus Clash Stat Bars // @namespace http://userscripts.org/users/125692 // @description Adds bars to AP HP and MP // @include http://nexusclash.com/modules.php?name=Game* // @include http://www.nexusclash.com/modules.php?name=Game* // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @version 1.07 // ==/UserScript== //for nexus clash. this script // adds coloured bars to under AP/HP/MP to provide visual referenece to depletion of these stats. try{ if (!this.GM_getValue || (this.GM_getValue.toString && this.GM_getValue.toString().indexOf("not supported")>-1)) { this.GM_getValue=function (key,def) { return localStorage[key] || def; }; this.GM_setValue=function (key,value) { return localStorage[key]=value; }; this.GM_deleteValue=function (key) { return delete localStorage[key]; }; } } catch (err) { console.log('Test if GM_getValue supported error:\n' + err.message); } //check if start screen and store max values. var isstart = document.evaluate( "//h2[starts-with(.,'Welcome back to Nexus Clash!')]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); if (isstart.snapshotLength == 1) { //we on start screen. //Store max ap/hp/mp values. var charlinks = document.evaluate( "//a[starts-with(@href,'modules.php?name=Game&op=character&id=')]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var charid; var charmaxhp=0; var charmaxap=0; var charmaxmp=0; if (charlinks.snapshotLength > 1) {//found some charlinks var charlink=0; for (i=0;charlink=charlinks.snapshotItem(i);i++){ //alert(i); charid=charlink.href.match(/id=(\d+)/)[1]; charlink=charlink.parentNode.nextElementSibling.nextElementSibling; charmaxap=charlink.textContent.match(/\/(\d+)/)[1]; charlink=charlink.nextElementSibling; charmaxhp=charlink.textContent.match(/\/(\d+)/)[1]; charlink=charlink.nextElementSibling; charmaxmp=charlink.textContent.match(/\/(\d+)/)[1]; //now store 'em away GM_setValue("maxap"+charid,charmaxap); GM_setValue("maxhp"+charid,charmaxhp); GM_setValue("maxmp"+charid,charmaxmp); } } return; //as that is all we want to do as we are on the start screen } //we not on start screen so we probably in game so apply rest of script. //add styles GM_addStyle(".barap{height:5px;background-color:#505050;}");//COLOUR FOR BACKGROUND OF AP BAR ##0000ff is blue GM_addStyle(".barhp{height:5px;background-color:#ff0000;}"); //COLOUR FOR BACKGROUND OF HP BAR ##FF0000 is red GM_addStyle(".barmp{height:5px;background-color:#0050f0;}");//COLOUR FOR BACKGROUND OF MP BAR ##8000ff is purple GM_addStyle(".barslider{height:5px;position:absolute;left:0px;background-color:#00ff00;}");// SET COLOUR FOR FOREGROUND OF BAR 00ff00 is green GM_addStyle(".statbardiv{width:100%;position:absolute;top:20px;bottom:0px;left:0px;right:0px;}"); GM_addStyle(".bartd{position:relative;}"); var OVERMAXCOLOUR="#0000FF";//colour to make bar for when over max //ADD COLOUR BARS TO AP/HP/MP if(document.getElementById("CharacterInfo")){ var charinfodiv=document.getElementById("CharacterInfo"); var charlinks = document.evaluate( ".//a[starts-with(@href,'modules.php?name=Game&op=character&id=')]", charinfodiv, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var charid=0; if (charlinks.snapshotLength==1){ charid=charlinks.snapshotItem(0).href.match(/id=(\d+)/)[1]; } var charmax = new Array();//lol at this way. makes code a bit shorter in for charmax[0]=GM_getValue("maxap"+charid,0); charmax[1]=GM_getValue("maxhp"+charid,0); charmax[2]=GM_getValue("maxmp"+charid,0); //alert("heh"); if (charmax[0]&&charmax[1]&&charmax[2]){//only if all are true(ie we got a proper value) for(i=0;i<3;i++){//for each stat add bar var statbardiv=document.createElement('div'); var backdiv=document.createElement('div'); var frontdiv=document.createElement('div'); statbardiv.className="statbardiv"; backdiv.className = i==0?"barap":i==1?"barhp":"barmp"; frontdiv.className="barslider"; var font=charinfodiv.getElementsByTagName("font")[i];//get font charstat=font.innerHTML.match(/-?\d+/); //get ap/hp/mp and if -ve if(i==1){//the hp doesn't refill automatically most of the time. backdiv.title=charstat+"/"+charmax[i]+" Need "+ (Number(charmax[i])-Number(charstat))+"hp healed"; } else{// for ap and mp backdiv.title = charstat+"/"+charmax[i]+" Full in "+ (Number(charmax[i])-Number(charstat))/4+" hours";//assume ap/mp +1 per tick } var frontwidth=Math.round(100*(Number(charstat)/Number(charmax[i]))); if (frontwidth>100){//for some reason we over max frontwidth=100; frontdiv.style.backgroundColor=OVERMAXCOLOUR;//set to blue to signify over max } else if (frontwidth<0){//for some reason we at -ve values frontwidth=0; } frontdiv.style.width=""+frontwidth+"%";//Doing it as %; frontdiv.title=charstat+"/"+charmax[i]; //alert('here'); var hptd = charinfodiv.getElementsByTagName("td")[i+2]; hptd.className='bartd'; backdiv.appendChild(frontdiv); statbardiv.appendChild(backdiv); hptd.appendChild(statbardiv); } } }