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

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


Сообщения - DK

Страницы: [1] 2 3 ... 15
1
Цитировать
сразу выхватывает нужного

2
Программирование / Re: Расширение классов
« : Январь 12, 2018, 02:18:18 pm »
xanser, сейчас в sdk работают расширения для CPed, CVehicle и CObject.
Пример для обьектов (см. спойлер)

3
Программирование / Re: Расширение классов
« : Январь 12, 2018, 11:06:19 am »
Я тебя не совсем понимаю. Если тебе надо это для GTA - почему не использовать готовое решение?

4
Программирование / Re: Расширение классов
« : Январь 09, 2018, 10:41:26 pm »
xanser, В C++ нет расширения классов в "рантайме", по крайней мере, встроенного в язык (стандарт).
То, что есть в plugin-sdk - это вещь конкретно заточенная под пулы в GTA.
Тут реализация зависит от того, где это надо применить. Если покажешь конкретно - возможно, смогу помочь.

PS vector2d[100] - это не пул, а массив. См. Объектный пул

6
Программирование / Re: Vice City Plugin SDK
« : Декабрь 08, 2017, 01:10:40 am »
Обновлен модуль ScriptCommands и добавлен пример с его использованием.
https://github.com/DK22Pac/plugin-sdk/tree/master/examples/ScriptCommands

7
Наверное да. Но в SA такая функция по-другому выглядит.

8
Программирование / Re: Vice City Plugin SDK
« : Ноябрь 27, 2017, 07:19:07 pm »
А в официальном репозитории не идёт.

9
Программирование / Re: Vice City Plugin SDK
« : Ноябрь 26, 2017, 04:01:04 pm »
Нет.

10
Код: C++
  1. #include "plugin.h"
  2. #include "extensions\ScriptCommands.h"
  3. #include "common.h"
  4. #include "CMessages.h"
  5.  
  6. using namespace plugin;
  7. using namespace plugin::test;
  8.  
  9. class Gta3CarAngle {
  10. public:
  11.     Gta3CarAngle() {
  12.         Events::gameProcessEvent += [] {
  13.             CVehicle *vehicle = FindPlayerVehicle();
  14.  
  15.             if (!vehicle)
  16.                 return;
  17.  
  18.             float angle = atan2(-vehicle->m_matrix.up.x, vehicle->m_matrix.up.y) * 57.295776f;
  19.             if (angle < 0.0f)
  20.                 angle += 360.0f;
  21.             if (angle > 360.0f)
  22.                 angle -= 360.0f;
  23.  
  24.             float angleCommand = 0.0f;
  25.             ScriptCommand<GET_CAR_HEADING>(CPools::GetVehicleRef(vehicle), &angleCommand);
  26.  
  27.             static char message[256];
  28.             snprintf(message, 256, "Angle: %g Angle (command): %g", angle, angleCommand);
  29.  
  30.             CMessages::AddMessageJumpQ(message, 200, false);
  31.         };
  32.     }
  33. } gta3CarAngle;

11
В GTA3 неправильно обьявлен метод
Код: C++
  1. CVehicle* CPools::GetVehicleRef(CVehicle* vehicle)
Он должен возвращать int (хендл).

Функция ScriptCommand всегда возвращает bool (для опкодов-проверок).
Надо вызывать так
Код: C++
  1. float angleZ = 0.0f;
  2. ScriptCommand<GET_CAR_HEADING>(CPools::GetVehicleRef(vehicle), &angleZ);

12
Программирование / Re: Vice City Plugin SDK
« : Ноябрь 16, 2017, 11:48:26 am »
И каким образом это относится к plugin-sdk?

13
Программирование / Re: Vice City Plugin SDK
« : Ноябрь 14, 2017, 03:10:38 pm »
Проделана работа по исправлению сборки plugin-sdk и проектов на Windows XP.

Будущие планы:


14
Компилятор не может определить, какую функцию вызывать.
Надо вручную указать, что 0, который ты передаешь - это unsigned char.
Код: C++
  1. static_cast<unsigned char>(0)

15
Вроде это самое простое, у меня так, на plugin-sdk по аналогии.
Нет. Это виртуальная функция. Вызывать надо из vtable.

kenking, в SDK ведь есть метод SetModelIndex, что тогда не так?

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