GTA Vice City > Скриптинг
Прицепить звук к объекту.
aleks926820:
Всем здрасьте.
Не так давно пустил по карте криминалки (а точнее по железке) тепловоз.
Вроде всё хорошо. Катается, радует глаз. Даже 2dfx освещение работает.
https://pp.userapi.com/c841333/v841333125/7a77f/9x4ow9Un9S8.jpg
https://pp.userapi.com/c830608/v830608411/98519/e6mW0LgGAb4.jpg
Но вот беда - не работает прикрепленный дым через 2dfx ( хотя на самом объекте он работает )
https://pp.userapi.com/c849328/v849328404/26c6e/bhfB_2qq44M.jpg
Так вот у меня 2 вопроса : как прицепить дым к движущемуся локомотиву и как прицепить к нему звук ?
Shagg_E:
Если в IDE ты прикрепил 2dfx дым, и он работает лишь тогда, когда ты ставишь объект в IPL, а через SCM - нет, то пока это никак не реализовать. У меня это записано в списке идей для новых опкодов, но когда это "случится" - пока сказать не могу(времени катастрофически не хватает).
Если ты кодер, то вот мои мысли, где копать:
1)2dfx-партиклы, как и зацикленные sfx-звуки(опкоды 018D и 018E) должны иметь свои массивы, по типу горящего огня(есть кстати подозрение, что для дыма есть отдельный массив, как у огня).
2)В этих массивах должны быть смещения с координатами партикла или звука.
3)Можно динамически менять эти координаты.
4)???
5)PROFIT!
Примерно на этом принципе я и планирую запилить аттач звуков и партиклов к entity или их частям, но я предлагаю не ждать меня, а попробовать своими силами, если спешишь.
kenking:
По дыму - посмотри этот скрипт https://gta.com.ua/file_details.phtml?id=2821, может пригодится.
aleks926820:
Таки удалось прикрепить дымок к тепловозу.
https://pp.userapi.com/c847221/v847221805/afdfd/INQjRKhz4h0.jpg
https://pp.userapi.com/c847221/v847221805/afe4f/JX8GzcWRtC8.jpg
https://pp.userapi.com/c847221/v847221805/afdeb/j98oZXke_RQ.jpg
А делов-то на две строки ))
Последняя строка из скрипта kenking'а.
--- Код: ---0400: create_coordinate $tepX $tepY $tepZ from_object $OBJECT_TEPLOVOZ offset 0.0 0.0 3.0
0437: scatter_particle 60 size 3.5 at $tepX $tepY $tepZ speed_XYZ 0.0 0.0 0.0
--- Конец кода ---
Оффсеты и размер поправить и будет валить прямиком из трубы)
DK:
Вчера на сервере plugin-sdk обсуждали крепление партиклов к транспорту, вот такой код получился.
--- Код: C++ ---#include "plugin.h"#include "CClumpModelInfo.h"#include "CParticle.h" using namespace plugin; class ParticleTest {public: static void CreateParticleOnVehicleNode(CVehicle *vehicle, char const *nodeName) { RwFrame *node = CClumpModelInfo::GetFrameFromName(vehicle->m_pRwClump, nodeName); // получить компонент по названию if (node) { RwMatrix *m = RwFrameGetLTM(node); // получить матрицу компонента в глобальном пространстве CParticle::AddParticle(PARTICLE_FLYERS, CVector(m->pos.x, m->pos.y, m->pos.z), CVector(0, 0, 0), nullptr, 0.4f, 0, 0, 0, 0); } } ParticleTest() { Events::gameProcessEvent += [] { if (CPed *player = FindPlayerPed(); player && player->m_bInVehicle && player->m_pVehicle && player->m_pVehicle->m_fGasPedal > 0) { CreateParticleOnVehicleNode(player->m_pVehicle, "wheel_lb_dummy"); CreateParticleOnVehicleNode(player->m_pVehicle, "wheel_rb_dummy"); } }; }} particleTest;
Навигация
Перейти к полной версии