Overfirst 637 Опубликовано 12 Ноября 2017 @UriZzz level_vertex_id и game_vertex_id. 1 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 12 Ноября 2017 (изменено) @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". Изменено 12 Ноября 2017 пользователем BoBaH_671 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 14 Ноября 2017 удалено по просьбе юзера. bfg 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 16 Ноября 2017 @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 - выдаваемый инфопоршень при выполнении всех условий. Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 16 Ноября 2017 (изменено) Короче, предлагаю еще вариант, немного переделанный, очень удобно, если такие вещи за игру надо выполнить несколько раз с разными предметами и рестрикторами. Вставляем таблицу такого вида перед 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 = "инфопоршень"} И всё это сделано на оригинале, никаких солей у меня нету, поэтому предлагаю что могу. Работает. Изменено 17 Ноября 2017 пользователем BoBaH_671 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 17 Ноября 2017 @BFG он используется компилятором, СДК его создаёт. Игрой он используется только на МП картах. Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 19 Ноября 2017 @BFG юзай всё тот же коллбек на дроп итема. Код такой: if obj:section() == "af_kamen_udachy" then alife():release(alife():object(obj:id())) end Вставлять во всё то же место - после function actor_binder:on_item_drop (obj). 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 30 Ноября 2017 @losiara ну и будет у тебя звук играться из головы ГГ, а не от непися. 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 27 Января 2018 Ремарк торговцу? Сомневаюсь. Причём remark, а не mob_remark. Уверен, ни один вариант работать не будет. У него своя схема. 2 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 9 Августа 2018 (изменено) Для ЗП как-то такое делал, не знаю, прокатит ли с ТЧ, не проверял, поменял лишь название для функции получения непися по стори айди: 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 Тести. Изменено 9 Августа 2018 пользователем Overfirst 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 15 Сентября 2018 10 минут назад, Guidesun сказал: get_story_object("actor") Замени на db.actor. 1 Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 15 Сентября 2018 (изменено) 3 минуты назад, Guidesun сказал: Если отойти от нового НПС на приличное расстояние то он исчезает в мир иной. Все неписи переходят в оффлайн, когда актор очень далеко (150+ метров). В ТЧ, вроде как, можно в работе гулага или как там ваша эта система называется, прописать флаг онлайн, чтобы непись не "исчезал в мир иной". Изменено 15 Сентября 2018 пользователем Overfirst Поделиться этим сообщением Ссылка на сообщение
Overfirst 637 Опубликовано 4 Октября 2020 24 минуты назад, Houdini_one сказал: level.set_weather("vivid_foggy") level.set_weather("vivid_foggy", true) 1 1 Поделиться этим сообщением Ссылка на сообщение