Jump to content
Halford

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

Recommended Posts

AndrewMor    424

Сталкеры, че-то затупил: как отловить момент уничтожения конкретной вертушки, чего в логике писать? Нужно выдать инфопоршень при сбитии/уничтожении.

 

upd: насчет хита - вспомнил :) on_hit = hit

 

А on_death = death будет работать?

Edited by AndrewMor

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

Share this post


Link to post
Share on other sites
Charsi    437

@AndrewMor, не будет, если не добавишь чтение и обработку кондлиста в bind_heli.heli_die(obj).

local death_section = utils.cfg_get_string(st.ini, st.section_logic, "on_death", obj, false, "")
if death_section then
	local cond = xr_logic.cfg_get_condlist(st.ini, death_section, "on_info", obj)
	if cond then
		xr_logic.pick_section_from_condlist(db.actor, obj, cond.condlist)
	end
end

Как-то так.

  • Thanks 1
  • Полезно 3

Share this post


Link to post
Share on other sites

@AndrewMor, в оригинале не работает on_death, насколько я помню (ТЧ 1.0004)

Лучше работать через хит...

  • Confused 1

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

Share this post


Link to post
Share on other sites
Zander_driver    4,647

@CRAZY_STALKER666, А то что Charsi написал, вам не видно?

  • Согласен 1

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

Имею мнение, что >90% модов на сталкер неиграбельны. Делаю свое, играбельное. Внимание: Если вы считаете что с модами на сталкер все ок, то в мое творение вам будет очень тяжко играть.

Share this post


Link to post
Share on other sites
 BFG    6,927

Срочно нужна статья по расшифровке флагов в оллспавне.

object_flags =...

Помню, что видел где-то, может на Вики, может ещё где, но не могу найти :facepalm: . Ткните пожалуйста меня мордой лица в эту статью.

Спасибо.


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

Share this post


Link to post
Share on other sites
Comador    195

BFG, если кратко, то вот пост lsclon.

Добавлено  BFG,

klGOLWb.gif


Неважно – сколько у тебя друзей. Важно - сколько из них помогут тебе в трудную минуту и сколько вспомнят о тебе когда им хорошо.

"Худ" и "Умное выпадание частей монстров" для Народной солянки

Share this post


Link to post
Share on other sites
 HellRatz    2,077

Доброго времени суток. Имеются два вопроса:

 

1) Почему при передаче предмета НПС, он остается в рюкзаке ГГ, хотя в диалоге написано, что предмет передан? Функция передачи:

function otdaem_item(first_speaker, second_speaker)
  dialogs.relocate_item_section(second_speaker, "item", "out")
end
В диалоге написано "предмет потерян", но все равно остается в рюкзаке. Что это такое?
 
2) Как создать звуковую схему для НПС, по типу как волк говорит "Подходи, пообщаемся"?
В скрипт sound_theme вношу по аналогии с другими схемами:
ph_snd_themes["zvuk_ot_npc"] = {[[characters_voice\location\zvuk_ot_npc]]}
В начале, и
zvuk_ot_npc = {min_snd = 7, max_snd = 10, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},

Где-то в середине скрипта. Затем в config\misc\script_sound.ltx:

[zvuk_ot_npc_seq]
stalker = 0,location\zvuk_ot_npc

Затем в логику НПС прописываю:

snd = zvuk_ot_npc

Но в итоге в игре ни звука от НПС, ни вылета. Молчит как рыба. :unsure:  Что не так? 

Спасибо.

Share this post


Link to post
Share on other sites

 

 

при передаче предмета НПС, он остается в рюкзаке ГГ,

 

Как по мне - давний баг странный какой-то.

Пользуюсь вот такой функцией, вроде всё хорошо...

 

function transfer_af_soul (npc, actor)
dialogs.relocate_item_section(npc, "af_soul", "out")
end

 

 

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

  • Thanks 1

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

Share this post


Link to post
Share on other sites
UnLoaded    312

 

 

В диалоге написано "предмет потерян", но все равно остается в рюкзаке. Что это такое?

Попробуй поменять в

dialogs.relocate_item_section(second_speaker, "item", "out")

second_speaker на first_speaker... И вообще - ф-ции этого плана чувствительны к месту вызова, т.е. из чьей фразы они вызываются: если фраза от НПСа, то движок в first_speaker передаст объект НПСа а в second_speaker - объект актера, если от актера - то в точности наоборот.

  • Thanks 1

Share this post


Link to post
Share on other sites
dsh    2,809

 

 

Функция передачи:

 

Возможно перепутаны second_speaker и first_speaker. Никогда не понимал, зачем так делать. Если предмет отнимается у ГГ, то почему бы просто и не делать

  dialogs.relocate_item_section(db.actor, "item", "out")

  • Thanks 1

Share this post


Link to post
Share on other sites
Dennis_Chikin    3,610

И вообще оно надо - именно ПЕРЕДАВАТЬ ?

А потом прописывать 100500 предметов в 100500 конфигов торговли, чтобы переданные предметы не показывались ?

 

local sim = alife()
local actor = db.actor	-- для тех, у кого "НЕТ, ПУСТЬ БУДУТ ОШИБКИ И ПУСТЬ ВЫЛЕТАЕТ !!!"
function remove_items( sect, n )	-- удаляем n предметов, помечаем не учитывать как использованные
	-- log( "info", "remove_items: %s, n: %s ", sect, n or 1 )
	local t, c = {}, 0
	local i_sect, obj
	if not n then n = 1 end
	for i = 0, actor:object_count() - 1 do
		item = actor:object( i )
		i_sect = item and item:section()
		-- log( "info", "remove_items, [%s], i: %s ", ( item and item:name() ) or "nil", i )
		if i_sect == sect then
			obj = sim:object( item:id() )
			if obj then
				c = c + 1
				t[c] = obj
				if c >= n then break end
	end	end	end
	if c ~= 0 then
		for i = 1, c do sim:release( t[i], true ) end
		news_remove_item( actor, "out", sect, c )
	end
end
news_remove_item() определить самостоятельно.

 

Касательно звуков - сделать %=play_snd_from_obj("звук")% по нужному условию - не ?

Edited by Dennis_Chikin
  • Thanks 1
  • Like 1
  • Полезно 1

Share this post


Link to post
Share on other sites
Bak    596

 

 

Затем в логику НПС прописываю: snd = zvuk_ot_npc Но в итоге в игре ни звука от НПС, ни вылета. Молчит как рыба.   Что не так?  Спасибо.
 

Параметр snd доступен только для схемы remark, для других случаев есть функция play_snd_now

 

 

Касательно звуков - сделать %=play_snd_from_obj("звук")% по нужному условию - не ?

Для звука пука оно может и пойдёт, а для речи есть своя метода.

  • Согласен 1

Share this post


Link to post
Share on other sites
 HellRatz    2,077

@Bak, у меня "snd" как раз в схеме ремарк. При чем родные ПЫС схемы работают и озвучиваются, а новые не хотят. Хотя сделано все по аналогии (копи-паст и смена имен звуков на свои).

Share this post


Link to post
Share on other sites
Dennis_Chikin    3,610

"Для звука пука оно может и пойдёт, а для речи есть своя метода."

 

Да-да. Доведем вход в онлайн каждого непися до получаса !

  • Like 1

Share this post


Link to post
Share on other sites
Max_Raf    34

Возник вопрос. Во время загрузки сохранения происходит доспавн актору предметов, которые были получены ранее. Как узнать, что этот предмет был получен при загрузке сохранения (то есть который и был), а не был получен уже во время игры?


... А наше дело маленькое - с ружьём да по болотам. (с)

Share this post


Link to post
Share on other sites
Expropriator    2,052

@Max_Raf, однако у тебя в моде болезнь с отсутствием записи сохранения инфопоршней. Недавно HellRatz страдал тем же. У тебя из логики по функциям в скриптах идёт незатыкаемая команда на выдачу итема, в тот момент когда логика просчитывается с нуля, во время спавна ГГ. Либо у тебя в логике, отсутствуют сами ключи инфопоршней. Еще третий вариант - я могу ошибаться.

Edited by Дизель

andreyholkin.gif

rod_cccp.gif

 

Share this post


Link to post
Share on other sites
Max_Raf    34

@Дизель, не, я по ходу о другом. Я юзаю каллбек получения предмета, и мне нужно понять, этот предмет я получил во время игры или этот предмет был получен до загрузки игры.


... А наше дело маленькое - с ружьём да по болотам. (с)

Share this post


Link to post
Share on other sites
naxac    1,564

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

Отлавливай в той функции, в которой предмет выдается.


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

naxac.gif

Share this post


Link to post
Share on other sites
Bak    596

@Max_Raf, можно проверить, прошел ли уже апдейт актора (загружаемые вещи должны идти до первого апдейта).


@Dennis_Chikin, то есть то, что людина не будет шевелить губами при разговоре, и звук будет идти из левой пятки - это нормально, и всем так стоит делать?


@HellRatz, функция для единичного проигрывания звука от НПС, не нужно ничего никуда прописывать:



-- персонаж толкает речь
function npc_play_snd(actor, npc, p)
	if p[1] then
		local id = sound_theme.id()
		local character_prefix = npc:sound_prefix()
		npc:sound_prefix("characters_voice\\")
		local cnt = npc:add_sound(p[1], 64, snd_type.talk, 2, 1, id, "bip01_head")
		npc:sound_prefix(character_prefix)
		if cnt == 0 then
			printf("npc_play_snd[%s] cant find sound [%s]",npc:name(),tostring(p[1]))
			return
		end
		npc:play_sound(id, 0, 0, 1, 0, 0)
	end
end


%=npc_play_snd(scenario\agroprom\agr_base_commander_1)%
  • Thanks 2

Share this post


Link to post
Share on other sites
Dennis_Chikin    3,610

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

 

В случае npc_play_snd - звук таки предварительно должен быть загружен в непися.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...