Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text in Diablo II ausgeben (https://www.delphipraxis.net/28884-text-diablo-ii-ausgeben.html)

SuPp3nHuHn 31. Aug 2004 19:39


Text in Diablo II ausgeben
 
Ich würde mit meinem delphi program gerne text direkt in diablo 2 ausgeben, leider find ich aber nicht raus wie.
Fenster schließen und so geht, aber wie text ausgeben?

c113plpbr 31. Aug 2004 20:42

Re: Text in Diablo II ausgeben
 
Ich habe mich zu ähnlichen themen schon öfter geäußert ... es gibt 3 (akzepabele) methoden:
- Die einfachste methode ist immernoch, das spiel im fenster laufen zu lassen, und ein eigenes fenster daneben zu haben, das den text dann ausgibt (oder die dual-monitor lösung :mrgreen: )
- eine weitere einfache methode wäre einfach per textout auf den dc des d2 fensters zu 'schreiben'. Gekoppelt mit einem timer, oder einer schleife (wegen der aktualisierung des bildes, des frames) in der textout aufgerufen wird, ist das machbar. Dies ist eine recht simple methode, bei der der text aber stark flimmern kann.
- die warscheinlich beste methode, aber auch schwerste methode wäre per hook die present (oder bei directx < 8 die flip) funktion abzufangen, und eigenen text auf dem backbuffer zu zeichnen, bevor front und backbuffer vertauscht werden (also ein neuer frame gezeichnet wird).

soviel dazu ... ciao, Philipp

SuPp3nHuHn 31. Aug 2004 21:37

Re: Text in Diablo II ausgeben
 
hmmm naja die dritte sieht mir wircklich am schönsten aus, gibst dafür paar beispielcodes etc....

hab erst mit dem ganzen angefangen...

dizzy 31. Aug 2004 22:31

Re: Text in Diablo II ausgeben
 
Das 3. nennt sich DLL-Hooking, und erfordert im Grunde eine eigene DirectX-DLL, die alle auch nur erdenklichen Funktionen vom echten DirectX an die echte DLL weiterleitet, aber beim Flip noch eigenen Code ausführt.
Allerdings wird man wohl kaum eine detailierte Beschreibung aller Funktionen von DirectX finden, und selbst wenn, ist das ein rieeeeesen Aufwand. Das Programm FRAPS arbeitet in etwa so - und deswegen kostet es wohl auch etwas ;)

Ich würde mich da auf Methode 2 beschränken. Ist zwar nicht wirklich schön, das Geflimmere dann, aber was soll's.

gruss,
dizzy

Vjay 31. Aug 2004 23:27

Re: Text in Diablo II ausgeben
 
Drittere Methode müsste auch anders gehen.

Und zwar hängst du dich in den Prozess, am leichtesten per Hook. Danach sucht du die Speicheradresse der Flip-Funktion und biegst den Pointer auf eine eigene Funktion um. Zwar nicht ganz koscher aber funktioniert.

Dieser Artikel beschreibt wie das ganze von statten geht. Viel Spass beim Prozess crashen :)

Hoffe konnte helfen.

Beckman 1. Sep 2004 00:18

Re: Text in Diablo II ausgeben
 
wie meinst du ueberhaupt ausgeben in DII?

willst du den text fuer dich sichtbar machen, oder so aufm schirm 'einblenden'?

ahm, ich find du koenntest dir einfach in den clipboard den text schreiben und dann in D2 sobald du nen notification sound hoerst, vom programm ausgegben, einfach ne console auf und reinpasten, falls das funkt :P
dann siehst den text auch hehe

aber ich mach mich auch grad an die arbeit, zu sehen, wie das mitm speicherpointer umleiten funkt
das waer cool :D

c113plpbr 1. Sep 2004 02:44

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von dizzy
Das 3. nennt sich DLL-Hooking, und erfordert im Grunde eine eigene DirectX-DLL, die alle auch nur erdenklichen Funktionen vom echten DirectX an die echte DLL weiterleitet, aber beim Flip noch eigenen Code ausführt.
Allerdings wird man wohl kaum eine detailierte Beschreibung aller Funktionen von DirectX finden, und selbst wenn, ist das ein rieeeeesen Aufwand. Das Programm FRAPS arbeitet in etwa so - und deswegen kostet es wohl auch etwas ;)

Nein. Das was du meinst ist dll-wrapping. Wie du schon beschrieben hast, müsste man dazu eine dll schreiben, die alle funktionen weiterleitet, an die original-dll, was natürlich eine sau arbeit wäre. Fraps aber funktioniert anders. Ich hab dies selbst schonmal gemacht, daher hab ich etwas erfahrung damit. Am besten nimmt man sich eine Api- bzw. function-hooking library wie z.B. die madCodeHook lib (http://www.mashi.net/; meine empfehlung) oder afxCodeHook (http://www.iamaphex.net/), damit man das function-hooking nicht auch noch selber schreiben muss. Dann beschäftigt man sich mit DirectX. Wichtig dabei sind auch die headerdateien für c++ (man glaubt es kaum ;) ). Dann muss man mehrere funktionen hooken, um schliesslich zur present oder flip funktion zu kommen (ich hab ne halbe ewigkeit gebraucht um drauf zu kommen wie das genau geht ^^). Und dann muss man versuchen seinen eigenen code da reinzuschreiben ... nun, mehr ist es nicht ... ^^ :twisted: ... nichts für anfänger in sachen programmieren, aber zu schwer ist es auch nicht.
Man kann natürlich auch noch andere nette sachen damit machen, wie ich auf diesen 2 seiten präsentiert habe:

Unreal Tournament - Texturlos
Unreal Tournament - Tokara Forest mal anders

Damit wollte ich nur zeigen ... es funktioniert!

PS: Ich glaube ich muss in nächster zeit wirklich mal ein tutorial dazu schreiben ... obwohl ich das eigentlich nicht wollte ... denn jeder, der sich dafür _wirklich_ interessiert, braucht zwar ne weile, aber kommt drauf (und lernt verdammt viel dabei, so wars zumindest bei mir ...). :zwinker:

ciao, Philipp

Luckie 1. Sep 2004 03:21

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von SuPp3nHuHn
hab erst mit dem ganzen angefangen...

Wenn ich sow as lese, frage ich mich immer, ob es dann nicht sinnvoller wär emit was anzufangen, was dem eigenem Wissensstand entspricht und langsam, Schritt für Schritt, neues zu lernen? :roll:

Boombuler 1. Sep 2004 07:09

Re: Text in Diablo II ausgeben
 
Hi

Zitat:

Zitat von Luckie
Wenn ich sow as lese, frage ich mich immer, ob es dann nicht sinnvoller wär emit was anzufangen, was dem eigenem Wissensstand entspricht und langsam, Schritt für Schritt, neues zu lernen? :roll:

Man weiß ja nie wie weit der jenige welche ist und wie hoch sein wissensstand ist... auserdem wo willst du denn bei dem fachthema langsam anfangen?
Meine Meinung: abundzu muss ein sprung ins kalte wasser sein sonst lernt mans nie!

MfG
Boombuler

Vjay 1. Sep 2004 09:33

Re: Text in Diablo II ausgeben
 
c113plpbr, genau das meinte ich.

Also wenn er genügend WinAPI Grundwissen hat, sehe ich nichts was dem Sprung im Wege steht.
Den Artikel den ich gepostet habe bräuchte er nur Copy&Pasten und entsprechend modifizieren. Mehr nicht.

dizzy 1. Sep 2004 16:01

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von c113plpbr
Nein. Das was du meinst ist dll-wrapping.

:oops: *rechtgeb* (Klingt auch logischer...)
Zitat:

Zitat von c113plpbr
Ich glaube ich muss in nächster zeit wirklich mal ein tutorial dazu schreiben ... obwohl ich das eigentlich nicht wollte ...

:shock: Jahaaaaa! Bitteeeeee Ich will mir doch so unbedingt einen Ersatz für Fraps bzw. Gamecam schreiben, da mir die beiden eine zu schlechte Qualität liefern. Das alte Fraps hat noch unkomprimierte Videos gemacht, aber die gibt's nicht mehr. Nur noch diese blöde kommerzielle Version, die zu dem auch noch völlig schwammig komprimiert :(

Ich würd dich :love:

hoffnungsvoll,
dizzy :)

SuPp3nHuHn 1. Sep 2004 17:10

Re: Text in Diablo II ausgeben
 
Werde mir die ganzen Artikel mal zu Gemüte führen... Danke erstmal.

Werd schon sehen was dabei rauskommt.

SuPp3nHuHn 1. Sep 2004 17:27

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von Vjay
Drittere Methode müsste auch anders gehen.

Und zwar hängst du dich in den Prozess, am leichtesten per Hook. Danach sucht du die Speicheradresse der Flip-Funktion und biegst den Pointer auf eine eigene Funktion um. Zwar nicht ganz koscher aber funktioniert.

Dieser Artikel beschreibt wie das ganze von statten geht. Viel Spass beim Prozess crashen :)

Hoffe konnte helfen.

Uhhh ziemlich viel, ich mach mich wohl besser an die Arbeit...

grmph .. ich sollt erstmal den ganzen code lesen bevor ich fragen stelle....
danke.

c113plpbr 1. Sep 2004 17:44

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von SuPp3nHuHn
In dem Artikel wird eine HookTextUnit in 'HookTextUnit.pas' angegeben, ich habe diese Datei aber nicht, wo bekomme ich diese her?

Irgendwo ab der mitte findest du die ... musst halt ne neue datei (mit dem namen 'HookTextUnit.pas') erstellen, und dann das zeugs da reinkopieren.

@dizzy: Ja, äähm ... Fraps war ja ursprünglich nur dazu da, die framerate anzuzeigen ... sowas selber zu machen scheint mir kein allzu größes problem zu sein, aber von videocapturing hab ich null ahnung ... aber das kann sich natürlich ändern ... (ein beispiel, wie man ein video von seiner eigenen directx-anwendung erstellt (also ne szene aufnimmt) würde schon reichen ... ^^ ... ansonsten kann ich höchstens von jedem frame nen bmp-pic anbieten ...)
Und ... sollte ich ein tutorial schreiben, wird das erstmal über function-hooking selbst gehen, und das unter verwendung von einer der oben genannten libs ... denn wer die grundlage nicht versteht, braucht sich mit den anderen spielchen garnicht erst auseinander zu setzen. (ich versuch mir in meiner letzten ferienwoche zeit dazu zu nehmen ... soweit ich da keine allzu großen zahnschmerzen hab ... ich werd morgn meine weisheitszähne los :pale: )

ciao, Philipp

dizzy 1. Sep 2004 18:12

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von c113plpbr
von videocapturing hab ich null ahnung ... aber das kann sich natürlich ändern ...

Mit dem DSPack ist das wirklich super einfach. Habe damit auch schon mal einen kleinen Filter geschrieben. Man kann dem DSPack einfach Bitmaps "reinschieben", und das ganze codieren lassen.

Zitat:

Zitat von c113plpbr
(ein beispiel, wie man ein video von seiner eigenen directx-anwendung erstellt (also ne szene aufnimmt) würde schon reichen ... ^^ ... ansonsten kann ich höchstens von jedem frame nen bmp-pic anbieten ...)

Von der eigenen Anwendung... najo, mir gings ja jetzt ums Funktion-Hooking ;)
Und wie gesagt: BMP's reichen zum capturen voll aus. Man muss nur schauen, dass die CPU nicht zu sehr drunter leidet.

Zitat:

Zitat von c113plpbr
Und ... sollte ich ein tutorial schreiben, wird das erstmal über function-hooking selbst gehen, und das unter verwendung von einer der oben genannten libs ...

Ja aber gerne! :) Genau darauf würd ich mich reichlich freuen!

Zitat:

Zitat von c113plpbr
(ich versuch mir in meiner letzten ferienwoche zeit dazu zu nehmen ... soweit ich da keine allzu großen zahnschmerzen hab ... ich werd morgn meine weisheitszähne los :pale: )

Gleich alle 4? Freu dich drauf, hab ich auch gemacht :mrgreen:. Alles Gute dabei *daumendrück*

Werde mich auch schon mal etwas in das Thema einlesen, damit ich nachher nicht wie Ochs vorm Berg steh...

cu,
dizzy

c113plpbr 1. Sep 2004 18:20

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von dizzy
Von der eigenen Anwendung... najo, mir gings ja jetzt ums Funktion-Hooking ;)
Und wie gesagt: BMP's reichen zum capturen voll aus. Man muss nur schauen, dass die CPU nicht zu sehr drunter leidet.

Weist du, wenn ich weis wie es in meiner eigenen anwendung geht, dann weis ich ich wie es mit einer anderen anwendung geht ... nur bmps brauchen glaub ich ne halbe ewigkeit, bis die gecaptured werden ... (is ja eine meist schon 3 mb groß, bei 1280*1024 und kleiner machen geht wieder aufn prozessor ...)

Zitat:

Zitat von dizzy
Gleich alle 4? Freu dich drauf, hab ich auch gemacht :mrgreen:. Alles Gute dabei *daumendrück*

Ja, leider ... :pale: ... nur freuen tu ich mich farauf ned ... :| :wall:
... danke ...

[bemerk]... das is alles ot ...[/bemerk]

ciao, Philipp

Dani 1. Sep 2004 19:28

Re: Text in Diablo II ausgeben
 
Nur so aus Neugier... wird das ein Cheat fürs Battle.net?

SuPp3nHuHn 1. Sep 2004 19:38

Re: Text in Diablo II ausgeben
 
ok das program hab ich jetzt am laufen ... is ziemlich nice was das anstellt ;-)

Ich werd jetzt wohl suchen wie ich es modifizieren muss damit es für meine Zwecke taugt - nur mein problem ist, es ändert ja bestehende texte ab, ich muss aber text hinzufügen....

Und der code is wircklich groß, über weitere tipps betreffend dem code aus dem artikel bin ich dankbar.

ps. Viel Glück beim Zahnarzt

pps. Nein, Kein Cheat für bnet, ein Tool um z.b. Liedtitel ins Diablo zu schreiben (die gerade abspielt), IP etc.

-> Wenn einer davon Ahnung hat und mit per Irc z.b. helfen könnte wäre ich natürlich auch nicht abgeneigt. Also wenn einer Uhrzeit und Datum nennt und mir etwas unter die Arme greifen kann und auch will, BITTE.

Danke an die bisherige Hilfe, ist bis jetzt eine WIRCKLICHE (ohne Ironie) Hilfe gewesen!

(Noch ein Problem: Das Program verändert alles in Windows, in Diablo sehen die Texte aber ganz normal aus (mein Winamp wird verändert, mein Delphi auch aber Diablo in sich selber is gleich geblieben, wieso?)

dizzy 1. Sep 2004 20:14

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von SuPp3nHuHn
aber Diablo in sich selber is gleich geblieben, wieso?

Das ist ja gerade der springende Punkt ;)
Diablo wird mit großer Sicherheit nicht die TextOut-Routine der WinAPI zur Textausgabe verwenden, sondern da es idR Bitmap-Fonts sind, DirectX-Zeichenroutinen.
Da du aber ja selber etwas hinzufügen möchtest, so ist der jetzige Weg nicht sehr viel versprechend, da du immer nur rumfummeln kannst, wo schon etwas ist, und auch nicht in DirectX.
Dafür brauchst du dann schon mindestens die "flickernde" Variante mit direktem Zeichnen auf ein das DC, oder eben das, was hoffentlich noch als Tutorial kommt ;)

gruss,
dizzy

Luckie 1. Sep 2004 20:19

Re: Text in Diablo II ausgeben
 
Ich kenne mich d anicht so aus, aber Vidoes werden direkt in den Speicher der Grafikkarte "geschrieben". Siehe dazu den Mediaplayer. Da dürfte es keinen DC geben auf dem man was ausgeben kann. Wenn das DirectX jetzt auch so macht, dürftest du ein Problem haben.

SuPp3nHuHn 1. Sep 2004 20:27

Re: Text in Diablo II ausgeben
 
Naja weiß net inwiefern ihr Diablo kennt / spielt...

Einige kennen aber sicher das Program d2jsp (diablo 2 java script parser) - mit diesem kann man wie der name schon verrät javascript code ausführen welchen das program dann in diablo 2 umsetzt.

Mit diesem wird in diablo was geschrieben, ohne problem, ohne flimmern.... einfach so...

Also gehts irgendwie... (ich will NICHT d2jsp nachbauen!)

Kann ich mithilfe von d2jsp evtl. herauskriegen wie's geht (also programm "zerlegen")

dizzy 1. Sep 2004 20:38

Re: Text in Diablo II ausgeben
 
Am Rande: Hier schribt jemand, wie man einen Screenshot einer DirectX-Anwendung machen kann. Könnte man das nicht irgendwie verwursten? Hab das mal testweise in Delphi übersetzt (versucht) aber überhaupt nicht kompiliert bekommen, da mir wohl die DirectX 8.0 Header fehlen. Bis 7 hab ich sie, und da kennen die verwendeten Interfaces die ganzen Methoden die der Code benutzt nicht :?

Zum Thema "Zerlegen" hatten wir hier schon massig Diskussionen Hier im Forum suchendisassembler Hier im Forum suchendecompiler. Lies es, und du wirst sehen, dass man das getrost vergessen kann ;)

c113plpbr 1. Sep 2004 20:44

Re: Text in Diablo II ausgeben
 
Die flackernde Variante ist schon möglich, da DirectX sowieso im Fenster läuft, welches ein DC hat, auf das man zeichnen kann (ich hab das selbst mal ausprobiert). Einfach per FindWindow sich ein fensterhandle holen, dann per GetDc den dc holen, und dann einfach per TextOut draufzeichnen. TextOut muss man dann in einer schleife recht oft aufrufen, um auf (möglichst) jeden frame den text zu zeichnen. Das funktioniert, aber wie gesagt, es flackert.

Um aber mit DirectX zu zeichnen, z.B. mit der DrawTextA funktion aus ID3DXFont braucht man zum erstellen der Font (bei dx9) ein IDirect3DDevice9. Ohne das, keine font. Und selbst dabei muss man auch noch im richtigen moment zeichnen, damit der text nicht wie bei obiger variante flackert. Daher ist API bzw. Function-Hooking die EINZIGE akzeptable methode (außer man versucht sich an einem Graphikkartentreiber).

Ich hab mir nun vorgenommen das angesprochene Tutorial zu schreiben, und dies mit einem beispiel auszustatten, das zeigt, wie das möglich ist. Ihr müsst nur ein wenig gedult haben ...

@dizzy: Genau den code hab ich verwendet, um screenshots zu machen ... allerdings ist der für eigene programme gedacht ... ^^

ciao, Philipp

SuPp3nHuHn 1. Sep 2004 20:47

Re: Text in Diablo II ausgeben
 
Jo, das hört sich schon sehr konkret an ;-)

Ja, das mit dem zerlegen weiß ich das es net wircklich effizient ist (wenn ich es zerlegen und das zerlegte zu 100% verstehen könnte würde ich wohl diablo einfach neu schreiben ^^)

Wie halt schon gesagt hab ich d2jsp und das hat auch eine dll, kann die diese nicht verwenden (copyright hab ich keine angst da es ja nur für mich + freundeskreis ist)

ahja, btw. bei d2jsp sieht es aus als wenn die nachricht vom server käme, wäre es evtl. nicht möglich einfach eine für diablo fingierte message zu schicken, also gar nicht diablos grafik selbst zu manipulieren sondern einfach über den port wo "der text kommt" an sich selbst quasi eine nachricht zu schreiben? Diablo würde diese dann ganz normal ausgeben.... (is nur so ein einfall)


Hier das mit dem DC .... geht nicht wircklich:

Delphi-Quellcode:
procedure TForm1.FWin;
var    W: HWnd;
        D: HDC;
        x: cardinal;
begin
  W := FindWindow(NIL,'Diablo II');
  if W<>0 then begin

  Status.Caption:='Fenster gefunden!'; status.Refresh;
  sleep(1000);
  x:=0;
  D := GetDeviceContext(W);

    while x < 150 do begin
  sleep(50);
  inc(x,1);
  TextOut(D,2,2,'FOUND',5);
  Status.Caption:='Output '+IntToStr(x); status.Refresh;
    end;

  Status.Caption:='Output done!'; status.Refresh;

  end else Status.Caption:='Fenster nicht gefunden'; status.Refresh;
end;
Das Program zeichnet immer auf sein eigenes Fenster anstatt auf notepad, den rechner oder diablo ...

c113plpbr 2. Sep 2004 11:57

Re: Text in Diablo II ausgeben
 
Wenn ich sage GetDC, dann meine ich auch GetDC ... also, ersetze mal dein GetDeviceContext durch GetDC!

ciao, Philipp

SuPp3nHuHn 2. Sep 2004 16:00

Re: Text in Diablo II ausgeben
 
jo hab es jetzt mit getdc und geht auch (die Hilfe schlug mir eben GetDeviceContext vor) ...

Aber die Möglichkeit dem Spiel eine Nachricht zu schicken wie als wenn Sie von dem Server käme wäre die nicht besser?
Weil mit OutputText is wie ja schon vorher bemerkt sehr flimmernd...

Dani 2. Sep 2004 16:57

Re: Text in Diablo II ausgeben
 
Gibts denn keine Möglichkeit, einen Thread in den Diablo II Prozess zu "schummeln" und dann damit auf die D2 Libraries (d2client.dll, d2game.dll usw.) zuzugreifen? Du bräuchtest halt die Namen der Funktionen, aber ich schätze mal da wirst du in den Cheaterforen schon fündig...

btw: Bei FindWindow lieber nach dem Klassennamen "Diablo II" suchen anstatt des Fenstertitels

c113plpbr 2. Sep 2004 18:10

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von Dani
Gibts denn keine Möglichkeit, einen Thread in den Diablo II Prozess zu "schummeln" und dann damit auf die D2 Libraries (d2client.dll, d2game.dll usw.) zuzugreifen? Du bräuchtest halt die Namen der Funktionen, aber ich schätze mal da wirst du in den Cheaterforen schon fündig...

Dass du da was findest, bezweifle ich ... da deren namen alle nicht wirklich "sichtbar" sind ... soweit ich das gesehen hab ... bis auf eine ... in der d2client.dll gibt es eine funktion, die QueryInterface heißt ... vielleicht nützlich?

egal, ich bleibe bei meiner methode ... ^^ ... und wer keine gedult hat ist selbst schuld ...

ciao, Philipp

PS: :pale: mein mund ... AUUUAAA! :pale:

SuPp3nHuHn 2. Sep 2004 18:32

Re: Text in Diablo II ausgeben
 
Zitat:

Zitat von Dani
Gibts denn keine Möglichkeit, einen Thread in den Diablo II Prozess zu "schummeln" und dann damit auf die D2 Libraries (d2client.dll, d2game.dll usw.) zuzugreifen? Du bräuchtest halt die Namen der Funktionen, aber ich schätze mal da wirst du in den Cheaterforen schon fündig...

btw: Bei FindWindow lieber nach dem Klassennamen "Diablo II" suchen anstatt des Fenstertitels

Glaub auch das dies viel schwerer ist als es anders zu probieren.

Wie such ich nach dem Klassennamen anstatt nach dem Fenstertitel?

Dani 2. Sep 2004 18:42

Re: Text in Diablo II ausgeben
 
Delphi-Quellcode:
 W := FindWindow('Diablo II', nil);

Aike 13. Nov 2004 22:23

Re: Text in Diablo II ausgeben
 
Ich habe eigentlich das selbe Problem:
Ich will in einem Spiel in das Textfenster strings ausgeben. Wenn ich das richtig verstanden habe, muss ich einen Hook programmieren um zusammen mit DirectX auf das Textfeld zuzugreifen.

Hm, jetzt fällt mir gerade ein, dass das Spiel gar kein DirectX nutzt ;-)

Das scheint doch eigentlich ein beliebtes Thema zu sein. Warum gibt 's dazu kein Tut. oder 'ne Seite, auf der das beschrieben steht bzw. Code-Vorlagen? :dance:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz