Chyvachok писал: а в чем вообще достоинство тех партиклей?
Цитата:
Chyvachok писал: эффект попадания пуль в стены
Ну вот это они и есть. Они там вертятся по-всякому вокруг своей оси, а не просто статично летят, как, например в сталкере, или в моём туторе.
Цитата:
Chyvachok писал: огонь из огнемета
Что-то самописное, но смахивает на аврору из спирита по внешнему виду. Главное, что на триапи написано, темпэнтити не жрёт. Если нужен только огнемёт, или дымовой шлейф от ракеты - можно это юзать (или валлпаффы из паранойи, немного разнообразив код). Если нужно много всяких систем вида фонтан/струя/шлейф - тогда можно тянуть аврору себе в мод. Ну или RenderSystem из XDM, там вообще всякое можно, начиная от дождя и снега, и заканчивая взрывами и туманом.
Ku2zoff писал: Ну или RenderSystem из XDM, там вообще всякое можно, начиная от дождя и снега, и заканчивая взрывами и туманом.
Рендерсистем выглядит интересно, но она столько за собой файлов тащит, плюс там в коде много чего переделано, я врядли смогу ее нормально вытащить. Учитывая что я в кодинге совсем нуб.
Как вы эти парт-системы между собой различаете. Они все имеют примерно одинаковый функционал, кроме авроры. И главное отличие авроры - постоянно действующий эмиттер, вокруг этой концепции выстроен весь код. Обычные партикли устроены несколько иначе.
Chyvachok писал: но она столько за собой файлов тащит
Просто берёшь, и подключаешь эти файлы к проекту. Рисование всё равно вызывается из файла tri.cpp. Ну и Init/VidInit в hud.cpp, и всякое другое по мелочи в других файлах - только хедеры подключай. А так вся RS в одной отдельной папке находится.
Цитата:
Chyvachok писал: плюс там в коде много чего переделано
Я бы думал не об этом, а об общей замудрёности системы. А следовательно, о мелких багах-бажочках. Вот, например, жуткие проседания фпс на первой карте кампании ArcticIncident, из-за колоизации снежинок в финальной версии. И прочие остальные радости.
Цитата:
Дядя Миша писал: Как вы эти парт-системы между собой различаете.
По названию А вообще, я смотрел более-менее подробно только код авроры и RS, другие (из паранойи) просто тупо копипастил. Правда, уже всё это забыл, прошло почти 8 лет.
~X~ про колоизацию вроде бы упоминал. Конечно, более вероятны проблемы с отсечением невидимых областей, или рисование лишних полигонов. Надо почитать тему по XDM 3.0.3.8, чтобы освежить это в памяти.
Цитата:
Ku2zoff писал: Я буду делать у себя нечто подобное, только с выбрасываемыми магазинами, как в Firearms.
Вот, кстати, вчера поработал немного в этом направлении. Довольно интересная тема оказалась. Пришлось заюзать ammo_secondary.cpp для отображения количества и иконки магазинов, написать новую функцию перезарядки и чуток подправить код перезарядки в ItemPostFrame. Осталось отшлифовать напильником, и завести магазины с "памятью", в которых хранятся патроны и их количество.
Ku2zoff писал: Конечно, более вероятны проблемы с отсечением невидимых областей, или рисование лишних полигонов.
Всё это очень сомнительно. Ну не будет тормозить хоть 20 тыщ партиклей, даже через глбегин на современных видеокартах. А в его снежинках было от силы пару тысяч. Это такой лаг, который под силу создать только Мастеру.
Кто нить знает нормальные примеры раскачки камеры при ходьбе типа аля сталкер или сру от страха?
__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.
Luciferchik писал: Кто нить знает нормальные примеры раскачки камеры при ходьбе типа аля сталкер или сру от страха?
Оперируй pparams->viewangles[YAW], чтобы вертеть камеру влево-вправо по горизонтали. Я надеюсь, ты заметил, что если в сталкере опустить взгляд вниз, или задрать вверх, то миникарта начинает мотаться как бешеная? Чтобы наклонять камеру вправо-влево по вертикали, используй pparams->viewangles[ROLL]. К значениям англсов нужно прибавлять значения bob, высчитываемые функцией V_CalcBob. Если тебе нужно раскачивать в разных направлениях с разной амплитудой, можешь продублировать эту функцию, завести новые квары, и использовать их вместе с обычным bob.
Добавлено 02-07-2017 в 23:05:
Настал мой черёд задать нуб вопрос. В связи с кодингом магазинов, у меня возникла проблема. Магазины эти надо где-то хранить. И как-то хранить. Завёл структуру, содержащую порядковый номер магазина, кол-во патронов, и тип патронов:
C++ Source Code:
1
typedefstruct
2
{
3
int iNumber;
4
int iAmmoCount;
5
constchar *pszAmmo;
6
} ClipInfo;
Как это дело запихнуть в сейвдату? Ни одного подходящего типа поля нет. Ближе всего FIELD_INTEGER, но он только int'ы и enum'ы умеет. А здесь typedef struct. Была мысль сохранять магазины как float'ы: цифра до точки - номер магазина, цифра после точки - кол-во патронов в нём. Но тогда негде будет хранить тип патронов. А значит, игрок не сможет подбирать магазины, пока у него нет соответствующего оружия (сохранять магазины придётся в сейвдату оружия, конечно). Тоже нехорошо. Пока я остановился на таком варианте: хранить как float'ы в классе игрока. Первая цифра - тип патронов, вторая - номер магазина, дальше точка, а после точки кол-во патронов в данном магазине. Как-то так. Ещё ничего не накодил, это только предположение. МБ есть какой-то хороший вариант, чтобы сохранить структуру в сейв?
Ku2zoff а не хочеш обоймы энтитями делать, не? ))))
или тебе вот прям надо помнить в каком магазине сколько осталось патронов? Заведи два массива, например.
Добавлено 02-07-2017 в 21:13:
ЗЫ. в сейврестор можно писать всё что угодно, надо лишь добавить новый тип. добавь FIELD_STRUCT да и сохраняй себе наздоровье.
Дядя Миша писал: а не хочеш обоймы энтитями делать, не?
Как-то стрёмно на первый взгляд. А если они будут жрать эдикты? Есть такое подозрение. Ну вот например 10 уникальных стволов, и у каждого 8 магазинов максимум. Даже если не у каждого по 8 на самом деле, то память под 8 штук выделяется всё равно. В самом тяжёлом случае выходит 32 игрока х 10 стволов х 8 магазинов.
Цитата:
Дядя Миша писал: в сейврестор можно писать всё что угодно, надо лишь добавить новый тип.
Ух ты, не знал. Будем посмотреть сорцы rehlds и ксаша на предмет таких делов, для пущей уверенности.
Добавлено 03-07-2017 в 01:49:
Цитата:
Дядя Миша писал: или тебе вот прям надо помнить в каком магазине сколько осталось патронов?
В файрармсе так и есть. Магазины перезаряжаются по кругу, кол-во патронов запоминается для каждого. С тем отличием, что файрармс - мультиплеерный мод, и ничего сохранять не надо.
Дядя Миша писал: 8 лет под халфу кодит - есть такое подозрение, мда.
Ну не 8 лет же Кодю примерно 4 года. До этого только копипастил даже не задумываясь, как написан код.
Цитата:
Дядя Миша писал: я када эти новые типы добавлял - никаких сорцев еще и близко не было.
Ну не знал я, что сейв/рестор хавает любые типы данных. Думал, что там в движке прописаны только определённые. Как с физикой: мувтипы новые в дллке не добавишь - гс грохнется с Host_Error. Поди разбери, где там у вальвы всё жёстко в движке закодено, а где можно расширять интерфейсы. Вон, вроде delta.lst лежит в папке мода - добавляй не хочу новые поля. Ан нет, в движке захардкоден определённый набор на каждую секцию.