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

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

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

@Даниил Лехнов, пиши в ЛС, кидай какие модели откуда и куда перекинуть...

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

Всем привет. Вопрос по логике БТРа.

Есть у него такой параметр - target.

Если поставить actor, то будет стрелять по ГГ. Если поставить СИД, то по СИДу.

1. Можно ли вместо числового СИДа поставить уникальное имя из секции оллспавна.

2. Если я назначу СИД итему, например аптечке которая лежит на асфальте, то будет ли БТР стрелять по ней ? Или он только по живым целям стреляет ?

3. Если я назначу СИД на монстра, будет ли он стрелять по монстру ?

4. Если БТРу назначен СИД, и он заезжает в рестриктор, то как выдать поршень в этом рестре, когда БТР туда заехал.

 

Спасибо.

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

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

1. Можно ли вместо числового СИДа поставить уникальное имя из секции оллспавна.

В оригинальном скрипте значения могут быть только points, actor, сид

 

Цитата

2. Если я назначу СИД итему, например аптечке которая лежит на асфальте, то будет ли БТР стрелять по ней ? Или он только по живым целям стреляет ?

3. Если я назначу СИД на монстра, будет ли он стрелять по монстру ?

 

Да, только по живым(в том числе и монстрам), ну и по точкам.

 

Цитата

4. Если БТРу назначен СИД, и он заезжает в рестриктор, то как выдать поршень в этом рестре, когда БТР туда заехал.

Повесить в логике рестрикора на on_info проверку {=one_obj_in_zone(сид_бтр)} и выдачу нужного поршня.

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

Привет всем! 

 

Я пока новичок в скриптовании, только-только начал понимать что к чему. Прошу не ругаться ?

Если не туда написал - темы для LADC не нашёл. 

Я делаю мод для Stalker LADC, где нпс приветствуют, ждут, психуют-уходят и т.п. 

 

Чтобы прикрутить реплику на уход нпс из мита, если мы с ним не взаимодействуем, в xr_meet в функцию function evaluator_contact:evaluate() пишу такие условия (от "начала" до "конца" моего кода).

 

Цитата

if (self.meet_manager.state or "nil") ~= "nil" then
		-- Если не начинаем разговор, НПС уходит
		if self.meet_manager.wpn_meet or self.object:is_talking() then
			self.tm_delay = time_global()
		elseif not self.tm_delay then
			self.tm_delay = time_global()
		
		-- НПС ждёт 15 секунд и уходит
		elseif self.tm_delay +15*1000 < time_global() then
					
-- НАЧАЛО МОЕГО КОДА				if(self.object:active_sound_count(true) <= 0) then
					if self.st.meet_start ~= "" and not this.Is_Spam(self.meet_manager.npc, self.st.meet_start) then
					
					-- 	Уходя, ворчит
						if(self.st.meet_stop == "meet_stop") then 
							if (Random.I(1, 5) == 1) then
								xr_sound.set_sound_play(self.object, "meet_stop")					
							end
						else
							xr_sound.set_sound_play(self.object, self.st.meet_stop) 
						end	
						self.last_sound_played = true
					end
-- КОНЕЦ МОЕГО КОДА				end		
			return false 
		end
		
		if self.log then log("ev_contact:NPC=[%s]=>[%s]", self.object:name(), "TRUE") end --/#~#
		return true --/>
	elseif self.tm_delay then
		self.tm_delay = nil
	end

 

В игре звук работает, но при уходе, если нпс ещё не вышел из радиуса мита, реплика meet_stop проигрывается успевает проиграться раза 2-3, а если пойти за нпс - так и будет проигрываться. 

 

Вопрос: как поставить "затычку" для xr_sound.set_sound_play(self.object, self.st.meet_stop)? 

Там ещё скорее всего много лишних условий, я копипастил их из друших участков xr_meet. 

 

Спасибо ?

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

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

Как сделать так что бы диалог главного героя не заходил за рамки диалогового окна? Я так понял нужно что то поправить в xml файле, но где и как?

Tiberhius.gif

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

@Tiberhius, скрин предоставьте. А иначе вам в тему HUD'a.

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

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

@Tiberhius Если не ошибаюсь, параметр stretch должен быть равен 1, пишу по памяти. Если его нет, нужно добавить по аналогии с другими.

Изменено пользователем W.A.S.P.
оверквотинг
Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

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

Ссылка на комментарий
В 21.09.2019 в 00:14, Tiberhius сказал:

Как сделать так что бы диалог главного героя не заходил за рамки диалогового окна?

talk[_16].xml, тэги

question_item:text

other_answer_item:content_text

actor_answer_item:content_text

выставить complex_mode="1"

Если не поможет, то подгонять размеры этих элементов.

  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Всем привет. Что нужно прописать в логике НПС что бы при перемещении из точки А в пункт Б с ним невозможно было завести диалог, а только лишь по прибытию?

Tiberhius.gif

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

Спасибо, Fagot :)

Ещё вопрос.
Как прописать НПС условие, чтобы он никогда не подходил к другому НПС ближе, чем на 1 метр? Во всех схемах поведения. Как будет выглядеть условие?

 

Изменено пользователем Usman_Shinobi
Ссылка на комментарий
В 22.09.2019 в 21:08, Tiberhius сказал:

из точки А в пункт Б с ним невозможно было завести диалог,

Я имел ввиду что бы с НПС во время его перемещения из одной точки в другую невозможно было завести вообще диалог. Что бы до прибытия у него был полный игнор на ГГ.

Tiberhius.gif

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

@Tiberhius, в нужной секции логики: 

meet = no_meet

 Кстати, выше уже дали ответ, в соответствии с твоим вопросом.

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

Помогите исправить ошибку!!! Не знаю куда обратиться(((

Вот лог

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

 

* Detected CPU: AuthenticAMD , F15/M0/S1, 3293.00 mhz, 73-clk 'rdtsc'
* CPU Features: RDTSC, MMX, SSE, SSE2

Initializing File System...
using fs-ltx fsgame.ltx
--found external arch mp_military_2.xdb0
FS: 32662 files cached, 5200Kb memory used.
Init FileSystem 5.854361 sec
'xrCore' build 3312, Feb 27 2008

Initializing Engine...
Executing config-script "user.ltx"...
! Cannot open script file [user.ltx]
Starting INPUT device...
Loading DLL: xrRender_R1.dll
Loading DLL: xrGame.dll
! Unable to find InstallUserName entry in registry
* [win32]: free[4056200 K], reserved[47628 K], committed[90412 K]
* [ D3D ]: textures[0 K]
* [x-ray]: crt heap[7235 K], process heap[2322 K], game lua[0 K], engine lua[0 K], render[0 K]
* [x-ray]: economy: strings[1185 K], smem[0 K]
Executing config-script "f:\s.t.a.l.k.e.r. Тень Чернобыля\gamedata\config\default_controls.ltx"...
! cant convert dik_name for dik[16], prop=[
! cant convert dik_name for dik[17], prop=[
! cant convert dik_name for dik[18], prop=[
! cant convert dik_name for dik[19], prop=[
! cant convert dik_name for dik[20], prop=[
! cant convert dik_name for dik[21], prop=[
! cant convert dik_name for dik[22], prop=[
! cant convert dik_name for dik[23], prop=[
! cant convert dik_name for dik[24], prop=[
! cant convert dik_name for dik[25], prop=[
! cant convert dik_name for dik[26], prop=[
! cant convert dik_name for dik[27], prop=[
! cant convert dik_name for dik[30], prop=[
! cant convert dik_name for dik[31], prop=[
! cant convert dik_name for dik[32], prop=[
! cant convert dik_name for dik[33], prop=[
! cant convert dik_name for dik[34], prop=[
! cant convert dik_name for dik[35], prop=[
! cant convert dik_name for dik[36], prop=[
! cant convert dik_name for dik[37], prop=[
! cant convert dik_name for dik[38], prop=[
! cant convert dik_name for dik[39], prop=[
! cant convert dik_name for dik[40], prop=[
! cant convert dik_name for dik[41], prop=[
! cant convert dik_name for dik[44], prop=[
! cant convert dik_name for dik[45], prop=[
! cant convert dik_name for dik[46], prop=[
! cant convert dik_name for dik[47], prop=[
! cant convert dik_name for dik[48], prop=[
! cant convert dik_name for dik[49], prop=[
! cant convert dik_name for dik[50], prop=[
! cant convert dik_name for dik[51], prop=[
! cant convert dik_name for dik[52], prop=[
! cant convert dik_name for dik[144], prop=[
[f:\s.t.a.l.k.e.r. Тень Чернобыля\gamedata\config\default_controls.ltx] successfully loaded.
Executing config-script "user.ltx"...
! Cannot open script file [user.ltx]
SOUND: OpenAL: enumerate devices...
SOUND: OpenAL: EnumerationExtension Present
devices Generic Hardware
SOUND: OpenAL: system  default SndDevice name is Generic Hardware
SOUND: OpenAL: default SndDevice name set to Generic Software
SOUND: OpenAL: All available devices:
1. Generic Software, Spec Version 1.1 (default)
2. Generic Software, Spec Version 1.1 (default)
SOUND: OpenAL: SelectBestDevice is Generic Software 1.1
SOUND: OpenAL: Required device: Generic Software. Created device: Generic Software.
* sound: EAX 2.0 extension: absent
* sound: EAX 2.0 deferred: absent
* sound : cache: 32773 kb, 3805 lines, 8820 bpl
Starting RENDER device...
* GPU [vendor:10DE]-[device:1380]: NVIDIA GeForce GTX 750 Ti
* GPU driver: 26.21.14.3602
* CREATE: DeviceREF: 1
* Vertex Processor: PURE HARDWARE
*     Texture memory: 4087 M
*          DDI-level: 9.0
* GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30)
* GPU vertex cache: unrecognized, 16
* DVB created: 1536K
* DIB created: 512K
count of .thm files=772
load time=314 ms
* distortion: used, dev(30),need(14)
* SSample: 1024x768
error is error X3539: ps_1_x is no longer supported; use /Gec in fxc to automatically upgrade to ps_2_0
error X3539: Alternately, fxc's /LD option allows use of the old compiler DLL
 

Can't compile shader postprocess

 

Вылетает с тем, что пишет, что нету пиксель шейдеров 1.1

Хоть стоит 750ti в которому 100% есть эти шейдеры!

Уже не знаю что делать( Если не знаете как помочь, или это не по теме, то подскажите куда обратится! Потому что не хочу забрасывать разработку мода((!!!

Изменено пользователем W.A.S.P.
спойлер
Добавлено  Опричник,

Длинные тексты пожалуйста под спойлер. Выделить текст и нажать на панели инструментов кнопку с глазом.

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

Всем привет, появились вопросы по логике НПС. К примеру есть логика:

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

[logic]
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition
threshold = threshold@tratata

[walker@stay_at_position]
path_look = esc_borovoy_elevator_look
path_walk = esc_borovoy_elevator_walk
on_info = {+soc_dialog_borovoy_escape_ok} walker2 -- Получаю поршень, перехожу на walker 2.

[walker2]
path_look = esc_borovoy_atp_trup_look
path_walk = esc_borovoy_atp_trup_walk
on_timer = 10000| remark@work -- Можно ли использовать on_timer в схеме walker для переключения в ремарку?

[remark@work]
anim = caution
no_move = true
snd = mil_max_before_collect
target = actor
on_timer = 30000| walker3 -- Перехожу спустя время на walker3.
meet = no_meet
danger = danger_condition

[walker3]
path_look = esc_borovoy_atp_look
path_walk = esc_borovoy_atp_walk

 

Вообщем есть сомнения в правильности моей логики для НПС. Мне нужно что бы НПС c walker2 перешел спустя секунд 10 в remark@work, затем из remark@work ушел в walker3.

Суть логики такова, НПС идет из пункта А в пункт Б, на пункте Б переходит в ремарку (осматривает труп) спустя время идет переход НПС на пункт В.

Надеюсь подробно объяснил суть проблемы.

 

И еще, можно ли использовать на точках p0:name = wp00|a=guard вместо guard к примеру анимацию из ремарки caution? Будет ли он её проигрывать?

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

Tiberhius.gif

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

Можно ли использовать on_timer в схеме walker для переключения в ремарку

Да.  

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

В path_walk : 

p0:name = wp00|a=anim|t=10000

...

p1:name = wp01|sig=signal1

В логике

on_signal = signal1 | другая_схема

 

 

2 часа назад, Tiberhius сказал:

можно ли использовать на точках p0:name = wp00|a=guard вместо guard к примеру анимацию из ремарки caution? Будет ли он её проигрывать?

Да, будет. Только в path_walk пишутся анамации в движении. Если сталкер стоит/сидит на месте, то - в path_look .

Изменено пользователем Fagot.
  • Спасибо 1
  • Согласен 1
Ссылка на комментарий
1 час назад, Fagot. сказал:

Можно также в точках пути задавать анимацию

Сделал так:

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

[esc_borovoy_atp_trup_look]
points = p0
p0:name = wp00|a=caution|t=20000|sig=signal1
p0:flags = 0x2
p0:position = 108.590683,-7.495135, 5.521363
p0:game_vertex_id = 119
p0:level_vertex_id = 409674


[esc_borovoy_atp_trup_walk]
points = p0
p0:name = wp00
p0:flags = 0x2
p0:position = 108.805817, -7.495113, 5.398840
p0:game_vertex_id = 119
p0:level_vertex_id = 409674

 

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


[logic]
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition
threshold = threshold@tratata

 

[walker@stay_at_position]
path_look = esc_borovoy_elevator_look
path_walk = esc_borovoy_elevator_walk
on_info = {+soc_dialog_borovoy_escape_ok} walker2

 

[walker2]
path_look = esc_borovoy_atp_trup_look
path_walk = esc_borovoy_atp_trup_walk
on_signal = signal1| walker3

 

[walker3]
path_look = esc_borovoy_atp_look
path_walk = esc_borovoy_atp_walk

Я хотел что бы он дойдя до walker2 проиграл анимацию 20 секунд, затем подал signal1 и перешел на walker3.

Вместо этого он остановился на мгновение, не проиграл анимацию и перешел на walker3.

Как сделать грамотно его остановку, проигрыш анимации и переход на walker3?

Tiberhius.gif

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

@Tiberhius

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

 


[ment_bar6_look]
points = p0
p0:name = name00|a=anim|t=25000
p0:flags = 0x1
p0:position = 100.897,-0.041,56.958
p0:game_vertex_id = 1224
p0:level_vertex_id = 31901

[ment_bar6_walk]
points = p0,p1
p0:name = name00|a=walk
p0:flags = 0x1
p0:position = 236.539,2.364,-79.962
p0:game_vertex_id = 1272
p0:level_vertex_id = 60596
p0:links = p1(1)

p1:name = name01|a=walk|sig=signal1
...

 

 

 

 

А так не проще(?):

 

[walker@2]
path_look = esc_borovoy_atp_trup_look
path_walk = esc_borovoy_atp_trup_walk
on_signal = signal1| remark@1 ;  сигнал не забыть выдать в последней точке walk

[remark@1]
anim = caution
on_timer = 20000|walker@3
  или:
on_signal = anim_end|walker@3 
...

 

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

Здравствуйте, хотел бы создать систему крафта предметов через диалог с НПС. Ну например: отдаешь сидоровичу медузу и 1000 рублей, он дает каменный цветок. Можете показать новичку пример как так сделать?

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

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

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

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

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

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

Войти

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

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

AMK-Team.ru

×
×
  • Создать...