NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name NGps // @namespace NGps.com // @description Fonction de navigation pour les tortues et les déplacements // @copyright 2015, Raum // @include http://www.nacridan.com/* // @include http://nacridan.raistlin.fr/* // @include http://nacridan.com/* // @exclude http://www.nacridan.com/conquest/profile.php?id=* // @exclude http://nacridan.com/conquest/profile.php?id=* // @exclude http://nacridan.raistlin.fr/conquest/profile.php?id=* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js // @require https://raw.githubusercontent.com/wilq32/jqueryrotate/master/jQueryRotate.js // @version 1.2.1 // @grant GM_xmlhttpRequest // XXoujs:author zogre // XXdownloadURL https://openuserjs.org/install/zogre/NGps.user.js // ==/UserScript== /* 1.0 : - creation Avec fleches directionnelles 1.1 : - postGPS remplacement de l'alert d'insertion par un message - fleche avec rotation et affichage des coordonnées cibles 1.2 : Gestion de l'arrivée amélioration du systéme de message 1.2.1 : changement des noms de domaines et exclusions serveur de tests */ var save = ''; var lieu = ''; if(document.getElementsByClassName('centerareaview')[0]){ save = document.getElementsByClassName('centerareaview')[0].innerHTML; lieu = 'OUT'; // 1.5.6.1 zogre }else if(document.getElementsByClassName('insidebuildingleft')[0]){ save = document.getElementsByClassName('insidebuildingleft')[0].innerHTML; lieu = 'IN'; } var Globals = { init: function () { var menu = jQuery('.menuright'); var dt = jQuery('<dt>GPS</dt>'); menu.append(dt); var dd = jQuery('<dd id=\'vuegps\'/>'); menu.append(dd); dd.hide(); dt.click(function () { jQuery('#vuegps').toggle(); }); var form = jQuery('<form/>'); var label = jQuery('<label/>'); var txt = jQuery('<input/>'); txt.attr('type', 'txt'); txt.attr('name', 'inputX'); txt.attr('id','inputX'); txt.attr('size','3'); label.attr('for','inputX'); label.append('X:'); form.append(label); form.append(txt); form.append('<BR/>'); label = jQuery('<label/>'); txt = jQuery('<input/>'); txt.attr('type', 'txt'); txt.attr('name', 'inputY'); txt.attr('id','inputY'); txt.attr('size','3'); label.attr('for','inputY'); label.append('Y:'); form.append(label); form.append(txt); form.append('<BR/>'); label = jQuery('<label/>'); txt = jQuery('<input/>'); txt.attr('type', 'checkbox'); txt.attr('name', 'gpsOn'); txt.attr('id','gpsOn'); txt.attr('size','3'); label.attr('for','gpsOn'); label.append('GPS : '); form.append(label); form.append(txt); form.append('<BR/>'); txt = jQuery('<button/>'); txt.attr('type', 'button'); txt.attr('name', 'btnValid'); txt.attr('id','btnValid'); txt.attr('value','Go'); txt.append('Go!'); txt.click(function () { postGPS(); }); form.append(txt); dd.append(form); var msgBox = jQuery('<input/>'); msgBox.attr('type', 'txt'); msgBox.attr('name', 'msgBox'); msgBox.attr('id','msgBox'); msgBox.attr('size','30'); msgBox.attr('style','background-color: transparent; border: 0px; outline: none;-webkit-box-shadow: none;-moz-box-shadow: none;box-shadow: none;color:black;cursor:default;'); menu.append(msgBox); var msg = jQuery('<input/>'); msg.attr('type', 'txt'); msg.attr('name', 'msgCoord'); msg.attr('id','msgCoord'); msg.attr('size','30'); msg.attr('style','background-color: transparent; border: 0px; outline: none;-webkit-box-shadow: none;-moz-box-shadow: none;box-shadow: none;color:black;cursor:default;'); menu.append(msg); console.log(this.cds); } } //code Main ************************************************************************************************* var nom = jQuery('select[name="__idCurPlayer"] :selected').text(); var coords = getCoordCible(nom); //alert("VALEURS : "+coords.XCIBLE +' - '+ coords.YCIBLE +' - '+ coords.GPS_ON); //gps(coords.XCIBLE,coords.YCIBLE, coords.GPS_ON); // Fin code Main*************************************************************************************** // function postGPS // description : envoie vers la bdd les nouvelle coordonnées ainsi que l'activation // entrées : N/A // sorties : affiche un message de succés ou d'erreur aprés la mise à jour de la base function postGPS() { var nom = jQuery('select[name="__idCurPlayer"] :selected').text(); var inXcible = document.getElementById('inputX').value; var inYcible = document.getElementById('inputY').value; var inGpsOn = document.getElementById('gpsOn').checked; if(inGpsOn) { inGpsOn = 1; } else { inGpsOn = 0; } if (inXcible=="") { inXcible=0; } if (inYcible=="") inYcible=0; if (isNaN(inXcible)||isNaN(inYcible) ) { alert("Erreur, les coordonnées doivent être numériques"); } else { jQuery('#imgAngle').remove(); //alert('http://nasblabla.youdontcare.com/nacridan/postCoordCible.php'+"nom="+nom+"&Xcible="+inXcible+"&Ycible="+ inYcible+"&GPSON="+inGpsOn); GM_xmlhttpRequest({ method: 'POST', url: 'http://nasblabla.youdontcare.com/nacridan/postCoordCible.php', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, //data: JSON.stringify(data), data: "nom="+nom+"&Xcible="+inXcible+"&Ycible="+ inYcible+"&GPSON="+inGpsOn, onload: function (response) { //alert("VALEURS : "+coords.XCIBLE +' - '+ coords.YCIBLE +' - '+ coords.GPS_ON); var menu = jQuery('.menuright'); //menu.append('<br/>Coordonnées cibles insérées'); document.getElementById('msgBox').value = "GPS mis à jour"; gps(inXcible,inYcible, inGpsOn); }, onerror: function (error) { //console.log(error); alert(error); } }); } } // fin function call getCDMServer 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 getCoord // description : récupérer les coordonnées du joueur courant // entrées : N/A // sorties : retourne un dictionnaire avec les coordonnées actuelles du joueur // function getCoord(){ var txt = jQuery('div.charac1 + div ').text(); // récupération du div contenant les coordonnées var coordx = txt.substring(txt.indexOf('X=')+2, txt.indexOf('/')-2); var coordy = txt.substring(txt.indexOf('Y=')+2, txt.length); var dicoCoord ={'X':coordx,'Y':coordy}; return dicoCoord; //alert('X coo =' + dicoCoord['x']); } // function getCoordCible // description : récupérer les coordonnées cible du GPS en base de données pour le joueur // entrées : le nom du joueur dont on cherche les coordonnées cibles // sorties : retourne un dictionnaire avec les coordonnées cibles du joueur // function getCoordCible(pluid) { //alert('parti '+pluid); var coords = {}; GM_xmlhttpRequest({ method: 'POST', dataType: "json", url: 'http://nasblabla.youdontcare.com/nacridan/getCoordCible.php', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, //data: JSON.stringify(data), data: "pid=" + pluid, //data: "username=johndoe&password=xyz123", onload: coords = function (response) { // coords = {'XCIBLE':0,'YCIBLE':0, GPS_ON:0}; coords = JSON.parse(response.responseText); // alert(coords.GPS_ON); if (coords.XCIBLE != null && coords.YCIBLE != null) { document.getElementById('inputX').value=coords.XCIBLE; document.getElementById('inputY').value=coords.YCIBLE; coords.XCIBLE = parseFloat(coords.XCIBLE); coords.YCIBLE = parseFloat(coords.YCIBLE); coords.GPS_ON = parseFloat(coords.GPS_ON); if(coords.GPS_ON ==1) { document.getElementById('gpsOn').checked= true; } else { document.getElementById('gpsOn').checked=false; } gps(coords.XCIBLE,coords.YCIBLE ,coords.GPS_ON); } return coords; }, onerror: function (error) { //console.log(error); // coords = {'XCIBLE':0,'YCIBLE':0, GPS_ON:0}; alert(error.responseText); } }); return coords; } // fin function call // function getCoordCible // description : afficher les fleches directionnelles // entrées : les coordonnées x,y cible destination. Le flag d'activation. (si activé, on affiche les flèches, Sinon, rien n'est affiché // sorties : N/A function gps(ciblex, cibley, activation) { document.getElementById('msgCoord').value = ""; if(activation){ var coordonnees = getCoord(); var menu = jQuery('.menuright'); var coordx = parseFloat(coordonnees['X']); var coordy = parseFloat(coordonnees['Y']); var imgx; var imgy; /* if(coordx<ciblex) { imgx = jQuery("<img src='http://nasblabla.youdontcare.com/nacridan/img/go-next-5.png' height='30' width='30'>"); menu.append(imgx); } else if(coordx>ciblex) { imgx = jQuery("<img src='http://nasblabla.youdontcare.com/nacridan/img/go-previous-5.png' height='30' width='30'>"); menu.append(imgx); } if(coordy<cibley) { imgy = jQuery("<img src='http://nasblabla.youdontcare.com/nacridan/img/go-down-5.png' height='30' width='30'>"); menu.append(imgy); } else if(coordy>cibley) { imgy = jQuery("<img src='http://nasblabla.youdontcare.com/nacridan/img/go-up-5.png' height='30' width='30'>"); menu.append(imgy); }*/ //calcul hypothénuse var hyp = Math.sqrt(Math.pow((coordy-cibley),2)+Math.pow((coordx-ciblex),2)); var angle = Math.acos((coordx-ciblex)/hyp); //conversion gradian degre angle = 180 * angle / Math.PI; if(cibley>coordy) { angle = 360-angle; } //alert('angle : ' + angle); var imgAngle; if(cibley==coordy&&ciblex==coordx) { imgAngle = jQuery("<img src='http://nasblabla.youdontcare.com/nacridan/img/DDamier.png' height='50' width='50'>"); imgAngle.attr('id','imgAngle'); imgAngle.attr('alt',ciblex+"/"+cibley); } else{ imgAngle= jQuery("<img src='http://nasblabla.youdontcare.com/nacridan/img/go-previous-5.png' height='50' width='50'>"); imgAngle.attr('id','imgAngle'); imgAngle.attr('alt',ciblex+"/"+cibley); imgAngle.rotate(angle); } menu.append(imgAngle); document.getElementById('msgCoord').value = ciblex+"/"+cibley; } } Globals.init();