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

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

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

@Ренсон,  Емнип  для секции [zone_flame_small] \config\misc\zone_kampfire.ltx:

effective_radius            = 1.3 ;размер радиуса в процентах от оригинального, где действует зона

;----------- Anomaly settings -----------------------
min_start_power        = 0.39
max_start_power        = 0.40

Но точно не помню, в наличии только файлы - нет возможности проверить в игре.

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

Добрый день всем. Столкнулся с таким вопросом, связанным со спавном гитар и гармошек у НПС. Заметил это потому, что в оригинале в ТЧ они спавнились через файл character_items.xml, с некой вероятностью:

harmonica_a = 1, prob=0.7 \n
guitar_a = 1, prob=0.7 \n

Далее через файлы, которые находятся в папке E:\Games\STALKER Shadow of Chernobyl RU\gamedataUE\config\gameplay к спавну патронов и другой амуниции сталкеров прибавлялся спавн вещей из файлика character_items.xml, а именно  #include "gameplay\character_items.xml" \n.
В современной версии Солянки 2016 в файле character_items.xml нет упоминаний ни гитары, ни гармошки, из-за этого сталкеры очень редко играют на инструментах, НО, у некоторых сталкеров, не особо известных (т.е. неквестовых) каким-то образом в инвентаре находится то гармошка, то гитара (то есть по скрипту, если у них они есть, то они начинают играть с некой вероятностью, а они играют изредка).
Вопрос, каким образом эти вещи попадают к ним в инвентарь?

Изменено пользователем VerterVantso
Ссылка на комментарий
11 часов назад, Ренсон сказал:

и не могу понять: какой параметр отвечает за урон, которые они наносят?

Скачайте файлы, и просто сравните изменённые с оригинальными по содержимому - https://www.amk-team.ru/forum/topic/13335-pravki-i-modifikacii-dlya-nlc-7/?do=findComment&comment=1257428

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

Похоже, что таки не то.

А откуда такой вывод? Это именно тот параметр, который отличает аномалии с приставками в названиях weak\normal\strong.

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

Всем доброго времени суток. Подскажите какие файлы задействованы в патрулировании военными железнодорожной насыпи на кордоне, мод - АМК 1.4.1

Попытался сделать респаун патруля военных на ж.д. насыпи на локации Кордон. Но у меня ничего не получилось. На насыпи появилось 5 патрулирующих вояк, но после их уничтожения респаун патрульных не происходит.

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

Ниже описано в подробностях как и что я делал.

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

 

1) В all.spawn добавил в файл - alife_l01_escape - Смарт, рестриктор, респаун и 5 вояк. И  пути в файл - way_l01_escape

2) В gamedata\scripts\ добавил - gulag_amk.script и прописал новый гулаг в xr_gulag.script

3) В gamedata\config\misc\ добавил - gulag_amk.ltx и прописал - (#include "gulag_amk.ltx") в - gulag_tasks.ltx

4) В gamedata\config\scripts\ добавил - amk\logic_npc. Хотя я не нашёл где используется данная логика но на всякий случай добавил и её. 

Гулаг на свалке я не добавлял, возможно ошибка в скрипте? В gamedata\scripts\gulag_amk.script. Из скрипта как мне кажется я убрал всё что не имеет  отношения к патрулю на насыпи.

Вот ссылка на редактируемые файлы - https://yadi.sk/d/HXtgOebfU6r7tg

То что убрано закомментировано  вот таким образом  --[[.........]]--

Вот отредактированный gulag_amk.script:

=========================================================================================================================


local t = {}

function load_job(sj, gname, type, squad, groups)    

    -- ГУЛАГ ВОЕННЫХ НА НАСЫПИ
    if type == "amk_embankment" then
        t = { section = "logic@amk_embankment_soldier1",
            idle = 0,
            prior = 10, state = {0},
            in_rest = "", out_rest = "amk_embankment_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_soldier2",
            idle = 0,
            prior = 10, state = {0},
            in_rest = "", out_rest = "amk_embankment_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_soldier3",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = "amk_embankment_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_soldier4",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = "amk_embankment_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_soldier5",
            idle = 0,
            prior = 15, state = {0, 1},
            in_rest = "", out_rest = "amk_embankment_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_sleeper1",
            idle = 0,
            prior = 10, state = {1},
            in_rest = "", out_rest = "escape_bridge_zone"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_sleeper2",
            idle = 0,
            prior = 10, state = {1},
            in_rest = "", out_rest = "escape_bridge_zone"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_sleeper3",
            idle = 0,
            prior = 10, state = {1},
            in_rest = "", out_rest = "escape_bridge_zone"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_embankment_sleeper4",
            idle = 0,
            prior = 10, state = {1},
            in_rest = "", out_rest = "escape_bridge_zone"
        }
        table.insert(sj, t)
    end

    --[[
    
    
    -- ГУЛАГ МИНИ-БАРА НА СВАЛКЕ
    if type == "amk_mini_bar" then
        t = { section = "logic@amk_mini_bar_kulinar",
            idle = 0,
            prior = 25, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor",
            predicate = function(obj_info)
                            return obj_info.profile_name == "amk_artem_kulinar"
                        end
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_voron",
            idle = 0,
            prior = 25, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor",
            predicate = function(obj_info)
                            return obj_info.profile_name == "amk_vitek_voron"
                        end
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker1",
            idle = 0,
            prior = 5, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker2",
            idle = 0,
            prior = 15, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker3",
            idle = 0,
            prior = 15, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker4",
            idle = 0,
            prior = 5, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker5",
            idle = 0,
            prior = 15, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker6",
            idle = 0,
            prior = 5, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker7",
            idle = 0,
            prior = 5, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker8",
            idle = 0,
            prior = 10, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker9",
            idle = 0,
            prior = 20, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker10",
            idle = 0,
            prior = 20, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker11",
            idle = 0,
            prior = 20, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)
        t = { section = "logic@amk_mini_bar_stalker1_kamp",
            idle = 0,
            prior = 10, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)        
        t = { section = "logic@amk_mini_bar_stalker1_kamp",
            idle = 0,
            prior = 10, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)    
        t = { section = "logic@amk_mini_bar_stalker1_kamp",
            idle = 0,
            prior = 10, state = {0, 1},
            in_rest = "", out_rest = "amk_mini_bar_restrictor"
        }
        table.insert(sj, t)    
    end
    ]]--
end


function load_states(gname, type)
    if type == "amk_embankment" then
        return function(gulag)
            if db.actor ~= nil then
                if ( level.get_time_hours() >= 5 and level.get_time_hours() <= 22 ) then
                    return 0  
                else
                    return 1  
                end
            else
                return gulag.state
            end
        end
    end

    --[[
    
    if type == "amk_mini_bar" then
        return function(gulag)
            if db.actor ~= nil then
                if ( level.get_time_hours() >= 5 and level.get_time_hours() <= 22 ) then
                    return 0  
                else
                    return 1  
                end
            else
                return gulag.state
            end
        end
    end
    ]]--
end


function load_ltx(gname, type)
    return nil
end

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)
    if gulag_type == "amk_embankment" then
        return npc_community == "military"
    end
--[[    
    if gulag_type == "amk_mini_bar" then
        return npc_community == "stalker"
    end
]]--
    return false
end

function checkMonster(npc_community, gulag_type)
    return false
end

=============================================================================================

 

 

Всё разобрался. Респаун патруля военных на ж.д. насыпи работает. Если кому нужно вот ссылка https://yadi.sk/d/HXtgOebfU6r7tg

Правда в all.spawn придётся править. 

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

Ребят, кто может объяснить, как поменять видеодорожку в ТЧ? Например сон в Х18 хочу поменять на другое, но как, я вообще не понимаю.

Свобода - лучшие сталкеры в зоне!

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

@ed_rez, не, ты меня чуть неправильно понял. Я имею ввиду саму дорожку поменять (например сон с крысами поменять на что нибудь другое) но как именно это сделать?

Свобода - лучшие сталкеры в зоне!

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

@Svobodovec_Arbuz

им можно любой видеоформат пожать в Ogg Theora, необходимый нам.

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

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

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

А как увеличить время разговора Сидоровича, когда он рассказывает о ПДА? А то они обрываются на каком моменте и начинается следующий диалог.

 

Свобода - лучшие сталкеры в зоне!

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

Рабочая, но неиспользуемая в оригинале тч, схема (fx_sound.script) проигрывания звуков:

гг зашёл в рестриктор (или другие условия), запуск схемы, которая начинает постоянно проигрывать звук по пути, пока не дойдёт до точки с флагом |sig=completed (обязательно или вылет), также работает стандартный sound_end. Скорость движения зависит от velocity (больше = быстрее). Сам путь должен быть из 2-х и более точек.

[logic]
active = sr_idle@start

[sr_idle@start]
on_info = {=actor_in_zone(restrictor_name)} fx_sound@1
;on_info2 = {+info} fx_sound@1

[fx_sound@1]
path = fx_sound_way
sound = ambient\random\rnd_chimes
velocity = 15 ; speed sound
on_signal = completed | fx_sound@2
; on_signal2 = sound_end | sr_idle@end

[fx_sound@2]
path = fx_sound_way_2
sound = ambient\random\rnd_doubler
velocity = 25
on_signal = completed | sr_idle@end

[sr_idle@end]

 

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

Всем привет. Нашел модель монстра с костями, перенес все это дело в SDK, сделал пару анимаций (в SDK нормально работают):

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

40f6d1e7f9c7.png



 При прогрузке данной модели в игре вылет с такой ошибкой:

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

Expression    : BI_NONE != bone
Function      : CDamageManager::load_section
File          : E:\stalker\sources\trunk\xr_3da\xrGame\damage_manager.cpp
Line          : 85
Description   : bip01_head

Собственно, понятно, что кости не оригинальные и из-за них проблема. Можно ли как то исправить?

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

@FinNic, шейпы настроены? Повреждения прописаны - #include "models\capture\... ?

dfd87321c98d44e422e1b19dc80d02185abdcb36

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

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

@nasar75, Судя по логу, как раз таки на повреждения и ругается. Повреждения прописывал от кабана. Видимо нужно свои прописывать, т.к. кости другие. Есть инфа, как это сделать?

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

Добрый день.

Ловлю вылет при спавне в трупах новых патронов. Добавил патроны 7.62х39, зарегал их в _g.script, прописал их добавленному в игру (и прописанному в mp_ranks) СКСу и зарегистрировал в death_generic.ltx, прописал коэффициенты/количество в death_by_levels.ltx, death_by_communities.ltx, death_by_count.ltx, однако при убийстве НПС вылет с логом:

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...w of chernobyl\gamedata\scripts\death_manager.script:139: attempt to index field '?' (a nil value)

Искал везде, но ответ не могу найти уже несколько лет. Игра: Сталкер ТЧ 1.0004. 

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

@FinNic, вот настройка от паука из Доппельгангер

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

 

;------ disable params ---------------------------------------------------------

[disable]
linear_factor        = 1.0
angular_factor        = 1.0


;------ particle bones ---------------------------------------------------------

[particle_bones]
bip01_head             = 0,0,0
bip01_spine                 = 0,0,0
;bone                 = bip01_l_forearm,0,0,0
;bone                 = bip01_r_forearm,0,0,0
;bone                 = bip01_l_calf,0,0,0
;bone                 = bip01_r_calf,0,0,0


;------ foot bones -------------------------------------------------------------

[foot_bones]
front_left             = bip01_l_toe05
front_right         = bip01_r_toe05
back_right             = bip01_r_toe07
back_left              = bip01_l_toe07


;------ capture params ---------------------------------------------------------

[capture]
bone                = bip01_spine1             ; bone for capture
distance            = 0.3                ; distance - less this distance between bone and capture taget object is captured
time_limit           = 3                        ; max time for trying to capture object "sec"
pull_force           = 8000                    ; max force used to bring the taget to capture bone
pull_distance       = 1.4                    ; max distance taget can be puled
velocity_scale       = 0.022                    ; velocity scale for pulling 1- normal
capture_force        = 116500                ; max force for holding taget


;------ End params 

 

Кости, ес-но, нада прописывать свои от своей модели...

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

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

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...