Kategorie:GM-Scripte

Aus Horizon
Wechseln zu: Navigation, Suche

Generell analysieren die Scripte die HTML-Struktur der Seite. Wenn also die Entwicklung ein Patch oder ein Update installiert und damit den HTML-Code ändert werden die Script zum Teil nicht mehr funktionieren.

How to GreaseMonkey - oder: Wie funktioniert das nun?[Bearbeiten]

Einzige Vorraussetzung ist, dass Javascript installiert ist und ausgeführt werden darf. Aber da das ohnehin auch Vorraussetzung für ein funktionierendes Horizon ist wird hier davon ausgegangen, dass diese Vorraussetzung erfüllt ist.

Installation GreaseMonkey[Bearbeiten]

Im Firefox ruft man auf: Extras->Add-ons. Es öffnet sich ein neuer Tab. In diesem neuen Tab wählt man links oben "Add-ons suchen aus und gibt dann rechts oben im Suchfeld GreaseMonkey ein. Nach einem Klick auf die Lupe wird Greasemonkey gefunden und mann kann rechts auf installieren klicken. Nach der Installation muss der Firefox neu gestartet werden.

Installation eines Scriptes[Bearbeiten]

Nach einem Klick auf Extras sieht man gleich den Eintrag für Greasemonkey. Hält man die Maus auf den Eintrag erscheint ein Untermenü, dessen erster Eintrag Greasemonkey selber ist. Der Haken davor zeigt an das GM aktiv ist. Mit einem einfachen Klick hier kann GM deaktiviert werden für den Fall, das mal was schief geht. Ein weiterer Eintrag ist "Neues Benutzerscript". Nach einem Klick drauf öffnet sich ein Dialogfenster. In diesem Fenster ist zunächst nur der Name wichtig - aus diesem setzt sich der Dateiname zusammen, unter dem das Script abgelegt wird. Nach einem Klick auf ok wird der Dialog durch einen Editor ersetzt und ein bischen Text ist auch schon eingetragen. Was die einzelnen Zeile bedeuten wird gleich erklärt. Man kann sich jetzt also einen Quelltext von einer der unten verlinkten Seiten kopieren, in dem Editor einfügen, speichern und eventuell war es das dann schon.

Greasemonkey-Scripte mit dem Chrome-Browser nutzen[Bearbeiten]

Der Chrome Browser unterstützt GM-Scripte von Haus aus, es wird automatisch in eine sog. Erweiterung umgewandelt. Um ein Script zu installieren muss die *.user.js Datei zunächst auf dem Rechner abgespeichert werden. Anschließend begibt man sich in das Einstellungsmenü (erreichbar über Eingabe von chrome://extensions im Adressfeld des Browsers) und zieht die zuvor abgespeicherte Datei in das Browserfenster. Nachteil dieser Methode ist, dass das Script auf allen Webseiten angewendet wird (vgl. @include-Anweisung im Abschnitt unten).

Um diesem Mangel zu begegnen kann man auf die Chrome Erweiterung Tampermonkey [1] zurückgreifen, sie kann über den Chrome Web Store installiert werden. Sobald sie installiert ist, kann man einfach auf den Link zu einer *.user.js-Datei klicken und wird anschließend gefragt ob man das Script installieren möchte. Ein weiterer Vorteil ist, dass Scripts automatisch auf den neuesten Stand gebracht werden, sobald eine neue Version verfügbar ist (vgl. @version-Anweisung im Abschnitt unten). Auch können einzelne Scripts komfortabel zeitweise deaktiviert werden wenn sie aktuell nicht benötigt werden.

Aufbau eines GreaseMonkey-Scriptes[Bearbeiten]

Hier erklärt am Händlerscript. Nach dem neu Anlegen des Benutzerscriptes findet man einen Kopf wie diesem im Editor:

// ==UserScript==
// @name           Haendlerrechner_0.60
// @namespace      goetterheimat
// @include 	   *game.horiversum.org/game/main/main.php?cmd=message&send=sent&subcmd=*&action=view*
// Version: 0.2b
// ==/UserScript==

Dabei bedeuten:

// ==UserScript==
// ==/UserScript==

Start und Ende des "Konfigurations-Kopfes"

// @name           Haendlerrechner_0.60
// Version: 0.2b
// ==/UserScript==

Name und Version des Scriptes. Diese sind für die Funktionalität nicht wichtig, werden aber auf der Übersichtsseite für die GM-Scripte mit angezeigt und man kann so überprüfen, ob das eigene Script noch aktuell ist.

// @namespace      goetterheimat

Auch dieser Namespace ist nicht sonderlich wichtig - er dient nur zur Unterscheidung der Scripte falls man mal mehrere mit gleichem Namen hat.

// @include 	   *game.horiversum.org/game/main/main.php?cmd=message&send=sent&subcmd=*&action=view*

Diese Zeile (es können auch mehrere sein!) sind extrem wichtig. Sie beschreiben die URL, auf die das Script angewendet wird. Sicherlich will niemand das Händlerscript auf Google oder youtube anwenden - was soll das Script da tun? Es würde nur Rechenzeit verbrauchen und den Firefox langsam machen. Deshalb verbietet sich hier ein Eintrag wie dieser:

// @include 	   *

Der Eintrag hängt davon ab, wir ihr Horizon aufgerufen habt. Aktuell gibt es nur eine bekannte Seite:
www.Horiversum.org
Ein * bedeutet immer, das hier beliebig viele Zeichen stehen dürfen. Deshalb wird *game.horiversum.org... auch mit http://game.horiversum.org... oder mit https://irgendwas.game.horiversum.org... funktionieren.
Wenn es also mal wieder eine Speedrunde geben sollte und deren URL http://speed.horiversum.org... heissen sollte dann wird das script nicht funktionieren. In diesem Fall wird die ganze Zeile einfach kopiert und unten drunter noch einmal eingefügt und entsprechend geändert:

// @include 	   *game.horiversum.org/game/main/main.php?cmd=message&send=sent&subcmd=*&action=view*
// @include 	   *speed.horiversum.org/game/main/main.php?cmd=message&send=sent&subcmd=*&action=view*

Alternativ kann man die Zeile auch so ändern, dass das "game." nicht mehr mit gesucht wird:

// @include 	   *horiversum.org/game/main/main.php?cmd=message&send=sent&subcmd=*&action=view*

Wenn man wünscht, das ein Script auf einer Seite auf gar keinen Fall aufgerufen werden soll so kann man das wie folgt konfigurieren:

// @exclude 	   *http://game.horiversum.org/game/main/main.php?cmd=start*

Die häufigste Ursache dafür, das ein Script nicht funktioniert, liegt an diesen beiden Konfigurationen.
Weitere Konfigurationsmöglichkeiten sind dann für jedes Script anders und dort beschrieben, wo auch der Quellcode zur Verfügung gestellt wird.

Häufige Fehlerursachen[Bearbeiten]

Sollte ein Script mal nicht funktionieren, dann ist vor allem eine ausführliche Fehlerbeschreibung hilfreich. Oft hilft es zu prüfen ob die vom Spieler verwendete Horizon-homepage vom Script per @include unterstützt wird (siehe oben, es gibt horiversum.org, horiversum.de, und alles mit oder ohne www davor).

Wenn die Fehlerursache nicht in den @include-Zeilen liegt, hilft oft die JavaScript-Konsole, in der auftretende Fehler angezeigt werden. Eine Anleitung wie man die JavaScript-Konsole in den verschiedenen Browsern und Betriebssystemen öffnet, findet man auf dieser externen Seite (leider nur auf englisch).

Wenn die dort angezeigten Fehlermeldungen nicht weiterhelfen, kann man sich mit diesen an den jeweiligen Scriptentwickler oder einem anderen kundigen Spieler wenden, welchem diese Meldungen bei der Fehlersuche oftmals helfen.

regelmäßig auftretende Fehler[Bearbeiten]

  • Firefox unterstützt nicht innerText zur Extrahierung von Textinhalt, stattdessen muss textContent benutzt werden
  • die Horizon Seiten werden in iso-8859-1 ausgeliefert, was immer mal wieder Probleme mit Umlauten macht wenn man mit UTF-Daten interagiert

Seiten in der Kategorie „GM-Scripte“

Es werden 11 von insgesamt 11 Seiten in dieser Kategorie angezeigt: