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

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


Сообщения - kenking

Страницы: 1 ... 9 10 [11] 12 13 ... 16
151
Проблема решилась сменой стиля
Код: C++
  1. CFont::SetFontStyle(0);
или
Код: C++
  1. CFont::SetFontStyle(2);

152
Разобрал для GTA 3 CFont https://github.com/DK22Pac/plugin-sdk/commit/f957a26bb64cd1258c2c4837ab9b42b6d9b70e84

Где-то есть ошибка, поскольку цвет тексту устанавливал белый (пробовал ставить и другие цвета), но выводится всегда так (чёрным)


Код: C++
  1. #include "plugin_III.h"
  2. #include "game_III\common.h"
  3. #include "game_III\CFont.h"
  4.  
  5. using namespace plugin;
  6.  
  7. class MyPlugin {
  8. public:
  9.     MyPlugin() {
  10.         Events::drawingEvent += [] {
  11.             CVehicle *vehicle = FindPlayerVehicle();
  12.             if (vehicle) {
  13.                 CFont::SetScale(0.5f, 1.0f);
  14.                 CFont::SetColor(CRGBA(255, 255, 255, 255));
  15.                 CFont::SetJustifyOn();
  16.                 CFont::SetFontStyle(1);
  17.                 CFont::SetPropOn();
  18.                 CFont::SetWrapx(600.0f);
  19.                
  20.                 wchar_t text[32];
  21.                 swprintf(text, L"Current Gear %d", vehicle->m_nCurrentGear);
  22.                 CFont::PrintString(10.0f, 10.0f, text);
  23.                 swprintf(text, L"Gas Pedal %.1f", vehicle->m_fGasPedal);
  24.                 CFont::PrintString(10.0f, 30.0f, text);
  25.                 swprintf(text, L"Break Pedal %.1f", vehicle->m_fBreakPedal);
  26.                 CFont::PrintString(10.0f, 50.0f, text);
  27.             }
  28.         };
  29.     }
  30. } myPlugin;

Просьба подсказать в чём ошибка.

153
Для GTA 3 .idb тоже не мешало бы обновить.
функции - ~90%
переменные  - частично
структуры - нет
перечисления - нет

ошибки - возможны (если будут, то в малом количестве)

база для gta III версии 1.0
https://yadi.sk/d/goGjQOvn3Faqu5

libGTA3
https://yadi.sk/d/VCly-DLO3FarCe

154
Спасибо за пояснения.

155
...Первый - если память под обьект структуры (класса) выделяется динамически. В таком случае, в коде мы точно увидим размер выделяемой памяти.
...
(см. любой вызов CAutomobile::CAutomobile в базе):...
С этим разобрался. Почему-то в псевдокоде не всегда показывается размер выделяемой памяти, показывается вот так:
Код: C++
  1. CVehicle::operator new()

Надо смотреть в асм (пример для VC)
push    5DCh            ; int
call    _ZN8CVehiclenwEj ; CVehicle::operator new(uint)
test    eax, eax
pop     ecx
jz      short loc_42773F
mov     ecx, eax
push    1
push    [esp+1F4h+var_1E0]
call    _ZN11CAutomobileC2Eih ; CAutomobile::CAutomobile(int,uchar)

Второй вариант - это когда память под обьект выделяется на стеке или в глобальном пространстве.
Тут я бы тоже выделил 3 случая:
1) Обьект выделен на стеке
2) Обьект находится в глобальном пространстве (глобальный обьект или статическая переменная класса)
3) Массив обьектов в глобальном пространстве (глобальный обьект или статическая переменная класса).
...По всему этому постараюсь завтра расписать.
Хотелось бы почитать и про второй вариант.  ;)

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

157
IDA и hex-rays не выдадут полностью готовые структуры, это будет что-то вроде макета, который тебе нужно продолжать разбирать.
А размер структур всегда выдают правильно?

158
Флуд / Re: Флудильная
« : Январь 04, 2017, 01:43:21 pm »
Цитировать
После восстановления данных со старого харда столкнулся с проблемой, когда в одной папке находилось около 300к файлов разных форматов, и таких папок было несколько... Вручную отсортировав по форматам(расширениям) около 200к файлов за 10 часов...
Зачем вручную? В контекстном меню любой папки есть же Группировка->Тип
и все файлы автоматически сгруппируются по расширениям. Или я не так понял твою проблему (пусть уже и решённую)?

159
Поздравляю пользователей и гостей форума с наступающим 2017-м Новым Годом! Всех благ!

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

161
Для VC можно эти строчки записать "более правильно"?

Код: C++
  1. char *name = GetFrameNodeName(frame);
  2. wchar_t text[32];
  3. swprintf(text, L"%hs", name);
  4. CFont::PrintString(offset->x, offset->y, text);

162
Так должно работать
Ага так работает, спасибо.  ;)

163
Там надо unsigned short поменять на wchar_t.
Обнови проект.
Пришлось в настройках прописать _CRT_NON_CONFORMING_SWPRINTFS, иначе мой тестовый плагин не собирался.

А вот с этими строчками игра зависает.  >:(
Код: C++
  1. CFont::SetColor(CRGBA(255, 255, 255, 255));
  2. CFont::SetDropColor(CRGBA(0, 0, 0, 255));

164
В VC и SA вот эти функции несколько различаются:
Код: C++
  1. static void PrintString(float x, float y, char *text);
  2. static void PrintString(float x, float y, unsigned short* text);

Как для VC будет вывод текста? (вот эти строчки для SA):
Код: C++
  1. char text[16];
  2. sprintf(text, "gear %d", vehicle->m_nCurrentGear);
  3. CFont::PrintString(5.0f, 5.0f, text);

165
Идеи / Re: Качающиеся предметы в автомобилях
« : Ноябрь 10, 2016, 10:05:39 am »
Да и это будет фейковое покачивание, а не просчитываемое движком
Сильно сомневаюсь, что в том моде покачивание именно "просчитываемое движком".

Страницы: 1 ... 9 10 [11] 12 13 ... 16