[ogl] Pure OGL ESP Modelrec mit ESP tut

T

Timberland

Hi guys, erstmal sauber das es hier wieder Cheats gibt und gleich mal nen Tut von mir hier. Also das Modelrec habe ich glaube von ValloV (noch die alten 00de Vip Tuts) nur habe ich erweitert (ihr braucht jetzt keine Zahlen mehr zu suchen werden hier gleich mit gepostet).

Also erstmal start mit dem Modelrec (lasse ich unverändert und möchte ihm damit volle Credits geben):

Code:
als erstes brauchen wir ein paar bools
Code:

bool begin;
bool models;
bool modelt;
GLfloat point[3];


in glPushmatrix setzen wir begin auf true, weil hl hier beginnt models zu zeichen.
Code:

void sys_glPushMatrix (void)
{
begin = true;
(*orig_glPushMatrix)();
}


man kann auch noch in glShadeModel nachschauhen, wenn der mode GL_SMOOTH gerade genutzt wird.
Code:

void sys_glShadeModel (GLenum mode)
{
if(mode == GL_SMOOTH)
{
begin = true;
}
(*orig_glShadeModel)(mode);
}


in glTexCoord2f schauhen wir nun ob begin = true ist, wenn ja setzen wir es auf false. und die werte s und t setzen wir mit models und modelt gleich(wird fuer die text ausgabe nachher benoetigt).
Code:

void sys_glTexCoord2f (GLfloat s,  GLfloat t)
{
if(begin)
{
begin = false;
models = s;
modelt = t;
}
(*orig_glTexCoord2f) (s, t);
}


in glVertex3f schaut man nun ob der wert x groeser als point[2] ist, wenn ja dann setzt man x mit dem bool point[0], y mit dem bool point[1] und z mit dem bool point[2] gleich.
Code:

void sys_glVertex3f (GLfloat x,  GLfloat y,  GLfloat z)
{
if(x > point[2])
{
point[0] = x;
point[1] = y;
point[2] = z;
}
(*orig_glVertex3f) (x, y, z);
}


in glPopMatrix schaut man nun ob point[2] nicht -99999 ist. falls dies der fall ist disabled man GL_TEXTURE_2D und kann seinen draw code einsetzen. nach dem code sollte man jedoch GL_TEXTURE_2D wieder enablen. und point[2] auf -99999 setzen. dann sieht man im spiel die s und t werte der einzelnen player weapon ect angezeigt. dies kann man dann fuers esp ect verwenden.
Code:

void sys_glPopMatrix (void)
{
if(point[2] != -99999)
{
(*orig_glDisable)(GL_TEXTURE_2D);
glPrint(point[0],point[1],point[2],1.0f,1.0f,1.0f,"s: %f - t: %f",models,modelt);
(*orig_glEnable)(GL_TEXTURE_2D);
point[2] = -99999;
}
(*orig_glPopMatrix) ();
}


wenn man dann alle werte hat(zettel und stift bereit halten ) kann man glPopMatrix auch so umschreiben das anstatt die s und t werte ausgegeben werden, gign, leet, gsg9 ect ausgegeben wird.
Code:

void sys_glPopMatrix (void)
{
if(point[2] != -99999)
{
if((models >= 0.15) && (models <= 0.16) && (modelt >= 0.56) && (modelt <= 0.57)) // ich wuerde nie nach den genauen werten fragen, sondern lieber mit einer kleinen zahlenspanne. wie im beispiel wenn der ausgegeben s wert z.b. 0.15365456 waere. die zahlen sind nicht richtig!
{
glPrint(point[0],point[1],point[2],0.0f,0.0f,1.0f,"gign"); // blauer farbcode der den text gign ausgibt.
}
if((models.......))
{
glprint.....
}
point[2] = -99999;
}
(*orig_glPopMatrix) ();
}


man macht dies halt fuer alle teile die man anzeigen lassen will, ob fuer die ganzen models oder verschiedenen waffen ect..

dieses modelrec hat sich nach einem gd tutorial gerichtet, die draw methode ist aber abgeaendert weil ich dachte das es so leichter waere ^^

So wie ihr oben lest, könnt ihr in gl_popmatrix das eigentlich ESP schreiben und ich dachte mir, das ich euch die Arbeit mit dem zusammen schreiben der modelS und MoldeTwerte erleichtere :).

Code:
if((point[2] != -99999) && (Timbo16))
{
glPushAttrib(GL_DEPTH_BUFFER_BIT);
glDepthFunc(GL_ALWAYS);
if((models >= 0.74) && (models <= 0.75) && (modelt >= 0.87) && (modelt <= 0.88))
{
	glPrint(point[0],point[1],point[2]+10,0.5f,0.5f,1.0f,"-sas-");
	//glPrint(point[0],point[1],point[2]-10,0.0f,1.0f,0.0f,"%f m", entfern);
}
if((models >= 0.91) && (models <= 0.92) && (modelt >= 0.98) && (modelt <= 0.99))
{
	glPrint(point[0],point[1],point[2]+10,0.5f,0.5f,1.0f,"-seal-");
}
if((models >= 0.46) && (models <= 0.47) && (modelt >= 0.96) && (modelt <= 0.97))
{
	glPrint(point[0],point[1],point[2]+10,0.5f,0.5f,1.0f,"-gsg9-");
}
if((models >= 0.86) && (models <= 0.87) && (modelt >= 0.78) && (modelt <= 0.79))
{
	glPrint(point[0],point[1],point[2]+10,0.5f,0.5f,1.0f,"-gign-");
}
if((models >= 0.42) && (models <= 0.43) && (modelt >= 0.86) && (modelt <= 0.87))
{
	glPrint(point[0],point[1],point[2]+10,1.0f,0.0f,0.5f,"-phoenix-");
}
if((models >= 0.52) && (models <= 0.53) && (modelt >= 0.03) && (modelt <= 0.04))
{
	glPrint(point[0],point[1],point[2]+10,1.0f,0.0f,0.5f,"-leet-");
}
if((models >= 0.32) && (models <= 0.34) && (modelt >= 0.44) && (modelt <= 0.45))
{
	glPrint(point[0],point[1],point[2]+10,1.0f,0.0f,0.5f,"-arctic-");
}
if((models >= 0.43) && (models <= 0.44) && (modelt >= 0.01) && (modelt <= 0.02))
{
	glPrint(point[0],point[1],point[2]+10,1.0f,0.0f,0.5f,"-guerilla-");
}
if((models >= 0.88) && (models <= 0.89) && (modelt >= 0.15) && (modelt <= 0.16))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-glock-");
}
if((models >= 0.28) && (models <= 0.29) && (modelt >= 0.20) && (modelt <= 0.21))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-deagle-");
}
if((models >= 0.07) && (models <= 0.08) && (modelt >= 0.17) && (modelt <= 0.18))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-five seven-");
}
if((models >= 0.49) && (models <= 0.50) && (modelt >= 0.59) && (modelt <= 0.60))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-p228-");
}
if((models >= 0.54) && (models <= 0.55) && (modelt >= 0.14) && (modelt <= 0.15))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-usp-");
}
if((models >= 0.92) && (models <= 0.93) && (modelt >= 0.07) && (modelt <= 0.08))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-shild-");
}
if((models >= 0.32) && (models <= 0.33) && (modelt >= 0.35) && (modelt <= 0.37))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-shotgun-");
}
if((models >= 0.17) && (models <= 0.18) && (modelt >= 0.94) && (modelt <= 0.95))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-autoshootgun-");
}
if((models >= 0.58) && (models <= 0.59) && (modelt >= 0.98) && (modelt <= 0.99))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-mp5-");
}
if((models >= 0.59) && (models <= 0.60) && (modelt >= 0.96) && (modelt <= 0.97))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-mp5-");
}
if((models >= 0.04) && (models <= 0.05) && (modelt >= 0.36) && (modelt <= 0.37))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-p90-");
}
if((models >= 0.19) && (models <= 0.20) && (modelt >= 0.18) && (modelt <= 0.19))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-schmidt-");
}
if((models >= 0.19) && (models <= 0.21) && (modelt >= 0.18) && (modelt <= 0.19))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-schmidt-");
}
if((models >= 0.45) && (models <= 0.46) && (modelt >= 0.16) && (modelt <= 0.17))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-ump45-");
}
if((models >= 0.30) && (models <= 0.31) && (modelt >= 0.04) && (modelt <= 0.05))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-m4a1-");
}
if((models >= 0.37) && (models <= 0.38) && (modelt >= 0.82) && (modelt <= 0.83))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-aug-");
}
if((models >= 0.07) && (models <= 0.08) && (modelt >= 0.23) && (modelt <= 0.24))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-famas-");
}
if((models >= 0.57) && (models <= 0.58) && (modelt >= 0.04) && (modelt <= 0.05))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-scout-");
}
if((models >= 0.98) && (models <= 0.99) && (modelt >= 0.79) && (modelt <= 0.80))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-awp-");
}
if((models >= 0.22) && (models <= 0.23) && (modelt >= 0.32) && (modelt <= 0.33))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-krieg 550-");
}
if((models >= 0.03) && (models <= 0.04) && (modelt >= 0.18) && (modelt <= 0.19))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-para-");
}
if((models >= 0.03) && (models <= 0.04) && (modelt >= 0.18) && (modelt <= 0.19))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-para-");
}
if((models >= 0.61) && (models <= 0.62) && (modelt >= 0.30) && (modelt <= 0.31))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-mac-");
}
if((models >= 0.61) && (models <= 0.62) && (modelt >= 0.32) && (modelt <= 0.33))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-dual elite-");
}
if((models >= 0.25) && (models <= 0.26) && (modelt >= 0.67) && (modelt <= 0.68))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-ak47-");
}
if((models >= 0.65) && (models <= 0.66) && (modelt >= 0.08) && (modelt <= 0.09))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-sig-");
}
if((models >= 0.06) && (models <= 0.07) && (modelt >= 0.11) && (modelt <= 0.12))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-galil-");
}
if((models >= 0.46) && (models <= 0.47) && (modelt >= 0.79) && (modelt <= 0.80))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-d37 sniper-");
}
if((models >= 0.46) && (models <= 0.47) && (modelt >= 0.68) && (modelt <= 0.69))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-d37 sniper-");
}
if((models >= 0.00) && (models <= 0.01) && (modelt >= 0.98) && (modelt <= 0.99))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-bombe-");
}
if((models >= 0.98) && (models <= 0.99) && (modelt >= 0.00) && (modelt <= 0.01))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-knife-");
}
if((models >= 0.02) && (models <= 0.03) && (modelt >= 0.13) && (modelt <= 0.14))
{
	glPrint(point[0],point[1],point[2],0.0f,1.0f,0.0f,"-knife-");
}
glPopAttrib();
point[2] = -99999;
}

Wenn ihr die Sache jetzt so wie es ist copy&pasted, habt ihr ein ESP für Playermodels und Waffen.

Vorausgesetzt wird eine printfunktion.

HF

Credits to me suxx- (habe von ihm die Textausgabe aus seinem Menutut) und ValloV (glaube er wars) für das Modelrectut.
 
Nice Tut :smile: bemerkenswert sind die Model Werte !
 
Ja ich dachte mir, dass ich gleich mal was dazu mache :). Man könnte hier ja noch die CZ-Werte posten, denn diese Zahlen sind alle für 1.6
 
erstmal nice jedoch hat die gl print mit x,y,z einen nachteil man sieht den text nicht durch die wand weil er mit unter den depth test fällt
 
Jo suxx- das ist aber auch behoben :) und zwar hiermit:

Code:
glPushAttrib(GL_DEPTH_BUFFER_BIT);
glDepthFunc(GL_ALWAYS);
zu drawender Text
Code:
glPopAttrib();

Hat den Vorteil, das man die Schrift durch die Wand sieht, aber den Rest nicht.

Esp funzt genauso weit/kurz wie ein normaler xqz Wh. Leider. Ich will ja mal irgendwie auf Client umsteigen. Nur weiß ich nicht ob es sich noch lohnt, oder ob ich bei Cs:s mit d3d hacking anfangen soll. Halt so eine Frage wie lange CS 1.6 noch laufen wird :/.
 
so da man glprint braucht habe ich mir das tut von ogl-tutorials angeschaut
und bekomme folgende fehlermeldung:

Code:
error C2065: 'base' : undeclared identifier

error C2065: 'CL' : undeclared identifier

error C2146: syntax error : missing ')' before identifier 'IP_DEFAULT_PRECIS'

error C2059: syntax error : ')'

 error C2065: 'vp' : undeclared identifier


hier nochmal das tut:

//Für die Das erstellen und ausgeben der Schrift
GLuint base;
HDC hDC;
bool FirstInit = false;
int viewportcount=0;

so nun gehts zur glprintfunktion (schreiben, nicht im wrapper suchen):

void glPrint(float x, float y, float z, float r, float g, float b, const char *fmt, ...)
{
char text[256];
va_list ap;
if (fmt == NULL)
return;
va_start(ap, fmt);
vsprintf(text, fmt, ap);
va_end(ap);

GLfloat curcolor[4], position[4];
(*orig_glPushAttrib)(GL_ALL_ATTRIB_BITS);
(*orig_glGetFloatv)(GL_CURRENT_COLOR, curcolor);
(*orig_glGetFloatv)(GL_CURRENT_RASTER_POSITION, position);

(*orig_glDisable)(GL_TEXTURE_2D);
(*orig_glColor4f)(r,g,b,1.0f); // Setzen der Schriftfarbe
(*orig_glRasterPos3f) (x, y, z); // glRasterPos3f damit wir uns im 3 dimensionalen Raum bewegen
(*orig_glPushAttrib)(GL_LIST_BIT);
(*orig_glListBase)(base - 32);
(*orig_glCallLists)(strlen(text), GL_UNSIGNED_BYTE, text);
(*orig_glPopAttrib)();
(*orig_glEnable)(GL_TEXTURE_2D);

(*orig_glPopAttrib)();
(*orig_glColor4fv)(curcolor);
(*orig_glRasterPos2f)(position[0],position[1]);
}

Genaueres auf game-deception.com unter Tuts. Interessiert aber eh keinen, leider.

So jetzt müssen wir die Schrift auch noch laden:

GLvoid BuildFont(GLvoid)
{
hDC=wglGetCurrentDC();
HFONT font;
HFONT oldfont;
base = (*orig_glGenLists)(96);
font = CreateFont(14,0,0,0,FW_BOLD,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_TT_PRECIS,CL IP_DEFAULT_PRECIS,PROOF_QUALITY,FF_DONTCARE|DEFAULT_PITCH,
"Tahoma");
oldfont = (HFONT)SelectObject(hDC, font);
wglUseFontBitmaps(hDC, 32, 96, base);
SelectObject(hDC, oldfont);
DeleteObject(font);
}

so das wars jetzt schon fast.

glenable:

if(!FirstInit)
{
BuildFont(); // Lädt die Schrift
(*orig_glGetIntegerv)(GL_VIEWPORT,vp); // Speichert Informationen über den Bildschirm in vp ab.
FirstInit=true;
}

So. Jetzt können wir glprint aufrufen.
Zum Beispiel so:
glPrint(point[0],point[1],point[2],1.0f,1.0f,1.0f,"-d37 sniper-");
glPrint(x-Koordinate, y-koordiante, z-koordinate, r, g, b, "Text");

r,g,b drauf achten, das die Farben in Floatwerten ausgegeben werden.
1.0f= 255
0.0f= 0

So viel Spaß beim Copy&pasten :P.
 
Kannste mal die Zeilen posten, in denen diese nicht deklarierten Varialben stehen?
 
Bobby schrieb:
hat sich erledigt geht jetzt :cool:
lern entlich mal c++ dann musst du nicht immer solche fragen stellen ... man muss variablen erst deklarierten bevor du sie verwenden kannst ...
 

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