Graff46 598 Опубликовано 5 Июня 2022 Поделиться Опубликовано 5 Июня 2022 (изменено) @Ghilli вроде нет. Наверное получится проверить на присест по позиции камеры относительно модели гг по оси y. --- Кто нибудь пробовал на один объект повесить два биндера? Они вдвоем будут работать или последний только? Изменено 5 Июня 2022 пользователем Graff46 Ссылка на комментарий
Ghilli 0 Опубликовано 6 Июня 2022 Поделиться Опубликовано 6 Июня 2022 @Graff46 мысль, кстати, неплохая. Чет об этом я сразу даже не подумал. Можно попробовать. На стоковом движке Зова Припяти dik_to_bind используется только для скриптов связанных с UI? (я сделал предположение на основе того, что нигде более , кроме как в UI скриптах оригинала, это не встречается) Ссылка на комментарий
Graff46 598 Опубликовано 7 Июня 2022 Поделиться Опубликовано 7 Июня 2022 06.06.2022 в 10:52, Ghilli сказал: На стоковом движке Зова Припяти dik_to_bind используется только для скриптов связанных с UI? Да Ссылка на комментарий
ARTLantist 14 Опубликовано 16 Июня 2022 Поделиться Опубликовано 16 Июня 2022 Обнаружил такую недоработку в оригинале ЗП. Если скриптом воспроизводить звуки, то второй (и последующие) не воспроизведутся, пока не пройдёт предыдущий, и какая-то задержка в пару секунд... Это можно как-то пофиксить? Ссылка на комментарий
Domestoz 0 Опубликовано 23 Июня 2022 Поделиться Опубликовано 23 Июня 2022 (изменено) Вопрос к знатокам скриптов, сделал систему апгрейда, только вот нижняя ветка не апгрейдится, хоть как нажимай на второй ветке иконки, будет поставлен апгрейд первой ветки, скрипт на 3 скрине [3 фотографии DEL Изменено 23 Июня 2022 пользователем Domestoz ссылки ВК Добавлено Опричник, 23 Июня 2022 Правила форума п.2.7.1 (ссылки на ВК запрещены). Ссылка на комментарий
Colder 12 Опубликовано 29 Июня 2022 Поделиться Опубликовано 29 Июня 2022 (изменено) https://disk.yandex.ru/i/buSDOiP3EU-O9g Как правильно прочитать параметр fire_modes из секции оружия что бы он показывал -1 или 1 а не как на скриншоте. Скрытый текст local slot = {1,2,4} for n = 1,table.getn(slot) do local item = db.actor:item_in_slot(slot[n]) local wpn = db.actor:active_item() if item ~= nil and wpn then local fm = sys_ini:r_string(wpn:section(), "fire_modes") local StatCS = hud:GetCustomStatic("fire_modes_static") if (StatCS == nil) and (fm ~= nil) then hud:AddCustomStatic("fire_modes_static", true) StatCS = hud:GetCustomStatic("fire_modes_static") StatCS:wnd():SetText(fm) end else if item then hud:RemoveCustomStatic("fire_modes_static") end end end end Изменено 29 Июня 2022 пользователем Colder Ссылка на комментарий
WinCap 316 Опубликовано 29 Июня 2022 Поделиться Опубликовано 29 Июня 2022 @Colder, прочитанную из конфигов строку можно разбить на отдельные части функцией parse_nums, например так: local fm = sys_ini:r_string(wpn:section(), "fire_modes") local fm_t = parse_nums(fm) После этого в fm_t будет находиться таблица с отдельными режимами стрельбы. P.S. Только это будут просто считанные из конфигов доступные режимы, а не текущий режим стрельбы. 1 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Colder 12 Опубликовано 2 Июля 2022 Поделиться Опубликовано 2 Июля 2022 (изменено) Вопрос по ОГСР движку. Пытаюсь прибавить вес ГГ. Вставляю предмет в слот "вес ГГ прибавляеться" убираю из слота "вес ГГ не возвращаеться а остаеться прежнем" как вернуть вес ГГ обратно? Пробывал так: Скрытый текст function on_item_to_slot(obj) local st_item = db.actor:item_in_slot(9) if st_item and (string.find(st_item:section(), "test_use")) then local at = sys_ini:r_float_ex("test_use", "tool_max_weight") local curr_max = db.actor:get_actor_max_weight() local cur_max_walk = db.actor:get_actor_max_walk_weight() db.actor:set_actor_max_weight(curr_max + at) db.actor:set_actor_max_walk_weight(cur_max_walk + at) else --/ - db.actor:set_actor_max_weight(curr_max) db.actor:set_actor_max_walk_weight(cur_max_walk) end end Изменено 2 Июля 2022 пользователем Colder Ссылка на комментарий
WinCap 316 Опубликовано 2 Июля 2022 Поделиться Опубликовано 2 Июля 2022 @Colder, а в блоке else переменные curr_max и cur_max_walk откуда берутся? 1 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Colder 12 Опубликовано 2 Июля 2022 Поделиться Опубликовано 2 Июля 2022 @WinCap Тоже не работает. Скрытый текст function on_item_to_slot(obj) local actor_item = db.actor:item_in_slot(9) if actor_item and (string.find(actor_item:section(), "test_use")) then local at = sys_ini:r_float_ex("test_use", "tool_max_weight") local curr_max = db.actor:get_actor_max_weight() local cur_max_walk = db.actor:get_actor_max_walk_weight() db.actor:set_actor_max_weight(curr_max + at) db.actor:set_actor_max_walk_weight(cur_max_walk + at) else local curr_max1 = db.actor:get_actor_max_weight() local cur_max_walk1 = db.actor:get_actor_max_walk_weight() db.actor:set_actor_max_weight(curr_max1) db.actor:set_actor_max_walk_weight(cur_max_walk1) end end Ссылка на комментарий
Zander_driver 10 334 Опубликовано 2 Июля 2022 Поделиться Опубликовано 2 Июля 2022 3 часа назад, Colder сказал: db.actor:get_actor_max_weight() Возвращает текущее значение макс.веса. И get_actor_max_walk_weight аналогично. Т.е. в блоке else ты читаешь, значения которые у ГГ сейчас. И устанавливаешь их же. Естественно что ничего не меняется. Базовое значение куда возвращаться, в данном случае лучше из конфига прочитать, из секции actor. 1 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
phalcor 60 Опубликовано 3 Июля 2022 Поделиться Опубликовано 3 Июля 2022 Доброго дня! Бьюсь уже долго со схемой добивания раненых в попытке её отключить полностью, но безуспешно. (Платформа ОП, rx_kill_wounded.script). Может есть какой-то способ сделать так, чтобы раненые враги полностью игнорировались? Ссылка на комментарий
Labadal 68 Опубликовано 4 Июля 2022 Поделиться Опубликовано 4 Июля 2022 Вопрос по ТЧ! Доброго времени суток, товарищи. Я тут понемногу самостоятельно обучаюсь, решил вот сделать смарт-террейн (гулаг). Делал по аналогии уже имеющихся. 1. В СДК поставил смарт, прицепил к нему шейп, прописал в логике имя, всё как положено: [smart_terrain] type = pseudo_monolit capacity = 3 groups = 0, 3 2. Поставил трех нпсов, в их кастом дату прописал принадлежность к этому гулагу: [smart_terrains] pseudo_monolit = true 3. Создал для них три точки walk и три точки look. (их назвал правильно - имя_смарта_имя_точки в файле gulag_escape.script прописал для них логику и все, что нужно: Скрытый текст if type == "pseudo_monolit" then t = { section = "logic@pseudo_monolit_guard1", idle = 0, prior = 8, state = {0,2}, position_threshold = 100, online = true, in_rest = "", out_rest = "", predicate = function(obj_info) return obj_info.name == "esc_pseudo_monolit1" end } table.insert(sj, t) t = { section = "logic@pseudo_monolit_guard2", idle = 0, prior = 8, state = {0,2}, position_threshold = 100, online = true, in_rest = "", out_rest = "", predicate = function(obj_info) return obj_info.name == "esc_pseudo_monolit2" end } table.insert(sj, t) t = { section = "logic@pseudo_monolit_loner", idle = 0, prior = 8, state = {0,2}, position_threshold = 100, online = true, in_rest = "", out_rest = "", predicate = function(obj_info) return obj_info.name == "esc_pseudo_loner" end } table.insert(sj, t) end ========= if type == "pseudo_monolit" then return function(gulag) return 0 end end ======= if gulag_type == "pseudo_monolit" then return npc_community == "stalker" end В файле gulag_escape.ltx прописал им их логику. Скрытый текст [logic@pseudo_monolit_guard1] active = walker@pseudo_monolit_guard1 [walker@pseudo_monolit_guard1] path_walk = guard1_walk path_look = guard1_look def_state_standing = guard [logic@pseudo_monolit_guard2] active = walker@pseudo_monolit_guard2 [walker@pseudo_monolit_guard2] path_walk = guard2_walk path_look = guard2_look def_state_standing = guard [logic@pseudo_monolit_loner] active = walker@pseudo_monolit_loner [walker@pseudo_monolit_loner] path_walk = loner_walk path_look = loner_look def_state_standing = guard Так вот, сама проблема в том, что эти нпс - стоят на тех местах, где были заспавнены. Их логика почему-то к ним не "цепляется". Если на них нападут (мутант, или сталкер какой) то как всё успокоится, они встанут на том месте, где остановились. Как "заставить" их "увидеть" их логику и действовать, согласно ней? Спасибо! God save Hatsune Miku! Ссылка на комментарий
Colder 12 Опубликовано 5 Июля 2022 Поделиться Опубликовано 5 Июля 2022 Можно ли скриптово установить параметр artefact_count для брони? ОГСР движок. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 5 Июля 2022 Поделиться Опубликовано 5 Июля 2022 @Colder смотрим сюда, и видим, что для этого параметра есть только метод get_artefact_count. set_artefact_count - отсутствует. Стало быть, одними скриптами это никак не возможно. Это легко поправить. Скрытый текст CustomOutfit.h void set_artefact_count (u32 x) { m_artefact_count = x; } script_game_object.h void SetArtefactCount(u32 val); script_game_object.cpp void CScriptGameObject::SetArtefactCount(u32 val) { CCustomOutfit *outfit = smart_cast<CCustomOutfit*>(&object()); if (!outfit) return; outfit->set_artefact_count(val); } script_game_object_scriptXXX.cpp .def("set_artefact_count", &CScriptGameObject::SetArtefactCount) Добавить эти строчки, скомпилировать движок, и всё. 1 3 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
h0N0r 341 Опубликовано 5 Июля 2022 Поделиться Опубликовано 5 Июля 2022 23 часа назад, Labadal сказал: 3. Создал для них три точки walk и три точки look. Флаги в путях проставил? https://xray-engine.org/index.php?title=Точки_пути_(way_point) https://sites.google.com/view/xray-sdk-0-4-smg Ссылка на комментарий
Labadal 68 Опубликовано 5 Июля 2022 Поделиться Опубликовано 5 Июля 2022 @h0N0r да, флаги везде стоят God save Hatsune Miku! Ссылка на комментарий
EGER.OVERKILL WF 3 Опубликовано 5 Июля 2022 Поделиться Опубликовано 5 Июля 2022 Господа, вопрос такой: Хочу сделать рестриктор, что бы выдался квест при заходе в него. (Можно инфопоршень, неважно). А то по трем гайдам, у меня проблемы, везде вылеты с логом по "g_.script'у" с ошибкой "#2". Направьте пожалуйста, и прошу прощения если оффтоп. ТЧ. 1.0004 Ссылка на комментарий
mole venomous 3 433 Опубликовано 5 Июля 2022 Поделиться Опубликовано 5 Июля 2022 @EGER.OVERKILL WF , рестриктор на вход, там при входе актёру выдать инфо, который запустит квест. Прошу прощения, но с телефона не могу привести примеры кодов. Здесь могла быть ваша реклама. Ссылка на комментарий
EGER.OVERKILL WF 3 Опубликовано 5 Июля 2022 Поделиться Опубликовано 5 Июля 2022 (изменено) 23 минуты назад, mole venomous сказал: выдать инфо, который запустит квест. Это понял, делаю по урокам разным, но результат один, при НИ вылет. Как правильнее сделать выдачу поршня в логике? Я делаю так: Скрытый текст custom_data = <<END [logic] active = sr_idle [sr_idle] on_inside = %+kura% END Изменено 5 Июля 2022 пользователем EGER.OVERKILL WF Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти