Voila g vu ke pour liquid fx yavé pas de tuto pour les steps alors je vais vous expliker c tout con mais ca marche
Go dans Main.cpp
Cherchez :
Code:
//void PreS_DynamicSound(const DWORD a,const DWORD entindex,const DWORD c,const char*const sample,const float*const origin,DWORD f,const DWORD g,const DWORD h);
Passer le en mode normal ce qui donne :
Code:
void PreS_DynamicSound(const DWORD a,const DWORD entindex,const DWORD c,const char*const sample,const float*const origin,DWORD f,const DWORD g,const DWORD h);
Ensuite cherchez :
Code:
/*__declspec(naked) void JumpGate_DynamicSound()
{
__asm{
// 8 args on stack
call PreS_DynamicSound;
// exec caller instructions & jump back
sub esp,0x48;
mov eax, soundPatch.patchloc;
add eax, soundPatch.patchsize;
push eax;
mov eax,sound_reloc_addr1;
mov eax,[eax];
ret;
}
}*/
Et mettez le en mode normal ce qui donne :
Code:
__declspec(naked) void JumpGate_DynamicSound()
{
__asm{
// 8 args on stack
call PreS_DynamicSound;
// exec caller instructions & jump back
sub esp,0x48;
mov eax, soundPatch.patchloc;
add eax, soundPatch.patchsize;
push eax;
mov eax,sound_reloc_addr1;
mov eax,[eax];
ret;
}
}
Ensuite cherchez :
Code:
/*bool detour_S_DynamicSound()
{
static bool applied = false;
if( applied ) { return true; }
applied = true;
//assert(stackret);
BYTE* offs = (BYTE*)0x01D95990;
BYTE* sig = (BYTE*)"\x83\xEC\x48\xA1\x00\x00\x00\x00";
char* mask = "xxxx????";
if(!soundPatch.find_location(offs,sig,mask))
{
OGCmessage("&rSound patch pas mis : FUCK!. 0x%x", stackret);
return false;
}
// prepare patch:
soundPatch.patchdata[0]=0x68;
*(DWORD*)(soundPatch.patchdata+1) = (DWORD)JumpGate_DynamicSound;
soundPatch.patchdata[5]=0xC3;
soundPatch.patchdata[6]=0x90;
soundPatch.patchdata[7]=0x90;
// relocated addr needed in detour
sound_reloc_addr1 = *(DWORD*)(soundPatch.backup+4);
soundPatch.apply();
OGCmessage( "&gSound patch aplliquer avec succes\n");
return true;
}*/
Et mettez le en mode normal ce qui donne :
Code:
bool detour_S_DynamicSound()
{
static bool applied = false;
if( applied ) { return true; }
applied = true;
//assert(stackret);
BYTE* offs = (BYTE*)0x01D95990;
BYTE* sig = (BYTE*)"\x83\xEC\x48\xA1\x00\x00\x00\x00";
char* mask = "xxxx????";
if(!soundPatch.find_location(offs,sig,mask))
{
OGCmessage("&rSound patch pas mis : FUCK!. 0x%x", stackret);
return false;
}
// prepare patch:
soundPatch.patchdata[0]=0x68;
*(DWORD*)(soundPatch.patchdata+1) = (DWORD)JumpGate_DynamicSound;
soundPatch.patchdata[5]=0xC3;
soundPatch.patchdata[6]=0x90;
soundPatch.patchdata[7]=0x90;
// relocated addr needed in detour
sound_reloc_addr1 = *(DWORD*)(soundPatch.backup+4);
soundPatch.apply();
OGCmessage( "&gSound patch aplliquer avec succes\n");
return true;
}
Go dans client.cpp
Cherchez :
Code:
// ** DISABLED WHILE WE AWAIT FIX **
// bool detour_S_DynamicSound();
// detour_S_DynamicSound();
Et remplacez le par :
Code:
// ** DISABLED WHILE WE AWAIT FIX **
bool detour_S_DynamicSound();
detour_S_DynamicSound();
En dessous de
Code:
detour_S_DynamicSound();
Ajoutez :
Code:
soundPatch.apply();
Voila vous avez les steps maintenant
PS : Dans main.cpp vous avez :
Code:
BYTE* offs = (BYTE*)0x01D95990;
C'est ce code : 0x01D95990 qu'il faut changer quand il y a une mise a jour des hexa vous pourrez le trouver ici
PS2 : Pour l'instant c le bon code mais si ca marche plus a un moment c ke ce ne sera plus le bon
copyright (c) M!CK3Y