您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Améliore l'expérience de Kraland
当前为
// ==UserScript== // @name KI-Andromeda // @description Améliore l'expérience de Kraland // @match http://www.kraland.org/* // @match http://kraland.org/* // @version 1.1.3 // @author Gyeongeun // @namespace http://www.kraland.org/main.php?p=5_2_0_306385_1 // @grant none // @noframes // ==/UserScript== //+------------ Options par défaut --------------+ var tailleDesAvatarsForum = 110; var tailleDesAvatarsJeu = 40; var tailleDesAvatarsPopup= 110; //Taille en pixel (défaut: 110 forum ; 50 jeu) var tailleMaxImgRapportPrivé = 90; var tailleMaxImgForum = 100; var tailleMaxImgEvenement = 100; // Taille en % du cadre (défaut: 90) var pageAccueil = [2,1,0]; // 2=Cybermonde, 1=Forum, 0=Bienvenue // Mettez les cadres dans l'ordre de vos préférences var Goupil=false; // true pour désactiver les smileys Poule, false sinon var maxCache=5; // nombre de posts en cours de rédaction sauvegardé //+------------ Paramétrages du Script --------------+ //--- Variables Globales var kdocument=document; var theUrl=window.location.href; var aparam={ avaFora: tailleDesAvatarsForum, avaIg: tailleDesAvatarsJeu, avaOrder: tailleDesAvatarsPopup, imgRP: tailleMaxImgRapportPrivé, imgFora: tailleMaxImgForum, imgRE: tailleMaxImgEvenement, colorL: -1, tCache: maxCache, goupil: Goupil, motd: pageAccueil, erlite: true, avaItem: 32, bldgPic: 54, } var savedTxtData=[]; //--- Initialisation Euryphaessa(); function Euryphaessa(){ //--- redirection vers le site sans frame if(window.location.href=="http://www.kraland.org/" || window.location.href.startsWith("http://kraland.org/")){ location.replace("http://www.kraland.org/main.php"); } //--- accès aux paramètres sauvegardés if(localStorage.aparam){ aparam=JSON.parse(localStorage.aparam); } if(localStorage.std){ savedTxtData=JSON.parse(localStorage.std); } //--- accès aux options var nowUrl=window.location.href.toString(); var opId= new RegExp("p=8_4"); if(opId.test(nowUrl)){ AndroButton(); } // groupmenuEdit(); gImgRsz(); AvatarRsz(); ezSpoiler(); colorless(); if(aparam.goupil){goupil();} Hestia(); ERLite(); setArea(); } //+------------ Réarrangement Page d'accueil --------------+ function Hestia(){ var triptyque=kdocument.querySelectorAll('#central-text .bx-left'); if(triptyque.length>0){ var centralText=kdocument.getElementById('central-text'); centralText.innerHTML=""; var order=aparam.motd; var newOrder=[3]; for(let i=0;i<order.length;i++){ if(order[i]!=-1){ var j=order[i]; newOrder[i]=kdocument.createElement('div'); newOrder[i].classList.add("bx-left"); newOrder[i].innerHTML=triptyque[j].innerHTML; }else{ newOrder[i]=null; } if(newOrder[i]!=null){centralText.appendChild(newOrder[i]);} } } } //+------------ Réarrangement du menu top --------------+ /*function groupmenuEdit(){ var utest= new RegExp("main.php"); if(utest.test(theUrl)){ document.getElementById("link2").href="main.php?p=2_2"; }}*/ //+------------ Taille maximum des images --------------+ function gImgRsz(){ var impc=aparam.imgFora; var css=".rimg > img{max-width: 100% !important;} .limg > img{max-width: 100% !important;}"; if(theUrl.search("4_4")==34){ impc=aparam.imgRE; css+="td.ev_normal img{max-width: "+impc+"%;}"; }else{ css+= "td.forum-message img{max-width: "+impc+"%;} "; } css+=".rimg{max-width: "+impc+"%;}.limg{max-width: "+impc+"%;} "; css+="#report img{max-width: "+aparam.imgRP+"%;} "; var style = kdocument.createElement("style"); style.id="andromedaStyle"; style.type = "text/css"; style.appendChild(kdocument.createTextNode(css)); kdocument.head.appendChild(style); } //+------------ Redimensionnement des avatars --------------+ function AvatarRsz(){ var theUrl=window.location.href; if(aparam.avaFora!=null){ var avatarsForum = kdocument.querySelectorAll(".forum-cartouche img[alt=avatar]"); for(let i=0; i<avatarsForum.length; i++) { avatarsForum[i].width = aparam.avaFora; avatarsForum[i].height = aparam.avaFora; } } if(aparam.avaItem!=null && aparam.avaItem>32){ var avatarsItem = kdocument.querySelectorAll(".tdbc img"); for(let j=0; j<avatarsItem.length; j++) { if(!avatarsItem[j].src.includes("http://img.kraland.org/2/cyb")) { avatarsItem[j].width = aparam.avaItem; avatarsItem[j].height = aparam.avaItem; } }}else if(aparam.avaIg!=null && kdocument.querySelector(".on a")!=null && kdocument.querySelector(".on a").innerHTML=="Se Déplacer"){ var avatarsJeu = kdocument.querySelectorAll(".left-frame .tdbc img"); for(let j=0; j<avatarsJeu.length; j++) { if(!avatarsJeu[j].src.includes("http://img.kraland.org/2/cyb")) { avatarsJeu[j].width = aparam.avaIg; avatarsJeu[j].height = aparam.avaIg; } }} if(aparam.avaOrder!=null && theUrl.search("3000")==36){ var avatarOrderPopup=kdocument.querySelector("div.oc div.opc div.op div.rimg img"); avatarOrderPopup.width = aparam.avaOrder; avatarOrderPopup.height = aparam.avaOrder; } } //+------------ Assassin de la Poulice --------------+ function goupil(){ var icones = ["6A","6B","6C","6D","6E","6F","70","71","72","73","74","75","76","77","78","79","7A","7B","7C","7D","7E"]; var icones2 = ["0F","12","08","19","3B","3C","3A","3D","29","31","10","37","5D","18","23","36","5F","5B","64","2D","27"]; var url = ["http://img.kraland.org/s/","http://img.kraland.org/s2/"]; kdocument.querySelectorAll('img[src*="http://img.kraland.org/s/"]').forEach(noPoulet); kdocument.querySelectorAll('img[src*="http://img.kraland.org/s2/"]').forEach(noPoulet); function noPoulet(item){ for(var i=0;i<icones.length;i++){ if(item.src.endsWith(icones[i]+".gif")){ item.src=item.src.replace(icones[i], icones2[i]); item.setAttribute('alt', ' '); }} } var toolframe=kdocument.getElementsByName('tools_frame')[0]; if(toolframe!=null){ var tfDoc=toolframe.contentDocument; if(tfDoc.querySelector('a[href="post.php?p0=2&p1=6&p2="]')!=null){ tfDoc.querySelector('a[href="post.php?p0=2&p1=6&p2="]').remove(); }else if(tfDoc.querySelector('a[href="post.php?p0=2&p1=6&p2=1"]')!=null){ tfDoc.querySelector('a[href="post.php?p0=2&p1=6&p2=1"]').remove(); } } } //+------------ Décoloration des grands messages --------------+ function colorless(){ if(aparam.colorL>=0){ var fontc=kdocument.getElementsByTagName('FONT'); for(let i=0;i<fontc.length;i++){ if(fontc[i].innerHTML.length>aparam.colorL){ fontc[i].removeAttribute("color"); } } }} //+------------ Ergonomie des Spoiler --------------+ function ezSpoiler(){ var allspoiler=kdocument.querySelectorAll(".pre-spoiler"); for(let i=0;i<allspoiler.length;i++){ allspoiler[i].addEventListener("click",displayB,false); } } function displayB(){ this.parentNode.querySelector(".spoiler").style.display=""; this.removeEventListener("click", displayB); this.addEventListener("click",displayN,false); } function displayN(){ this.parentNode.querySelector(".spoiler").style.display="none"; this.removeEventListener("click",displayN); this.addEventListener("click",displayB,false); } //+------------ Ergonomie du Rapport d'Evènement --------------+ function ERLite(){ if(kdocument.querySelector('.ev_normal')!=null){ var centralText=kdocument.getElementById('central-text'); var ERHelp=centralText.querySelector('.forum-c2'); ERHelp.parentNode.removeChild(ERHelp); if(aparam.erlite==true){ var selectEv=centralText.getElementsByClassName('forum-top')[1]; selectEv.style.display="none"; centralText.getElementsByClassName('forum-top')[0].addEventListener("click",function(){ if(selectEv.style.display=="none"){selectEv.style.display="block";}else{selectEv.style.display="none";} },false); }} } //+------------ Textearea cache --------------+ function setArea(){ var amsga=kdocument.getElementsByName('message'); var hautforum=kdocument.getElementsByClassName('forum-top')[0]; if(hautforum!=null){ sortTextData(); let msgts=kdocument.getElementsByClassName('forum-message')[0].getElementsByTagName('textarea')[0]; msgts.addEventListener("keyup",savetxt,false); var selecTxt=kdocument.createElement("SELECT"); selecTxt.id="slc"; for(let i=0;i<savedTxtData.length;i++){ let opSelecTxt=kdocument.createElement("OPTION"); opSelecTxt.value=i; opSelecTxt.innerHTML=i; selecTxt.appendChild(opSelecTxt); } hautforum.appendChild(selecTxt); selecTxt.style.cssFloat="right"; selecTxt.addEventListener("change",retrieveTxt,false); }else if(amsga[0]!=null && window.location.href.search("order")==23){ sortTextData(); let inputp12=kdocument.getElementsByName('p12'); for(let i=0; i<amsga.length;i++){ amsga[i].addEventListener("keyup",savetxt,false); inputp12[i].parentNode.appendChild(kdocument.createTextNode(" ")); let selectxt=kdocument.createElement("SELECT"); selectxt.id="slc"+i; for(let i=0;i<savedTxtData.length;i++){ let opSelecTxt=kdocument.createElement("OPTION"); opSelecTxt.value=i; opSelecTxt.innerHTML=i; selectxt.appendChild(opSelecTxt); } inputp12[i].parentNode.appendChild(selectxt); selectxt.addEventListener("change",function(){retrieveTxtO(i);},false); } } } function sortTextData(){ savedTxtData.unshift(''); if(savedTxtData.length>aparam.tCache){ savedTxtData.pop(); } } function savetxt(){ savedTxtData[0]=this.value; localStorage.std=JSON.stringify(savedTxtData); } function retrieveTxt(){ var msgts=kdocument.getElementsByClassName('forum-message')[0].getElementsByTagName('textarea')[0]; var nbv=parseInt(this.value); let oneTxt=savedTxtData[nbv]; msgts.value=oneTxt; } function retrieveTxtO(i){ let id="slc"+i; var nbv=parseInt(kdocument.getElementById(id).value); let oneTxt=savedTxtData[nbv]; kdocument.getElementsByName('message')[i].value=oneTxt; } //+------------ GUI pour paramétrer Andromeda --------------+ //--- Affichage de la GUI function AndroMenu(){ kdocument.querySelector('.on').classList.remove('on'); kdocument.getElementById('aMenu').classList.add('on'); var cContent=kdocument.getElementById('central-text'); cContent.innerHTML=AndromedaBoard(); opMenuSetValue(); var lsb=kdocument.querySelectorAll('.localSave'); //var gsb=kdocument.querySelectorAll('.globalSave'); for(let i=0;i<lsb.length;i++){ lsb[i].addEventListener('click',opSetAndromeda,false); //lsb[i].addEventListener('change',opSetAndromeda,false); } } function AndromedaBoard(){ var aForm=`<form id="gForm"> <h2>Site</h2> <div id="divers" class="rbx"> <p><label for="cadre1">Page d'accueil :</label> <select id="cadre1" class="fdm"> <option value="2">Cybermonde</option> <option value="1">Forum</option> <option value="0">Bienvenue</option> <option value="-1">Rien</option> </select> <select id="cadre2" class="fdm"> <option value="1">Forum</option> <option value="2">Cybermonde</option> <option value="0">Bienvenue</option> <option value="-1">Rien</option> </select> <select id="cadre3" class="fdm"> <option value="-1">Rien</option> <option value="0">Bienvenue</option> <option value="2">Cybermonde</option> <option value="1">Forum</option> </select> </p> <table class="t"><tbody> <tr> <td style="text-align:justify;"><label><input id="input10" type="checkbox" class="styled" checked>Cliquer pour afficher le formulaire des Événement.</label></td> </tr> <tr> <td style="text-align:justify;"><label><input id="input11" type="checkbox" class="styled" disabled="disabled" checked>Supprimer l'aide des Événement.</label></td> </tr> </tbody></table> <p><!--<input class="globalSave" type="button" value="Enregistrer">--> <input class="localSave" type="button" value="Sauvegarder"></p> </div> <p>Changez l'ordre des cadres de la page d'accueil selon vos préférences. Mettez "rien" pour supprimer.</p><br> <div class="hr"><hr></div> <h2>Forum et Messages</h2> <div id="fetm" class="rbx"> <p><label for="input12">Textearea Cache : </label><input id="input12" type="text"></p> <p><label for="input13">Colorless : </label><input id="input13" type="text"></p> <table class="t"><tbody> <tr> <td style="text-align:justify;"><label><input id="input7" type="checkbox" class="styled">Goupil</label></td> </tr> <tr> <td style="text-align:justify;"><label><input id="input9" type="checkbox" class="styled" disabled="disabled" checked>Easy Spoiler</label></td> </tr> </tbody></table> <p><!--<input class="globalSave" type="button" value="Enregistrer">--> <input class="localSave" type="button" value="Sauvegarder"></p> </div> <p><b>Textearea Cache</b> sauvegarde automatiquement vos messages en cours de rédaction. Entrez le nombre de message que vous souhaitez garder en mémoire. Maximum 20.</p><br> <p><b>Colorless</b> désactive la couleur des messages trop grand. Entrez le nombre de caractères. Mettez -1 ou rien pour désactiver la fonction.</p><br> <p><b>Goupil</b> remplace les smileys Poule par des normaux. Assassin de la poulice !</p><br> <p><b>Easy spoiler</b> vous permet de révéler le contenu en cliquant n'importe où sur le bandeau.</p> <div class="hr"><hr></div> <h2>Taille des avatars</h2> <div id="tailleAvatar" class="rbx"> <p><label for="input1">Forum : </label><input type="text" id="input1"><br></p> <p><label for="input2">En jeu : </label><input type="text" id="input2"><br></p> <p><label for="input3">Page Ordre : </label><input type="text" id="input3"><br></p> <p><!--<input class="globalSave" type="button" value="Enregistrer">--> <input class="localSave" type="button" value="Sauvegarder"></p> </div> <p>Vous pouvez ajuster la taille des avatars sur le site. Taille en pixels.</p> <div class="hr"><hr></div> <h2>Taille des images</h2> <div id="tailleImages" class="rbx"> <p><label for="input4">Rapport privé : </label><input type="text" id="input4"><br></p> <p><label for="input5">Forum : </label><input type="text" id="input5"><br></p> <p><label for="input6">Rappot d'évènements : </label><input type="text" id="input6"><br></p> <p><!--<input class="globalSave" type="button" value="Enregistrer">--> <input class="localSave" type="button" value="Sauvegarder"></p> </div> <p>Vous pouvez régler la taille maximum des images sur le site. Taille en % du cadre.</p> <div class="hr"><hr></div> <h2>Illustrations</h2> <div id="tailleIllustr" class="rbx"> <p><label for="input14">Objets : </label><input type="text" id="input14"><br></p> <p><label for="input15">Bâtiments : </label><input type="text" id="input15"><br></p> <p><!--<input class="globalSave" type="button" value="Enregistrer">--> <input class="localSave" type="button" value="Sauvegarder"></p> </div> <p>Vous pouvez ajuster la taille des illustrations. Taille en pixels.</p> <div class="hr"><hr></div> </form>`; return aForm; } //--- création du bouton dans les options du profil function AndroButton(){ var mLeft=kdocument.getElementById('left'); var nsMenuB=kdocument.createElement('LI'); nsMenuB.id="aMenu"; var fakeLink=kdocument.createElement('A'); fakeLink.href='#'; fakeLink.innerHTML="Andromeda Script"; var submenu= mLeft.querySelector('.submenu UL'); nsMenuB.appendChild(fakeLink); submenu.appendChild(nsMenuB); nsMenuB.addEventListener('click',AndroMenu,false); } function opSetAndromeda(){ aparam.avaFora = kdocument.getElementById('input1').value; aparam.avaIg = kdocument.getElementById('input2').value; aparam.avaOrder = kdocument.getElementById('input3').value; aparam.avaItem = kdocument.getElementById('input14').value; aparam.imgRP = kdocument.getElementById('input4').value; aparam.imgFora = kdocument.getElementById('input5').value; aparam.imgRE = kdocument.getElementById('input6').value; let maxTxtCache=parseInt(kdocument.getElementById('input12').value); if(maxTxtCache>20){maxTxtCache=20} aparam.tCache = maxTxtCache+1; aparam.colorL = kdocument.getElementById('input13').value; aparam.goupil = kdocument.getElementById('input7').checked; aparam.erlite= kdocument.getElementById('input10').checked; var motd=[3]; motd[0]=kdocument.getElementById('cadre1').value; motd[1]=kdocument.getElementById('cadre2').value; motd[2]=kdocument.getElementById('cadre3').value; aparam.motd=motd; //--- sauvegarder localStorage.aparam=JSON.stringify(aparam); //---réinitialiser txtarea localStorage.removeItem("std"); } function opMenuSetValue(){ kdocument.getElementById('input1').value=aparam.avaFora; kdocument.getElementById('input2').value=aparam.avaIg; kdocument.getElementById('input3').value=aparam.avaOrder; kdocument.getElementById('input14').value=aparam.avaItem; kdocument.getElementById('input4').value=aparam.imgRP; kdocument.getElementById('input5').value=aparam.imgFora; kdocument.getElementById('input6').value=aparam.imgRE; kdocument.getElementById('input12').value=aparam.tCache-1; kdocument.getElementById('input13').value=aparam.colorL; kdocument.getElementById('input7').checked=aparam.goupil; kdocument.getElementById('input10').checked=aparam.erlite; var motd=aparam.motd; kdocument.getElementById('cadre1').value= motd[0]; kdocument.getElementById('cadre2').value= motd[1]; kdocument.getElementById('cadre3').value= motd[2]; }