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

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


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

Пардон, похоже я ненароком ввел всех в заблуждение.

При изучении логов я нашел одну особенность - при количестве секций в аллспавне менее 10991 происходит вышеупомянутый вылет. Поднял базовый аллспавн мода (последний номер секции в нем - 10990), удалил на пробу 1 секцию - и тот же вылет. Получается, если у меня были заспавнены новые объекты (количество стало 11006), то и появилась возможность удалить соответствующее число секций без последствий...

Если я все правильно понял, нужно уменьшить каким-то образом этот "минимум" = 10991. Но как?

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

 

 

команда на закрытие инвентаря?
if has_alife_info("ui_inventory") then
	level.start_stop_menu(level.main_input_receiver(), true)
end
 

10.png

 

 

Если я все правильно понял, нужно уменьшить каким-то образом этот "минимум" = 10991. Но как?

Для начала можно задаться вопросом откуда-почему этот минимум происходит.
что-то у меня закралось подозрение, а не делается ли у вас где-то в скриптах спавн или еще какое действие с объектом по его секции в аллспавне? как раз по значению 10991

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

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

Вот так да. Столкнулся с такой вещью, как ограничение кол-ва секций логики для объекта. Долго парил, почему у меня вылетает при создании игры с логом:

* Loading spawn registry...

 FATAL ERROR
[error]Expression    : error handler is invoked!
[error]Function      : invalid_parameter_handler
[error]File          : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
[error]Line          : 804
[error]Description   :

Оказывается, если у объекта больше 20 секций, то будет такой вылет. :az1000106:

Изменено пользователем HellRatz
  • Полезно 4

Zander_driver, 10991 - это как бы "рабочий" минимум. Получается, последняя секция 10990 + начальная секция под номером 0 = 10991, так я понимаю? При нормальной загрузке в логе идет такой отрезок:

Создание новой игры...
* Creating new game...
* Loading spawn registry...
* 11007 spawn points are successfully loaded
* Saving spawns...
* Saving objects...
* 20546 objects are successfully saved
* Game all.sav is successfully saved to file 'd:\games\s.t.a.l.k.e.r - shadow of chernobyl\userdata\savedgames\all.sav'
* New game is successfully created!
* phase time: 6932 ms

и так далее...

Вылет наблюдается уже при "10990 spawn points are successfully loaded", при "10991 spawn points are successfully loaded" игра еще грузится.

А вот теперь самое интересное: покопавшись, я выявил, что у моих новых секций строчки "spawn_id" дублируют уже имеющиеся. Я "как полагается" :)  довел их соответственно до 11006. И, как и ожидалось, при удалении одной единственной секции происходит тот самый вылет, но уже:

 

Создание новой игры...
* Creating new game...
* Loading spawn registry...
* 11006 spawn points are successfully loaded
stack trace:

0023:04BDF915 xrGame.dll

 

Выходит, удаление секций лимитируется самым последним spawn_id? Если да, то как от этого избавиться?

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

@Jekyll,насколько я понял из постов на других ресурсах, ты пытаешься вычистить секции аномалий. И при этом в используемом тобой моде, наверняка, есть скрипты "динамических аномалий". Попробуй поискать причину в них. т.е. отключи для начала "ДинАномалии".
  • Полезно 1

@Jekyll

Ну ты уже такого насочинял...

Если я не ошибаюсь, параметр spawn_id в секциях распакованного all.spawn'а не имеет никакого отношения непосредственно к игре и движку, а проставляется утилитой распаковки\запаковки all.spawn'а. Возьми из шапки темы "Universal ACDC и другие perl-скрипты" раздела "Инструментарий" нормальную версию uACDC, освой и не парься. Я, по необходимости, удалял любое кол-во секций в произвольном порядке и вышеуказанный параметр вообще не трогал в оставшихся секциях - после запаковки и последующей распаковки uACDC сам его обновит.

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

Ок, попробую предложенные варианты. Благодарю всех за участие.

 

Кстати, насчет сочинительства) Если нужно придумать описание монстра, его запчасти или артефакта - я к вашим услугам)

 

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Возвращаясь к смене визуала НПС. После долгих проб и ошибок получилось это:

function test_visual_clear()


local ltx = system_ini() -- Указали конфиги
if ltx then
local outfit = db.actor:item_in_slot(6) -- Как выглядит ГГ
if outfit then
local osect = outfit:section()
local visual = ltx:r_string(osect, "actor_visual") -- Получили visual_name = actors\svoboda\stalker_sv_nauchniy.ogf
local sim = alife()
local obj = sim:story_object(9700) -- Вот и жертва.
local pk = m_netpk.net_cse_visual(obj,nil) -- Запишем в пакет его visual_name
if pk:isOk() then -- Если пакет записан верно
local data = pk:get() -- получаем таблицу
if data ~= nil then
if visual ~= nil then
data.visual_name = visual -- присвоим нужный визуал ; cse_visual properties
pk:set(data) -- и наконец то присвоим изменение.
local description = pk:dumpDesc() -- возвращает строку, содержащую читабельное описание пакета (его можно, например, вывести в лог)
end
end
end
end
end
end

Вставлял в код проверки, всё проходит до data.visual_name = visual, а pk:set(data) уже не срабатывает. Как впрочем и смена визуала.

В se_stalker.script добавил

if self.cb_netpk then self.cb_netpk(self, packet) end -- коллбэк для изменения свойств пакета
cse_alife_human_stalker.STATE_Write (self, packet)

Подскажите, где ошибка.

Использую m_netpk

@ins33

Не так давно, я тут находил схему "Компаньоны". Там, среди прочего, есть переодевание НПСа, взятого компаньоном, в более крутую броню. Это то, что тебе нуно. Подсмотри там, как реализовано...

 

Насчет твоей ф-ции - чтоб применился новый визуал непися, необходимо "передернуть" его офф\он лайн. Это есть в m_netpk...

Мододелы, как сделать качание оружия в руках гг при прицеливании (как в lost alpha). Только не анимацией как в ЧН и ЗП!

Сейчас написал так:

function test_visual()
local sobj = alife():object("esc_wolf")
if sobj then
local pk = get_netpk(sobj,0)
if pk:isOk() then
local visuals = {[[actors\hero\stalker_killer]]}
local status = pk:setCallback( function(data)
data.visual_name = visuals
end )
end
end
end

Волк на долю секунды пропадает, поворачивается на ЮГ(?), визуал не меняет.

Подскажите, где ошибка:

local visuals = {[[actors\hero\stalker_killer]]}

или тут

data.visual_name = visuals

Или у меня полностью не правильный подход?

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

@ins33, visuals у тебя - это же массив. А в пакете визуал - строка.

То есть, должно быть так:

data.visual_name = [[actors\hero\stalker_killer]]
Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

@ins33, либо так

local status = pk:setCallback( { visual_name = [[actors\hero\stalker_killer]] })

либо так

local status = pk:setCallback(function(data)
	data.visual_name = [[actors\hero\stalker_killer]]
end)

@Сусаль, ответил в скриптовании...

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

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

Здравствуйте! Как поменять название и описание предметов в инвентаре? Подскажите пожалуйста. Простите, если пишу не в ту тему.

Выручайте, камрады.

Спавню сталкера-зомбированного (это важно) такой конструкцией, чтоб логику прикрутить:

 

local obj = alife():create("stalker_zombied",vector():set(132.84954833984,8.5610275268555,-19.224378585815),1152755,4019)
local params=amk.read_stalker_params(obj)
params.custom="[logic]\ncfg = scripts\\zombied1.ltx"
amk.write_stalker_params(params,obj)

 

 

Сама логика:

 

[logic]
active = walker
on_death = death

[walker]
path_walk = pred_zombied_path1
sound_idle = state

[death]
on_info = %+jup_und_zombied1_death%

 

 

Сталкер спавнится, но спавнится нейтралом, а не зомбированным. Собсно, вопрос: почему? И как сие исправить?

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

Сталкер - наше всё!

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

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

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

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

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

Войти

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

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

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