Sieht für mich nach etwas aus, was wohl einen 3D-Effekt erzeugen soll.
Gibt in den Control-Eigenschaften bestimmt etwas, damit du das ausstellen kannst.
MfG
Sieht für mich nach etwas aus, was wohl einen 3D-Effekt erzeugen soll.
Gibt in den Control-Eigenschaften bestimmt etwas, damit du das ausstellen kannst.
MfG
Folgende Filme sind vielleicht was für dich:
Dark City
Kann man viel Sozialkritik draus entnehmen.
Vanilla Sky
Habe ich selber nicht gesehen und dieser Film wird von denen, die ich hier nenne wohl am wenigsten deinen Ansprüchen genügen.
The 13th Floor
Basiert glaube ich auf dem selben Roman, wie Matrix und kommt auch ähnlich rüber.
Und täglich grüßt das Murmeltier
Ist euer Leben wirklich so viel anders?
MfG
Guten Abend,
mir fiel gerade fast selber auf, dass ich vor gefühlten zwei Jahren und tatsächlichen elf Monaten mal mit Direct3D rumgespielt habe. Im Zuge einer StageTwo Geheimoperation habe ich dann einen D3D-Hook geschrieben und erklärt, wie das alles funktioniert. Leider bekam die Öffentlichkeit nichts davon mit, was ich zwar fest versprochen hatte, aber, wie das halt so ist, ganz einfach vergessen habe. Das soll sich jetzt ändern und deswegen krieg ihr hier nochmal den Downloadlink und ein paar zitierte Erklärungen:
ZitatAlles anzeigenAlle Spiele benutzen eigentlich Direct3D oder OpenGL als Renderer, wobei D3D wesentlich häufiger zum Einsatz kommt.
In der D3D-Render-Funktion kann man jetzt seinen Text darstellen lassen:
Wie man sehen kann nur eine Hand voll Zeilen.
Um D3D zu hooken gibt es von Azorbix ein Starterkit, aber wenn wir unsere eigenen Projekte haben wollen, sollten wir auch unseren eigenen Hook und nicht in den Credits gamedeception.net drin stehen haben.
Wenn wir uns auf dem Gebiet Grafik/Direct3D bewegen würde ich mich natürlich dazu bereit erklären so einen Hook zu programmieren.
Zum Thema GDI+:
Das Flakkern kommt daher, weil das Spiel sich einige dutzend Male pro Sekunde neu zeichnet. Je nach der FPS Rate. Man müsste also 20 bis 60 Mal pro Sekunde den Text zeichnen lassen und trotzdem gibts dann keine Garantie auf ein Flakkerloses Ergebnis.
ZitatAlles anzeigenAlso, das Projekt lässt sich nicht in .Net übersetzen. Es wäre denke ich mal am besten, wenn ich kurz die Funktionsweise erkläre:
Die d3d9.dll exportiert vor allem die wichtige Funktion Direct3DCreate9. Diese gibt einen Pointer zu einem Direct3D Interface zurück. Dieses Interface beinhaltet die Methode CreateDevice, welche als Out-Parameter ein Direct3D Device zurück gibt. Dieses D3DDevice stellt nun die ganzen Direct3D Funktionen zur Verfügung, die zum Rendern benötigt werden. Beispiele sind BeginScene, EndScene, etc. Natürlich gibt es dann noch andere Interfaces, wie zum Beispiel ID3DXFont, oder ID3DXSprite, die speziellere Methoden bereithalten, wie das Zeichnen von Texten, oder im Falle der Sprites eben von 2D-Grafiken.
Unser Hook geht nun her und lenkt die Direct3DCreate9 Funktion, auf unsere eigene Direct3DCreate9 Funktion um. Warum wir das hooken und nicht direkt die CreateDevice Methode? Wir kennen nur die Direct3DCreate9-Adresse, weil die anderen Funktionen sich in Interfaces und Klassen verstecken, die erst instanziiert werden müssen.
In unserer eigenen Direct3DCreate9, tauschen wir das Interface, was zurück gegeben wird, durch unser eigenes aus, merken uns aber das Originale. Gehookt wird in der Datei D3DHook.cpp/h und unser Interface wird in ID3D9.cpp/h definiert und deklariert.
Wir haben jetzt vollen Zugriff auf das Interface und jetzt wird auch klar, weshalb .Net spätestens ab hier versagt: Wenn das Game ein Device erstellen möchte und IDirect3D9::CreateDevice aufruft, würde mit einem ".Net-Hook" eine Funktion aufgerufen, die garnicht ausgeführt werden kann, weil es eben .Net/CLR und kein Unmanaged Code ist und schon die .Net Bibliotheken garnicht geladen sind.
Das Game ruft nun also die CreateDevice Methode auf und wir vertauschen jetzt das originale D3DDevice mit unserem eigenen, wie wir es auch zuvor bei der Direct3DCreate9 Funktion gemacht haben und haben wieder zugriff auf alle Methoden.
Unser IDirect3DDevice9 wird in der Datei ID3DDevice9.cpp/h definiert/deklariert und gehookt wird es natürlich in ID3D9.cpp.
Das war 's eigentlich schon. Unser Ziel war es die D3D Methoden zu detouren und das haben wir jetzt erreicht. Uns stehen alle Methoden zur Verfügung, wir wissen wann diese aufgerufen werden und können unseren eigenen Code zwischen schalten.
Die EndScene Methode ist jetzt bspw. die Methode, die eine Szene abschließt und sagt hier kommt jetzt nichts mehr. OpenGL Programmierer werden da Parallelen erkennen. Genau vor dieser Funktion können wir unsere Bilder, Texte, etc. zeichnen lassen. Wie aber ja schon gesagt, kann man die Methoden auch verändern. Ein D3D-Wallhack ist bspw. recht einfach zu programmieren, ist aber je nach Game recht Zeitaufwendig.
Wenn Interesse besteht, mache ich für einen D3D-Wallhack gerne ein Tutorial.
MfG
PS: Eine Seite die ich jedem nur empfehlen kann ist http://toymaker.info/
EDIT\\ Nochmal zur .Net Geschichte: Man könnte Funktionen zum Zeichnen von Bildern, Texten, etc. exportieren lassen. Man könnte damit dann auch ein .Net Programm benachrichtigen, wann eine gewisse Methode aufgerufen wird, den Rückgabewert des .Net Programms auswerten und dem entsprechend weiter machen, aber dadurch geht natürlich die volle Kontrolle über D3D verloren und man kann weitestgehend nur Sachen anstellen, die vorher vom C++ Programmierer programmiert wurde.
Viel Spaß und Erfolg damit.
MfG