// ==UserScript== // @name Grepolis tripjes detector // @version 2025-01-22 // @description Laat op het profiel van een speler of op het eiland scherm zien welke steden wel/geen trip hebben // @author archdukeDaan // @match https://*.grepolis.com/* // @license MIT // @namespace https://tampermonkey.net/ // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; // vul hier de allianties ID in // alleen deze allianties krijgen een trip tag op het eiland informatie scherm var allianties = ['181','11','307','255','82'] // kies hier of je wil dat de trip tags automatisch verschijnen, of dat je het handmatig wil aanklikken. // auto = true : als je een eiland informatie scherm opent, staat er automatisch bij iedere stad een trip tag. // auto = false : als je een eiland informatie scherm opent, moet je zelf op de knop klikken voordat de trip tags verschijnen. var auto = true // timer om te checken of de knop moet worden geplaatst // er kan maar maximaal 1 profiel tegelijk open staan setTimeout(function checkProfielWindowOpen() { if (document.getElementById("player_towns") != null) { if (document.getElementById("tripknopProfiel") == null){ addTripKnop('profiel') } } setTimeout(checkProfielWindowOpen, 500); }, 500); // timer om te checken of de knop moet worden geplaatst // er kunnen meerdere eilanden vensters tegelijk open staan setTimeout(function checkEilandWindowOpen() { if (document.getElementsByClassName("island_info_wrapper") != null) { // verkrijg alle openstaande eiland vensters var vensters = getAllOpenEilandVensters() for(let i=0;i { var tripjes = stad.models tripjes.forEach((trip) => { var trip_info = trip.attributes var stad_naam = trip_info.current_town_name var stad_speler = trip_info.current_town_player_name var trip_stad_herkomst = trip_info.home_town_name var row = {"stad_naam":stad_naam,"stad_speler":stad_speler,"trip_herkomst":trip_stad_herkomst} triplijst.push( row ) }); }); //console.log(triplijst) return triplijst } function getProfileName(){ // verkrijg speler naam van het huidige profiel dat open staat var profiel = document.getElementById("player_info").children var naam = "" for(let i=0;i e.remove()); // verkrijg stedenlijst op het eiland var steden = getStedenLijstOpEiland(venster) // verkrijg lijst met alle tripjes var triplijst = getTripLijst() // loop over de steden en voeg tag 'geen trip' toe als de stadsnaam niet in triplijst staat for (let k=0; k < steden.length; k++){ var stad_obj = steden[k] var stad_naam = stad_obj.querySelector(".gp_town_link").innerHTML; var stad_eigenaar = stad_obj.querySelector(".gp_player_link").innerHTML; var stad_alliantie = getAlliantieFromLink(stad_obj); // plaats geen tag als de stad van de huidige speler is // plaats geen tag als de alliantie van de eigenaar van de stad niet in de alliantie lijst staat if ( (stad_eigenaar != getHuidigeSpeler()) & (allianties.includes(stad_alliantie) == true) ){ var tag = document.createElement('div'); tag.style.zIndex = 1000; tag.style.cursor = 'pointer'; tag.setAttribute('class','tripTag') tag.style.fontWeight = 'bold'; tag.style.marginLeft = '10px'; // kijk of er een trip in de stad ligt var j = triplijst.findIndex( e => (e.stad_naam == stad_naam) & (e.stad_speler == stad_eigenaar) ) if (j>-1){ tag.textContent = "Wel trip"; tag.style.color = 'green' } else { tag.textContent = "Geen trip"; tag.style.color = 'red' } // voeg de tag toe aan de DOM steden[k].appendChild(tag); } } } function generateTripjesOpProfiel(){ // indien van toepassing, verwijder de oude tags op het profiel document.getElementById("player_towns").querySelectorAll('.tripTag').forEach(e => e.remove()); // verkrijg naam op het profiel var naam = getProfileName() // verkrijg stedenlijst op het profiel var steden = getStedenLijstOpProfiel() // verkrijg lijst met alle tripjes var triplijst = getTripLijst() // loop over de steden en voeg tag 'geen trip' of 'wel trip' toe for (let k=0; k < steden.length; k++){ var stad = steden[k].children[1] var stad_naam = stad.innerHTML var tag = document.createElement('span'); tag.style.zIndex = 1000; tag.style.cursor = 'pointer'; tag.setAttribute('class','tripTag') tag.style.fontWeight = 'bold'; // kijk of er een trip in de stad ligt var j = triplijst.findIndex( e => (e.stad_naam == stad_naam) & (e.stad_speler == naam) ) if (j>-1){ tag.textContent = "Wel trip"; tag.style.color = 'green' } else { tag.textContent = "Geen trip"; tag.style.color = 'red' } // voeg de tag toe aan de DOM steden[k].appendChild(tag) } } })();