xD I fixed it :) Thanks Guys :D
Request No134Idle ^^
Request No134Idle ^^
if (idle134)
{
DWORD dwPlayerPtr = *(DWORD*)ADR_PLAYERPOINTER;
if(dwPlayerPtr!= 0)
{
*(float*)(dwPlayerPtr+ OFS_NOM134IDLE) = 1;
}
}
static bool InviciblePatch;
if (DH_Invisible){
if (!InvisiblePatch){
*(long*)(Server+OFS_INVISIBLE) -= 2;
InvisiblePatch = true;
}}else{
if (InvisiblePatch)
{*(long*)(Server+OFS_INVISIBLE) += 2;
InvisiblePatch = false;}}
if(DH_WTW){
*(float*)(MEM_WTW) = -999;}
else{
*(float*)(MEM_WTW) = 6;}
if(WUW)
{
*(float*)(ADR_WaterHeight) = 0;
}
Man kann die Adresse mit der Virtual Table der Klasse finden... Die Source dafür wurde vor Jahren schon veröffentlicht.Quote:
N'Abend :)
kann mir hier vllt jmd helfen die D3D Detour für WR zu schreiben, ich werd daraus irgendwie nicht schlau...
Soweit ich das jetzt verstanden habe muss ich die BeginScene von WR (die Adresse) finden und diese erstmal per ASM zu einer eigenen umleiten in der ich das Menu zeichnen lasse und schließlich wieder eine Zeile weiter in der BeginScene ansetzen.. soweit die Theorie, aber nun finde ich in WR immer nur die EndScene... kann mir da vllt jemand helfen wie ich die BeginScene-addy finde, irgendein Tipp geben wie ich darauf komme oder sonst iwas ?
Ich würd mich über Hilfe sehr freuen, und ich erwarte ja auch kein fertigen Source, den will ich selbst schreiben aber ich komm einfach nicht weiter...
Sawe :)
^This : Pub. Detour !Quote:
Code:DWORD DetourCreate( DWORD dwOldFunc,DWORD dwNewFunc ) { #define JMP_SIZE 5 DWORD DetourVA, dwProtect, i; if ( dwOldFunc && dwNewFunc && JMP_SIZE >= JMP_SIZE ) { DetourVA = (DWORD) VirtualAlloc( NULL, JMP_SIZE + JMP_SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE ); if ( DetourVA && VirtualProtect( (VOID*)dwOldFunc, JMP_SIZE, PAGE_EXECUTE_READWRITE, &dwProtect ) ) { for ( i=0; i < JMP_SIZE; i++ ) { *(BYTE*)( DetourVA + i ) = *(BYTE*)( dwOldFunc + i ); } *(BYTE*)( DetourVA + JMP_SIZE + 0 ) = 0xE9; *(DWORD*)( DetourVA + JMP_SIZE + 1 ) = ( dwOldFunc - DetourVA - JMP_SIZE ); *(BYTE*)( dwOldFunc + 0 ) = 0xE9; *(DWORD*)( dwOldFunc + 1 ) = ( dwNewFunc - dwOldFunc - JMP_SIZE ); VirtualProtect( (VOID*)dwOldFunc, JMP_SIZE, dwProtect, &dwProtect ); VirtualProtect( (VOID*)DetourVA, JMP_SIZE + JMP_SIZE,PAGE_EXECUTE_READ, &dwProtect ); return DetourVA; } } return (0); }Code:DWORD DetourCreate( DWORD dwOldFunc,DWORD dwNewFunc ) { #define JMP_SIZE 7 DWORD DetourVA, dwProtect, i; if ( dwOldFunc && dwNewFunc && JMP_SIZE >= JMP_SIZE ) { DetourVA = (DWORD) VirtualAlloc( NULL, JMP_SIZE + JMP_SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE ); if ( DetourVA && VirtualProtect( (VOID*)dwOldFunc, JMP_SIZE, PAGE_EXECUTE_READWRITE, &dwProtect ) ) { for ( i=0; i < JMP_SIZE; i++ ) { *(BYTE*)( DetourVA + i ) = *(BYTE*)( dwOldFunc + i ); } *(BYTE*)( DetourVA + JMP_SIZE + 0 ) = 0xB8; *(DWORD*)( DetourVA + JMP_SIZE + 1 ) = ( dwOldFunc + JMP_SIZE ); *(WORD*)( DetourVA + JMP_SIZE + 5 ) = 0xE0FF; *(BYTE*)( dwOldFunc + 0 ) = 0xB8; *(DWORD*)( dwOldFunc + 1 ) = ( dwNewFunc ); *(WORD*)( dwOldFunc + 5 ) = 0xE0FF; VirtualProtect( (VOID*)dwOldFunc, JMP_SIZE, dwProtect, &dwProtect ); VirtualProtect( (VOID*)DetourVA, JMP_SIZE + JMP_SIZE,PAGE_EXECUTE_READ, &dwProtect ); return DetourVA; } } return (0); }
NöQuote:
Gibs zur Zeit nicht,ist gepacht!
if ( cWeaponHacks.CH_NoDelay )
{
cTools->WriteMemory((LPVOID)(ADR_ASM_NODELAY),(PBYTE)"\x90\x90",2);
}
if ( cWeaponHacks.CH_NoDelay )
{
*(FLOAT*)(ADR_MEM_NODELAY) = 999.0F;
}
if ( cWeaponHacks.CH_NoDelay )
{
*(DWORD*)(dwPlayerPtr+ADR_OFS_NODELAY) = -1;
}