#1 Re: Справочная информация » Ресурсы и структуры GTA IV » 23-07-2011 20:53

Немного тряхнул стариной перебрал функцию 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 Re: Серия GTA » XLive Wrapper / XLiveLess » 15-06-2011 21:36

И так - встречаем Горилла патч 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");
}

#3 Re: Серия GTA » XLive Wrapper / XLiveLess » 13-11-2009 03:04

listener wrote:

поддержка нового патча http://public.sannybuilder.com/GTA4/xli … 0.99b1.rar

Как не ожиданно, и оперативно good

#4 Re: Серия GTA » XLive Wrapper / XLiveLess » 02-09-2009 21:08

Немного подкрутил под патч 1.0.3.1 от 1с
listener, приложил в архиве функцию patch1031 wink
Да, и если интересно в процедуре патча добавлена функция Offline

Board footer

Powered by FluxBB