Четверг, 27.07.2017, 03:54
 
Приветствую Вас Guest | RSS
Главная страница | Как заменить эффект взрыва на свой собсвтенный? - Форум | Регистрация | Вход
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Форум » Игровая мастерская » Программирование » Как заменить эффект взрыва на свой собсвтенный? (Сношаюсь с этой проблемой уже неделю)
Как заменить эффект взрыва на свой собсвтенный?
HunteR4708Дата: Среда, 22.06.2011, 14:44 | Сообщение # 1
Newbie
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
Перекопал почти весь код и так и не нашел, как же все таки заменить стандартный (ужасный) эффект взрыва на свой собственный. Например у меня уже есть своя партикля dynamite_explosion.pcf и мне нужно чтобы она заменила собой этот стандартный (ужасный) взрыв, каждый раз, когда он происходит (пусть даже от гранаты)
В explode.cpp есть что-то связанное с эффектами, но ни слова про партикли.
 
AndreazzzДата: Среда, 22.06.2011, 16:46 | Сообщение # 2
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
Ты не думал попробовать заменить не в коде?

 
HunteR4708Дата: Среда, 22.06.2011, 17:15 | Сообщение # 3
Newbie
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
Quote (Andreazzz)
заменить не в коде?

Просто текстуры? Это будет выглядеть конечно тоже хорошо, но партиклями можно добиться куда большего.
 
AndreazzzДата: Среда, 22.06.2011, 18:36 | Сообщение # 4
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
Quote (HunteR4708)
Просто текстуры? Это будет выглядеть конечно тоже хорошо, но партиклями можно добиться куда большего.

Какие в жопу текстуры? Я про то, чтобы заменить оригинальный партикль огня!


 
DetLeRДата: Среда, 22.06.2011, 20:30 | Сообщение # 5
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
Закоменть это в grenade_ar.cpp:
Code
CPASFilter filter( GetAbsOrigin() );

   te->Explosion( filter, 0.0,
    &GetAbsOrigin(),   
    g_sModelIndexFireball,
    2.0,   
    15,
    TE_EXPLFLAG_NONE,
    m_DmgRadius,
    m_flDamage );

И вставь вот это:
Code
onst Vector &origin = GetAbsOrigin();
   QAngle vecAngles;

   DispatchParticleEffect( "grenade_explosion_01", origin, vecAngles );

В функции Precache того же файла всунь это:
Code
PrecacheParticleSystem( "grenade_explosion_01" );

И еще inclyde вверху вставь:
Code
#include "particle_parse.h"

Добавлено (22.06.2011, 20:30)
---------------------------------------------
Так по аналогии с другими взрывами у других энтитть, ну и конечно если у тебя другой партикл, то просто поменяй название.

 
HunteR4708Дата: Среда, 22.06.2011, 20:54 | Сообщение # 6
Newbie
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
DetLeR, а если взрыв у гранаты ручной а не Arной и тем более не SMG1шной? Получится?
 
DetLeRДата: Среда, 22.06.2011, 21:14 | Сообщение # 7
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
HunteR4708, по аналогии. Ищишь CPASFilter filter( GetAbsOrigin() ); и его атрибуты как я указал и меняешь на обозначение партикла. Да и вобще ищещь где рисуется ээфект и можешь менять его на партикл, вплоть от брызгов воды до искр от метала.
 
HunteR4708Дата: Среда, 22.06.2011, 21:19 | Сообщение # 8
Newbie
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
DetLeR, в Ar2 заменил гранату, на этом спасибо (Откоментил тебе кредиты smile а вот в гранате (weapon_frag, weapon_grenade, grenadethrown и так далее) не наблюдаю CPASFilter filter( GetAbsOrigin() );
На сайте Interlopers.net лицезрел очень мелкий намек на все это дело, но так и не понял как реализовать. http://www.interlopers.net/forum/viewtopic.php?f=25&t=33589

P.S. Да, я нуб в программировании, но останавливатся не хочется smile
 
DetLeRДата: Среда, 22.06.2011, 23:58 | Сообщение # 9
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
HunteR4708, C grenade_frag чуть сложнее. Там вызывается функцию напрямую из общего файла для грен. Будет время сделаю что б именно гренейд_фраг юзало партикл.

Добавлено (22.06.2011, 23:58)
---------------------------------------------
Хотя... Вот я проверил, вот тут меняй:
void CBaseGrenade::Explode( trace_t *pTrace, int bitsDamageType )
В файле basegrenade_shared.cpp

 
StriderДата: Четверг, 23.06.2011, 00:05 | Сообщение # 10
Spy
Группа: Проверенные
Сообщений: 1465
Репутация: 51
Статус: Offline
Я уже пытался заменять и могу сказать одно - удалять функцию обычного взрыва нельзя, дамадж прописан в ней же. Так что аккуратнее


Ох и сложная эта работа, из болота тащить два вмода...
 
DetLeRДата: Четверг, 23.06.2011, 11:02 | Сообщение # 11
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
Strider, зачем удалять..? Всего лишь закоментить несколько строк и вставить пару новых.
 
AndreazzzДата: Четверг, 23.06.2011, 12:10 | Сообщение # 12
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
Quote (DetLeR)
Strider, зачем удалять..? Всего лишь закоментить несколько строк и вставить пару новых.

Нужно смотреть в сторону основных функций, а так проще поменять сам партикль взрыва, на собственный. А так это будет полезным: http://developer.valvesoftware.com/wiki/Particles_In_Code
Quote (DetLeR)
 te->Explosion( filter, 0.0,     &GetAbsOrigin(),       g_sModelIndexFireball,     2.0,       15,     TE_EXPLFLAG_NONE,     m_DmgRadius,     m_flDamage );

Если коментировать это, то у нас не будет взрыва и урона от него


 
StriderДата: Четверг, 23.06.2011, 16:56 | Сообщение # 13
Spy
Группа: Проверенные
Сообщений: 1465
Репутация: 51
Статус: Offline
Andreazzz, Именно это я и имею ввиду. Вызов te->Explosion отвечает и за урон и за вспышку и за звук. Ели его заменить на партикль - то будет просто партикль.


Ох и сложная эта работа, из болота тащить два вмода...
 
DetLeRДата: Четверг, 23.06.2011, 18:09 | Сообщение # 14
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
Что мешает отдельными строками сделать эмитсаунд и урон...? =)
 
AndreazzzДата: Четверг, 23.06.2011, 19:23 | Сообщение # 15
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
Quote (DetLeR)
Что мешает отдельными строками сделать эмитсаунд и урон...? =)

То, что есть ещё система осколок.


 
StriderДата: Пятница, 24.06.2011, 00:20 | Сообщение # 16
Spy
Группа: Проверенные
Сообщений: 1465
Репутация: 51
Статус: Offline
Можно же просто заменить глобальную функцию, зачем изобретать самокат с овальными колёсами..


Ох и сложная эта работа, из болота тащить два вмода...
 
AndreazzzДата: Пятница, 24.06.2011, 12:37 | Сообщение # 17
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
Quote (Strider)
с овальными колёсами

А лучше с электромотором =)


 
HunteR4708Дата: Пятница, 24.06.2011, 13:44 | Сообщение # 18
Newbie
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Offline
Покопался поигрался, в итоге вместо обычного взрыва используется моя партикся (с уроном до сих пор) но действует только когда граната в полете. Когда она на земле или касается любой другой поверхности - обычный взрыв.

Ладно, тогда следующий вопрос - как называется та самая партикля взрыва? Я перерыл все .gcf файлы и нашел лишь малое кол-во подобных.
 
AndreazzzДата: Пятница, 24.06.2011, 14:36 | Сообщение # 19
Spy
Группа: Проверенные
Сообщений: 996
Репутация: 55
Статус: Offline
Quote (HunteR4708)
Ладно, тогда следующий вопрос - как называется та самая партикля взрыва? Я перерыл все .gcf файлы и нашел лишь малое кол-во подобных.

Ты открывай партикли и смотри =) Сложно не так ли?




Было отредактированно - Andreazzz - Пятница, 24.06.2011, 14:37
 
DetLeRДата: Пятница, 24.06.2011, 15:35 | Сообщение # 20
Engineer
Группа: Администраторы
Сообщений: 1731
Статус: Offline
HunteR4708, запускай игру с параметром -tools, выбирай партикл эдитор и просматривай партиклы в .pcf архивах.
 
Форум » Игровая мастерская » Программирование » Как заменить эффект взрыва на свой собсвтенный? (Сношаюсь с этой проблемой уже неделю)
Страница 1 из 212»
Поиск:

Помощь в разработке форума: HOMiE7