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