SoC. Гулаги (динамические LTX) — S.T.A.L.K.E.R. Inside Wiki

SoC. Гулаги (динамические LTX)

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

При создании гулага, не многие знают, что практически всю настройку логики гулагов, можно производить в файле «script». Такой способ построения достигается за счёт динамических ltx. Попробую описать, каким образом это достигается. Я думаю, многие заметили в файлах с гулагами такую функцию:

--'------------------------------------------------------------------------
--' Dynamic ltx
--'------------------------------------------------------------------------
function load_ltx(gname, type)
	
	return nil
end

Это именно та функция, которая и отвечает за динамические ltx. В данном случае, она отключена. Разберём простейший способ построения динамических ltx.

Создаём стандартным способом «smart_terrain» в файле «all.spawn» и гулаг в файле «gulag_уровень.script». Назначим ему имя, например «kakashki». Задаём ему несколько заданий. Например, зададим 3 кампа и двух уолкеров:

	if type == "kakashki" then
			
	                for i = 1, 3 do
             
	                        t = { section = "logic@kakashki_kamp",
					idle = 0,
					prior = 8-i, state = {0,1},
					in_rest = "", out_rest = ""
				}
				table.insert(sj, t)
			end
                        
                        for i = 1, 2 do
			
			        t = { section = "logic@kakashki_walker_"..i,
				        idle = 0,
				        prior = 9-i, state = {0,1},
				        in_rest = "", out_rest = ""
			        }
			        table.insert(sj, t)
                        end		

	end

Так как мы собираемся использовать динамические ltx, то дальнейшая настройка заданий будет производиться не в конфигурационных файлах, а непосредственно в этом же файле. То есть в упомянутой выше функции «load_ltx». Для этого находим нужную функцию «load_ltx», и в ней создаём динамический ltx и прописываем требуемые схемы логики:

--'------------------------------------------------------------------------
--' Dynamic ltx
--'------------------------------------------------------------------------
function load_ltx(gname, type)


if type == "kakashki" then
    local ltx = "[logic@kakashki_kamp]\n"..
		"active = kamp@kakashki\n"..
                             
	        "[kamp@kakashki]\n"..
	        "center_point = kamp\n"..
							

             
			
		"[logic@kakashki_walker_1]\n"..
	        "active = walker@kakashki_1\n"..
                             
		"[walker@kakashki_1]\n"..
		"path_walk = walk_1\n"..
		"path_look = look_1\n"..

                 

                "[logic@kakashki_walker_2]\n"..
	        "active = walker@kakashki_2\n"..
                             
		"[walker@kakashki_2]\n"..
		"path_walk = walk_2\n"..
		"path_look = look_2\n"
			
             

	return ltx
	end

	
	return nil
end

Где, кавычки обязательны, {\n} назначает новую строку в динамическом ltx, и {..} ставится для привязки строк между собой. В последней строке схем, двоеточие ставить не нужно, так как привязывать больше нечего. Переменная «ltx» может иметь любое другое имя.


Теперь создаём вэйпоинты путей, в файле «all.spawn», и можно смело идти проверять.


Продолжение следует.

Автор: Singapur22

Другие места
LANGUAGE