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? |
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 |
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... |
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 |
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. |
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 |
Re: Text in Diablo II ausgeben
Zitat:
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 |
Re: Text in Diablo II ausgeben
Zitat:
|
Re: Text in Diablo II ausgeben
Hi
Zitat:
Meine Meinung: abundzu muss ein sprung ins kalte wasser sein sonst lernt mans nie! MfG Boombuler |
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 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