Quote:
Originally Posted by KingClem™
Code should be clear.
I think much dont know how to use
But for that Guys Example Code included.
Code:
void LogMEMv12(DWORD ADR,int TARGET,int DEFAULT,int VALUE,char *TYPE)
{int logged;if(logged = 0){TARGET = *(int*)(ADR);logged = 1;}
if((logged==1)&DEFAULT ==1){*(int*)(ADR) = TARGET; }
if((TYPE== "int")&DEFAULT==0){*(int*)(ADR) = VALUE;}
if((TYPE=="float")&DEFAULT==0){*(float*)(ADR) = VALUE;}
if((TYPE=="double")&DEFAULT==0){*(double*)(ADR) = VALUE;}
if((TYPE=="long")&DEFAULT==0){*(long*)(ADR) = VALUE;}
if((TYPE=="dword")&DEFAULT==0){*(DWORD*)(ADR) = VALUE;}}
Types:
Code:
int
float
double
long
dword
Example is Assault Clip:
Code:
int ClipA;,
if(dwPlayerPointer!=0)
{
if(pHacks->Px.ExtraAmmo1)
{
LogMEMv12(ADR_AssaultClip,ClipA,0,1,"int"); //On value for Assault Clip is 1
}else{
LogMEMv12(ADR_AssaultClip,ClipA,1,0,"int"); /*Now we set it back to default,maybe he got before hack already a extra clip?*/
}
}
Please give Credits by using it.
Und Trademark => Lesen fördert er benutzt 08er version.
|
bullshit...
Code:
template<class _Ty>
inline void __stdcall TMemSet(_Ty *Addr, _Ty Val)
{
*Addr = Val;
}
usage:
Code:
TMemSet<float>((float *)ADR_WHATEVER, 1.0f);
TMemSet<bool>((bool *)ADR_WHATEVER2, true);
TMemSet<DWORD>((DWORD *)ADR_WHATEVER3, 0x123);
//...
edit:
was mir jetzt erst in deiner source aufgefallen ist:
TYPE== "int"
"int" ist ein c string, d.h. nullterminated. Definiert ist er als char *, also als ein far pointer auf element 0 des arrays.
TYPE ist auch ein pointer auf einen string, da aber außerhalb der klasse definiert, immer verschieden von den lokalen variablen.
entweder du verwendest
if(strcmp(TYPE, "int") == 0)
oder aber das folgende:
char *s1, *s2; // die beiden strings, die du vergleichen willst
for(; *s1 != 0, *s2 != 0; s1++, s2++) // durch beide arrays iterieren. nullterminated.
if(*s1 != *s2) return false; // aus einer funktion false returnen (type: bool / nur ein mögliches beispiel=
return true; // kein char in dem array ist anders.