Overf1rst 1 496 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 6 4 1 3 1 3 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 11 июля, 2023 imcrazyhoudini on_info = {=actor_has_item(item)} %+info% Логику эту вписываешь в предмет? item в скобках это название предмета которое нужно написать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 2 минуты назад, Stalkervernite сказал: Логику эту вписываешь в предмет? рестриктор на локации ставишь 2 минуты назад, Stalkervernite сказал: которое нужно написать? да Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 11 июля, 2023 imcrazyhoudini Я спавню возле арта шейп приатачиваю спейс рестриктор и пишу ту логику,так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 Stalkervernite необязательно возле арта, а так верно вот полная логика, вдруг не знаешь: [logic] active = sr_idle [sr_idle] on_info = {+info =actor_has_item(item)} nil %+info% {+info =actor_has_item(item)} - "если есть инфопоршень info и предмет item то выдаём инфопоршень" первый info надо ставить если вдруг нужно чтобы после определённого момента это начало действовать, а не просто взял предмет и всё Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 11 июля, 2023 (изменено) imcrazyhoudini 1 info по дефолту ставим а 2 info это инфопоршень? Изменено 11 июля, 2023 пользователем Stalkervernite Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 Только что, Stalkervernite сказал: шейп приатаченый к спейсу рестриктору да Только что, Stalkervernite сказал: где угодно. да подробнее о рестрикторах:http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_3#.D0.A1.D0.BA.D1.80.D0.B8.D0.BF.D1.82_logic 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ScR1pt 541 Опубликовано 11 июля, 2023 Stalkervernite Желательно в радиусе а-лайфа. 1 | Verge Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 11 июля, 2023 Я читал это все)я не мог найти саму логику насчет взятия предмета Дополнено 2 минуты спустя imcrazyhoudini А первый инфо это к примеру мы заменяем на инфопоршень,и после этого инфопоршня срабатывала эта функция? или не надо вместо info 1 инфо вписывать инфопоршень,а просто так и пишим info Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 3 минуты назад, Stalkervernite сказал: заменяем на инфопоршень ну да, на свой инфопоршень после которого ты хочешь чтобы эта проверка начала работать ну по типу, в диалоге сказали взять артефакт, вот в диалоге выдали инфопоршень, после которого проверка на артефакт уже начнёт работу Дополнено 0 минут спустя [logic] active = sr_idle [sr_idle] on_info = {+info =actor_has_item(item)} nil %+info1% где info это после чего начнёт работать проверка, а info 1 инфопоршень который будет выдан после того как возьмёшь артефакт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 900 Опубликовано 11 июля, 2023 33 минуты назад, ScR1pt сказал: может, просто добавить к условию ещё инфопоршень, но с "-"? А разве так работает? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ScR1pt 541 Опубликовано 11 июля, 2023 Paracetamol Да. Я когда-то делал так удаление персонажа. С локи. 1 | Verge Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Paracetamol 900 Опубликовано 11 июля, 2023 ScR1pt ООО, действительно пропал, премного благодарен! 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
РСФСР 91 Опубликовано 11 июля, 2023 6 часов назад, Stalkervernite сказал: ian98 А нельзя сделать так? в сдк [spawner] cond = Я спрашиваю, потому-что плохо помню эту функцию. нельзя, пробовал. Можно вроде только если создать квестовый предмет-артефакт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 11 июля, 2023 Привет всем. Кто знает чтобы из одного лагеря нпс шли к другому лагерю (точке). Прикол том что нпс у меня привязаны к своему смарт терейну к лагерю своему,а они идут к другому лагерю как сделать чтобы они шли к вейпоинту или в чужой смарт терейн. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 Stalkervernite ну со смарта смарт в например [smart_terrains] smart1 = {-info} smart2 = {+info} когда получит info перейдёт в другой смарт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 11 июля, 2023 imcrazyhoudini+ - это при когда что либо получаем а - что такое? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 Stalkervernite в данной ситуации при получения этого инфопоршня уйдём Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 11 июля, 2023 imcrazyhoudini smart1 smart 2 место этого пишим свои названия смартов? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 Stalkervernite да Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
РСФСР 91 Опубликовано 11 июля, 2023 29 минут назад, imcrazyhoudini сказал: Stalkervernite ну со смарта смарт в например [smart_terrains] smart1 = {-info} smart2 = {+info} когда получит info перейдёт в другой смарт а нельзя если прописано [smart_terrains] none= true в другой смарт по инфо? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 11 июля, 2023 РСФСР я обычно использовал такое [smart_terrains] smart = {+info} то есть бродит себе или использует персональную логику, а потом под смарт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
РСФСР 91 Опубликовано 11 июля, 2023 Вот функция, которая при разговоре с арни перемещает барохло актора в ящик и спавнит всяких хлам для выступлений в инвентарь: function bar_arena_teleport ( actor, npc) db.actor:give_info_portion("bar_arena_entrance") inv_box_1 = level_object_by_sid (573) out_object = actor in_object = inv_box_1 actor:inventory_for_each(transfer_object_item) local spawn_items = {} if has_alife_info("bar_arena_fight_1") then table.insert(spawn_items, "wpn_pm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "wpn_knife") elseif has_alife_info("bar_arena_fight_2") then table.insert(spawn_items, "wpn_mp5") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "wpn_knife") elseif has_alife_info("bar_arena_fight_3") then table.insert(spawn_items, "wpn_toz34") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "wpn_knife") elseif has_alife_info("bar_arena_fight_4") then table.insert(spawn_items, "wpn_ak74") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") elseif has_alife_info("bar_arena_fight_5") then table.insert(spawn_items, "wpn_abakan") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "bandage") table.insert(spawn_items, "medkit") table.insert(spawn_items, "svoboda_light_outfit") elseif has_alife_info("bar_arena_fight_6") then table.insert(spawn_items, "wpn_groza") table.insert(spawn_items, "ammo_9x39_ap") table.insert(spawn_items, "ammo_9x39_ap") table.insert(spawn_items, "ammo_9x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "specops_outfit") elseif has_alife_info("bar_arena_fight_7") then table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "bandage") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "grenade_f1") elseif has_alife_info("bar_arena_fight_8") then table.insert(spawn_items, "wpn_g36") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "exo_outfit") table.insert(spawn_items, "wpn_knife") end local k,v = 0,0 for k,v in pairs(spawn_items) do alife():create(v, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end Пытаюсь сделать на основе нее функцию, вызываемую через логику рестриктора для простого перемещения всего барахла в ящик. Получилось пока такое, и само собой не рабочее: function escape_rob_actor ( actor, npc) inv_box_1 = level_object_by_sid (051) out_object = actor in_object = inv_box_1 actor:inventory_for_each(transfer_object_item) end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Yara 117 Опубликовано 12 июля, 2023 РСФСР Использую такую, с вариантом по имени: function relocate_actor_inventory_to_box(actor, npc, p) local function transfer_object_item(item) --# Секции, которые не перемещать if item:section() ~= "wpn_binoc" and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" and item:section() ~= "device_pda" then db.actor:transfer_item(item, inv_box_1) end end --# (отключено) Вариант по сиду: %=relocate_actor_inventory_to_box(123)% --# inv_box_1 = level_object_by_sid(p[1]) --# Вариант по имени: %=relocate_actor_inventory_to_box(esc_inventory_box_0123)% local s_obj = alife():object(p[1]) inv_box_1 = level.object_by_id(s_obj.id) --# actor:inventory_for_each(transfer_object_item) end 1 https://sites.google.com/view/xray-sdk-0-4-smg Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Stalkervernite 348 Опубликовано 12 июля, 2023 (изменено) imcrazyhoudini Привет, а как ускорить нпс? что бы когда он шел он е медленно шел,а бегал, как такое реализовать? Изменено 12 июля, 2023 пользователем Stalkervernite Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
imcrazyhoudini 1 110 Опубликовано 12 июля, 2023 Stalkervernite либо в вэйпоинт прописать wp00|a=run либо в логику если это walker def_state_moving1 = run подробнее: http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_1#.D0.A1.D1.85.D0.B5.D0.BC.D0.B0_walker Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты