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

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


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

29 минут назад, ALEKCZY сказал:

как правильно должен быть установлен компилятор/декомпилятор shaders.xr?

Первый - же ответ на твой запрос в поисковике   

https://xray-engine.org/index.php?title=shaders.xr_compiler/decompiler_(shaders.xr_cdc)

 

Установка:
1 Установите ActivePerl.
2 Распакуйте архив со скриптом в нужную папку.
3 Скопируйте библиотеку модулей stkutils в папку с библиотеками Perl (например, C:\Perl\lib) или в папку со скриптом.

Ты всё правильно сделал?

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

@ted.80 да, говорю же, я только как уже не устанавливал, и по инструкции и нет. Даже Active Perl переустановил, все сделал, но тупо батник даже не запускается

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

@ALEKCZY 

Попробуй запустить какую-нибудь другую прогу на перл-скриптах, например acdc распаковать спавн. Если не заработает, значит при установке перла не включил галочку "PATH environment" или что-то похожее. В его руководстве вроде об этом:

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

If you run Perl at the command prompt, the script will be executed by the first Perl.exe it encounters in the list of paths in the PATH environment variable. To ensure the script is executed by the Perl interpreter of your choice, specify the complete path to the Perl.exe you want to use. (Typing perl -v at the command prompt will tell you which version of Perl is currently first in your PATH)

Installing ActivePerl will change your Path environment variable and may change registry settings, such as file associations, which may affect your Web server. If you want to use a previously installed copy of Perl, you will need to modify these settings.

 

в командной строке выполнить:

ftype PerlScript=perl.exe %1 %*
assoc .pl=PerlScript

 

5 часов назад, ALEKCZY сказал:

sxrcdc.pl -d shaders.xr -out shaders

допиши -mode ltx, чтобы данные были как обычный ltx-конфиг, а не бин.файлы.

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

@ALEKCZY 

При наличии антивируса, он мог заблокировать запуск батника. Если спавн распаковывается, то скопируй в папку acdc только sxrcdc.pl, сделай копию батника:

sxrcdc.pl -d shaders.xr -o shaders_dir -mode ltx

и так можно, если выше не запускается:

perl sxrcdc.pl -d shaders.xr -o shaders_dir -mode ltx

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

Не получается написать логику неписю. Чтоб после диалога, нпс бежит по раставленным вэй поинтам до определенной точки, останавливается и дальше мы продолжаем с ним диалог. Как ее написать?

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

и дальше мы продолжаем с ним диалог

Нужно окончить первый диалог, в конце которого будет выдаваться infoportion.

По этому инфо НПС переключится на следующую схему логики. Где новые пути, диалоги и т.п.

В общих чертах.

 

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

В диалоге мы здесь выдаём инфо:

gstgJRH8.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2003-01-2023%2000:24:51.jpg

В логике по выдаче инфо переводим НПС на следующую схему

fPKA7ej9.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2003-01-2023%2000:26:06.jpg

 

Что бы раньше времени не открывал рот не начинал следующий диалог, используй meet

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

[walker@bar_dolg_palych_moving]
path_walk = bar_dolg_palych2_walk 
path_look = bar_dolg_palych2_look 
combat_ignore_cond = {=fighting_dist_ge_20}
meet = meet@no_use
on_info = {+bar_dolg_palych_place} walker@bar_dolg_palych2

 

[meet@no_use]
use = false
use_wpn = false
abuse = false

 

  • Согласен 1

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

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

@mole venomous благодарю, все работает, но как сделать так чтобы после диалога он "сразу" бежал к след. точке? В моем случае, нпс после разговора стоит и пялит на гг, пока мы не отойдем.

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

@ALEKCZY ну после получения  инфопоршня переводи его в следующую логику, в которой будут уже другие вэйпоинты, на которые он и пойдёт.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

@imcrazyhoudini Я вроде так и сделал

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

[walker@car_assault1]
path_walk = walk_wait1
path_look = look_wait1
on_info = {+cart_npc_start} patrol@car_cer_nap1_leave
meet = meet@car_nachal

 

[patrol@car_cer_nap1_leave]
path_walk   = walk_car2
path_look   = look_car2
combat_ignore_cond = {-cart_npc_start}
commander   = true
formation   = line
meet        = meet@no_use
on_info = walker@car_cer_nap2

Разве нет?

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

@ALEKCZY 

combat_ignore_cond = {-cart_npc_start}

 

очень интересная строчка, бессмысленная.

 

meet        = meet@no_use

 

по дефолту можно указать meet = no_meet, чтобы нпс не разговаривал.

 

А так вроде правильно, проверяй точно ли выдаётся инфопоршень.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

Народ, а в чем фишка того, что зомбированные не отображаются на карте после смерти? Как надо сделать, чтобы некоторые мертвые сталкеры так же не отображались на карте будучи мертвыми?

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

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

@DarkSnowder наверное где-то в map_spots.xml стоит покопать.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

@DarkSnowder , "... некоторые мёртвые сталкеры" - формулировочка :biggrin:!


По идее здесь: stalker_generic.script -> function reset_show_spot(npc, scheme, st, section)
Попробуй посмотреть для понимания как, например, в Солянке реализован вывод меток в зависимости от сложности.

Скрытый текст
--* (с) Солянка
function reset_show_spot(npc, scheme, st, section) counterAdd("stalker_generic.reset_show_spot")
    local spot_section
    if scheme == nil or scheme == "nil" then
        spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "")
    else
        spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "")
    end
    if spot_section == nil then
        spot_section = "true"
    end
    local spot = "false"
    local ignoredCommunity = { ["zombied"] = true, ["fotoman"] = true, }
    if not ignoredCommunity[npc:character_community()] then
        local spot_condlist = xr_logic.parse_condlist(spot_section, npc, section, "show_spot")
        spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist)
    end
  
    local sim = alife()
    if not sim then return end
    local obj = sim:object(npc:id())
    if obj then
        local alive = npc:alive()
     --* вот где-то здесь. В звисимости от вводных.
        if spot == "false"
            or IAmAStalker[npc:clsid()] and (
        		alive and npc:relation(db.actor) == game_object.enemy and
                (not game_options.minimapSpots_showEnemyLiveOnNovice or level.get_game_difficulty() > 0)
                or
                not alive and utils2.community_relation_name(npc:character_community(), db.actor) == "enemy"
                and game_options.minimapSpots_hideEnemyDeathOnMaster
                and level.get_game_difficulty() == 3
      			)
        then       
            obj:visible_for_map(false) -- прячем
        else     
            obj:visible_for_map(true)-- ставим
        end
    end
end

 

 

 

Изменено пользователем Купер
Ссылка на комментарий

@Hind в maingame.xml секция artefact_panel. ставишь отрицательные значения Х или У. пример <artefact_panel x="-10021" y="242"

@Hind вот гайд https://www.amk-team.ru/forum/topic/8013-hud/

Изменено пользователем ZonaChe
  • Спасибо 1
Ссылка на комментарий

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

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

@Hind с огср гита, там значения к жажде были, она вроде чаще чем сытость появлялась, вот оттуда взять можешь, а так не знаю, подставляй сам, убавь в два раза, будет норм.

 

Если не ошибаюсь герой за 24 часа проголодается до красного индикатора (вроде когда хп начинает исчезать).

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

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

оптмиальные значение eat_satiety

В целом лучше настраивать голод, а не параметр 'eat_satiety' у "съедаемого".

А это довольно индивидуальные настройки. Тут на любителя... И смотря, какой у тебя движок. На ОГСР вкупе с жаждой, если смело завысить значения пар-ров, герой может часто терпилить от голода и сушняка (еле живой после сна, резкий упадок сил в неподходящий момент).  Также важно, какую ценность у тебя имеет еда. Как часто лутается/продаётся, насколько сытная. Нужен ли тебе реализм или просто для подгонки геймплея. Выводи текущие значения в лог и анализируй. Вот пример, как у меня на ОГСР поменялись кондиции ГГ за 10 игровых часов стояния на месте:

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

[actor_condition]  

satiety_v               =  0.000006  
satiety_power_v           = -0.000036  
satiety_health_v       = -0.000006   
satiety_light_limit    =  0.5
satiety_critical_limit =  0.25      

thirst_v               =  0.000012  
thirst_power_v           = -0.0072    
thirst_health_v           = -0.000003  
thirst_light_limit       =  0.5 
thirst_critical_limit  =  0.25 

 

N8MrONGI.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2007-01-2023%2007:22:35.jpg6kMWk9UH.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2007-01-2023%2007:53:04.jpg

 

Как по мне, заметное падение здоровья (голод не сильно увеличился, тут жажда зарешала, скорее всего). Если просто стоять. Но пока бегаешь, играешь, по пути съедаешь пару батонов и пару банок пива, в замесах несколько аптечек - этого не заметишь.

 

Гораздо заметнее падает выносливость, если таскать голодного и с сушняком актёра. Да ещё и с перегрузом. Выдыхается на раз. 

 

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

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

Ссылка на комментарий
05.01.2023 в 03:45, Купер сказал:

@DarkSnowder , "... некоторые мёртвые сталкеры" - формулировочка :biggrin:!


По идее здесь: stalker_generic.script -> function reset_show_spot(npc, scheme, st, section)
Попробуй посмотреть для понимания как, например, в Солянке реализован вывод меток в зависимости от сложности.

  Показать

--* (с) Солянка function reset_show_spot(npc, scheme, st, section) counterAdd("stalker_generic.reset_show_spot") local spot_section if scheme == nil or scheme == "nil" then spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "") else spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "") end if spot_section == nil then spot_section = "true" end local spot = "false" local ignoredCommunity = { ["zombied"] = true, ["fotoman"] = true, } if not ignoredCommunity[npc:character_community()] then local spot_condlist = xr_logic.parse_condlist(spot_section, npc, section, "show_spot") spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist) end local sim = alife() if not sim then return end local obj = sim:object(npc:id()) if obj then local alive = npc:alive() --* вот где-то здесь. В звисимости от вводных. if spot == "false" or IAmAStalker[npc:clsid()] and ( alive and npc:relation(db.actor) == game_object.enemy and (not game_options.minimapSpots_showEnemyLiveOnNovice or level.get_game_difficulty() > 0) or not alive and utils2.community_relation_name(npc:character_community(), db.actor) == "enemy" and game_options.minimapSpots_hideEnemyDeathOnMaster and level.get_game_difficulty() == 3 ) then obj:visible_for_map(false) -- прячем else obj:visible_for_map(true)-- ставим end end end

--* (с) Солянка
function reset_show_spot(npc, scheme, st, section) counterAdd("stalker_generic.reset_show_spot")
    local spot_section
    if scheme == nil or scheme == "nil" then
        spot_section = utils.cfg_get_string(st.ini, st.section_logic, "show_spot", npc, false, "")
    else
        spot_section = utils.cfg_get_string(st.ini, section, "show_spot", npc, false, "")
    end
    if spot_section == nil then
        spot_section = "true"
    end
    local spot = "false"
    local ignoredCommunity = { ["zombied"] = true, ["fotoman"] = true, }
    if not ignoredCommunity[npc:character_community()] then
        local spot_condlist = xr_logic.parse_condlist(spot_section, npc, section, "show_spot")
        spot = xr_logic.pick_section_from_condlist(db.actor, npc, spot_condlist)
    end
  
    local sim = alife()
    if not sim then return end
    local obj = sim:object(npc:id())
    if obj then
        local alive = npc:alive()
     --* вот где-то здесь. В звисимости от вводных.
        if spot == "false"
            or IAmAStalker[npc:clsid()] and (
        		alive and npc:relation(db.actor) == game_object.enemy and
                (not game_options.minimapSpots_showEnemyLiveOnNovice or level.get_game_difficulty() > 0)
                or
                not alive and utils2.community_relation_name(npc:character_community(), db.actor) == "enemy"
                and game_options.minimapSpots_hideEnemyDeathOnMaster
                and level.get_game_difficulty() == 3
      			)
        then       
            obj:visible_for_map(false) -- прячем
        else     
            obj:visible_for_map(true)-- ставим
        end
    end
end

 

 

 

ну у меня есть пара уник.нпс (спавнятся уже будучи жмуриками), которые в своём инвентаре имеют нужную по квесту весочь. Наводка на него дается в текстах. Вот и охота мне чтобы ГГ искал его (трупешник с предметом), не имея точки на карте как явного ориентира.

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

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

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

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

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

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

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

Войти

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

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

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