C++ Frage zu Warrock

03/25/2012 15:17 gmraider3#1
Hallo Community,
Ich habe jetzt angefangen meinen eigenen Hack zu schreiben und würde gerne wissen wie man den "void" (weiss leider nicht genau wie mann das nennt) von Boneshot eingibt.
Ich versuche es nochmal genauer zu erklären es gibt nähmlich einmal die Addy und einmal das andere stück wie ich das einfach "void" nenne z.b :

#define OFS_NFD 0x00103A4 (Addy)
und dannach...
void NFD ()
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPTR;
if(dwPlayerPtr != 0)
{
*(float*)(dwPlayerPtr+OFS_NFD) = -20000; //fall Höhe
}
}
(das von mir genannte void)

und genau dort wo "void" steht dieses "stück" meine ich.
Und wenn ihr jetzt vielleicht verstanden habt was ich suche würde ich gerne wissen wie man dieses Stück für den Boneshot eingibt.
03/25/2012 15:52 Faultyclones#2
Du meinst die Source :)

if(Boneshot)
{
*(float*)ADR_BONESHOT=XY;}
else{
*(float*)ADR_BONESHOT=XY;
}

XY = Value aber die ist falsch ^^
die richtige musst du ersetzten !!!
Die Sourcce ist ausm Kopf geschrieben aber ungefähr so sollte es klappen -> ist für menu
wenn du ein nomenu machst dann must du es mit "if get a sync key" machen also wo du
es mit einer bestimmeten tastenkombi aufrufst,weil ansonsten bleibt bonehsot permanent..
nächstes mal bitte im Thread nachfragen (Sammelthread)

[Only registered and activated users can see links. Click Here To Register...]
03/25/2012 16:10 _TradEmArk_ ™#3
Quote:
Originally Posted by Donnie Brasco View Post
Du meinst die Source :)

if(Boneshot)
{
*(float*)ADR_BONESHOT=XY;}
else{
*(float*)ADR_BONESHOT=XY;
}

XY = Value aber die ist falsch ^^
die richtige musst du ersetzten !!!
Die Sourcce ist ausm Kopf geschrieben aber ungefähr so sollte es klappen -> ist für menu
wenn du ein nomenu machst dann must du es mit "if get a sync key" machen also wo du
es mit einer bestimmeten tastenkombi aufrufst,weil ansonsten bleibt bonehsot permanent..
nächstes mal bitte im Thread nachfragen (Sammelthread)

[Only registered and activated users can see links. Click Here To Register...]
An der Source ist ziemlich viel Falsch..
1. Hat sich der BoneShot Typ zu double geändert.
2. ON: 1235 | OFF: 1.237e3
3. Mach es doch mit einem Schuss Check..


Gesamte Source für noMenu:
Code:
void BoneShot()//Credits: idk..
{
*(double*)(MEM_BONESHOT) = 1235;
}
else
{
*(double*)(MEM_BONESHOT) = 1.237e3;
}
}
Addy:
Code:
0x8656B0 //Credits: TradEmArk

Achso hier noch der Schuss Check:
Code:
if(OFS_WEAPONSTATE == *(int*)(ADR_WEAPONSHOT))//Credits: CyberRazzer
Addys:
Code:
#define OFS_WEAPONSTATE 0xC4BC //Credits: CyberRazzer
#define ADR_WEAPONSHOT 0xA01854 //Credits: CyberRazzer
03/25/2012 16:25 Faultyclones#4
Quote:
Originally Posted by _TradEmArk_ ™ View Post
An der Source ist ziemlich viel Falsch..
1. Hat sich der BoneShot Typ zu double geändert.
2. ON: 1235 | OFF: 1.237e3
3. Mach es doch mit einem Schuss Check..


Gesamte Source für noMenu:
Code:
void BoneShot()//Credits: idk..
{
*(double*)(MEM_BONESHOT) = 1235;
}
else
{
*(double*)(MEM_BONESHOT) = 1.237e3;
}
}
Addy:
Code:
0x8656B0 //Credits: TradEmArk

Achso hier noch der Schuss Check:
Code:
if(OFS_WEAPONSTATE == *(int*)(ADR_WEAPONSHOT))//Credits: CyberRazzer
Addys:
Code:
#define OFS_WEAPONSTATE 0xC4BC //Credits: CyberRazzer
#define ADR_WEAPONSHOT 0xA01854 //Credits: CyberRazzer

wie schon gesagt es ist aus dem Kopf geschrieben ;)
und man muss auch nicht immer alles angeben,selber machen ist auch eine Option.Ich bin auch noch Anfänger und hatte mit WR Hacks machen nichts zutunn deswegen hab ich einfach mal float gesagt ;))
03/25/2012 18:39 gmraider3#5
Danke für eure tolle hilfe :)
Eine frage habe ich noch (man merkt das ich sonderlich neu bin^^) muss ich den schusscheck direkt unter der source tun oder ist die reihenfolge egal?
03/25/2012 18:43 xxfabbelxx#6
Quote:
Originally Posted by gmraider3 View Post
Danke für eure tolle hilfe :)
Eine frage habe ich noch (man merkt das ich sonderlich neu bin^^) muss ich den schusscheck direkt unter der source tun oder ist die reihenfolge egal?
Der Compiler geht das Programm chronologisch durch.
03/25/2012 18:46 Faultyclones#7
Quote:
Originally Posted by gmraider3 View Post
Danke für eure tolle hilfe :)
Eine frage habe ich noch (man merkt das ich sonderlich neu bin^^) muss ich den schusscheck direkt unter der source tun oder ist die reihenfolge egal?
if(Bondeshot)
{
schusscheck
{*(float*) Adr_Boneshot=XY;}
else
{*(float*) Adr_Boneshot=XY;}}

should look so :

#define OFS_WEAPONSTATE 0xC4BC
#define ADR_WEAPONSHOT 0xA01854
#define MEM_BONESHOT 0x8656B0


void BoneShot()
{
if(OFS_WEAPONSTATE == *(int*)(ADR_WEAPONSHOT))
{
*(double*)(MEM_BONESHOT) = 1235;
}
else
{
*(double*)(MEM_BONESHOT) = 1.237e3;
}
}
03/25/2012 19:01 NikM#8
Quote:
Originally Posted by xxfabbelxx View Post
Der Compiler geht das Programm chronologisch durch.
Er sucht erst nach Präprozessor-Befehlen und geht dann den eigentlichen Code, wie du bereits sagtest, chronologisch durch.
03/25/2012 19:06 gmraider3#9
vielen dank für eure hilfe nur leider klappen die hacks nicht im spiel ^^ alles ist irgendwie verbuggt aber ich habe kein nospread norecoil oder boneshot naja.
03/25/2012 19:10 xxfabbelxx#10
Quote:
Originally Posted by NikM View Post
Er sucht erst nach Präprozessor-Befehlen und geht dann den eigentlichen Code, wie du bereits sagtest, chronologisch durch.
Stimmt, aber in diesem fall ist das ja irrelevant, da er nur nach der einen funktion gefragt hat.
03/25/2012 22:18 Raz9r#11
Quote:
Originally Posted by NikM View Post
Er sucht erst nach Präprozessor-Befehlen und geht dann den eigentlichen Code, wie du bereits sagtest, chronologisch durch.
Übrigens nicht chronologisch, sondern der internen Sortierung nach. D.h. in jeder *.obj Datei wird eine eigene Zeilennummerierung festgelegt, nach der das dann gilt. Das ist notwendig, weil man definierte (#define) Präprozessor-Makros auch wieder entfernen kann (#undef).
Eine andere interne Sortierung gibt es jedoch für die Linker-Anweisungen, insbesondere der Pragma-Direktiven (#pragma).