Ja, wir benutzen die GSHTTP.dll um das Browsergame zu steuern.
Wir rufen zum beispiel http://s1.mighty-kingdoms.de/client.py/stadt?sessid=XXXXXXXXXX auf und erhalten dann (bei gültiger Session) die Daten vom Server, das sieht etwa so aus:

Code:
  
8 dermeister 89.58.136.236
29 19 12 14 18
23 15 9 11 14
0 194 165 Avalon 651000 651000 651000 651000 651000 651000 20000
0 25 25 25 25 25 13 25 25 25
0 3 3 1 0 0
0 10 1 1 1 1
0 1 1801 0 500 1500 0 500 0 7
0 807 1341 2422 2148 1615 2000 25000 100 700
0 0 0 0
1 193 164 Meisterstadt1 589000 589000 589000 589000 589000 579990 19300
1 25 25 25 25 25 7 23 18 25
1 3 3 1 0 0

...



Das wird dann in ner Funktion auseinandergenommen und in Arrays gesteckt, fertig.
Dann gibt es den Held, der die eigentlichen neuen Funktionen ins Spiel bringt.
Zunächst wird mit GSHTTP.dll eine Liste aufgerufen, die alle IPs und Playernamen zurückgibt, die diese Adresse in den letzten 40 Sekunden aufgerufen haben, außer natürlich die eigene:

Code:
  
<?php
$neue_ip=$_SERVER['REMOTE_ADDR'];
$timestamp=time();
$name;
$ablaufzeit=$timestamp-40;

mysql_connect(...) or die ("Keine Verbindung moeglich");
mysql_select_db(...) or die ("Die Datenbank existiert nicht");

mysql_query("DELETE FROM bereich1 WHERE time < '$ablaufzeit'");
$ergebnis = mysql_query("SELECT ip, name FROM bereich1 WHERE ip!='$neue_ip'");

while($row = mysql_fetch_assoc($ergebnis))
echo($row['ip'].'|'.$row['name'].'|');

mysql_query("UPDATE bereich1 SET time='$timestamp', name='$name' WHERE ip='$neue_ip' LIMIT 1");
if(mysql_affected_rows() != 1)
mysql_query("INSERT INTO bereich1 (ip,time,name) VALUES ('$neue_ip','$timestamp','$name')");
?>



Alle diese Namen stehen dann ingame in ner Liste und man kann 5 davon zu seiner partie hinzufügen.
Mit dieser kann man dann Items austauschen, chatten, Gegner besiegen.... eben alles, was Spass macht
Das geht über ne eigenen DLL, die im grunde nur 2 dinge kann: in nem Thread wird ein Server gestartet, wenn er was empfängt wird in 3dgs eine Funktion aufgerufen und das empfangene als Parameter übergeben und eine Funktion, die einen String an eine beliebige IP sendet (sendString("127.0.0.1","Huhu!") - das reicht aus.


Wenn zum Beispiel jemand seinen Helden zu einer neuen Position laufen lassen will, wird zu allen 5 IPs in der Liste dieser String gesendet:

Kommandonummer|eigene IP|held.x|held.y|ziel.x|ziel.y

und bei allen anderen düst der Held los, selbst bei Modem kann man keine Verzögerung feststellen. Der Vorteil ist, dass auf diese Weise so wenig Daten übertragen werden, dass das langsamste Modem mitkommt. Nicht jede Zielgruppe hat ja DSL und steht auf über-graphik

aber btw: wir brauchen Hilfe, was die Modelle angeht. Nicht unbedingt qualitativ, das muss alles nicht perfekt sein, eher von der Anzahl. Wenn jemand viel Freizeit hat, bitte melden


Für Rechtschreibfehler haftet mein Deutschlehrer!!! ;-) ICQ: 170177424 http://www.wega3d.de