您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Laat op het profiel van een speler of op eilanden zien welke steden geen trip hebben
当前为
// ==UserScript== // @name Grepolis tripjes detector // @version 2025-01-20 // @description Laat op het profiel van een speler of op eilanden zien welke steden geen trip hebben // @author archdukeDaan // @match https://*.grepolis.com/* // @license MIT // @namespace https://tampermonkey.net/ // @grant none // ==/UserScript== (function() { 'use strict'; // timer om te checken of er een profiel is geopend var profiel_knop_geplaatst = false setTimeout(function checkProfielWindowOpen() { //console.log(knop_geplaatst) if (document.getElementById("player_towns") != null) { if (profiel_knop_geplaatst == false){ addTripKnop('profiel') profiel_knop_geplaatst = true } } else { profiel_knop_geplaatst = false } setTimeout(checkProfielWindowOpen, 500); }, 500); // timer om te checken of er een eiland window open staat var eiland_knop_geplaatst = false setTimeout(function checkEilandWindowOpen() { //console.log(knop_geplaatst) if (document.getElementById("island_info_towns_left_sorted_by_name") != null) { if (eiland_knop_geplaatst == false){ addTripKnop('eiland') eiland_knop_geplaatst = true } } else { eiland_knop_geplaatst = false } setTimeout(checkEilandWindowOpen, 500); }, 500); function addTripKnop(window) { var button = document.createElement('span'); button.textContent = 'Tripjes'; button.style.zIndex = 1000; button.style.width = '50px' button.style.padding = '4px'; button.style.marginTop = '4px' button.style.marginBottom = '4px' button.style.color = 'white'; button.style.border = '1px solid black'; button.style.borderRadius = '5px'; button.style.cursor = 'pointer'; if (window == 'profiel'){ button.addEventListener('click', function(){ checkTroepenBuitenWindowOpen('profiel'); }, false); var profiel = document.getElementById("player_towns") var element = profiel.children[0].querySelector('.game_header'); // voeg de knop als tweede element toe aan de game_header element.insertBefore(button,element.children[0]); } else if (window == 'eiland'){ button.addEventListener('click', function(){ checkTroepenBuitenWindowOpen('eiland'); }, false); var eiland_controls = document.getElementById("island_towns_controls") button.style.backgroundColor = 'blue'; eiland_controls.appendChild(button) } console.log("Trip knop toegevoegd!") } function getTripLijst(){ // verkrijg je huidige trips var trips = document.getElementById("outer_troops_list").children var triplijst = [] for (let i = 0; i < trips.length; i++) { var trip = trips[i].children[0].children var trip_info = [] // index 0: je eigen stad, index 1: stadsnaam, index 2: speler for (let j=0; j<trip.length; j++) { var element = trip[j] if (element.tagName == "A"){ trip_info.push(element.innerHTML) } } triplijst.push(trip_info) } //console.log(triplijst) return triplijst } function getProfileName(){ // verkrijg speler naam var profiel = document.getElementById("player_info").children var naam = "" for(let i=0;i<profiel.length;i++){ var el = profiel[i] if (el.tagName == "H3"){ naam = el.innerHTML break } } return naam } function getStedenLijstOpProfiel(){ // verkrijg stedenlijst dom element van een speler zn profiel var profiel_steden = document.getElementById("player_towns").children[0].children var steden = false for(let i=0;i<profiel_steden.length;i++){ var el2 = profiel_steden[i] if (el2.tagName == "UL"){ steden = el2.children break } } //console.log(steden) return steden } function getStedenLijstOpEiland(){ // verkrijg stedenlijst dom element van een eiland var eiland_steden = document.getElementById("island_info_towns_left_sorted_by_name").children //console.log(steden) return eiland_steden } function generateTripjesOpEiland(){ // verkrijg stedenlijst op het eiland var steden = getStedenLijstOpEiland() // verkrijg lijst met alle tripjes // index 0: je eigen stad, index 1: stadsnaam, index 2: speler 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(".player_name").children[1].innerHTML console.log(stad_eigenaar) console.log(stad_naam) var tag = document.createElement('span'); tag.style.zIndex = 1000; tag.style.cursor = 'pointer'; // kijk of er een trip in de stad ligt var j = triplijst.findIndex( e => (e[1] == stad_naam) & (e[2] ==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(){ // verkrijg naam op het profiel var naam = getProfileName() // verkrijg stedenlijst op het profiel var steden = getStedenLijstOpProfiel() // verkrijg lijst met alle tripjes // index 0: je eigen stad, index 1: stadsnaam, index 2: speler 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 = steden[k].children[1] var stad_naam = stad.innerHTML // kijk of de stad behoort tot de speler van dit profiel var i = triplijst.findIndex(e => e[2] == naam ); if (i > -1){ var tag = document.createElement('span'); tag.style.zIndex = 1000; tag.style.cursor = 'pointer'; // kijk of er een trip in de stad ligt var j = triplijst.findIndex( e => e[1] == stad_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) } } } function checkTroepenBuitenWindowOpen(window){ // kijk of het scherm met 'troepen buiten' open staat const troepen_buiten = document.getElementById("outer_troops_list") if (troepen_buiten != null){ if(window == 'profiel'){ generateTripjesOpProfiel() } else if (window == 'eiland'){ generateTripjesOpEiland() } } else { alert("Open eerst het 'troepen buiten' scherm!") } } })();