if (isReady == false)
{
backup(CShell,WeaponMgr);
if (*(BYTE*)(CShell+0x32A445)) // - Update This
{
MakeCall((BYTE*)(CShell+0x32A445), (DWORD)bypass, 5); // - Update This
isReady = true;
//your memory hack here
}
else continue;
}
CShell + 0x005BD6F5
// Binary Scan: E8 ?? ?? ?? ?? 8B F0 83 C4 04 85 F6 0F 84 ?? ?? ?? ?? D9 86 ?? ?? ?? ?? 105BD6F3 . 56 PUSH ESI 105BD6F4 . 50 PUSH EAX 105BD6F5 . E8 B672DBFF CALL CShell_0.103749B0 ; Retorna o endereço da classe CWeaponManager referente a arma que você esta usando. 105BD6FA . 8BF0 MOV ESI,EAX ; Armazena em ESI, EAX, EAX = O Retorno do CALL a cima. 105BD6FC . 83C4 04 ADD ESP,4 105BD6FF . 85F6 TEST ESI,ESI ; Comparação lógica de memória ( Condicional 'if' ). 105BD701 . 0F84 E2010000 JE CShell_0.105BD8E9 ; Pula para o retorno da função caso a condição anterior seja falsa. 105BD707 . D986 7C100000 FLD DWORD PTR DS:[ESI+107C] ; Armazenador float para o valor original do 'Reload' da arma. 105BD70D . 0FB686 DC0B000>MOVZX EAX,BYTE PTR DS:[ESI+BDC] ; Armazena em EAX o valor dessa função ( BYTE ) ( Não sei qual função é essa ). 105BD714 . D95C24 08 FSTP DWORD PTR SS:[ESP+8] ; Registra em ESP + 0x08 o valor do 'Change' da arma. 105BD718 . 894424 04 MOV DWORD PTR SS:[ESP+4],EAX ; Registra em ESP + 0x04 o valor do 'Reload' da arma. 105BD71C . D986 80100000 FLD DWORD PTR DS:[ESI+1080] ; Armazenador float para o valor original do 'Change' da arma. //...