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

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


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

Хочу закрыть выход на Свалку, а карту из-за этого компилировать неохота.

Может дверь не обязательна - могут подойти обычные доски, которыми "заколотить" проход. Правда может быть "хождение" мобов через такую преграду.

 

 

как сделать, чтобы НПС дошёл до указанной точки и исчез

А что Вы понимаете под "исчез" ? Скрыть непися, переведя его в офф-лайн или вообще удалить как объект из игры ?

 

P.S. в качестве совета а не нравоучения(не мной придумано): правильно по смыслу составленный вопрос - уже готовая половина ответа....

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

 

 

agro_naem_ohr_camp_center_task
Есть,
[agro_naem_ohr_camp_center]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = -131.235000610352,9.9980001449585,-200.007995605469
p0:game_vertex_id = 629
p0:level_vertex_id = 108448


[agro_naem_ohr_camp_center_task]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = -131.235000610352,9.9980001449585,-200.007995605469
p0:game_vertex_id = 629
p0:level_vertex_id = 108448


Может координаты одинаковые нельзя ставить? Но это ведь ерунда, такого не может быть.

 

Вчера сделал в другом месте гулаг и смарт, то же самое, уходят и всё.

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Ссылка на комментарий
Может, из-за того, что размеры не по косяку

Размеры не причём. Если даже переборщишь с размером и правильно настроишь, то излишки дверей просто скроет в соседних текстурах. Будет некрасиво, но не критично.

И что значит "растянул пошире" ? В чём ты сделал это ?

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

А так то дверь оригинала вполне правильная и сделана нормально.

75bb4f4291cd56802b05d2e2d9b649995eb4b020

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

"Кругом зомби.....у меня кончаются патроны...."

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

2: Хемуль36рус, agro_naem_ohr_camp_center - у тебя просто ни где не используется, так что в нем может быть что угодно.

Ну, будем смотреть...

function log( s, ... )
	get_console():execute( string.format( "load ~log~ %s", ( ... and string.format( s, ... )) or s ) )
end


function list_tbl( v, name, t_level )
	local name = name or "item"
	if type(v) == "table" then
		if t_level then
			for i = 1, t_level do name = string.format( "__%s", name ) end
		else t_level = 0
		end
		local cnt = 0
		for kk,vv in pairs(v) do
			cnt = cnt + 1
			if vv and type(vv) == "table" then
				log( false, "info", "%s: %s, type: table", name, kk )
				list_tbl( vv, kk, t_level + 1 )
			else log( "%s: %s, type: %s, value: %s", name, kk, type(vv), tostring((type(vv)=="userdata" and "*") or vv) )
		end	end
		log( "------ %s records in table [%s] ------", cnt, name )
		return true
	end
	log( "list_tbl: %s, invalid argument type: %s", name, type(v) )
end


function list_gulag( list_info, list_g )
	local strn, gulag, npc_info, npc, npc_name, job_n, t, prior
	local g_list = list_g or { "esc_lager" }
	local sim = alife()
	for dummy, g_name in pairs( g_list ) do
		strn = sim:object( g_name )
		if strn then
			log( "list_gulag, %s", g_name )
			npc_info = strn.npc_info
			if npc_info then
				for k, v in pairs( npc_info ) do
					obj = v.se_obj
					if obj then
						npc_name = obj:name() or "nil"
						gulag = strn.gulag
						job_n = gulag.ObjectJob
						job_n = job_n and job_n[k]
						prior = job_n and gulag.Job[ job_n ]
						prior = ( prior and prior.prior ) or "invalid"
						log( "npc: %s (id: %s), exclusive: %s, prior: %s, info: %s", npc_name, k, ( v and v.exclusive and "true" ) or "false", prior, tostring( v ) )
						if list_info == "custom" then
							t = amk_netpk.read_stalker_params( obj )
							log( "custom: %s", string_sub( t.custom, 1, 200 ) )
						end
						if list_info == "info" then list_tbl( v, k ) end
						if list_info == "job" then
							job_n = gulag.ObjectJob
							job_n = job_n and job_n[k]
							if job_n then list_tbl( gulag.Job[job_n], "job" ) end
						end
				end	end
				log( "--- end of list ---" )
			else log( "list_gulag, gulag: %s is invalid !", g_name )
			end
		else log( "list_gulag, gulag: %s not found !", g_name )
end	end	end

-- вызвать откуда-нибудь из net_spawn() актора list_gulag( "info", { "agro_naem_ohr" } ), а потом list_gulag( "job", { "agro_naem_ohr" } )

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

@Хемуль36рус, Саня, смотри внимательно на пути, прописанные в логике и пути, прописанные в олл_спавне.

center_point  = camp_center
path_walk = camp_center_task
*******************************
[agro_naem_ohr_camp_center]
[agro_naem_ohr_camp_center_task]

Я вообще удивляюсь, как у тебя игра не крашится по отсутствию путей...Но в нил мне кажется твои наймы только в путь уходят.

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

А что в них не так ?

 

agro_naem_ohr_ и _task в начале и в конце прицепляются к camp_center из center_point.

Если не найдено - цепляется просто agro_naem_ohr_, если и это не найдено - в зависимости от того, что у него в скриптах, подставляется "nil", "default_simulation_path" или непись выбрасывается из смарта, и получает опять же "default_simulation_path". И начинает просто тыкаться в рэндомном направлении.

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

Есть движок с правками. Одна из них делает равнозначные слоты для стволов. Вопрос: Можно ли исправить вылет когда например в слот кладешь АК-74 или тот-же ТОЗ-34? Видимо дело в клетках, вот как их регулировать в конфигах оружия..

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

Хемуль36рус, следует проверить в config\misc\smart_terrain_presets.ltx, добавлена ли нужная группировка для данной локации (по умолчанию - нет)

 

Macromelyan, количество клеток в слоте редактируется в config\ui\inventory_new.xml (_16), теги dragdrop_ (при редактировании - для соответствия координатам в файле, делается скриншот инвенторя с разрешением 1024х768, да и почти все файлы ui\ настроены под это разрешение), для рюкзака флаг group_similar="0" - отключает "стакуемость" предметов.

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

Хемуль36рус, кстати, да - стоит проверить доступность смарта и собственно уровня для тех наймов. Впрочем, уже обсуждалось.

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

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

Expression : !lst.empty()
Function : CHudItem::animGet
File : E:\stalker\sources\trunk\xr_3da\xrGame\HudItem.cpp
Line : 295
Description : shoot1

 


Вылет стабильно происходит, если поравняться с остановкой напротив АТП (и, соответственно, эта "линия вылета" тянется от одного конца карты, до другого). 

Прошу кого-нибудь помочь решить, что с этим делать, ибо толком не понимаю сути проблемы и почему игра крашится, кроме того, что тут что-то завязано на анимации.
Ссылка на комментарий

Ну наверно игра не находит в худ-модели какого-то оружия анимации shoot1.

Смотри соответствие заданных анимаций в конфиге и в модели оружия.
Ссылка на комментарий

Во многих шутерах есть 2 способа переходить в режим прицеливания:

1. Игровой персонаж переходит в режим прицеливания при зажатии правой клавиши мыши, выходит при отпускании.
2. Игровой персонаж переходит в режим прицеливания при клике правой кнопкой мыши, выходит при повторном клике.

Возможно ли сделать в сталкере второй режим? Как-то руке тяготит удерживать правую, щелкать левую и водить по столу

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

@TheDeath, второй режим есть только в ЧН/ЗП. Он включается консольным параметром wpn_aim_toggle.

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

Всем привет!)) Подскажите, если не сложно, что нужно прописать в логику заспавненному через скрипт НПС, который принадлежит к враждебной ГГ группировке (например, бандиты), чтобы в дальнейшем можно было вступить с ним диалог (т.е. чтобы не кидался на ГГ раньше времени).

Прописывала "combat_ignore_cond = always", похоже это не то, что нужно((

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

use_wpn = true в [meet@что_там_у_него] ?

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

 

 

use_wpn = true в [meet@что_там_у_него] ?

 

Да, мне бы хотелось, чтобы у человека была возможность защищаться от монстров, поэтому в логике (как у многих из тех, кого спавню скриптом):

[meet]
use = true
use_wpn = true
meet_talk_enabled = true

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

Всем привет!)) Подскажите, если не сложно, что нужно прописать в логику заспавненному через скрипт НПС, который принадлежит к враждебной ГГ группировке (например, бандиты), чтобы в дальнейшем можно было вступить с ним диалог (т.е. чтобы не кидался на ГГ раньше времени).

Прописывала "combat_ignore_cond = always", похоже это не то, что нужно((

Пропиши "combat_ignore_cond = {-имя_твоего_поршня =fighting_actor} и с врагами можно говорить, если конечно, у них прописан хоть один диалог. А когда надо будет, чтобы они стреляли, выдай этот твой поршень - и все.

Сталкер - наше всё!

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

Довольно сложно ответить. Надо эту самую LA под рукой иметь, либо найти актуальный файл логики этого самого торговца, в оригинале это был \config\scripts\esc_trader.ltx, узнается из allspawn.

Файл торговли, который указывается в этой самой логике,

внезапно, trade_manager.script, xr_logic.script и биндер торговца (кто он там в LA - непись или монстр ?)

 

Понятно, что все это есть под рукой того, кто непосредственно что-то делает именно с LA, и вряд-ли у тех, у кого другие интересы.

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

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

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

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

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

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

Войти

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

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

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