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

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


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

@CRAZY_STALKER666, combat_ignore_cond = always не может не работать. Если не работает, то твой НПС находится в другой секции логики, где этого условия нет.
В приведённом тобой примере вообще этого нет...

@CRAZY_STALKER666,  покажи полностью логику! 

 

Наверняка не прописал: 

combat_ignore = combat_ignore

[combat_ignore]

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

В моде Freeplay Start решил убрать ограничение в гулагах на группировки. В скриптах gulag_<локация> изменил функции до такого вида:

 

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)

return true
end

 

 

После этого игра стала портить сейвы или даже лететь при переходе на другие локации. Причем на статичном освещении это происходит гораздо реже и внутри одной локации помогает сохранение через консоль. В логах игра матерится на xr_logic. Самих логов сейчас нет, но ругается на эти функции:

  if st.active_section then
    issue_event(npc, st[st.active_scheme], "deactivate", npc)
  end

 

 

и

  if tonumber(ctr) > 30 and tostring(obj:name()) ~= "single_player" and npc_id ~= db.actor:id() then
-- максимум 30 итераций - это число ещё уточняется, возможно понадобится больше
                -- если у вас в пстор что-то свое пишется, ориентируйтесь на свои значения
-- и обязательно убираем из проверки актора - у него очень толстый пстор, и к тому же
                -- если уж поврежденным будет его пстор, то тут точно уже ничего не поможет
dgblog("ОБНАРУЖЕН ОБЪЕКТ С ПОВРЕЖДЕННЫМ PSTOR: "..tostring(obj:name())..
" БУДЕТ ПРОИЗВЕДЕНА ПОПЫТКА ВОССТАНОВЛЕНИЯ")
ctr = 30 
  end

Кто-нибудь с подобным сталкивался?

  • Нравится 1

Всем привет, решил изменить озвучку ходьбы ГГ в сталкере ТЧ, с оригинальной на более профессиональную (и приятную для моих ушей), так как слушать те нежные шажки немогу. Имеется папка с записанными звуками (step), кидаю файлы с профессиональной озвучкой поверх старых, соглашаясь на замену. НО! Вот незадача, при старте игры все равно озвучка старая, может кто помочь с этим?

@BorziyPowanchik, всё очень просто. У звуков актора ( у каждого ) уникальные имена , а именно - default(1-4),grass(1-4)и тд и тп. Просто надо их правильно переименовать, и засунуть по адресу gamedata\sounds\material\actor\step\.

 

Я сделал именно так, у меня всё работает.

Не соответствует правилам.

@Lisiy_Stalker, можно же погуглить: stalker тч время выполнения заданий
По первой же ссылке, в комментах ответ:

Как убрать/увеличить время для обычных квестов?
В файле gamedata\config\misc\task_manager.ltx найти и изменить все строки вида time = 86400
Чтобы совсем убрать лимит - просто закомментировать их (--)

Добрый вечер. Какие могут быть причины сброса логики при загрузке/сохранении? Вот бежит НПС по пути, сохраняюсь, затем загружаюсь, и НПС бежит на первую точку walk'a и опять заново все пробегает до момента сохранения. Даже если НПС уже сменил несколько секций и встал например в remark, то при загрузке/сохранении он опять побежит заново все пути от первой секции в его логике, и потом встанет в этот remark, как должен стоять сразу при загрузке. Почему слетает - ума не приложу.

ЗЫ: вид сейва не имеет значения. Так же слетает логика монстров, которые идут по пути. Они так же при загрузке бегут на 1-ю точку в своей логике, и опять заново все отрабатывают до момента сохранения.

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

А кто вообще сказал, что текущая точка пути должна где-то сохраняться ?

Если же непись под смартом, то, тем более, при назначении на работы всегда выбирается секция, прописанная в логике работ как активная.

@Dennis_Chikin, как кто? Чистая игра, моды - они сказали. Когда ты, например, бежишь с Петрухой на АТП, сохраняешься и загружаешься, он бежит дальше, а не возвращается на точку спавна и затем опять бежит по тому же пути. Да и вообще это очевидно, что логика не должна сбрасываться на 0 при сейв/лоад, а пока получается если у меня нпс был заспавнен за пол км на другом конце локации от места сохранения и приведен логикой в другое место, то при загрузке он побежит опять через весь уровень на точку старта откуда начинается первая секция в логике, и пробежит весь путь до момента сохранения. Если не понимаешь о чем я говорю, могу видео записать. Изменено пользователем HellRatz

У Петрухи задана работа с первой точкой на АТП. Вот туда он и бежит.

Если же мы возьмем Шустрого, то первой точкой у него АТП, ага. Потом проверяются условия, и по ним он гонится онлайновой схемой в деревню. Если ушел в офлайн - проверяется, что от первой точки достаточно далеко, и начинается выгнали с работы - назначили, выгнали - назначили. В процессе дергается smart_terrain:task() и вызывает CALifeSmartTerrainTask( path_name ), где path_name из активной сеции.

 

function gulag:get_job_path_name( job )
	local path, pname
	local ltx = self.ltx
	local sect = job.section
	if ltx:line_exist( sect, "active" ) then	-- todo: а нельзя ли это кэшировать ?
		sect = ltx:r_string( sect, "active" )
	else abort( "(%s):get_job_path_name, no 'active' in section: [%s](%s)", self.name, sect, self.ltx_name )
	end

	if ltx:line_exist( sect, "center_point" ) then
		path = ltx:r_string( sect, "center_point" )
		if path then
			pname = self.name .. "_" .. path .. "_task"
			if level.patrol_path_exists( pname ) then return pname end
		end
	elseif ltx:line_exist( sect, "path_walk" ) then path = ltx:r_string( sect, "path_walk" )
	elseif ltx:line_exist( sect, "path_main" ) then path = ltx:r_string( sect, "path_main" )
	elseif ltx:line_exist( sect, "path_home" ) then path = ltx:r_string( sect, "path_home" )
	end

	if path then
		pname = self.name .. "_" .. path
		if level.patrol_path_exists( pname ) then return pname end
	end
	abort( "(%s):get_job_path_name, path %s not exist [%s](%s)", self.name, pname or "nil", sect, self.ltx_name )
end

 

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

@Dennis_Chikin, @HellRatz, инфопорциями - это все в логике пролетает, до несосотоявшегося события.

andreyholkin.gif

rod_cccp.gif

 

Все xr_walker, xr_remark и прочие xr_kamp работают ТОЛЬКО в онлайне. Соответственно, все, что внутри их секций - работает только в онлайне же.

 

При переключении между секциями всегда выбирается первая точка пути.

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

@HellRatz, ты поди своих нпс по длинным вейпоитам гоняешь? Делай ключевых нпс без путей составных вейпоинтов.

andreyholkin.gif

rod_cccp.gif

 

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

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

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

Для начала хоть уточни: они у тебя под смартом, или сами по себе ?

Ну и про OGSE тоже момент важный.

@Dennis_Chikin, да вся проблема и есть в ОГСЕ, потому что они наверняка скрипты поправили.

andreyholkin.gif

rod_cccp.gif

 

они у тебя под смартом, или сами по себе

Без смартов. Обычные квестовые НПС управляемые чисто логикой *.ltx, коих сотни в других модах. 

Да, что-то явно в ОГСЕ, ибо на чистой игре все ОК, но понять бы возможные причины такого сбоя как таковые, а там видно будет от чего отталкиваться.

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

@HellRatz, А на чистом ОГСЕ, логика тоже сбрасывается при перезагрузке?

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

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

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

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

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

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

Войти

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

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

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