You are not logged in.
Pages: 1
Немного тряхнул стариной перебрал функцию registerNativeByHash взял за основу CHashtable из базы от listener'a
Получилось несколько сумбурно стихийно, но в целом мне кажется неплохо
struct CHashData
{
int hash;
int addr;
};
struct CHashtable // 0x01865954 in EFLC
{
CHashData *m_pData;
int m_nSize;
int m_nRequestedSize;
int m_nCount;
};
CHashtable Hashtable;
char __stdcall registerNativeByHash(unsigned int a1, int a2)
{
int v2; // edi@1
unsigned int v4; // edx@5
unsigned int v5; // ecx@5
unsigned int v6; // eax@5
v2 = Hashtable.m_nSize;
if ( !Hashtable.m_nSize )
{
sub_4CF3D0();
v2 = Hashtable.m_nSize;
}
if ( Hashtable.m_nCount == v2 )
return 0;
v4 = a1 % v2;
v5 = a1;
v6 = Hashtable.m_pData[a1 % v2].hash;
if ( v6 > 1 )
{
while ( v6 != a1 )
{
v5 = (v5 >> 1) + 1;
v4 = (v5 + v4) % v2;
v6 = Hashtable.m_pData[v4].hash;
if ( v6 <= 1 )
goto LABEL_8;
}
return 0;
}
LABEL_8:
Hashtable.m_pData[v4].hash = a1;
Hashtable.m_pData[v4].addr = a2;
++Hashtable.m_nCount;
return 1;
}
И так - встречаем Горилла патч 2
void patchRFG2() {
dwGameVersion = RfgPatch2; // RedFaction:Guerilla - update 2
// disable savegame check
*(WORD*)(0x522538+dwLoadOffset) = 0x9090;
*(WORD*)(0x52253E+dwLoadOffset) = 0x9090;
*(WORD*)(0x522544+dwLoadOffset) = 0x9090;
trace ("Patching OK (RF:G - update 2)\n");
}
поддержка нового патча http://public.sannybuilder.com/GTA4/xli … 0.99b1.rar
Как не ожиданно, и оперативно 
Немного подкрутил под патч 1.0.3.1 от 1с
listener, приложил в архиве функцию patch1031 
Да, и если интересно в процедуре патча добавлена функция Offline
Pages: 1