WarRock EU - Code Snippets

09/21/2011 16:01 Raz9r#5236
Quote:
Originally Posted by R3d~F!st View Post
BackToLobby (ASM)

Test ich denke es workt.

Code:
void __stdcall BackLobby( void )
{
__asm
{
popad;
mov eax, dword ptr ds:[ADR_PLAYERPOINTER]
test eax , eax
call ADR_BACKLOBBY
pushad;
}
}

Usage:

if(RF_RETURNLOBBY)
{
BackLobby();
}
popad, pushad sinnlos, da unbenutzt.
test eax, eax sinnlos, da mit dem zurckgegeben wert nichts gemacht wird.
die verwendung von eax dementsprechend auch, da mit eax nichts anderes gemacht wird.

Quote:
Originally Posted by Neqqa™ View Post
was hat das h hinter der 1 zu bedeuten :O
das suffix h steht für hexadezimal, im vc++ compiler ist das prefix 0x üblich.
09/21/2011 18:41 R3d~F!st#5237
Heisst dann eigentlich kann man
das h bei Slot weglassen da man die Value genauso in dezimal angeben kann

Code:
mov dword ptr ds:[eax + OFS_SLOT5],1
@under irre ich mich oder bedeutet "test eax, eax" nicht so etwas ähnliches wie "if(*player != 0)"
?
09/21/2011 19:08 Raz9r#5238
Quote:
Originally Posted by R3d~F!st View Post
Heisst dann eigentlich kann man
das h bei Slot weglassen da man die Value genauso in dezimal angeben kann

Code:
mov dword ptr ds:[eax + OFS_SLOT5],1
ja, man kann das auch weglassen und stattdessen dezimalzahlen verwenden.
als kleine ergänzung: slot = 8 bit, nicht 32 bit. also nur ein byte, kein double word.

Quote:
@under irre ich mich oder bedeutet "test eax, eax" nicht so etwas ähnliches wie "if(*player != 0)"
?
Code:
mov eax, dword ptr ds:[playerpointer]
test eax, eax 
jz jump_to_mark
; ... do the main code now
jump_to_mark:
springt dann hinter den hauptsächlichen code, wenn eax & eax 0 ist.

jz => jump if flag zero
test eax, eax => flag = eax & eax

in c++ wäre das folgender code:

Code:
DWORD eax = *(DWORD *)playerpointer;
if(eax&eax) goto jump_to_mark;
//... do the main code now
jump_to_mark:
09/22/2011 22:36 CyberTürk#5239
[C++] Fehlermeldung nach complimieren (Frage an Coder)

1>LINK : fatal error LNK1257: code generation failed

Was kann ich dagegen tuen?
Ich bekomm immer diese Fehlermeldung wenn ich releasen will.
SDK und alles andere habe ich schon drinne.



C++ 2008 Express Edition

Bei einem anderen User, funktioniert es aber bei mir nicht?
Habe SDK und sonstiges, was kann die Ursache sein.



[Only registered and activated users can see links. Click Here To Register...]
09/23/2011 05:44 theitfan1337#5240
Schau dir doch einfach mal die Compiler-Warnings an, die kannst du alle selber verbessern.
09/23/2011 21:38 Cartel™#5241
Quote:
Originally Posted by Nomad' View Post
Schau dir doch einfach mal die Compiler-Warnings an, die kannst du alle selber verbessern.
Die Warnings muss man nicht beachten. Die gehen nach dem complimieren weg. Den Fehler weiß ich leider auch nicht.


.greez

Cartel
09/23/2011 22:52 theitfan1337#5242
Quote:
Originally Posted by Cartel™ View Post
Die Warnings muss man nicht beachten. Die gehen nach dem complimieren weg. Den Fehler weiß ich leider auch nicht.


.greez

Cartel
Natürlich muss man die beachten. Die sind nicht zum Spaß da, die weisen dich auf Fehler in deinem Quellcode hin.
09/24/2011 12:17 _TradEmArk_:)#5243
Quote:
Originally Posted by CyberTürk View Post
[C++] Fehlermeldung nach complimieren (Frage an Coder)

1>LINK : fatal error LNK1257: code generation failed

Was kann ich dagegen tuen?
Ich bekomm immer diese Fehlermeldung wenn ich releasen will.
SDK und alles andere habe ich schon drinne.



C++ 2008 Express Edition

Bei einem anderen User, funktioniert es aber bei mir nicht?
Habe SDK und sonstiges, was kann die Ursache sein.



[Only registered and activated users can see links. Click Here To Register...]
.. omg
Falls du 2008 Benutzt, benutze 2010!
Falls du 2010 Benutzt benutze 2008!


Have Fun undso..
09/24/2011 15:38 KingClem™#5244
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.
09/24/2011 17:07 .BuRn3R'#5245
hat wer Structs für weapon binder?
09/24/2011 20:57 _TradEmArk_:)#5246
Quote:
Originally Posted by .BuRn3R' View Post
hat wer Structs für weapon binder?
Für Weapon binder brauchst du nur Addys.
09/24/2011 23:29 *Pumio*#5247
Quote:
K_RETURN 0D ENTER key
Das ist Enter
und was ist die WindowsTaste ?
09/25/2011 00:19 NikM#5248
Es gibt VK_LWIN (0x5B) und VK_RWIN (0x5C)
09/25/2011 00:44 Raz9r#5249
Quote:
Originally Posted by KingClem™ View Post
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.
09/25/2011 02:26 Lucky Strike™#5250
Quote:
Originally Posted by _TradEmArk_:) View Post
.. omg
Falls du 2008 Benutzt, benutze 2010!
Falls du 2010 Benutzt benutze 2008!


Have Fun undso..
Denke man kann solche Fehler wesentlich einfacher beheben, als mit einer Neuinstallation. Turn ya brain on, undso...