Hallo, ich weiß zwar das diese Frage schon viele male gestellt wurde, aber leider ist sie nie so wirklich beantwortet worden.
Es handelt sich bei mir um ein altes Fullscreen Strategie Spiel ( 1024x768 ). Das Spiel läuft in DirectDraw und ist von 1998.
Ich möchte mit einen Text/Form Overlay gerne Informationen im Spiel selber ausgeben. Das Spiel wird immer wieder pausiert wenn man das Spiel minimiert. Ich habe ein externes Programm geschrieben, das in einem Fenster die Statistik ausliest und ausgibt in echtzeit. Das problem dabei ist: Nicht jeder Spieler hat einen zweiten Monitor wie ich einen habe. Das Spiel in einer Multiplayer Session zu Minimieren ist auch nicht gerade wegen dem Pause effekt bei den anderen beliebt.
Ich habe mich viele Wochen im Internet und bei Google umgeschaut. Beispiele hab ich viele gefunden aber keines hat funktioniert.
Ich habe 4 Programme gefunden mit dennen ich es geschafft habe, einen Overlay zu erzeugen.
1. TeamSpeakOverlay Problem: Funktioniert nur mit Windows XP und seit Teamspeak 3 sowieso nichtmehr. Gibt ausserdem nicht von mir gewünschte Funktionen aus.
2. Xfire ( mit einem kleinen selbstgebastelten mod der games.ini zum laufen gebracht )
3. Game Overlay
4. Fraps
Der TeamSpeak Overlay gibt als Overlay Modus im Spiel "DirectDraw7" aus.
Ich habe auch schon ein Beispiel von jemanden gefunden der einen Overlay für Ragnarok Online geschrieben hat. Ich habe viele Stunden daran gesessen aber leider nicht zum Funktionieren gebracht.
Auch habe ich bereits versucht mit MadCHook zu arbeiten und den Entwickler angeschrieben. Er konnte mir leider auch nicht helfen und seit die Lizenz kommerziell ist kann ich es eh nichtmehr benutzen.
Ebenfalls habe ich mich mit dem Entwickler von TeamSpeakOverlay unterhalten ( ist auch in Delphi geschrieben ). Er sagte mir das er mir nicht helfen kann, weil er sein Projekt jetzt ebenfalls kommerziell gestalten will. Er gab mir aber den Hinweis mich mit den Windows APIs zu beschäftigen. Auch dort habe ich nichts hilfreiches gefunden.
Den Entwickler vom Game Overlay konnte ich leider nicht erreichen.
Nun die Frage wie ist es möglich einen simplen Text in ein Fullscreen Game zu zeichenen. Es ist immer das gleiche Spiel. Der Window-Name ändert sich also nie. Es ist mir dabei egal ob mittels DLL oder ob ich in den Memory vom Spiel selbst eingreife wie ichs mit der externen Statistik mache.
Leider kann ich nirgenswo Tutorials finden weder in Delphi noch in einer anderen Sprache die bei mir Funktionieren. ( Ich habe fast alle ausprobiert und mich stundenlang damit beschäftigt ).
PS: Erfahrungsgemäß kommt gleich sowas wie Anti - Cheat Systeme usw bei dieser Art von Fragen. Daher möchte ich gleich von Anfang an sagen:
Der Overlay ist für ein bestimmtes Spiel und ausschließlich für ein bestimmtes Spiel. Das Spiel ist uralt und hat keinen Online Modus, wir spielen es über virtuelles Lan im Netzwerk modus. Es besitzt keine Anti Cheat funktionen, ( nichtmal einen CD Key ).
Ich hoffe ihr könnt mir helfen. Tipps was ich benutzen soll bringen mich leider nicht weiter, weil ich diesen Beitrag in ähnlicher Form schon in anderen Foren gepostet habe. Immer wurde mir geraten schau dir diese Funktion mal an oder Probier das mal so. Das hat mich schon Tage an Zeit gekostet weil ich dann Probiert habe mit dem Stichwort bei Google Informationen zu kriegen.
Mfg Patrick