Tutorial - Ogl Hack Tag 2

T

thunderstorm

So jetzt im tutorail Ogl Hack Tag 2 wollen wir jetzt lernen wie wir was auf die Tasten binden :)

Voraussetzung: Ihr habt bisschen arhung von c++ :) und ihr habt Tutorial - Ogl Hack Tag 1 gelesen :)

Da fangen wir mal direct an und öffnen unser Project.

Dann öffnen wir die Opengl32.cpp und dies mal behandeln wir 2sachen einmal sys_glviewport und sys_glBegin. Bei sys_glBegin änderen wir nur etwas um :).

So wir gehen jetzt zu sys_glviewport. Wir suchen besser da nach. Short Cut: strg + f und geben im suchfeld einfach
Code:
view
ein.

Jetzt müsstet ihr die sys_glviewport sehen. Dies sieht so aus.

Code:
void sys_glViewport (GLint x,  GLint y,  GLsizei width,  GLsizei height)
{

	(*orig_glViewport) (x, y, width, height);
}

So hier brauch man eigentlich nicht viel erklären :) ist eigentlich die viewport funktion von ogl.

Jetzt wie würde unser key toggle code sein. Dies mal ist er bisschen einfacher als der Wallhack code :) versprochen.

Hier der Key toggle code:

Code:
    if(GetAsyncKeyState(VK_NUMPAD1)&1==1)
	{
	    wallhack=!wallhack;
	}

dat war er schon :)

So nun jetzt mal bisschen Kommentieren :)

Code:
GetAsyncKeyState
Dies ist der Command um wir die Key tasten abfrage machen ist ja eigentlich klar :)

Code:
VK_NUMPAD1
Dies ist die Taste :) nicht vergessen das VK_ da vor zu schreiben :). NUMPAD1 ist neben den Pfeiltasten(für doofe :) )

Code:
wallhack=
hier wird geprüft ob wallhack gibts und geboolt oder geint ist.

Code:
!wallhack;
wenn ja schalt den Wallhack / Wenn er an ist schalte ihn wieder aus.

Das war die kommentierung :) so einfach.

So den code kopieren wir jetzt in sys_glviewport rein.
Dies müsste dann so aus sehen
Code:
void sys_glViewport (GLint x,  GLint y,  GLsizei width,  GLsizei height)
{
    if(GetAsyncKeyState(VK_NUMPAD1)&1==1)
	{
	    wallhack=!wallhack;
	}

	(*orig_glViewport) (x, y, width, height);
}

Das wars jetzt eigentlich schon mit sys_glviewport jetzt gehen wir zu sys_glBegin
jetzt gehen wir zu unseren wallhack code.

unser wallhack code sieht ja so aus
Code:
 if((mode == GL_TRIANGLE_STRIP) || mode == GL_TRIANGLE_FAN) 
{
    glDisable(GL_DEPTH_TEST);
 }

Um jetzt den zu ein key toggle zu machen brauchen war nicht viel :) nur bisschen gribs und c++ :) aber wo das eigentlich kein richtiges c++ ist :)

Unser toggle key ist ja wallhack. Um jetzt Wallhack zu togglen müssten wir nur die funktion ab ändern
Code:
if((mode == GL_TRIANGLE_STRIP) || mode == GL_TRIANGLE_FAN)

Wir müssen nach den if wallhack einfach einfügen und das müsste dann so aus sehen
Code:
 if(wallhack && (mode == GL_TRIANGLE_STRIP || mode == GL_TRIANGLE_FAN))

So das wars jetzt nur noch in unsere sys_glbegin einfügen.
das müsste dann so aus sehen :)

Code:
void sys_glBegin (GLenum mode)
{
 if(wallhack && (mode == GL_TRIANGLE_STRIP || mode == GL_TRIANGLE_FAN)) 
{
    glDisable(GL_DEPTH_TEST);
 } 
	(*orig_glBegin) (mode);
}

Ah stop wenn wir jetzt Compilen würden kommt ein fehler :) nicht deklariert bla bla bla :) wisst bestimmt schon was mir machen müssen.

Ja klar wir müssen wallhack boolen.

Wenn ihr eine vars.h erstellt habt fügt ihr das ein
Code:
bool wallhack=false;

aber ihr könnt es auch einfach in eure opengl32.cpp schreiben da wo ihr schon eure anderen sachen geboolt oder int habt. Wenn ihrs noch nicht gemacht habt.
Einfach 2zeilen unter eure includes frei lassen und dann einfügen :).

Das wars eigentlich nur ein danke geht an Gemini der mir damals dabei sehr doll geholfen hat.

Cya euer dEMolite :)
 

Beliebte Schlagwörter

Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.

Zurück
Oben Unten