Перейти к содержанию

Список ID оружия для Watch Dogs 2


partoftheworlD

Рекомендуемые сообщения

Весь список доступного оружия в игре. 

 

Скрытый текст

пистолет #6       - 8000000260378800
пистолет дедсек   - 8000000260378915
электрошокер      - 8000000260378805
гранатомет #1     - 80000002603787FF
винтовка 0дэй     - 80000002603787FD
скорострелка      - 80000002603787FC
винтовка          - 80000002603787F9
мп5               - 80000002603787F8
мак               - 80000002603787E1
мп-9              - 80000002603787DB
дробовик          - 80000002603787D5
сайга             - 80000002603787D4
авто дробовик     - 80000002603787D2
пистолет #2       - 80000002603787C2
пистолет #3       - 80000002603787BF
пистолет #4       - 80000002603787BD
пистолет #5       - 80000002603787BA
гранатомет #2     - 80000002603787B9
гранатомет #3     - 80000002603787B7
пулемет           - 80000002603787AF
m16               - 80000002603787AE
ak                - 80000002603787AB
гоблин            - 80000002603787A9

 

 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, partoftheworlD сказал:

Весь список доступного оружия в игре. 

 

  Скрыть содержимое



пистолет #6       - 60378800
пистолет дедсек   - 60378915
электрошокер      - 60378805
гранатомет #1     - 603787FF
винтовка 0дэй     - 603787FD
скорострелка      - 603787FC
винтовка          - 603787F9
мп5               - 603787F8
мак               - 603787E1
мп-9              - 603787DB
дробовик          - 603787D5
сайга             - 603787D4
авто дробовик     - 603787D2
пистолет #2       - 603787C2
пистолет #3       - 603787BF
пистолет #4       - 603787BD
пистолет #5       - 603787BA
гранатомет #2     - 603787B9
гранатомет #3     - 603787B7
пулемет           - 603787AF
гоблин            - 603787AE
ak                - 603787AB
m16               - 603787A9

 

 

Класс, выписал или выдра из игры базу?

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, elvis66666 сказал:

Класс, выписал или выдра из игры базу?

Выдрал конечно же:D. 3-й час ищу как предметы спавнятся и много чего интересного успел найти. Там постоянное сравнение предметов из базы идет с инвентарем.

Изменено пользователем partoftheworlD
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, partoftheworlD сказал:

Выдрал конечно же:D. 3-й час ищу как предметы спавнятся и много чего интересного успел найти. Там постоянное сравнение предметов из базы идет с инвентарем.

Пили видос))) а то я на работе пропадаю, в руки чешутся ^_^

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, elvis66666 сказал:

Пили видос))) а то я на работе пропадаю, в руки чешутся ^_^

 

Запилю конечно, если получится сделать. Кроме копирования и удаления оружия подобранного, пока ничего не получается.

Ссылка на комментарий
Поделиться на другие сайты

Восстановил функцию которая добавляет оружие при подборе и все тупик, не понимаю как найти функцию которая спавнит его.

Смотрел выше код вызывающий эту функцию, но там в регистрах нет ID оружия вообще. Логика была такая, нахожу участок кода где меняется ID, ставлю бряк на ID нового оружия и выхожу туда где оно создается. Но при установке бряка на доступ появляются все инструкции с которых начал поиск. Уникальный ID для каждого предмета так же не смог найти.

Код под спойлером который на картинке.

 

zkLlc82lEWQ.jpg

 

Скрытый текст


  WeaponsBase = wepBase;
  pWeaponBase_58 = GetPointer(*(wepBase + 0x58));
  sub_55A6D30(WeaponsBase->pQUnk, 1);
  if ( (*(*(*sub_62B9AEC(WeaponsBase) + 16i64) + 160i64) >> 19) & 1 )// Нажали кнопку подбора оружия
  {
    if ( CheckWeapon(WeaponsBase->dwNewWeaponBase) != -1 )
    {
      pInventoryBase_1 = *WeaponsBase->dwInventoryBase;
      // Проверка реальности оружия, если оно существует функция возвращает 1 и оно добавляется

      isRealWeapon = CheckWeapon(WeaponsBase->dwNewWeaponBase);
      (*(&off_178 + pInventoryBase_1))(WeaponsBase->dwInventoryBase, isRealWeapon);
    }
    NewWeaponBase = WeaponsBase->dwNewWeaponBase;
    pInventoryBase = *WeaponsBase->dwInventoryBase;
    pNewWeaponID = GetNewWeaponID(WeaponsBase->dwNewWeaponBase);
    isRealWeapon_1 = CheckWeapon(NewWeaponBase);
    pInventoryBase->SetnewWeaponID(WeaponsBase->dwInventoryBase, *pNewWeaponID, isRealWeapon_1);
  }
  pNewWeaponID_1 = GetNewWeaponID(WeaponsBase->dwNewWeaponBase);
  v10 = sub_5322604(*pNewWeaponID_1);
  if ( v10 )
  {
    if ( v10 != 1 )
      goto LABEL_10;
    v11 = sub_62B8B20(WeaponsBase);
    buffer = 1;
  }
  else
  {
    v11 = sub_62B8B20(WeaponsBase);
    buffer = 2;
  }
  sub_5DED3F2(v11, dword_3B2DACC, buffer);
LABEL_10:
  v13 = sub_62B8B20(WeaponsBase);
  sub_5DED3F2(v13, dword_3B2DAA0, 5u);
  v14 = sub_4B90390(WeaponsBase->dwNewWeaponBase);
  v15 = sub_62B8B20(WeaponsBase);
  sub_5DED3F2(v15, dword_3B2DAA4, v14);
  v16 = sub_62B8B20(WeaponsBase);
  sub_5DED495(v16, dword_3B2DCBC, *&dword_3269250);
  result_1 = sub_62B96B0(pWeaponBase_58) != 0;
  if ( sub_62BC4FD(pWeaponBase_58) )
  {
    result_1 = sub_62B9730(pWeaponBase_58) != 0;
  }
  else if ( sub_62BC4A8(pWeaponBase_58) )
  {
    LODWORD(result_1) = 1;
  }
  v18 = sub_62B8B20(WeaponsBase);
  sub_5DED3F2(v18, dword_3B2DCCC, result_1);
  pQUnk = WeaponsBase->pQUnk;
  WeaponsBase->byteA8 = 0;
  result = sub_610AED5(pQUnk);
  WeaponsBase->byteA9 = result;
  return result;
}

 

 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

12 часа назад, partoftheworlD сказал:

Кроме копирования и удаления оружия подобранного, пока ничего не получается.

 

12 часа назад, elvis66666 сказал:

Пили видос))) а то я на работе пропадаю, в руки чешутся ^_^

Посмотрите моё видео Dark Souls ADD ITEM, если не смотрели. Я его не правильно назвал - это именно добавление НОВОГО предмета в инвентарь. Может чем то поможет. Если нужно будет, что-нибудь уточнить по видео, скрипту, выходу на инструкцию, пишите - отвечу. 

Ссылка на комментарий
Поделиться на другие сайты

17 минуту назад, Garik66 сказал:

Посмотрите моё видео Dark Souls ADD ITEM, если не смотрели.

 

Да я смотрел, отличное видео. Только в Watch dogs инвентарь своеобразный, т.е там только 1 винтовка, шокер и пистолет. под них память выделяется(под 3 слота) и все расчеты ведутся инструкцией mov rcx, [rbx+rcx*8+2D0] где rbx это базовый адрес инвентаря, rcx это индекс слота и смещение указывает на ID текущего оружия. Получалось изменить оружие при подборе другого, сбросить нельзя видимо, а новое оружие создается в памяти, только если менты ездят или бандиты, но заспавнить новое пока не додумался как и не нашел где. К примеру чтобы после прогрузки игры, вокруг игрока лежали кучи оружия.:D

Ссылка на комментарий
Поделиться на другие сайты

21 минуты назад, partoftheworlD сказал:

, т.е там только 1 винтовка, шокер и пистолет.

Тогда может это, как в некоторых играх, т.е. есть флаг, куда нужно записать новое значение (Обычно двоичная система используется). Вот пример. реализации в этом сообщении.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Если вдруг кому-то будет интересно покопаться со спавном объектов, держите может кто-нибудь разберется:

 

Проверка можем ли мы подобрать оружие - "Disrupt_64.dll"+5428FCB

 

mov  [rbx], rax

rbx - указатель на id подбираемого предмета
rax - адрес указателя

 

Первое появление ID - "Disrupt_64.dll"+4A66CF1

 

Ссылка на комментарий
Поделиться на другие сайты

Если кто-нибудь поймет, что я написал, то после выделения стека вот так получаем ID оружия, сложно с температурой правильно все оформлять, главное чтобы сам потом разобрался.:D

 

rcx->rcx=rbp->[rbp+68]=rdi->rdi=rcx->[rcx+30]->rax=pNewWeaponBase->[rcx+38]->eax(rax)=rbx=NewWeaponID

 

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

В общем дошел до участка кода который модельки прорисовывает, видимо через ID оружия в этой игре не выйти на функцию создания оружия,  как вариант можно попробовать выйти на эту функцию, через количество npc и машин, в первой части чтобы город не был пустым, игра балансировала кол-во нпс на локации с гг чтобы их было 25-35.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.