Ku2zoff ну и плюс Авроры что конфигурация эффектов не зашита в код, в той же Рендерсистем надо каждый раз перекомпиливать клиент, в идеале нормальная система партиклей это РендерСистем конфигурируемая через текстовые файлы как аврора, где можно прописывать разные эффекты и играться их значениями, а в коде где вызывается какой либо эффект, будто выстрел или взрыв или попадание, чтобы была ссылка на этот файл, если стрельба, то какой мазлфлеш спавнить, может еще и дымок в придачу, трасер какой, или может это лазер, со взрывами так же, чтобы сделать более менее нормальный эффект это должна быть комбинация из разных эффектов, сам огонь, дым, осколки и так далее.
Нечто подобное вроде Валве и задумывали с файлами events/.sc, во многих из них код похожий на код из клиента и содержится, пусть и не используется, по сути работа с эффектами сильно упростилась бы если бы код из .sc брался, и можно было в игре через команду перегрузить эти файлы, допустим если альт-табнулся и поменял что-то в файле эффекта.
Еще из эффектов на Сталкер в одном моде интересную фишку делали, мягкие партиклы назывались - если спрайт какого-то эффекта упирался в стену, но он не резко обрезался, при уходе в стену, а его край что в стену уходил плавно прозрачным становился.
Добавлено 12-08-2021 в 18:10:
Цитата:
Ku2zoff писал: На мой взгляд, самая трушная система из XDM 3.0.3.4. Ей нужно добавить гравитацию и коллизию из 3.0.3.8 туда, где по смыслу нужно, и наверное парсер скриптов для погодных эффектов. В принципе, всё.
Еще в Тириане есть и свои эффекты что для попаданий использовались взятые и пофикшеные из ХЛВЕ, в 3.0.3.8 их нету, я смотрел, неплохие эффекты тоже.
Еще конечно не удобства и лимиты халвы доставляют тоже, если делать крутые эффекты как в том же ХЛВЕ или Тириане, то это надо как Гуль все эти модели-спрайты в одну засовывать, с кучей субмоделей или кадров, куда уместились все эффекты.
CL_LoadClientSprites нужно вызвать из CHud:VidInit. R_MuzzleFlash использовать вместо gEngfuncs.pEfxAPI->R_MuzzleFlash. Количество и названия спрайтов можно менять, прекэшить на сервере не обязательно, SPR_Load задаст им индексы в массиве моделей. Chyvachok сравни с оригинальным кодом в cl_tent.c и увидишь, что это совсем не сложно.
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.
Интересно, а насколько сложно сделать чтобы эвенты брались из event/.sc файлов? Все таки это было бы удобно те же эффекты и эвенты оружия можно было бы подправлять не перекомпилируя код.
Chyvachok чтобы выяснить, насколько это сложно, нужно попробовать написать парсер. Мне проще перекомпилить клиент, если что-то получилось не так, чем убивать неделю на написание парсера, я ведь не умею К тому же, он всё равно будет ограничен заложенным набором функций. Реквестируй фичу кому-нибудь, SNMetamorph'у, например. Он как раз апгрейдит ксашмод. Можно Дядю Мишу попросить о такой штуке для XashNT. Зайчатки скриптовых оружий уже есть в п2, к этой основе можно добавить парсинг клиентского эвента.
Что нужно пофиксить насчет muzzleflash - это крепление к аттачменту. Он ведь тупо спавнится в воздухе. Достаточно сделать pTemp->die = cl.time + 1.0 чтобы увидеть это убожество.
Я пока ради теста сделал кой-чего
[CFR] B@N@N я этим не занимался. Меня устраивает лимит в 500 штук. А что не устраивает - нарисую через триапи. Мешают лимиты - переходи на ксаш или SvenEngine. Последний полностью совместим со стим-версией халфы, имеет увеличенные лимиты, абсолютно бесплатен, т.к. свен бесплатен в стиме. К тому же ещё абсолютно легален. Буржуи не будут на тебя гавкать, если выпустишь свой мод под него. Вот с ксашем ситуация печальная, у них безостановочно горят пуканы из-за копирайтов, хотя казалось бы...
Ксаш не подходит мне так как он не может мультиплеер
А вот свенэнжин наверное да, получше но он только чериз стим и это значит что на пиратку нивстанет и мод соответственно надо будет релизить чериз стим
Где-то отдельно можно будет скачать свенэнжин ну по типу того как можно скачать Ксаш чьоб не тинуть за собой несколько гига контента?
Насколько там лимиты на темпэнтити отличаются от халфовских? Я думал по хардкору замутить чьоб куски крови, тел, гильзы и тп не исчезали на карте или хотябы их было ощютимо многа чьоб была атмосфера побоища если долго играть на карте, ну типа как в Брутал Думе.
Aynekko писал: Что нужно пофиксить насчет muzzleflash - это крепление к аттачменту. Он ведь тупо спавнится в воздухе. Достаточно сделать pTemp->die = cl.time + 1.0 чтобы увидеть это убожество.
Невероятно, но я все же додумался как это сделать.
Нужно для начала перенести код на клиент из движка (Ku2zoff выше выложил). Затем в этом коде сделать проверку на энтитю - viewmodel это или нет. Если viewmodel - то делаем хак:
pTemp->entity.curstate.aiment = -5;
Число рандомное, главное чтобы было отрицательное.
Так же нужно притащить в этот код номер аттачмента, пусть будет int Attachment. Притащить можно из эвента 5001 и других соседних.
Далее дописать
А потом в спрайт-рендерере найти SpriteComputeOrigin и сделать проверку на aiment -5. И выставить parent = GET_VIEWMODEL() вместо GET_ENTITY.
Пробовал давать индекс, но у игрока и вьюмодели почему-то индекс одинаковый. Хотя бы это сработало. Теперь маззлфлеш намертво прикручен к аттачменту, а не остается в воздухе после спауна.
С моделью пока не работает. Видимо нужно в студиорендере сделать подобную проверку.
И еще я не знаю, можно ли все это провернуть в голде. Ну в ксашмоде получилось.