Aus Tribalwars Wiki CH
Wechseln zu: Navigation, Suche

Wenn du auf deiner Homepage einen Stämme-Banner einbauen willst, findest du hier den dafür passenden Code. Kopiere diesen Bannercode aus der Textbox und füge ihn in den HTML-Code deiner Homepage ein. Vielen Dank, dass du hilfst, Stämme bekannter zu machen!

DS-Banner


<a href="http://www.staemme.ch/?ref=banner_468"><img style="border:none" src="http://www.staemme.ch/banner.php?id=banner_468" alt="Die Stämme, das kostenlose Browsergame" /></a>

Button

DS-Button


<a href="http://www.staemme.ch/?ref=banner_button"><img style="border:none" src="http://www.staemme.ch/banner.php?id=banner_button" alt="Die Stämme" /></a>

Externe IGMs

Versenden von IGMs über externes Interface

Manchmal ist es wünschenswert, dass externe Programme Nachrichten an Spieler verschicken können, um diese über wichtige Ereignisse zu informieren oder ihre Identität zu überprüfen. Da das Programmieren von Bots laut Regeln untersagt ist, stellen wir ein Interface für diesen Zweck zur Verfügung.

IGM-Messages werden per GET-Aufruf erzeugt:

http://ch13.staemme.ch/send_mail.php?from_id=FROM_ID&api_key=API_KEY&to=TO&subject=SUBJECT&message=MESSAGE

Bedeutung der Parameter:

  • FROM_ID: deine Spieler-ID (kann zB. über die Rangliste ermittelt werden)
  • API_KEY: dein Stämme API-Key (unter Einstellungen->Einstellungen zu finden)
  • TO: Name (nicht die ID) des Spielers, der die Nachricht erhalten soll
  • SUBJECT: Betreff der Nachricht
  • MESSAGE: Die eigentliche Nachricht

Die Option ist nur für die Besitzer eines Premium-Accounts freigeschaltet. Sollte diese Funktion für Spam oder Belästigungen anderer Spieler missbraucht werden, kann der Account gesperrt werden.

Beispiel in PHP:

// Die Parameter müssen URL-encodiert werden $to = urlencode('exception'); $subject = urlencode('test & test'); $message = urlencode('Dies ist ein Test');

$base_url = "http://chXX.staemme.ch/send_mail.php?from_id=FROM_ID&api_key=API_KEY";

// URL aufrufen $handle = fopen($base_url . "&to=$to&subject=$subject&message=$message", 'r'); echo fgets($handle); // Meldung ausgeben fclose($handle);

In der Variabel base_url muss anstatt XX die entsprechende Welt angegeben werden.

Weltdaten

Um externe Statistiken oder ähnliches zu erstellen, werden die wichtigsten Weltdaten zum Download angeboten. Die Eigenschaften der Dörfer, der Stämme und der Spieler stehen regelmäßig zum Download bereit. Mittlerweile gibt es auch noch weitere Daten, wie alle Adelungen seit Anfang der Welt mit Unix Timestamp oder Inhalte von Profilen.

Versuche die Weltdaten möglichst selten zu laden, um Traffic zu reduzieren. Skripte, die im Normalbetrieb mehr als 1 mal pro Stunde die Daten laden, sind nicht erlaubt. Versucht in diesem Fall, die Daten auf einem externen Webserver zu cachen. Die Weltdaten werden zu regelmäßigen Zeitabständen aktualisiert. Diese Abstände sind serverspezifisch.

Die Dateien sind auch komprimiert verfügbar (Dateiendung .txt.gz). Als Kompressionsverfahren wurde gzip genutzt. Nutzt diese Dateien, wenn möglich.

Es existieren insgesamt 5 Dateien zum Download. Jede Datei besteht aus beliebig vielen Zeilen, die kommagetrennt die Daten enthalten. Die einzelnen Daten sind mit Hilfe der PHP-Funktion urlencode() codiert, d.h. dass z.B. ein Komma durch %2C ersetzt ist.

Pfad Beschreibung Sortierung
/map/village.txt

/map/village.txt.gz
In dieser Datei befinden sich Informationen über die Dörfer. Die Daten stehen in folgender Reihenfolge zur Verfügung: $id, $name, $x, $y, $player, $points, $rank
/map/player.txt

/map/player.txt.gz
In dieser Datei sind Informationen über die Spieler. Die Daten stehen in folgender Reihenfolge zur Verfügung: $id, $name, $ally, $villages, $points, $rank
/map/ally.txt

/map/ally.txt.gz
In dieser Datei sind Informationen über die Stämme. Die Daten stehen in folgender Reihenfolge zur Verfügung: $id, $name, $tag, $members, $villages, $points, $all_points, $rank
/map/conquer.txt

/map/conquer.txt.gz
In dieser Datei sind alle Adelungen seit Beginn der Welt enthalten. Die Daten stehen in folgender Reihenfolge zur Verfügung: $village_id, $unix_timestamp, $new_owner, $old_owner
/interface.php?func=get_conquer&since=unix_timestamp Über diese Funktion kann man sich alle Adelungen seit dem letzten Unix-Timestamp ausgeben lassen. Der Timestamp darf maximal 24 Stunden zurück liegen. Die Daten stehen in folgender Reihenfolge zur Verfügung: $village_id, $unix_timestamp, $new_owner, $old_owner
/map/profile.txt

/map/profile.txt.gz
In dieser Datei sind die Profildaten der Spieler. Die Daten stehen in folgender Reihenfolge zur Verfügung: $player_id, Geburtstag, Geschlecht, Wohnort, Profiltext (als XHTML), Profilbild-Dateiname
/map/kill_att.txt

/map/kill_def.txt

/map/kill_all.txt
In diesen Dateien befinden sich Informationen über die Besiegte-Gegner-Punkte (Alle, Als Verteidiger, Als Angreifer) für Spieler. Die Daten stehen in folgender Reihenfolge zur Verfügung: $rank, $id, $kills
/map/kill_att_tribe.txt

/map/kill_def_tribe.txt

/map/kill_all_tribe.txt
In diesen Dateien befinden sich Informationen über die Besiegte-Gegner-Punkte (Alle,Als Verteidiger,Als Angreifer) für die gesamten Stämme. Die Daten stehen in folgender Reihenfolge zur Verfügung: $rank, $id, $kills
/interface.php?func=get_config Über diese Funktion kann man die Konfiguration der Welt auslesen (Format: XML).  
/interface.php?func=get_unit_info Informationen zu den Einheiten als XML  
/interface.php?func=get_building_info Informationen zu den Gebäuden als XML  

Um die komplette URL für eine bestimmte Welt zu erhalten, muss vor dem Pfad die entsprechende URL der Welt ausgewählt werden:

http://chXX.staemme.ch

Anstelle des XX muss die entsprechende Welt ausgewählt werden. Eine korrekte URL könnte daher lauten:

http://ch13.staemme.ch/interface.php?func=get_config

Beispiel

Ein einfaches Bespiel in PHP, um die Dörfer + Namen von Welt1 in eine MySQL-Datenbank zu schreiben:

$lines = gzfile('http://chXX.staemme.ch/map/village.txt.gz');
if(!is_array($lines)) die("Datei konnte nicht geöffnet werden");
foreach($lines as $line) { list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
$name = urldecode($name);

$name = addslashes($name);
mysql_query("INSERT INTO village SET id='$id', name='$name', x='$x', y='$y', player='$player', points='$points', rank='$rank'");
}

Server-Urls ermitteln

Da teilweise die URLs der Spielwelten sich durch Wartungsarbeiten und ähnliches zeitweise ändern, gibt es jetzt eine Möglichkeit, die offizielle URL jeder Spielwelt zu ermitteln.

Zurückgegeben wird ein serialisiertes PHP-Array.

http://www.staemme.ch/backend/get_servers.php

Beispiel im PHP-Code:

$file = file_get_contents('http://www.staemme.ch/backend/get_servers.php');
$servers = unserialize($file);

Für andere Sprachen müsste man den Rückgabestring parsen.