[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 4 из 4«1234
Форум » Игры серии GTA » GTA San Andreas » [SA|C++]Plugin SDK. Обсуждение.
[SA|C++]Plugin SDK. Обсуждение.
DK22Pac
Модераторы
TOP Скриптер
31.10.13 05:47
Offline
В этой теме обсуждаем Plugin SDK.

Список изменений
03.10.2013
Добавлен модуль CTxdStore для работы с txd-архивами;
Добавлен модуль CSprite2d для рисования.

29.09.2013
Добавлен модуль CFileMgr для работы с файлами;
Добавлен этап FUNC_INITIALISE_RW - при инициализации игры;
Добавлен этап FUNC_SHUTDOWN_RW - при закрытии игры.

16.10.2013
Добавлено очень много.
Некоторые модули - под перспективу, некоторые - вполне работающие уже сейчас.
Расскажу об основном:

Добавлены этапы:
FUNC_INIT_GAME - при инициализации игры (первая загрузка)
FUNC_RE_INIT_GAME - повторная загрузка
FUNC_GAME_PROCESS - при процессинге игры (обработка основных игровых событий)
FUNC_GAME_PROCESS_BEFORE_SCRIPTS - перед обработкой скриптов
FUNC_GAME_PROCESS_AFTER_SCRIPTS  - после обработкой скриптов
Добавлены модули:
Модули, связанные с моделью коллизии - CColBoxCColSphereCColLineCColPointCColTriangleCColTrianglePlaneCColData (не завершен), CColModel (не завершен).
Модули базовых игровых субьектов - CPlaceableCEntityCBuildingCDummyCPhysical (в разработке), CPed (совсем не разработан).
Модуль для работы с коронами - CCoronas.
Добавлен модуль common для функций, не принадлежащих ни одному из игровых классов.
Также:
Добавлен шаблонный класс CPool для работы с пулами (ещё в разработке).

Очередное обновление от 31.10.13
Отредактировал DK22Pac - Четверг, 17.10.13, 01:45

wmysterio
Администраторы
Скриптер
07.12.17 17:20
Offline
Есть ли способ получить информацию о размере модели транспорта ( как в опкоде 07E4 )?

DK22Pac
Модераторы
TOP Скриптер
07.12.17 18:13
Offline
CBoundingBox bb = CModelInfo::GetModelInfo(modelId)->m_pColModel->m_boundBox;

Или
#include "extensions\ScriptCommands.h"
/* ... */
using namespace plugin;
/* ... */
CBoundingBox bb;
Command<0x07E4>(modelId, &bb.m_vecSup.x, &bb.m_vecSup.y, &bb.m_vecSup.z, &bb.m_vecInf.x, &bb.m_vecInf.y, &bb.m_vecInf.z);
Отредактировал DK22Pac - Пятница, 08.12.17, 01:49

wmysterio
Администраторы
Скриптер
07.12.17 20:51
Offline
Благодарю. Очень много методов. Некоторые их них имеют такие названия, что после СБ сложно там найти знакомые названия ) Как, например, проверить уничтожена ( wrecked ) ли машина? Я там все методы и поля перерыл, но нашел только "m_fHealth", с помощью которого можно проверить на жизнеспособность авто.

DK22Pac
Модераторы
TOP Скриптер
08.12.17 01:11
Offline
Опкод 0119 (IS_CAR_DEAD) ещё дополнительно сверяет, что авто утонуло в воде.
if (vehicle->m_nStatus == STATUS_WRECKED || vehicle->m_nFlags.bIsDrowning) {

}

Или
if (Command< Commands::IS_CAR_DEAD >(vehicle)) {

}


Добавлено (08.12.17, 01:11)
---------------------------------------------
Обновлен модуль ScriptCommands и добавлен пример с его использованием.
https://github.com/DK22Pac....ommands
Отредактировал DK22Pac - Пятница, 08.12.17, 01:31

wmysterio
Администраторы
Скриптер
08.12.17 18:40
Offline
DK22Pac, спасибо. Работает! Очень крутая штука, этот плагин. Главное, разобраться что где искать.

Хочу сделать зеркало заднего вида, как в NFS-ках. Не знаю как лучше подойти к этому вопросу - прикрепить к транспорту зеркало, читать с него изображение и выводить на дисплей; создать вторую камеру и прикрепить её к транспорту, брать с неё изображение и выводить на дисплей. Или есть способы попроще?

Синтаксис "ScriptCommands" немного неудобный. Было бы круто сделать типа такого:
Commands::IS_CAR_DEAD( vehicle ) // IS_CAR_DEAD является методом
Но обращаться по имени команды намного проще, чем вбивать опкод.

DK22Pac
Модераторы
TOP Скриптер
08.12.17 19:29
Offline
Да, как-то так. Надо создать дополнительную камеру, в каждом кадре настраивать позицию и делать рендер.
Но в SA куча проблем с зеркалами (рендером в дополнительные камеры) - проблема с антиалиасингом, например.

Цитата wmysterio ()
Синтаксис "ScriptCommands" немного неудобный. Было бы круто сделать типа такого:

Для этого надо будет обьявлять каждый такой метод отдельно. Конечно, можно это как-то автоматизировать, но и на автоматизацю надо будет потратить немало времени и усилий.

wmysterio
Администраторы
Скриптер
08.12.17 21:42
Offline
Цитата DK22Pac ()
Конечно, можно это как-то автоматизировать, но и на автоматизацю надо будет потратить немало времени и усилий
Верно. В принципе, когда у нас есть доступ к методам движка, то к опкодам дела будут заходить не так часто, имхо.
Цитата DK22Pac ()
Да, как-то так. Надо создать дополнительную камеру, в каждом кадре настраивать позицию и делать рендер.
Так и сделаю, наверное. Правда в Unity две+ камеры жрут очень много ресурсов. В СА дела наверное будут такими же без дополнительных настроек рендеринга.
Цитата DK22Pac ()
Но в SA куча проблем с зеркалами (рендером в дополнительные камеры) - проблема с антиалиасингом, например.
Да, даже в магазинах зеркала выглядят криво. Хотя изображение и так будет сжиматься в размерах при выводе на дисплей, возможно антиалиасинг будет не нужен.

DK22Pac
Модераторы
TOP Скриптер
04.01.18 01:13
Offline
Добавлена инструкция по установке Code::Blocks.
https://github.com/DK22Pac....eblocks

Форум » Игры серии GTA » GTA San Andreas » [SA|C++]Plugin SDK. Обсуждение.
Страница 4 из 4«1234
Поиск: