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

[SoC] Ковыряемся в файлах


Halford

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

Expression : !object->used_ai_locations() || ai().level_graph().valid_vertex_id(object->m_tNodeID)
На новых локациях из пака не все впорядке с граф поинтами

Локация Юпитер всего 1 гейм вертех на всю локу :lazy3:

Геймвертексы здесь точно не при чём. Здесь, кстати, редкий случай достаточно внятной расшифровки вылета. Вылет возникает если

а) установлен флажок used_ai_locations, который заставляет привязываться при спавне к сетке

и при этом

б) вертекс уровня не валидный. В чём эта невалидность заключается - вот этого здесь не указано. Может просто нет такого.

 

Я экспериментировал с этим флажком при скриптовом спавне. Если его установить, но по каким-то причинам под объектом нет сетки, то вылета не было, и объект просто спавнился в воздухе. Но здесь используется all.spawn. Поскольку у разрабов all.spawn появлялся из SDK, в нём по определению всё было корректно. Скорее всего при этом создание объекта происходит по упрощённому сценарию: ему просто вписываются все параметры из файла и при этом не делается никаких проверок (он как бы загружается из сохранёнки).

В случае модов и собранного на коленке all.spawn-а это допущение может оказаться неверным, что и приводит к таким вылетам.

 

Дополнение.

 

Невалидность вертекса здесь совершенно точно означает, что такого на уровне нет. Поди из левого all.spawn-а взят...

Изменено пользователем malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Капрал Хикс,

Необходимо знать перечень и нумерацию костей

Тебе нужна какая-либо тулза для работы с моделями. Могу посоветовать OGF_Master. С её помощью можно разобрать модель в текстовый формат, и там будет список костей. Но вроде как и другие есть на ту-же тему.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Dennis_Chikin,

подробно смысл вот такой конструкции

Получаем имя уровня для геймвертекса, при условии его валидности. Сохраняем его в локальную переменную map.

 

Vovan0792,

актор смотрит туда-же, куда и камера. Тебе нужен класс render_device. Посмотри описание в теме справочник.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Ирбис,

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

Можно попробовать поискать в XML ресурсах. Вполне возможно, что это просто окно. Тогда его можно поменять, текстуры растянуть и т.д.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Dennis_Chikin,

А где можно почитать описания нетпакетов ?

Эту информацию можно получить из acdc. Perl при этом знать не обязательно. Если включить логику, то восстановить последовательность загрузки конкретного класса не сложно.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Хемуль04,

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

Я может не понял твой вопрос, но с какой стати в группе имён для бандитов будут имена для сталкеров?

 

Может кто знает, есть ли способ генерировать имены сталкеров без stable_generate_fnames?

Всё, что есть по генерации имен было описано здесь. Другого нет.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Arhara,

а как? Колбек на хит? Память хитов? Так это же только если попал?

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Garry_Galler,

прошу прояснить один вопрос - предметы которые находятся в инвентаре имеют физическую оболочку или все таки по каким то причинам она у них куда-то исчезает.

Физической оболочки у предметов в инвентаре нет. Это в общем-то логично, зачем она там нужна?

 

 

Мелкая правка xrGame.dll для 6-го патча, которая позволяет выполнять drop_item для ящиков.

Самой либы в архиве нет, так что вроде правила форума не нарушены.

 

P.S.: И не забудьте сделать резервную копию!

Изменено пользователем malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

кровоSTALKER,

Можно ли прописать в конфиг, например, псевдособаки параметр custom_data?

Gonarh,

можно отлавливать переход псин в онлайн щюпать нетпакет и переписывать налету

К чему такие сложности? В секции объекта есть параметр custom_data.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

БоБеР,

Создал НПС. Желаю скриптом его удалить.

Назначь ему story_id, потом по нему и удалишь.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Garry_Galler,

Как вернуть инвентарным ящикам заспавненным через скрипт физическую оболочку?

Попробуй поиграться с флажками визуала.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Garry_Galler,

попробовал записать в нетпакет ящика значение которое в allspawn у всех ящиков есть = 0xffffff3f ...

ящик по-прежнему остался прозрачным.

значит это не работает.

Есть вероятность, что это как-то прописывается прямо в визуале. Тогда об этом возможно знают комрады, работающие с SDK.

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

Кроме того я обнаружил, что визуалы для тайников из all.spawn почему-то все невидимые. Это наводит на дополнительную мысль, что то, что мы видим в игре, - это просто часть местности, а невидимый визуал в этом случае просто накладывается на сетку местности.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Garry_Galler,

Это я тоже знаю - у дефолтных ящиков действительно визуал прописан совсем не тот который мы видим - а невидимый бокс.

Но пока не разобрался зачем это нужно и как это все понимать.

Понять это можно так. Это нужно для тайников. Есть, к примеру, огрызок трубы или обломок дерева. Там может быть тайник, а может и не быть. Хотя в игре тайники не исчезают, но может так было на каком-то этапе задумано. Оттуда и остался прозрачный визуал тайников.

Это в качестве гипотезы.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

TimeShift,

что за винда?

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Monnoroch,

игра в любом случае пробегает все аргивы от a до z и только потом проверяет на наличие распакованной геймдаты.

Это незатратная операция. Оглавление архивов - килобайты. И вообще это всё имеет (мизерное) значение только на этапе начальной загрузки.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Garry_Galler,

Есть ли какой-нибудь метод в сталкере, чтобы сравнить две игровые даты и получить разницу в днях между начальной и текущей?

класс CTime, смотри справочник. В классе есть функция разницы в секундах.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

max_max_08,

в первом приближении нельзя. Но можно задать его большим сразу, а потом скриптами его ограничивать, наподобие того, как в АМК ограничивают объём.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

goroskob,

на худ можно через статик, как все делают с разными индикатороами. Примеров полно. Можно также через AddDialogToRender. Эффект примерно такой-же, но будет также рисоваться поверх окна инвентаря. Если надо именно на окно инвентаря, то пути два. Первый, получить окно инвентаря через level.main_input_reciever() и прицепить к нему свой элемент. Второй - симитировать наложением отдельного элемента с помощью AddDialogToRender.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Само Хуньг,

тебе нужно создать диалог у твоего NPC и вместе с определённой фразой вызывать нужную функцию лечения. Про диалоги смотри в теме "справочник" или ищи статью на wiki.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

Wlad777,

Существует ли сравнимая функция для пробежки по содержимому inventory_box?

Только в ЗП. iterate_inventory_box

В ТЧ, как уже сказали, перебор всех объектов и сравнение по id родителя.

 

8push5,

почему такое неуважение к ЧН, в нем тоже есть эта замечательная функция.

Потому что я движком ЧН не занимаюсь. Неудобный и вообще какой-то промежуточный.

Изменено пользователем malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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


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

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