Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - GeniusZ

Страницы: 1 [2]
16
05E1: call 0x5CA3C0 num_params 0 pop 0
Функция вызова перезарядки. Если я правильно понимаю, то тип void - это пустота. Т.е. у неё не должно быть параметров.

Не совсем. Если посмотреть в базе, то можно увидеть, что эта процедура принимает неявный параметр через регистр ECX. В данной процедуре ECX содержит указатель на структуру класса CWeapon, и это значит, что мы имеем дело с методом. Раз мы имеем дело с методом, то его нужно вызывать опкодом 05E3, если метод не возвращает значение, иначе 05E4, если возвращает:
05E3: call_method 0x5CA3C0 struct $WeaponStruct num_params 0 pop 0

17
Общие вопросы / Рендеринг в камеру
« : Февраль 13, 2017, 03:49:57 pm »
Помогите решить этот баг. Если камера перевернута по оси Y на 180 градусов и смотрит на запад/восток то перестают рендерится ближайшие объекты. Чего только перепробовал - ничего не помогает.




18
Справочная информация / Re: Нижний цвет неба
« : Февраль 12, 2017, 06:47:56 am »
Круто! Но я не очень понимаю, как это работает: почему так много адресов для патча?

Суть в том, что я заменяю аргументы функции на перехваченный цвет неба.

Но все-таки решил, что в интерьерах лучше не активировать патч:
Код: C++
  1. #include "plugin_vc.h"
  2. #include "game_vc\CSprite2d.h"
  3.  
  4. using namespace plugin;
  5.  
  6. class SkyPatch {
  7. public:
  8.          static CRGBA ColorHooked;
  9.  
  10.          static void CSpriteDrawAnyRect(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, CRGBA* color1, CRGBA* color2, CRGBA* color3, CRGBA* color4)
  11.         {      
  12.                 ColorHooked = *color4;
  13.  
  14.                 CSprite2d Temp;
  15.                 Temp.DrawAnyRect(x1, y1, x2, y2, x3, y3, x4, y4, *color1, *color2, *color3, *color4);
  16.         }
  17.  
  18.          static void CSpriteDrawAnyRectHooked(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, CRGBA* color1, CRGBA* color2, CRGBA* color3, CRGBA* color4)
  19.          {
  20.                  CSprite2d Temp;
  21.  
  22.                  if (*(int*)0x978810) //nCurrentInterior
  23.                          Temp.DrawAnyRect(x1, y1, x2, y2, x3, y3, x4, y4, *color1, *color2, *color3, *color4);
  24.                  else
  25.                          Temp.DrawAnyRect(x1, y1, x2, y2, x3, y3, x4, y4, ColorHooked, ColorHooked, ColorHooked, ColorHooked);
  26.          }
  27.  
  28.         SkyPatch() {
  29.                 patch::RedirectCall(0x53F949, CSpriteDrawAnyRect);
  30.                 patch::RedirectCall(0x53F437, CSpriteDrawAnyRectHooked);
  31.                 patch::RedirectCall(0x53F590, CSpriteDrawAnyRectHooked);
  32.                 patch::RedirectCall(0x53F63B, CSpriteDrawAnyRectHooked);
  33.     }
  34. } skyPatch;
  35.  
  36. CRGBA SkyPatch::ColorHooked = { 0, 0, 0, 0 };

19
Справочная информация / Re: Нижний цвет неба
« : Февраль 11, 2017, 07:53:29 am »
Написал такой патч:
Код: C++
  1. #include "plugin_vc.h"
  2. #include "game_vc\CSprite2d.h"
  3.  
  4. using namespace plugin;
  5.  
  6. class SkyPatch {
  7. public:
  8.          static CRGBA ColorHooked;
  9.  
  10.          static void CSpriteDrawAnyRect(float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, CRGBA* color1, CRGBA* color2, CRGBA* color3, CRGBA* color4)
  11.         {      
  12.                 ColorHooked = *color4;
  13.  
  14.                 CSprite2d Temp;
  15.                 Temp.DrawAnyRect(x1, y1, x2, y2, x3, y3, x4, y4, *color1, *color2, *color3, *color4);
  16.         }
  17.  
  18.         SkyPatch() {
  19.                 patch::RedirectCall(0x53F949, CSpriteDrawAnyRect);
  20.  
  21.                 patch::SetPointer(0x53F3B8, &ColorHooked);
  22.                 patch::SetPointer(0x53F3BD, &ColorHooked);
  23.                 patch::SetPointer(0x53F3CA, &ColorHooked);
  24.                 patch::SetPointer(0x53F3CF, &ColorHooked);
  25.  
  26.                 patch::SetPointer(0x53F452, &ColorHooked);
  27.                 patch::SetPointer(0x53F45D, &ColorHooked);
  28.                 patch::SetPointer(0x53F462, &ColorHooked);
  29.                 patch::SetPointer(0x53F46D, &ColorHooked);
  30.  
  31.                 patch::SetPointer(0x53F5EC, &ColorHooked);
  32.                 patch::SetPointer(0x53F5F1, &ColorHooked);
  33.                 patch::SetPointer(0x53F5F6, &ColorHooked);
  34.                 patch::SetPointer(0x53F5FB, &ColorHooked);
  35.     }
  36. } skyPatch;
  37.  
  38. CRGBA SkyPatch::ColorHooked = { 0, 0, 0, 0 };
Все бы ничего, если не появилось теперь это:

20
Скриптинг / Re: Адрес актёра в дескриптор
« : Февраль 04, 2017, 04:54:42 pm »
05E9: 1@ = ped_struct 0@ handle

21
Как я понимаю, некоторые структуры в gta III идентичны структурам из gta VC, некоторые будут отличаться. Верно?

Да, верно.

22
Справочная информация / Re: Нижний цвет неба
« : Январь 27, 2017, 02:56:02 pm »
Вот здесь надо смотреть:  CClouds::RenderBackground(short, short, short, short, short, short, short)

23
Справочная информация / Re: Нижний цвет неба
« : Январь 15, 2017, 01:31:05 pm »
Кстати, под углом камеры это очень заметно.

24
Общие вопросы / Re: Вопросы по игровой памяти
« : Декабрь 23, 2016, 07:46:55 pm »
Как узнать что пед проигрывает какую-либо анимацию?

25
Программирование / Re: Vice City Plugin SDK
« : Ноябрь 27, 2016, 10:08:56 am »
Надо сначала собрать сам плагин plugin_vc, потом найдёшь его в \plugin-sdk\output\lib\plugin_vc\Release\plugin_vc.lib
Ясно, спасибо

26
Программирование / Re: Vice City Plugin SDK
« : Ноябрь 27, 2016, 08:58:33 am »
Я не могу скомпилировать проект: компоновщик не находит  .lib файлы. В SDK их тоже нет.

27
Xanser, каким методом ты менял zoom?

28
Моды / Re: Сцена Главного Меню
« : Ноябрь 15, 2016, 08:18:20 pm »
А возможно ли реализовать рендер с нескольких камер на один экран? (теоритически)

29
Моды / Re: Сцена Главного Меню
« : Ноябрь 12, 2016, 11:00:01 am »
Радар и худ можно было убрать в menu.scm, а не в исходнике плагина

Страницы: 1 [2]