HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 30 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- как добавить новый muzzleflash на пушку ? (https://hlfx.ru/forum/showthread.php?threadid=5693)


Отправлено илья2 10-08-2021 в 17:26:

Question как добавить новый muzzleflash на пушку ?

здравствуйте как добавить новый muzzleflash на оружие ?

__________________
илья


Отправлено Ku2zoff 10-08-2021 в 18:21:

Проще всего заменить стандартные спрайты. Код рисования маззлфлешей зашит в движок. Но можно сделать темпэнтитями на клиенте. pEfxAPI и сорцы ксашдвижка в помощь.


Отправлено илья2 10-08-2021 в 19:27:

вот увидил код

switch( event->event )
{
case 5001:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[0], atoi( event->options) );
break;
case 5011:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[1], atoi( event->options) );
break;
case 5021:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[2], atoi( event->options) );
break;
case 5031:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[3], atoi( event->options) );
break;
case 5002:
gEngfuncs.pEfxAPI->R_SparkEffect( (float *)&entity->attachment[0], atoi( event->options), -100, 100 );
break;
// Client side sound
case 5004:
gEngfuncs.pfnPlaySoundByNameAtLocation( (char *)event->options, 1.0, (float *)&entity->attachment[0] );
break;
default:
break;
}

тут можно добавить новый на основе такого примера

switch( event->event )
{
case 5001:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[0], atoi( event->options) );
break;
case 5011:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[1], atoi( event->options) );
break;
case 5021:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[2], atoi( event->options) );
break;
case 5031:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[3], atoi( event->options) );
break;
case 5041:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[4], atoi( event->options) ); <----здесь добавил новый
break;
case 5002:
gEngfuncs.pEfxAPI->R_SparkEffect( (float *)&entity->attachment[0], atoi( event->options), -100, 100 );
break;
// Client side sound
case 5004:
gEngfuncs.pfnPlaySoundByNameAtLocation( (char *)event->options, 1.0, (float *)&entity->attachment[0] );
break;
default:
break;
}

__________________
илья


Отправлено Дядя Миша 10-08-2021 в 19:41:

Цитата:
илья2 писал:
gEngfuncs.pEfxAPI->R_MuzzleFlash( (float *)&entity->attachment[4], atoi( event->options) ); <----здесь добавил новый

И вышел за границы массива

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 10-08-2021 в 23:03:

Цитата:
илья2 писал:
тут можно добавить новый на основе такого примера

Аттачментов в голдсорсе всего 4, а ты добавил кейс, использующий пятый. Тебе надо новый спрайт, а ты добавляешь эффект маззлфлеша на несуществующий аттачмент. Сорцы ксашдвижка в свободном доступе, скопипасти из него функцию R_MuzzleFlash в клиентку, и грузи в ней свои спрайты.


Отправлено илья2 11-08-2021 в 08:48:

в каком файле та искать ? случайно не в r_misc.cpp а то исходников много и все разные. Может сразу лучше ссылку скинешь по ксашу.

__________________
илья


Отправлено Ku2zoff 11-08-2021 в 11:06:

Цитата:
илья2 писал:
случайно не в r_misc.cpp

Случайно не в r_misc.cpp, т.к. это файл из сорцев ксашмода. А R_MuzzleFlash находиться внутри движка: engine\client\cl_tent.c.


Отправлено Chyvachok 12-08-2021 в 07:30:

Цитата:
Ku2zoff писал:
Случайно не в r_misc.cpp, т.к. это файл из сорцев ксашмода. А R_MuzzleFlash находиться внутри движка: engine\client\cl_tent.c.


Не думаю что эту ему поможет, я как-то смотрел сорцы движковых эффектов, глянул, и понял что никак не смогу это портануть в движковую длл-ку со своими познаниями в коде, а делать там изменения и компилить двиг идея такая себе, т.к. мод по сути только со своим форком будет совместим, причем ради какой-то фигни типа маздфлеша. Вообще клиент для меня это тихий ужас.

илья2, про мазлфлеш, я делал кастомные по принципу мазлфлеша от плазмогана из Инвазиона, там на сервере на аттачементе спавнился спрайт, не хочется выдумывать можно оттуда скопипастить, сорцы можно в гугле найти.


Отправлено Ku2zoff 12-08-2021 в 07:54:

Цитата:
Chyvachok писал:
смотрел сорцы движковых эффектов, глянул, и понял что никак не смогу это портануть

Все эффекты, вызываемые с сервера через SVC_TEMPENTITY, прекрасно портируются в клиентскую дллку. Кроме TE_PLAYERDECAL, т.к. для этой темпэнтити нет нужного экспорта из движка. То же самое касается всех эффектов, вызываемых непосредственно на клиенте, которые используют тепмпэнтити. То есть, если какой-то экспорт pEfxAPI оперирует некоей темпэнтитей, а не какими-то ресурсами и данными, доступными только движку из его массивов ресурсов и данных, то вынести такое дело в клиентку можно. Только надо ещё писать в некоторых случаях каллбэки для этих темпэнтить и задавать им необходимый приоритет.

Добавлено 12-08-2021 в 14:54:

Я могу отвлечься от своей текущей работы и перетащить в клиентку R_MuzzleFlash и R_TracerEffect, т.к. всё равно планирую это сделать, но позже.


Отправлено Chyvachok 12-08-2021 в 08:11:

Цитата:
Ku2zoff писал:
Я могу отвлечься от своей текущей работы и перетащить в клиентку R_MuzzleFlash и R_TracerEffect, т.к. всё равно планирую это сделать, но позже.


Это кстати было бы интересно, может бы и заодно разобрался бы сравнив отличия от эффекта что в движке и тот что портирован. Самый полезный бы порт был бы наверное эффекта следа из первого квейка, тот что состоит из точек, по идее если это точки заменить на спрайт, выйдет отличный эффект дыма.


Отправлено Ku2zoff 12-08-2021 в 12:21:

Цитата:
Chyvachok писал:
отличия от эффекта что в движке и тот что портирован

Отличий не будет. Все аллоки и каллбэки торчат из движка наружу. Будет копипаста с подменой внутридвижковых функций на экспорты pEfxAPI.
А вот если завести массив собственных тепмэнтить на клиенте, и рисовать их через TriAPI, тогда отличия будут. В таком случае, нужно выносить всю систему темпэнтить на клиент. Намного быстрее взять уже готовую систему частиц из какого-нибудь мода, и заменить вызовы pEfxAPI на подходящие функции этой системы.

Добавлено 12-08-2021 в 19:21:

Для начала я просто сделаю две запланированные функции R_MuzzleFlash и R_TracerEffect. Первую оставлю на темпэнтитях, просто добавлю возможность грузить кастомные спрайты. А вторую сделаю на TriAPI, потому что движковые трейсеры на партиклях очень толстые, а хочется тоненькие как в HL2. К тому же, писать с нуля ничего не надо, я выкопал старенькие сорцы кое-чего, откуда можно эти трейсеры невозбранно скопипастить.
Ну а дальше будет видно. Можно заморочиться, и сделать чисто клиентские темпэнтити, чтобы обойти лимит в 500 штук и улучшить эффекты. А можно подключить готовую систему частиц. Увидим. Работы много, а мне ещё карты надо делать.


Отправлено Chyvachok 12-08-2021 в 12:42:

Цитата:
Ku2zoff писал:
А можно подключить готовую систему частиц. Увидим. Работы много, а мне ещё карты надо делать.


А где она кроме ХДМ она есть? Вспоминается только Бейс Дефенс, но его код закрытый, в ХДМ сильно замудренный код, да и эффектов то не много - в Тириане Гуль перенес много своих эффектов из ХЛВЕ, которых нету в чистом ХДМ-е, но я не смог их пристроить к той старой версии рендерсистемы, т.к. они прицепленны к новой что в последней ХДМ юзается но там автор как всегда все переписал. Сам ХЛВЕ увы багнутый, в том числе и Рендер Систем там, вылетает часто, жаль, это по сути идеал мода на ХЛ1, только синглплеера не хватает, с магазином на манер Counter-Life, жаль я кодер никакой, так замутить бы сингл-ХЛВЕ и все, МодДБ можно будет закрывать нафиг, лучше уже не будет.

А Аврора очень ограниченная система - она рассчитана исключительно под "постоянные" эффекты вроде дыма или следа какой-то ракеты. А такого чтобы взрыв или попадание из какой-то энергопушки сделать детальнее и красивее кроме той же Байз Дефенса и ХДМ-а я не видел на ХЛ.

Эффекты кстати красивые в Jedi Academy, сорцы то есть на ГитХабе, но я из другого мода на ХЛ1 если в нем код сильно отличается скопипастить не могу.


Отправлено Ku2zoff 12-08-2021 в 13:58:

Цитата:
Chyvachok писал:
А где она кроме ХДМ она есть?

BattleGrounds, немного в Invasion (огнемёт) и ещё один какой-то французский мультиплеерный мод, там тоже свои эффекты огня есть.
Цитата:
Chyvachok писал:
Бейс Дефенс, но его код закрытый

Цитата:
Chyvachok писал:
эффекта следа из первого квейка, тот что состоит из точек, по идее если это точки заменить на спрайт

Все темпэнтити есть в ксашдвижке. Достаточно заменить партикли и спрайты, загружаемые движком на нечто, рисуемое через TriAPI, и получится система частиц. Точнее, системой это будет, если каждую темпэнтитю воспринимать именно как систему, и сделать для таких систем собственный менеджер:
Цитата:
Ku2zoff писал:
Можно заморочиться, и сделать чисто клиентские темпэнтити


Отправлено Дядя Миша 12-08-2021 в 14:38:

Цитата:
Chyvachok писал:
А Аврора очень ограниченная система - она рассчитана исключительно под "постоянные" эффекты вроде дыма или следа какой-то ракеты

Я кстати делал аврору, живущую заданный промежуток времени.
В параное такая.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 12-08-2021 в 14:59:

Преимущество авроры - визуальное редактирование. Но сама система ограничена именно распылением частиц. Если надо делать огонь, дым, пар и прочее, что ставится на карту - она годится. Можно делать эффекты дыма и огня для оружий и проджектайлов. А вот нечто, вроде эффектов из XDM делать не получится - нет функционала. Дописать можно, но скрипты надо будет писать вручную - теряется весь смысл.
На мой взгляд, самая трушная система из XDM 3.0.3.4. Ей нужно добавить гравитацию и коллизию из 3.0.3.8 туда, где по смыслу нужно, и наверное парсер скриптов для погодных эффектов. В принципе, всё.


Временная зона GMT. Текущее время 00:42. Страницы (2): [1] 2 »
Показать все 30 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024