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

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


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

Всем привет! Какие файлы задействуются при новом разделе в ПДА? Хочу сделать правку для ТТ2, чтоб предложения торгашей и НПС вроде Захара и Мазая отображались в соответствующей вкладке

  • Нравится 1

Благодарю тебя, Зона-матушка, за то что одарила и за то что выпустила. Если что не так-не по злобе мы, а по глупости

Сергей Клочков. " Лунь"

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

 

 

Всем привет! Какие файлы задействуются при новом разделе в ПДА? Хочу сделать правку для ТТ2, чтоб предложения торгашей и НПС вроде Захара и Мазая отображались в соответствующей вкладке

 

Ничего не понял. О каком новом разделе в ПДА идет речь? В ТТ2 нет ничего подобного...


@Пруткоф, timeout можно делать интересным образом - а именно рандомным значение( мол пока смерть обработаеться, в БД запишеться...)

 

local timeout_random = math.random(20,40)

 

Как то так...

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

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

@CRAZY_STALKER666, вот именно что нет, а я хочу чтоб было :)  Помнишь как в Солянке-после разговора с НПС в ПДА-журнале в разделе предложения торговцев появляется типа его прайс-лист, например Кузнецов меняет водку на то то и то то, Сидор арты взамен того и того. Вот и хочу правку сделать для ТТ2 аналогичную правочку 

@Eugen81, у меня есть такая, не нашел там про ПДА. Ладно, погуглю :)

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

Благодарю тебя, Зона-матушка, за то что одарила и за то что выпустила. Если что не так-не по злобе мы, а по глупости

Сергей Клочков. " Лунь"

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

Вопрос такой. Требуеться сделать игнорирование боя(полное) для НПЦ под определенной схемой. Вроде всё просто, но combat_ignore_cond = always

почему то не работает, хотя стоит на своем месте...

Даже экзотика типа combat_ignore_cond =  {!fighting_actor} не помогает...

 

Вот такую логику пробовал - толку считай нет...

 

 

[logic]
active = walker@1


[walker@1]
path_walk = bandit_svita_1
path_look = killer_leader_walk
danger = danger_condition@1

[danger_condition@1]
ignore_distance = 10
ignore_distance_corpse = 10
ignore_distance_sound = 10

 

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

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

@CRAZY_STALKER666,  а у тебя в логике присутствует просто "combat_ignore = что-то"? Если я правильно помню, то без наличия combat_ignore, combat_ignore_cond просто не обрабатывается. Притом, что указано в combat_ignore, кажется, значения не имеет.

 

У меня еще сложилось впечатление, если я правильно помню, что оно там немножко поломано. Я это дело довольно сильно менял. Хотя могу и ошибаться.

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

@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
Чтобы совсем убрать лимит - просто закомментировать их (--)

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

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

Добрый вечер. Какие могут быть причины сброса логики при загрузке/сохранении? Вот бежит НПС по пути, сохраняюсь, затем загружаюсь, и НПС бежит на первую точку 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
Добавлено  HellRatz,

Все же, запишу тебе видео. Поймешь о чем я говорю.

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

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

 

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

Изменено пользователем Dennis_Chikin
Добавлено  HellRatz,

Видео в ЛС.

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

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

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

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

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

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

Войти

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

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

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