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

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


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

Тот же вылет на огср движке при добавлении пда из АМК 2, на чистом тч все работает. Все таки это какой то специфический баг.

Да по моему огср движок не вылетает при отсутствии текстур, просто пишет в лог информацию.

Скрытый текст

[error]Expression    : vl_Count
[error]Function      : _VertexStream::Lock
[error]File          : c:\projects\ogsr-engine\ogsr_engine\layers\xrrender\r_dstreams.cpp
[error]Line          : 63
[error]Description   : Missing or invalid texture! vl_Count=0.

Указаний в логе нет не на что не ссылается, просто вылет.

Я нашел причину вылета у себя. Надо в систем.лтх указать конфиги с текстурами для пда.:biggrin:

Ссылка на комментарий

@Stalkersof, дык и я про что... А то движок нипричом...

Ищи в xml-файлах ПДА описание едит_бокса ( edit_box ) и меняй текстуру на дефолтную (ui_string_01 , ui_string_02 и тд ), без пути <texture>ui\....</texture>

 

Названия текстур смотри в файлах

amk_pda_blank.xml
ui_common.xml
ui_hud.xml
ui_numpad.xml
ui_old_textures.xml
ui_statistics.xml

 

Поиск по выражению _back" ............

 

Ну или запихай нужные текстуры в ui_old_textures.dds (там много пустого места) и добавь описание в ui_old_textures.xml.

Я так зделал...

 

Зы. А вылета 

[error]Line          : 63
[error]Description   : Missing or invalid texture! vl_Count=0.

 

в FAGе АМК нету... 

 

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

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Ссылка на комментарий
41 минуту назад, nasar75 сказал:

@Stalkersof, дык и я про что... А то движок нипричом...

Я просто в system.ltx в секцию [texture_desc] зарегистрировал файлы amk_pda.xml и amk_pda_blank.xml из-за этого вылет. Получается прописана текстура в мульти текстуре, но движок ее найти не может. После регистрации файлов все нормально.

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

Ссылка на комментарий

@nasar75, Я же кидал вот тут и спавнер и телепорт для огср. Берите уже готовое.

  • Спасибо 2
 

Desktop: i7-11700k/Gigabyte Z590 D/64 Гб DDR4-3600 (2х32Гб)/GTX 1070Ti 8Гб/30" WQXGA+24" WUXGA (portrait)/ADATA Legend 960 4 Тб + 4HDD (17 Тб)/Thermaltake smart BM2 - 650Вт/Win10+QtTab

\\\ Дополнения к ОГСЕ 0693 /// \\\ OGSRmod ///\\\АМК-дискорд///\\\Балкон///

Ссылка на комментарий
5 часов назад, Stalkersof сказал:

по моему огср движок не вылетает при отсутствии текстур, просто пишет в лог информацию.

Он не вылетал при отсутствии текстур для моделей. и окружения.

А при отсутствии текстур для GUI, в особенности если отсутствующая текстура указана в XML-файле, оригинальный OGSR вполне себе вылетает, причем с не-таким логом, как это было в оригинале ТЧ. Это мне пришлось у себя править.

Изменено пользователем Zander_driver
  • Согласен 2
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
7 часов назад, Stalkersof сказал:

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

Именно. Та же проблема - с Мобилой модмейкера того же автора. А текстур там - мама не горюй, десятка 3 - 4.

И попробуй перелопать все и найди, какая именно потерялась. Я пробовал - убил два вечера, не нашёл.

  • Согласен 2

Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64

Ссылка на комментарий
1 час назад, Shadowman сказал:

Я пробовал - убил два вечера

 

Шел очередной вечер. Что-то стало проявляться...

ae8415c6749d2103da6376f406f7ad2ad4a42338

  • Нравится 3

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Ссылка на комментарий

Привет всем. Хочу сделать, чтобы актор не смог свистнуть определенную вещь. Добавил в bind_stalker.script в функцию actor_binder:on_item_take (obj) такой код:

if obj:section() == "exo_outfit" and not
        has_alife_info("инфопорция") then
        db.actor:give_info_portion("инфопорция")
    end

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

Иначе, получится, что добыл где-то игрок экзоскелет на другой локации, а на него здесь обиделись :biggrin:. Пробовал в скрипте и в ЛЕ просто переименовать этот  exo_outfit  - тогда не работает.

Может, возможно как-то получить предмет не по section, а по story id, например, или еще как-то, чтобы игра понимала, что имеется ввиду конкретный экземпляр экзоскелета?

Ссылка на комментарий

@Muzafir, можно сделать экзоскелету уникальную секцию, например, exo_outfit_q1, и по ней проверять. Либо, если эта экза через all.spawn заспавнена, делать проверку по имени объекта:

if obj:name() == "esc_exo_outfit_0001" then...

Либо присвоить story_id при спавне, либо в all.spawn, и проверять

if obj:story_id() == story_ids.forbidden_ekza then...

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

 

В общем, способов море.

Изменено пользователем naxac
  • Спасибо 1
  • Согласен 3

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

Всем привет! У меня 2 вопроса: 1) Где изменять визуалы группировок НПС и чтобы лутаемые костюмы соответствовали визуалу. 2) Где изменять вооружение НПС.

Ссылка на комментарий

@naxac,  Спасибо, думаю f obj:story_id()  - оптимальный вариант

а if obj:name()  - еще лучше, Работает по названию, которое дал в ЛЕ. И не нужно лишних story id

@ru trash_, Профили НПС описаны в файлах character_desc_имя локации.xml. Чтобы лутаемый костюм соответствовал профилю, нужно его в разделе supplies указать, наверное. Там же и вооружить можешь НПС по своему усмотрению.

Изменено пользователем Muzafir
Ссылка на комментарий
58 минут назад, ru trash_ сказал:

чтобы лутаемые костюмы соответствовали визуалу

В death_manager.script поставить проверку при обыске трупа и по его визуалу спавнить соответствующий костюм. Для понимания посмотри какой-нибудь аддон или мод с лутом брони, например старый IMM.

  • Спасибо 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

Всем привет! Есть такая функция:

Скрытый текст

function give_treasure()
    treasure_manager.get_treasure_manager():give_treasure("название тайника")
end

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

Секция on_use в логике, по видимому, не работает с трупами. Known info  - просто выдает инфопорцию, а функцию же надо еще как-то вызвать.

Ссылка на комментарий
Только что, Muzafir сказал:

А как можно прикрутить ее к трупу

xr_motivator.script

Вот тут

function motivator_binder:use_callback(obj, who)
  if not self.object:alive() then
    -- твоя функция

 

  • Спасибо 1
  • Согласен 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
7 часов назад, Muzafir сказал:

просто выдает инфопорцию, а функцию же надо еще как-то вызвать.

Так через инфопоршни можно вызывать функции. Это так, на будущее.

  • Согласен 5
Ссылка на комментарий

Как то еще, кроме того чтобы засунуть проверку в коллбэк правильного скрипта?

P.S. извиняюсь, если не точно сформулировал: как-то еще, кроме того что уже подсказал Zander_driver?

Спрашиваю, т.к. это срабатывает с некоторой задержкой, иногда когда второй раз нажимаю "обыскать". Боюсь, что первый раз может не сработать, и игрок просто пройдет мимо.

 

Ссылка на комментарий

@Muzafir, можно вызвать из treasure_manager, проверяя НПС по имени/профилю/группировке/и т.п. или не проверяя ничего, в функции CTreasure:use(npc):

Скрытый текст

if npc and db.actor then 
        if npc:name() == "finder" then
            krot_treasure.give_treasure_esc()
        end
    end

Тогда может выдать сразу два схрона, один из которых запланированный, а другой рандомный.

Изменено пользователем mole venomous
  • Спасибо 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

Привет. Заранее извиняюсь, если такой вопрос был (искал в этой теме - не нашёл). Как при нажатии на ветку диалога проиграть звуковой файл с озвучкой? Вроде смотрел конфиги, скрипты в игре, но ничего такого не увидел...

Ну, да поможет Вам F1, да сохранит Вас F2, во имя Control`а, Alt`а и святого Delet`а. Enter.

Ссылка на комментарий

@Котошметик, вызвать функцию через нужную реплику.

 

<phrase id="1">
	<text>text_1</text>
	<action>my_script.play_snd</action>
	<next>2</next>
</phrase>
<phrase id="2">
	<text>text_2</text>
	<action>my_script.play_snd2</action>
	<next>3</next>
</phrase>

Т.е добавляешь action. В скрипт пишешь такой код для проигрыша звука (это пример. Можешь найти другие, способов воспроизведения десятки, наверно)

function play_sound(sound,obj)
	if obj == nil then obj = db.actor end
	xr_sound.get_safe_sound_object(sound):play_no_feedback(obj, sound_object.s2d, 0, vector(), 1.0)
end

function play_snd()
    play_sound([[my_sound\dialog_1]])
end

function play_snd2()
    play_sound([[my_sound\papka\papka2\dialog_2]])
end

где my_sound имя папки в коренной папке sounds (ее указывать не надо), а dialog_1/2 имя аудио-файла без расширения *.ogg. Путь/имена могут быть любые, есс-но, это пример. Функция play_sound рабочая, пишется один раз и трогать ее не нужно. Если нужно добавить еще звуки, просто создаешь функцию аналогичную play_snd с другими путями ко звуку.

  • Спасибо 1
  • Согласен 2
  • Полезно 1
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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