Norman Eisenherz 316 Опубликовано 16 Октября 2020 Поделиться Опубликовано 16 Октября 2020 Здрасьте. ЧН 1.5.10, расстановка меток NPC в [sim_squad_generic.script]. Задача: скрыть метки отрядов противника при переключении статуса нейтрал/враг. Решение: добавить проверку по имени метки – if not string.find(spot, "enemy") … Результат: метка обстрелянного отряда скрывается, но метки соседних отрядов остаются видимыми (и желтыми), хотя участники этих отрядов уже активно стреляют по ГГ. В указанном скрипте есть проверка "при наличии лидера отряда проверять отношение ГГ к нему". Отряд не был обстрелян, лидер у него точно есть и, судя по метке, остался нейтральным, но атакует как свидетель нападения. Как принудительно сделать такой отряд враждебным, чтобы скрыть метку? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Kirgudu 1 217 Опубликовано 18 Октября 2020 Поделиться Опубликовано 18 Октября 2020 @Norman Eisenherz, game_relations.set_squad_goodwill(squad_id, "enemy"). И вообще, стоит поизучать этот модуль и его применение в других скриптах и логике. Инструмент Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 18 Октября 2020 Поделиться Опубликовано 18 Октября 2020 Подскажите пожалуйста, как в ОГСР ВНЕ диалога проверить наличие итема у НПС? Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 19 Октября 2020 Поделиться Опубликовано 19 Октября 2020 @Kirgudu Как определить, что отряд стал враждебным и, возможно, уже начал стрелять по ГГ, оставаясь при этом на нейтральном отношении? Какой параметр отряда меняется, когда отряд становится свидетелем нападения? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Kirgudu 1 217 Опубликовано 19 Октября 2020 Поделиться Опубликовано 19 Октября 2020 (изменено) @Norman Eisenherz, достаточно определить, что командир отряда стал враждебным, ведь метка отряда вешается на него. См. commander:general_goodwill(db.actor) в модуле sim_squad_generic.script (commander определяется там же) и дальнейшее использование этого показателя. При определённых его значениях можно вызывать self:hide() / self:show(), что приведёт к нужному результату. Изменено 20 Октября 2020 пользователем Kirgudu была ошибка в названии метода Инструмент Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 20 Октября 2020 Поделиться Опубликовано 20 Октября 2020 Вот именно там и смотрю, и именно эта проверка при явном наличии командиров выдает для соседних отрядов отношение "нейтрал". Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
BFG 7 582 Опубликовано 23 Октября 2020 Поделиться Опубликовано 23 Октября 2020 Всем здравия. Имеется вопросик : можно ли нанести хит НПСу находясь оффлайн от него. Например на другой локе. СИД у НПСа есть. Пробовал так, но не сработало, только находясь в зоне алайфа убивает. function hit (actor, npc) local source = nil local sim = alife () if sim then local se_obj = sim:story_object (9450573052- СИД) if se_obj then source = level_object_by_id(se_obj.id) end end if source == nil then return end local h = hit () h.power = 2000 h.direction = vector():set( 1, 0, 0 ) h.impulse = 60 h.draftsman = source h.type = hit.fire_wound source:hit (h) end Есть ли вообще такой способ ? Гугл читал, форумы курил. Не нашёл ничего. Спасибо. "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
AndreySol 215 Опубликовано 23 Октября 2020 Поделиться Опубликовано 23 Октября 2020 @BFG Хит возможен только по клиентскому объекту, а в оффлайне его нет. Пробуй через установку health в 0. Добавлено BFG, 23 Октября 2020 Хмммм... мдааа. Спасибо большое за идею и за новые познания. 1 2 Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 28 Октября 2020 Поделиться Опубликовано 28 Октября 2020 (изменено) Доброго времени! Есть ли способ проверить, что ГГ из текущего активного оружия прямо сейчас целится правой кнопкой мыши? Изменено 28 Октября 2020 пользователем _Sk8_AsTeR_ Ссылка на комментарий
dsh 3 824 Опубликовано 28 Октября 2020 Поделиться Опубликовано 28 Октября 2020 @_Sk8_AsTeR_, движок какой? В OGSR - db.actor:zoom_mode() если не путаю. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Minya 800 Опубликовано 29 Октября 2020 Поделиться Опубликовано 29 Октября 2020 (изменено) Прошу помощи. Игра ОП-2.1, вымогатель антирадов Гарик, на входе к ремонтникам. Хотелось пересадить его на еду. Но не на одну колбасу, консерву, батон, а комплектом. например батон-колбаса- пиво, батон-консерва-водка, буттерброд-батончик-фляжка. Все фалы нашёл, текст исправил. Не соображу как прописать в скрипте три названия продукта, через запятую, через тире, что бы он забирал их за раз. Подскажите как? Строки на антирады в скрипте, выглядят так; function give_antirad(first_speaker, second_speaker) lost("antirad", 1) end function antirad_have() return has("antirad",1) Изменено 29 Октября 2020 пользователем Minya Ссылка на комментарий
AndreySol 215 Опубликовано 29 Октября 2020 Поделиться Опубликовано 29 Октября 2020 @Minya Как-то так: function give_antirad(first_speaker, second_speaker) lost("батон", 1) lost("колбаса", 1) lost("пиво", 1) end function antirad_have() return (has("батон",1) and has("колбаса",1) and has("пиво",1)) end Секции продуктов пропишешь как надо. 1 Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 29 Октября 2020 Поделиться Опубликовано 29 Октября 2020 @dsh, огср, да Огромное спасибо, скоро проверю @dsh Метод работает! А есть ли способ проверить, нажал ли ГГ левую кнопку мыши, иначе говоря - выстрелил? Нужно скриптово отследить момент, когда ГГ, удерживая зум, выстрелит, и вызвать ф-цию в момент выстрела... Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 30 Октября 2020 Поделиться Опубликовано 30 Октября 2020 Можно обратиться к движковому счетчику патронов: если active_item:get_ammo_in_magazine() и active_item:get_ammo_total() уменьшились на одну величину, это как раз выстрел. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
mole venomous 3 433 Опубликовано 30 Октября 2020 Поделиться Опубликовано 30 Октября 2020 (изменено) Решил по быстрому заспавнить освещение скриптом. Использовал код из AEM (для смены освещения на арене). Всё спавниться и работает, но после сейв/лоада объекты меняют свой direction. По висячим лампам "ильича" этого не видно, а несимметричные объекты, типа настольной лампы, доставляют. Думаю, в коде нужны дополнительные манипуляции с direction и если так, то какие? Код почти без правок, добавил аргументы lvid и gvid: Скрытый текст function v3f(x,y,z) return vector():set(x,y,z) end пример спавна add_lamp(v3f(139.67343139648,-6.1285934448242,180.18035888672),1203772,3686,v3f(0,-1.0,0),"physics\\light\\lampa_01_on",0.8,true) function add_lamp(pos, lvid, gvid, dir, visual, brightness, shadow, color) local light_flags = 56 if shadow then light_flags = light_flags + 2 end local packet = net_packet() packet:w_u16(gvid) packet:w_float(0.0) packet:w_s32(1) packet:w_s32(lvid) packet:w_s32(-70) packet:w_stringZ("") packet:w_s32(-1) packet:w_s32(-1) packet:w_stringZ(visual) packet:w_u8(0) packet:w_stringZ("$editor") packet:w_u8(0) packet:w_u16(-1) if color ~= nil then packet:w_s32(color) packet:w_float(brightness) packet:w_stringZ("") else packet:w_s32(-1) packet:w_float(brightness) packet:w_stringZ("light\\light_omni_white_idle") end packet:w_float(14.0) packet:w_u16(light_flags) packet:w_stringZ("$editor") packet:w_stringZ("link") packet:w_float(100.0) packet:w_float(0.1) packet:w_float(4.0) packet:w_float(0.3) packet:w_stringZ("") packet:w_stringZ("") packet:w_stringZ("bone_lamp") packet:w_float(1.0) packet:w_stringZ("") packet:w_float(0.7) packet:w_stringZ("bone_omni") local se_obj = alife():create("aem_lamp", pos, lvid, gvid) se_obj:STATE_Read(packet, packet:w_tell()) if dir ~= nil then se_obj.direction = vector():set(dir) end end После спауна (как запланировано): https://yadi.sk/i/Wqubj3MUGLwvhA После сейв/лоада(повёрнута): https://yadi.sk/d/aqF7QfAZH5y5GQ Изменено 30 Октября 2020 пользователем mole venomous Здесь могла быть ваша реклама. Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 31 Октября 2020 Поделиться Опубликовано 31 Октября 2020 Здрасьте. Задача: создать одноименный текстовый файл при создании сейва. В [ui_save_dialog.script] можно отследить имя и создать свой файл при сейве через меню "Сохранить игру". Как сделать то же самое при вводе имени нового сейва через консоль? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
AndreySol 215 Опубликовано 1 Ноября 2020 Поделиться Опубликовано 1 Ноября 2020 9 часов назад, Norman Eisenherz сказал: Как сделать то же самое при вводе имени нового сейва через консоль? Скорее всего никак. Не предусмотрен никакой кэллбэк на это действие, соответственно отследить его не получится. Можно, наверное слепить скриптовые костыли, типа мониторинга на апдейте кол-ва файлов в папке сэйвов и реакцией на появление нового, но не уверен что это возможно. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 1 Ноября 2020 Поделиться Опубликовано 1 Ноября 2020 29.10.2020 в 18:26, _Sk8_AsTeR_ сказал: А есть ли способ проверить, нажал ли ГГ левую кнопку мыши, иначе говоря - выстрелил? Таки вы для начала определитесь, собираетесь вы ловить нажатие ЛКМ, или ловить событие выстрела. Это разные события. В ОГСР ловится и то и другое. Нажатия - callback.on_key_press (и там надо ловить код клавиши), Выстрел - callback.on_actor_weapon_fire, Начало стрельбы - callback.on_actor_weapon_start_firing - от предыдущего отличается тем, что при стрельбе очередью будет вызван только 1 раз. 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
naxac 2 447 Опубликовано 1 Ноября 2020 Поделиться Опубликовано 1 Ноября 2020 6 часов назад, AndreySol сказал: слепить скриптовые костыли, типа мониторинга на апдейте кол-ва файлов Лучше тогда при сохранении (вызове метода save биндера того же актёра) - сделать небольшой таймаут и получить самый новый файл из папки сохранений, его и переименовывать. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndreySol 215 Опубликовано 1 Ноября 2020 Поделиться Опубликовано 1 Ноября 2020 @naxac Любой из таких вариантов - костыль галимый, я бы не стал использовать. Лучше правку сделать движковую... 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти