Перейти к контенту

Редактирование движка X-Ray


Rolan

Рекомендуемые сообщения

@HESH, на мсдн забанили? Как можно научить лучше чем мсдн? Давай вместе пилить, подключайся хоть сейчас, но если ты ничего не умеешь, зачем ты нужен? Я быстрее сам сделаю, чем тебя научу.

Изменено пользователем Карлан
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

Сап, русский форум!

 

Изловили фатал эррор на xpdev вместе с @Real Wolf, точнее словил я уже как пару недель, и сидел тупил, а собственно Влад исправил, за что ему безмерная благодарность от меня.

 

Не знаю закоммитит он эту правку или нет, поэтому считаю должным выложить:

https://yadi.sk/d/bkgA_E9liGp38

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

А что за баг-то?

При "автоматическом" перемещении ПДА между актором и, например, ящиком (о чем сказано в комментарии) происходил вылет. Изменено пользователем Карлан

Поделиться этим сообщением


Ссылка на сообщение

Вкинул немного функционала в строки-описатели. 

     namespace string_table {
         function add_string(string, string);
         function delete_string(string);
         function has_string(string);
         function reload_strings();
         function replace_string(string, string);
     };
Завтра может время измерю. Но перезагрузка всех файлов ощутима (на чистой игре), это даже без таймеров ясно, да и нужна она только если работаете напрямую с xml, а так вот эти четыре функции в деле, они напрямую с массивом работают, это быстро.

 

Например с этим функционалом можно статичные диалоги менять (не граф разумеется, для графов другие коды писаны).

Изменено пользователем Карлан
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

не логичнее ли было удаление строки поставить в самом конце?

В конце чего? :facepalm:

 

 

 

Массивы - это медленно. Зато удобно. Но - много памяти жрет. И да, еще страус-труп грил, шо namespace - признак дурного кода.

Перепиши на досуге, и покажи нам как надо!

Поделиться этим сообщением


Ссылка на сообщение

Провел замеры перезагрузки диалогов, инфопоршней и строк на чистой игре (в секундах):

 

0.025326 - диалоги

0.200278 - инфопоршни

0.213696 - строки

 

В чем секрет диалогов? :blink:

Поделиться этим сообщением


Ссылка на сообщение

Кто-нибудь прикалывался по созданию бустеров, вроде так на вскидку не сложно, но муторно, пока начал только разгребаться что есмь "юзабельные итемы", добавил три параметра в конфиг:

 

use_snd = ; аналог ЗП

use_anm = ; проигрывает кам-эффект при использовании

use_ppe = ; проигрывает ппе-эффект при использовании

 

Цикличность эффектов делать не стал, мне интересно вот это (цикличность) надо кому или нет? А то можно воткнуть булевый флаг тип юз_анм_суслик = тру :).

Цикличность задается в секции эффектора.

Моя функция читает файл, а не секцию, вся настройка эффекта идет в движке.

upd:

А, ну разобрался я, да, возможно есть смысл немного переделать, чтобы пользователь сам полностью настраивал эффект. Но не знаю будет ли это востребовано в этом случае, практика покажет, сделать не трудно в любом случае.

Изменено пользователем Карлан
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

Видимо дополнительно нужно еще с серверной частью работать (см. CSE_Visual).

Поделиться этим сообщением


Ссылка на сообщение

 

 

Помимо перезапуска анимации, перекалькулируй скелет и будет счастье)

Все куда прозаичнее. Но от "перекалькулирования" скелета я подпрыгнул на стуле ;), не могу не попросить раскрыть этот аспект подробнее.

Поделиться этим сообщением


Ссылка на сообщение

 

 

Надо аналогичные виртуальные функции добавить для всех остальных объектов.

Я напрямую добавил например.

Поделиться этим сообщением


Ссылка на сообщение

@Shredder, нет, он не рабочий, перезагрузку надо делать через CKinematicsAnimated, либо идти другим путем, он более простой, но визуализация хуже.

Поделиться этим сообщением


Ссылка на сообщение

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


Мой вопрос такой, никто не пробовал на ТЧ инверсную кинематику перетащить? Если пробовали, то есть какие-то подводные камни или нет? Опять же в первую очередь вопрошаю ЛАшников, так как там есть, но там вообще забавный движок,  поэтому все же больше к классикам жанра.

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@-StalkMen-, в ТЧ, к примеру, нет. Эти макросы переписывались.

 

 

 

В скриптовых методах натыкался на неё в релизе.

Чего? :huh:  Можно пример? Я не въехал.

 

 

 

для начала напрашивается поменять вылет на ругань в лог.

Уже давно поменяли. По крайней мере у меня VERIFY не летает. 

Поделиться этим сообщением


Ссылка на сообщение

@Forser, а, ты в этом смысле, ну так оно еще должно до этого вылететь. У меня такое не выбивало, а стоит много где, в принципе ясно для чего.

 

@Полтергейст, если я правильно помню, то код этот там вообще не доделан.

Поделиться этим сообщением


Ссылка на сообщение

 

 

Что именно не доделано?

Перепутал, не здесь это.

 

 

 

есть строки, приводящие к вылету при недоступности пути

Ты уверен что виноват этот файл? Я сбрасывал в нулевой вертекс и писал в лог об ошибке.

 

 

 

сброс на свободное стояние.

Нетривиально. Если делать "в лоб" получишь переполнение стека.

Поделиться этим сообщением


Ссылка на сообщение

По первому делал, по второму нет. Но от выкладывания реального материала теперь воздержусь.

 

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


Еще в качестве пляски с бубном: кого коробит долгая компиляция можете на время отладки/разработки выносить весь модуль в отдельную библиотеку, а по окончанию надо будет только сменить пути, минутное дело. И ваш модуль компилируется 1-2 минуты, можете оставлять кучу библиотек, здесь в теме по моему уже кто-то высказывался за такую идею, я это каким-то дебилизмом не считаю, но я не программист, и в эти комплексы не врубаюсь.

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

 

 

Зачем менять пути, если можно просто нажать "Построение" и соберется за пол минуты только то, что менялось.

1heXtcL5.jpeg

Как пруфанешь - можно будет поговорить предметно. Пока для меня это звучит как чистая ахинея. У меня xrGame при любом раскладе не собирается за пол минуты (в Release конфиге разумеется), рекорд был где-то минут 15.

 

@abramcumner@Struck, вы затронули довольно интересную тему. Месяца два назад я с этим серьезно копался, поэтому, встав в позу орфея, позволю себе дать некоторые пояснения. Самое первое что следует сказать, защитить архив от распаковки даже в краткосрочной перспективе нельзя, это в принципе невозможно, то есть посмотреть все ваши файлы можно будет относительно сразу, распаковать может любой кулхацкер с пердюевским образованием в три класса, данную защиту следует городить только в целях того чтобы нельзя было никому модифицировать именно ваш мод, то есть вы создаете свой запаковщик и никому его не даете, следовательно на ваш мод и коды можно будет только опираться, но напрямую их использовать не выйдет (разумеется не все так радужно, и эта защита в среднесрочной перспективе сносится как нефиг делать, но я не об этом). Для этого надо возится с кодировкой движка и форматом архива, здесь надо будет переписать LocatorAPI, FS и другие файлы которые работают с архивами, так же есть функции encode и decode, для изменения шифрования можно, к примеру, вшить какой-то известный (желательно быстрый) алгоритм шифрования, можно вообще сделать отдельную библиотеку откуда экспортировать функцию шифрования. Но это все задачи довольно сложные, а ковыряния с ядром стоят большого количества времени и нервов. Далее нужно будет каким-либо образом связывать руки всем кто хочет в ваш мод что-то добавить, то есть скрывать абсолютно все, от скриптов до моделей, а на любой несанкционированный доступ - пачку известных органов, тут поле действий уже расширяется и думайте сами, например у меня количество подводных камней резко увеличено, несколько этапов проверки и прочего, но повторюсь, если это вам не сильно надо - не делайте, это сложно.

 

Теперь к другому. Вроде я закончил все свои работы по движку которые ставил, теперь можно поработать и на народ. В общем все кто хочет на ТЧ что-то хорошее, доброе, вечное сотворить - силь ву пле, подключайтесь, будем делать вместе. Пока проект будет жить - редактирование доступно только соучастникам (вход свободный) для того чтобы было видно кто что сделал, и с кого что спрашивать. Надеюсь что хоть пару живых душ подключатся :).

 

Собранный движок: https://yadi.sk/d/edt9bfAajaFcs

Исходники: https://github.com/Karlan88/xray

 

А я пока буду писать документацию к своим правкам.

  • Спасибо 2
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

Еще пару слов о движке NLC 7, почему-то ходит мнение что там редактируется все исключительно под защиту, вовсе нет, там и по части xrGame очень много переписано и сделано, например, есть нормальные классы под контейнеры (CInventoryContainer, CCustomInventoryBox), так что движок сам собой тоже будет весьма ценен для местной аудитории, по крайней мере как минимум для меня.

 

@Дизель, зависит от количества кому это нужно, с нашим менталитетом в принципе все быстро сломается, так что говоря о модах на сталкер я даже побоюсь говорить слово среднесрочная перспектива :)


Да и если мы не хотим делать мод в направлении мейнстрима, то так или инчае что-то такое "не положено" вешать надо. У меня с этим все строго, в конфигах начитерить невозможно, за скриптами вообще усиленный надзор, там тоже тяжело будет что-то такое легкое и простое сделать, нужно будет городить костыль, а кому это надо? И то это только при наличии запаковщика, которого нет и не будет. Так что в любом случае сначала придется ломать все защиту, а потом уже как угодно, хоть тупо дампом памяти.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...