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

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


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

Люди, спасайте. Решил я перепройти ЧН, Вики меня просветила про часть особого оружия, которое выглядит интересным, но в игре не использутся(а не как раньше - только увеличили магазин, увеличили скорострельность и т.д.). LR-301 "Левша", SPAS-12 АВТ, Винторез-ВАЛ(оружие-гибрид), ну может еще что-то. Поставил мод OGSM 1.8.2. Захотел восстановить это оружие, но для начала посмотреть на его конфиги. Не могу конфиги найти! В папке weapons конфигов уникального оружия нет, попробовал гуглить - файла unique_items.ltx в папке misc тоже нет, о котором гугл упоминает. Как теперь найти или восстановить собственно конфиги оружия? Думаю, что прописать его персонажам или в качестве награды за квесты - достаточно просто, в первую очередь интересуют конфиги.

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

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

@MegaStalker не слышал про то, что ты написал...

Есть в конфигах такого плана записи:

; Уникальные
;-----------------------------------------------------------------------------

[wpn_ak74_minigame]:wpn_ak74    ;new weapon for minigame "Shooting"

это внизу в конфе АК прописано. В других конфах тоже есть по мелочи дописки, но это не то пальто думаю. 

Винторез-ВАЛ - что это? Должна быть модель специфичная... не встречал.

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

@MegaStalker не слышал про то, что ты написал...

Есть в конфигах такого плана записи:

; Уникальные
;-----------------------------------------------------------------------------

[wpn_ak74_minigame]:wpn_ak74    ;new weapon for minigame "Shooting"

это внизу в конфе АК прописано. В других конфах тоже есть по мелочи дописки, но это не то пальто думаю. 

Винторез-ВАЛ - что это? Должна быть модель специфичная... не встречал.


Это вырезанный контент, насколько я понял. Кину ниже ссылки на пару статей.

 

https://stalker.fandom.com/ru/wiki/ТПс_«Левша»

 

https://stalker.fandom.com/ru/wiki/Винтарь-ЛАВИНА

 

https://stalker.fandom.com/ru/wiki/СВ-Ам

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

Здравствуйте.
В общем дело такое: в ЧН почему-то отключёны звуки раненых НПС, то есть все они лежат ранеными молча. Я решил это исправить, для этого отредактировать файл xr.wounded.script,  а конкретно эту часть: 
   

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

 

 wound_manager_state = xr_logic.pstor_retrieve(self.object, "wounded_state")
     wound_manager_sound = xr_logic.pstor_retrieve(self.object, "wounded_sound")
    local synsound = nil
    if wound_manager_state == "true" then
        local h = hit()
        h.power = 0
        h.direction = self.object:direction()
        h.bone = "bip01_spine"
        h.draftsman = db.actor
        h.impulse = 0
        h.type = hit.wound
        self.object:hit(h)
    else
        -- является ли текущий звук синхронным для текущего стейта
        for k,v in pairs(self.a.syndata) do
            if v.state == wound_manager_state and
               v.sound == wound_manager_sound
            then
                synsound = wound_manager_sound
            end
        end
        --' жрание аптечек и прочей срани.
        --' Использовать можно только если нам можно сейчас есть аптечку.
        if self.a.use_medkit == true then
            wound_manager:eat_medkit()
        end

        local emerg = nil
        if wound_manager_state == "psy_shoot" then
            emerg = {animation_nout = true}
        end
        state_mgr.set_state(self.object, wound_manager_state, nil, nil, {look_object = victim}, emerg, synsound)
    end

    if synsound == nil then
        -- нужно отыграть фоновый
        if self.sound ~= wound_manager_sound then
            self.sound = wound_manager_sound
            if self.sound == "nil" then
--                xr_sound.set_sound(self.object, nil)
            else
--                xr_sound.set_sound(self.object, wound_manager_sound)
            end
        end
    else
        -- нужно зарубить фоновый
        if self.sound ~= nil then
            self.sound = "nil"
--            xr_sound.set_sound(self.object, nil)
        end
    end
end

 

Сначала я попытался просто раскомментировать строки (чтобы стало как SoC), затем поставил local перед wound_manager_sound, затем заменил xr_sound.set_sound(self.object  на xr_sound.set_sound_play(self.object:id()(), но постоянно сталкиваюсь с следующей ошибкой 

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

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp
[error]Line          : 180
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....t.a.l.k.e.r. - clear sky\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil)
 При том в логе пишется перед вылетом: ! [LUA][ERROR] ERROR: INCORRECT LOAD [_sound_actor_save].[0][138229].


Помогите кто нибудь, вообще не могу понять что тут за проблема, даже приблизительно.

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

Здравствуйте.
В общем дело такое: в ЧН почему-то отключёны звуки раненых НПС, то есть все они лежат ранеными молча. Я решил это исправить, для этого отредактировать файл xr.wounded.script,  а конкретно эту часть: 
   

  xr.wounded.script (Скрыть)

 

 wound_manager_state = xr_logic.pstor_retrieve(self.object, "wounded_state")
     wound_manager_sound = xr_logic.pstor_retrieve(self.object, "wounded_sound")
    local synsound = nil
    if wound_manager_state == "true" then
        local h = hit()
        h.power = 0
        h.direction = self.object:direction()
        h.bone = "bip01_spine"
        h.draftsman = db.actor
        h.impulse = 0
        h.type = hit.wound
        self.object:hit(h)
    else
        -- является ли текущий звук синхронным для текущего стейта
        for k,v in pairs(self.a.syndata) do
            if v.state == wound_manager_state and
               v.sound == wound_manager_sound
            then
                synsound = wound_manager_sound
            end
        end
        --' жрание аптечек и прочей срани.
        --' Использовать можно только если нам можно сейчас есть аптечку.
        if self.a.use_medkit == true then
            wound_manager:eat_medkit()
        end

        local emerg = nil
        if wound_manager_state == "psy_shoot" then
            emerg = {animation_nout = true}
        end
        state_mgr.set_state(self.object, wound_manager_state, nil, nil, {look_object = victim}, emerg, synsound)
    end

    if synsound == nil then
        -- нужно отыграть фоновый
        if self.sound ~= wound_manager_sound then
            self.sound = wound_manager_sound
            if self.sound == "nil" then
--                xr_sound.set_sound(self.object, nil)
            else
--                xr_sound.set_sound(self.object, wound_manager_sound)
            end
        end
    else
        -- нужно зарубить фоновый
        if self.sound ~= nil then
            self.sound = "nil"
--            xr_sound.set_sound(self.object, nil)
        end
    end
end

 

Сначала я попытался просто раскомментировать строки (чтобы стало как SoC), затем поставил local перед wound_manager_sound, затем заменил xr_sound.set_sound(self.object  на xr_sound.set_sound_play(self.object:id()(), но постоянно сталкиваюсь с следующей ошибкой 

  Error (Скрыть)

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp
[error]Line          : 180
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....t.a.l.k.e.r. - clear sky\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil)
 При том в логе пишется перед вылетом: ! [LUA][ERROR] ERROR: INCORRECT LOAD [_sound_actor_save].[0][138229].


Помогите кто нибудь, вообще не могу понять что тут за проблема, даже приблизительно.


Ну вот тебе же пишут: _g.script, что-то не так с форматом. Попробуй сравнить фрагменты из SoC и CS, вдруг там найдется решение. И кстати, если заработает - скинешь мне? Хочу посмотреть, опробовать.

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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


Ну вот тебе же пишут: _g.script, что-то не так с форматом. Попробуй сравнить фрагменты из SoC и CS, вдруг там найдется решение. И кстати, если заработает - скинешь мне? Хочу посмотреть, опробовать.

Да уж сравнивал, и SoC файлом, и c COP файлом, даже копировал эти фрагменты, не помогает. Последняя надежда, на то что проблема в script_sound, там какое-то странное несовпадение с аналогичным в COP, но пока понять не могу почему. А лог на _g.script — самый бесполезный, ибо он вообще информации не даёт, как я понял. Этот лог у меня вообще выскакивал даже когда я просто в профиле бандита, в строчке:<snd_config>characters_voice\human_01\bandit\</snd_config> пробел лишний поставил. Вот и вся информационная "польза" этого лога, который ссылался на _g.script, вообще не имевшего к ошибке отношения. Тут единственная зацепка это:! [LUA][ERROR] ERROR: INCORRECT LOAD [_sound_actor_save].[0][138229], но что это значит не могу понять. Я скину конечно, если смогу от ошибки избавиться

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

Да уж сравнивал, и SoC файлом, и c COP файлом, даже копировал эти фрагменты, не помогает. Последняя надежда, на то что проблема в script_sound, там какое-то странное несовпадение с аналогичным в COP, но пока понять не могу почему. А лог на _g.script — самый бесполезный, ибо он вообще информации не даёт, как я понял. Этот лог у меня вообще выскакивал даже когда я просто в профиле бандита, в строчке:<snd_config>characters_voice\human_01\bandit\</snd_config> пробел лишний поставил. Вот и вся информационная "польза" этого лога, который ссылался на _g.script, вообще не имевшего к ошибке отношения. Тут единственная зацепка это:! [LUA][ERROR] ERROR: INCORRECT LOAD [_sound_actor_save].[0][138229], но что это значит не могу понять. Я скину конечно, если смогу от ошибки избавиться

Трудно сказать, т.к. я сам не очень разбираюсь в этом. Могу лишь подозревать, что какая-то беда со звуком - как-то он неправильно загружается(incorrect load).

Добавлено warwer,

Зачем цитировать весь предыдущий пост?! Нет смысла и запрещено правилами форума.

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

Точнее не самим звуком, добавляя / удаляя секции звуков в script_sound_карта.ltx нужна новая игра. Так сделано в xr_sound.script (actor_save / actor_load), что список звук.тем сохраняется в сейв и потом читается (а нужно динамически). Поэтому, после патчей для модов чн/зп с такими правками, всегда нужна новая игра.

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

 h0N0r 

Спасибо большое, это помогло!
Так вообщем выкладываю результат:
В файле xr_wounded.script 

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

 

wound_manager_state = xr_logic.pstor_retrieve(self.object, "wounded_state")
    wound_manager_sound = xr_logic.pstor_retrieve(self.object, "wounded_sound")
    local synsound = nil
    if wound_manager_state == "true" then
        local h = hit()
        h.power = 0
        h.direction = self.object:direction()
        h.bone = "bip01_spine"
        h.draftsman = db.actor
        h.impulse = 0
        h.type = hit.wound
        self.object:hit(h)
    else
        -- является ли текущий звук синхронным для текущего стейта
        for k,v in pairs(self.a.syndata) do
            if v.state == wound_manager_state and
               v.sound == wound_manager_sound
            then
                synsound = wound_manager_sound
            end
        end
        --' жрание аптечек и прочей срани.
        --' Использовать можно только если нам можно сейчас есть аптечку.
        if self.a.use_medkit == true then
            wound_manager:eat_medkit()
        end

        local emerg = nil
        if wound_manager_state == "psy_shoot" then
            emerg = {animation_nout = true}
        end
        state_mgr.set_state(self.object, wound_manager_state, nil, nil, {look_object = victim}, emerg, synsound)
    end

    if synsound == nil then
        -- нужно отыграть фоновый
        if self.sound ~= wound_manager_sound then
            self.sound = wound_manager_sound
            if self.sound == "nil" then
--                xr_sound.set_sound(self.object, nil)
            else
--                xr_sound.set_sound(self.object, wound_manager_sound)
            end
        end
    else
        -- нужно зарубить фоновый
        if self.sound ~= nil then
            self.sound = "nil"
--            xr_sound.set_sound(self.object, nil)
        end
    end
end

 

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

 

wound_manager_state = xr_logic.pstor_retrieve(self.object, "wounded_state")
    wound_manager_sound = xr_logic.pstor_retrieve(self.object, "wounded_sound")
    if wound_manager_state == "true" then
        local h = hit()
        h.power = 0
        h.direction = self.object:direction()
        h.bone = "bip01_spine"
        h.draftsman = db.actor
        h.impulse = 0
        h.type = hit.wound
        self.object:hit(h)
    else
        --' жрание аптечек и прочей срани.
        --' Использовать можно только если нам можно сейчас есть аптечку.
        if self.a.use_medkit == true then
            wound_manager:eat_medkit()
        end

        if tostring(wound_manager_state) == "nil" then
            print_table(self.a.hp_state)
            print_table(self.a.hp_state_see)
            abort("wrong wounded animation %s", self.object:name())
        end
        state_mgr.set_state(self.object, wound_manager_state, nil, nil, {look_object = victim}, nil)
    end

    -- нужно отыграть фоновый
    if wound_manager_sound == "nil" then
        xr_sound.set_sound_play(self.object:id(), nil)
    else
        xr_sound.set_sound_play(self.object:id(), wound_manager_sound)
    end
end

 

дальше в файле script_sound.ltx добавляем в начале в список

help_heavy

далее 

[help_heavy]
type = npc
npc_prefix = true
avail_communities = (группировки которые будут озвучиваться )
path = help\wounded_heavy\help_
shuffle = rnd
idle = 4,8,100

 

Начинайте новую игру

 

Ещё я восстановил звуки спящим НПС (может кому понадобиться):

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

 

В файле xr_sleeper.script заменяем строчки 

--        xr_sound.set_sound(self.object, "sleep")

--  xr_sound.set_sound(self.object, nil)

на строчки:

xr_sound.set_sound_play(self.object:id(), "sleep")

xr_sound.set_sound_play(self.object:id(), nil)

дальше в файле script_sound.ltx добавляем в начале в список

sleep

далее 

[sleep]
type = npc
npc_prefix = true
avail_communities = (группировки которые будут озвучиваться )
path = states\sleep\sleep_
shuffle = rnd
idle = 7,13,100

 

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

Нужна помощь. Взялся восстанавливать уникальное оружие, которое из ЧН отменили - информация о нем на Вики есть. За базу взял OGSM. Вот взял я один ствол, Большой Бэн. Описание - есть. Конфиги - есть(сделано как часть файла w_desert_eagle.ltx). В игру оружие тоже прописал(пораскидывал по тайникам и НПС). В тайнике нашел - работает. Но не улучшается! Ни один техник его не хочет апгрейдить - у него не появляются апгрейды, только чинить могу.

 

Скрытый текст
[wpn_eagle_m1]:wpn_desert_eagle	;Большой Бэн
$spawn             				= "weapons\uniq\wpn_eagle_m1"	

upgrades                			= up_gr_ab_desert_eagle, up_gr_cd_desert_eagle, up_gr_e_desert_eagle, up_gr_f_desert_eagle
installed_upgrades      			=
upgrade_scheme          			= upgrade_scheme_u10a_ogsm

description						= st_wpn_eagle_m1_descr
inv_name						= st_wpn_eagle_m1
inv_name_short					= st_wpn_eagle_m1

ammo_class						= ammo_9x39_sp5, ammo_9x39_ap, ammo_9x39_pab9
hit_power               		= 0.77
condition_shot_dec				= 0.0004

 

 

Подскажите, где я ошибся, что не так делаю? Почему обычное оружие механики улучшают, а созданные мной "уникумы" не хотят?

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

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

@MegaStalker, потому что их надо добавить в скрипт.

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

Смотри в скриптах.

wpn вбей в поиск по файлам в скриптах чистой игры, и найдёшь.

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

@MegaStalker

Списки для каждого механика: [configs\misc\stalkers_upgrade_info.ltx].

Схемы прокачки: [configs\ui\inventory_upgrade.xml] + то же для 16:9.

 

  • Полезно 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@Norman Eisenherz, а в скрипте наверное тогда чтоб исключать определённый ствол из ремонта.

Чтоб нельзя его было ремонтировать.

Ну да, точно, добавлял туда все уники. Правда у меня уники наоборот были. Типа изношенные стволы, и не подлежат ремонту.

 

Позабывал уже всё, надо будет всё снова вспоминать :)

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

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

P.S. Всем спасибо за помощь, разобрался. Не хватало ссылки в файле inventory_upgrades, теперь все работает.

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

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

Кто нибудь знает за что отвечает строчка:
distanse = значение в цифрах (например 100) в типовых квестах ЧН "принеси что нибудь"? Это дистанция отряда НПС до квестового предмета в которой возможна выдача квеста?

Не соответствует. N6260

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

c70a64cb3541c2c.jpg
Еще вопрос: кто нибудь делал, например в ОГСМ и т.д., фикс исчезновения предметов на станции переработки аномальной дряни на болотах ЧН? Помню были такие фиксы для "фантомных" гаражей в Припяти в ТЧ.

И еще вопрос: Как прописать новые ID в game_story_ids? Простое присвоение новых номеров ведет к вылетам с отсылкой, что ID не найден.

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

Не соответствует. N6260

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

@ZeeK distanse =  не используется.

Про исчезновения - не понял...

Стори ай ди присваивается в аллспавне, допрописывается в конфигах.

  • Полезно 1
Ссылка на комментарий
Цитата

Про исчезновения - не понял...

 

@warwer, судя по всему, имелась ввиду проблема с отображением части геометрии уровня при нахождении в определёной точке. Пример с аналогичной проблемой из ЗП.

 

Изменено пользователем Painter
Ссылка на комментарий
1 час назад, warwer сказал:

Стори ай ди присваивается в аллспавне, допрописывается в конфигах.

1) Можно поподробнее?

2) Да,  Painter верно отметил про исчезающую геометрию.

Не соответствует. N6260

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

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

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

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

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

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

Войти

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

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

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