Все посты %s в %S - AMK Team
Перейти к контенту

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


Halford

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

@UriZzz скинь мне функцию proceed_spawn. Найди поиском: function proceed_spawn().

 

Мне уже человек сообщил. Вот в общем виде:

function proceed_spawn(p_name, p_vector, p_lv, p_gv, p_count, p_portion, p_logic)

p_count - количество, p_portion - инфопоршень (не очень понял принцип его использования, что-то там для учёта, где заспавнено), p_logic - кастом дата (необязательно, судя по всему), записывается как-то так: "[logic]\ncfg = scripts\file.ltx".

 

Изменено пользователем BoBaH_671
  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

@BFG Петрович, могу предложить такой вариант - использование коллбека на выбрасывание предмета из инвентаря, там проверять наличие ГГ в нужном рестрикторе. Какая разница, кого проверям в зоне - ГГ или итем? Расстоянием в ~0,5 м можно пренебречь, согласись. Тогда в bind_stalker.script, после actor_binder:on_item_drop (obj) помещаем такой код:

if xr_conditions.actor_in_zone(nil, nil, {"your_restr"}) and obj:section() == "medkit" and not has_alife_info("your_info") then
	db.actor:give_info_portion("your_info")
end

Расшифровываю: your_restr - имя рестриктора, в котором должен быть ГГ, medkit - секция нужного тебе предмета (в данном случае аптечка), your_info - выдаваемый инфопоршень при выполнении всех условий.

Поделиться этим сообщением


Ссылка на сообщение

Короче, предлагаю еще вариант, немного переделанный, очень удобно, если такие вещи за игру надо выполнить несколько раз с разными предметами и рестрикторами. Вставляем таблицу такого вида перед function actor_binder:on_item_drop (obj):

local drop_tbl = {

		{zone = "restrictor_1", item_sect = "item_section_1", info = "infoportion_1"},
		{zone = "restrictor_2", item_sect = "item_section_2", info = "infoportion_2"}
				
		}

После function actor_binder:on_item_drop (obj) вставляем:

for k,v in pairs(drop_tbl) do
	if utils.npc_in_zone(db.actor, db.zone_by_name[v.zone]) and obj:section() == v.item_sect and not has_alife_info(v.info) then
		db.actor:give_info_portion(v.info)
	end
end

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

{zone = "имя_рестриктора", item_sect = "секция_предмета", info = "инфопоршень"}

И всё это сделано на оригинале, никаких солей у меня нету, поэтому предлагаю что могу. Работает.

Изменено пользователем BoBaH_671
  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

@BFG он используется компилятором, СДК его создаёт. Игрой он используется только на МП картах.

Поделиться этим сообщением


Ссылка на сообщение

@BFG юзай всё тот же коллбек на дроп итема. Код такой:

if obj:section() == "af_kamen_udachy" then
	alife():release(alife():object(obj:id()))
end

Вставлять во всё то же место - после function actor_binder:on_item_drop (obj).

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

Ремарк торговцу? Сомневаюсь. Причём remark, а не mob_remark. Уверен, ни один вариант работать не будет. У него своя схема.

  • Согласен 2

Поделиться этим сообщением


Ссылка на сообщение

Для ЗП как-то такое делал, не знаю, прокатит ли с ТЧ, не проверял, поменял лишь название для функции получения непися по стори айди:

function remove_npc_object(actor, npc, p)
	local npc = level_object_by_sid(tonumber(p[1]))
	local item = npc:object(p[2])
	if npc and item then
		alife():release(alife():object(item:id()), true)
	end
end

Тести.

Изменено пользователем Overfirst
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение
3 минуты назад, Guidesun сказал:

Если отойти от нового НПС на приличное расстояние то он исчезает в мир иной.

Все неписи переходят в оффлайн, когда актор очень далеко (150+ метров). В ТЧ, вроде как, можно в работе гулага или как там ваша эта система называется, прописать флаг онлайн, чтобы непись не "исчезал в мир иной".

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

Поделиться этим сообщением


Ссылка на сообщение
24 минуты назад, Houdini_one сказал:

level.set_weather("vivid_foggy")

level.set_weather("vivid_foggy", true)

 

  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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