Entwickler-Ecke

Freeware Projekte - L2ServerManager


JayEff - Fr 19.08.05 02:19
Titel: L2ServerManager
Grundidee

Lineage2 ist ein MMORPG, nutzt IIRC die Unreal Engine und ist, zumindest auf offiziellen Servern, kostenpflichtig. Man zahlt an die 10€ pro Monat. Nun gibt es aber sog. Freeshards, kostenlose Server, auf denen z.T. pre-Alpha Serverapplications laufen, weshalb sie ab und zu mal abstürtzen. Nun ist es allerdings echt blöd, wenn man gerne Zocken würde, aber dummerweise grad der Server down ist. Darum hab ich mir gedacht: Schreib ein Programm, in dem man seine Server verwalten kann.

Funktionsweise

Das Programm speichert die Informationen in eine ini Datei im Installationsordner. Beim Starten des Spiels wird die hosts-Datei überschrieben, diese befindet sich in (meist C):\WINDOWS\system32\drivers\etc\ (Warum auch immer Lineage2 diesen Ordner benutzen muss, ist mir nicht klar.) In dieser Datei steht die IP des Servers (Das Spiel selber ist nicht darauf ausgelegt, verschiedene Server zu kennes, da man ja auf offiziellen Servern spielen soll). Der Status des Servers wird mit einer ClientSocked überprüft, die auf die Ports 7777 für den Gameserver und auf 2106 für den Loginserver connected.

Features


Bugs/Todo


Download
http://www.jayy.de/L2SA.zip


...und jetzt fragt mich blos nicht, warum es L2SA heist, und nicht L2SM. Ist wahrscheinlich ein Tippfehler...?


demo88 - So 21.08.05 15:15

hab mehrere sachen gefunden:

1. wenn kein eintrag in der serverliste vorhanden ist kommen andauern fehlermeldungen
-oder lag daran das eine input box offen war
2. der server check funktioniert bei mir nicht. (server war online wurde aber als offline angezeigt) ging auch nicht anders da sich meine firewall komischerweise nicht gemeldet hat. versucht das programm überhaupt ins internet zu kommen? muss ja eigentlich...

übrigens. der devils server ist blöd, da er dauernd down ist und es da kein richtiges rp gibt
http://www.world-of-mystery.de (keine lags, so gut wie nie down, nur rp, funktioniert fast alles)


JayEff - So 21.08.05 16:54

Danke Danke aber was den Devilsserver betrifft hab ich eigentlich keine Lust mehr... Ich meine ich habe an die 6 High Level Chars verloren... Und als es dann einen Rollback von vor 5 Tagen gab und aus meinem lvl 48 Spellsinger ein lvl 19 Wizard geworden ist, ist mir, ich weis nicht warum, entgültig die Lust auf L2 vergangen...

Deine Firewall sollte sich schon melden, meine tuts ja auch! :shock: Hast du ZoneAlarm? Schau doch mal in der Liste der blockierten Programme nach, on der ServerManager dabei ist, dass würde es ja erklären. Hier mal der code, den ich zum überprüfen verwende:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
    If CheckBox1.Checked Then
    Begin
        ClientSocket.host := ServerList[ListBox1.ItemIndex].IP;
        ClientSocket.Port := 7777;
        Panel1.Color := clYellow;
        ClientSocket.Open;
        Label3.Caption := 'Status: Checking...';
    End;
End;

Procedure TForm1.ClientSocketConnect(Sender: TObject;
    Socket: TCustomWinSocket);
Begin
    ClientSocket.Close;
    Case ClientSocket.Port Of
        7777:
            Begin
                Panel1.Color := clGreen;
                ClientSocket.Port := 2106;
                Panel2.Color := clYellow;
                ClientSocket.Open;
            End;
        2106:
            Begin
                Panel2.Color := clGreen;
                Label3.Caption := 'Status:';
            End
    End;

End;

Procedure TForm1.ClientSocketError(Sender: TObject;
    Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
    Var ErrorCode: Integer);
Begin
    ClientSocket.Close;
    ErrorCode := 0;
    Case ClientSocket.Port Of
        7777:
            Begin
                Panel1.Color := clRed;
                ClientSocket.Port := 2106;
                Panel2.Color := clYellow;
                ClientSocket.Open;
            End;
        2106:
            Begin
                Panel2.Color := clRed;
                Label3.Caption := 'Status:';
            End;
    End;
End;

Kannsts ja mal versuchen, aber ich glaube es dürfte funktionieren...


demo88 - So 21.08.05 22:57

ich werds noch mal probieren
darf ich den codeschnippsel für ein anderes programm von mir verwenden, ich suche schon lange nach ner lösung wie man den server selbst anpingt und nicht nur den pc.


Narses - So 21.08.05 23:17

Moin!

Hmm, der Code für den Server-Test kommt mir doch bekannt vor... :wink:

cu
Narses


JayEff - So 21.08.05 23:58

Der kommt sowieso von Narses oder so jemand von einem anderen Thread ;) klar kannst den von MIR aus verwenden... ^^


Delete - Mo 22.08.05 00:45
Titel: Re: L2ServerManager
user profile iconJayEff hat folgendes geschrieben:
Beim Starten des Spiels wird die hosts-Datei überschrieben, diese befindet sich in (meist C):\WINDOWS\system32\drivers\etc\

Ich hoffe du sicherst diese Datei irgendwo. Das ist nämlich eine ganz empfindliche Datei, wenn es um Netzwerk und Internetverbindungen geht. Und wie stellst du dir original Datei wieder her, wenn dein Programm deinsatlliert oder gelsöcht wird?


JayEff - Mo 22.08.05 01:05

Nun... Wenn ich ganz ehrlich bin, hatte ich mich schon gewundert... ähm... NEIN die wird nicht gesichert und NEIN ich hatte keine ahnung, dass die von mehr als nur von Lineage benutzt wird O_O Wie kommt ein Spiel darauf, gerade eine derartige Datei zu verwenden?! Das muss doch anders gehn! Nun - ich werd sofort eine Sicherung einbauen... Was aber das Deinstallieren betrifft: Da mein Programm nur aus einer Exe und einer ini besteht, gibt es keine Deinstallationsroutine... Darum wird das wiederherstellen eher schwer.

edit: Unter dem alten Link ist nun eine Version verfügbar, die beim ersten mal ausführen ein Backup erstellt.


Delete - Mo 22.08.05 01:44

Dann informier dich mal im Internet wozu diese Datei gut ist. Wenn dort falsche Eintragungen stehen kann es sein, dass weder Internet noch LAN geht. Desweiteren kann man diese Datei auch nur mit Administratorenrechten bearbeiten!


JayEff - Mo 22.08.05 02:26

Das hatte ich mir sowieso gedacht, aber das Spiel ist ja wie gesagt nicht darauf ausgelegt, auf anderen als den offiziellen Servern gespielt zu werden...