Mitglied-183122.02.2006, 17:43 Uhr
Hallo,
ich habe mir mal testweise RunUO installiert und habe das Problem, daß man sich zwar am Server anmelden kann, aber dann etwa an der Stelle, wo man den Charakter auswählen kann, wieder getrennt wird.
Bei DynDNS habe ich mir eine Domain angelegt, die von meinem Router auf den PC umgeleitet wird, auf dem der RunUO-Server läuft. Die Router Firewall ist auch entsprechend eingestellt.
Wenn ich den Server sterte, wird allerdings nur die lokale Ip-Adresse im Server angezeigt.
An dem PC, auf dem der Server läuft, habe ich in der Login.cfg die Domain als Login-Server eingetragen und kann mich ganz normal anmelden, einen Charakter auswählen und spielen. Nur wenn es jemand anderes versucht, tritt o.g. Phänomen auf.
Das ganze habe ich auch mal umgekehrt getestet, mit dem selben Ergebnis.
Woran kann das liegen? Gibt's da vielleicht noch eine Datei, die angepaßt werden muß?
Mitglied-161622.02.2006, 17:55 Uhr
Hast du deine DynDNS in die ServerList.cs eingetragen? Sind die Clients alle hochgepatcht?
Mitglied-183123.02.2006, 07:50 Uhr
Also die Clients sind hochgepatcht, aber diesen Eintrag in der serverlist.cs habe ich nicht. Ich habe da jetzt auch in einem Kommentar einen Hinweis darauf gefunden, daß man da eine entsprechende Zeile hinzufügen soll, kenne mich aber mit dieser Scriptsprache zu wenig aus, um zu wissen, wo genau ich den Eintrag machen muß und welche Teile des Scripts ich auskommentieren muß, damit sie nicht stören.
Meine Serverlist.cs sieht so aus:
using System;
using System.Net;
using System.Net.Sockets;
using Server;
using Server.Network;
namespace Server.Misc
{
public class ServerList
{
/* Address:
*
* The default setting, a value of 'null', will attempt to detect your IP address automatically:
* private const string Address = null;
*
* This detection, however, does not work for servers behind routers. If you're running behind a router, put in your IP:
* private const string Address = \"12.34.56.78\";
*
* If you need to resolve a DNS host name, you can do that too:
* private const string Address = \"shard.host.com\";
*/
public const string Address = null;
public const string ServerName = \"RunUO Test Center\";
public static void Initialize()
{
Listener.Port = 2593;
EventSink.ServerList += new ServerListEventHandler( EventSink_ServerList );
}
public static void EventSink_ServerList( ServerListEventArgs e )
{
try
{
IPAddress ipAddr;
if ( Resolve( Address != null && !IsLocalMachine( e.State ) ? Address : Dns.GetHostName(), out ipAddr ) )
e.AddServer( ServerName, new IPEndPoint( ipAddr, Listener.Port ) );
else
e.Rejected = true;
}
catch
{
e.Rejected = true;
}
}
public static bool Resolve( string addr, out IPAddress outValue )
{
try
{
outValue = IPAddress.Parse( addr );
return true;
}
catch
{
try
{
IPHostEntry iphe = Dns.Resolve( addr );
if ( iphe.AddressList.Length > 0 )
{
outValue = iphe.AddressList[iphe.AddressList.Length - 1];
return true;
}
}
catch
{
}
}
outValue = IPAddress.None;
return false;
}
private static bool IsLocalMachine( NetState state )
{
Socket sock = state.Socket;
IPAddress theirAddress = ((IPEndPoint)sock.RemoteEndPoint).Address;
if ( IPAddress.IsLoopback( theirAddress ) )
return true;
bool contains = false;
IPHostEntry iphe = Dns.Resolve( Dns.GetHostName() );
for ( int i = 0; !contains && i < iphe.AddressList.Length; ++i )
contains = theirAddress.Equals( iphe.AddressList );
return contains;
}
}
}
Mitglied-163107.03.2006, 17:27 Uhr
Hi,
ich weiss nicht ob der Fehler noch existiert, aber Du musst im Router zwei Ports freigeben. Wenn Du den Standard von RunUO verwendest musst Du einmal natürlich die 2593 und anschliessend die 2592 freigeben.
Zudem hast Du in Deine [Address] in Deiner ServerList.cs nicht mit Deiner IP bzw. Deiner DynDNS versorgt.
Schaue Dir die ServerList.cs einmal an. Keine Angst ist eigentlich gar nichts zu tun. Hier habe ich einmal für einen Freund eine Serverlist erstellt, die zum einen für Internet mit variabler IP Adresse funktioniert und zum zweiten für die Auswahl mehrerer Server anhand eines Anmeldeservers funktionert.
Kopiere diese in dein Scripts/Misc/ Verzeichnis und sichere notfalls die alte Datei. Probiers mal, wir schon schiefgehen....
Mitglied-183129.04.2006, 14:11 Uhr
Huhu,
danke für die Antwort. Das mit den Ports im Router wußte ich bereits. Mittlerweile funzt auch alles :)