mole venomous 2 989 Опубликовано 14 Октября 2020 Поделиться Опубликовано 14 Октября 2020 5 минут назад, Libery сказал: Моды это как хобби Если меня сейчас поволочёт, модераторы переместят к чертям это. Я думаю, с моддингом и спортом можно провести параллели. Это как хобби, к этому есть привыкание. Застойное состояние снижает интерес, а успехи вдохновляют ещё больше. Понятно, что во всём сам не разберёшься. Тебя подталкивают, а дальше сам. В итоге ты благодарен за помощь, но успех вдвойне приятен, потому что "дальше сам". Тебе вот такое посоветовали Скрытый текст if item:clsid() ~= clsid.obj_bolt and item:clsid() ~= clsid.device_pda then -- пример для болта и ПДА actor:transfer_item(item, box) end А следующий твой пост без этого. Выходит, ты не использовал? Как тогда оно будет работать? 2 Здесь могла быть ваша реклама. Ссылка на комментарий
Libery 0 Опубликовано 14 Октября 2020 Поделиться Опубликовано 14 Октября 2020 Пробывал, спасибо конечно я учту. Ссылка на комментарий
Zander_driver 10 166 Опубликовано 14 Октября 2020 Поделиться Опубликовано 14 Октября 2020 Цитата Моды это как хобби Почему "как". Моддинг, это хобби и есть. Вот только, похоже кому-то надо вспомнить, что такое "хобби". Это когда человек делает то, что ему интересно, сам. Находит информацию, иногда труднодоступную. Находит ресурсы, иногда не просто добываемые. И делает собственными руками, то что ему хочется. Что такое в данном контексте этот форум. Место обмена информацией. Кому-то нужна инфа - здесь он ее получает. Это не стол заказов, сюда не надо приходить с заявлениями "сделайте мне". Только что, Libery сказал: тебя не должны заставлять это делать или отвечать на те или иные вопросы. А кто заставляет? Если не хочешь делать то что делаешь - ну, не делай. Но ты же пришел с вопросами "как сделать" - и в ответах будут рекомендации, что делать. Сам же об этом спрашивал. На вопросы тоже можно не отвечать. Можно сказать просто, что мол, я Только что, Libery сказал: Пробывал Но вот не получилось, а почему, где, что не получилось - я вам не расскажу, логов никаких не дам, код не покажу, не хочу отвечать на ваши вопросы дурацкие. Ну не хочешь - не рассказывай это все. Никто же не заставляет. Просто задумайся, а как тогда форумчане должны догадаться, чем тебе помочь? Ясновидящие в дефиците. Где у тебя не-получилось и почему, мы не знаем. Ты когда такси вызываешь, к примеру. Тебя тоже заставляют говорить, куда ехать, а ты не хочешь? А так хотелось бы просто сесть и сказать таксисту "вези меня!", не говоря, куда. Он же отвезет конечно, да? у него работа такая. 3 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Norman Eisenherz 225 Опубликовано 16 Октября 2020 Поделиться Опубликовано 16 Октября 2020 Здрасьте. ЧН 1.5.10, расстановка меток NPC в [sim_squad_generic.script]. Задача: скрыть метки отрядов противника при переключении статуса нейтрал/враг. Решение: добавить проверку по имени метки – if not string.find(spot, "enemy") … Результат: метка обстрелянного отряда скрывается, но метки соседних отрядов остаются видимыми (и желтыми), хотя участники этих отрядов уже активно стреляют по ГГ. В указанном скрипте есть проверка "при наличии лидера отряда проверять отношение ГГ к нему". Отряд не был обстрелян, лидер у него точно есть и, судя по метке, остался нейтральным, но атакует как свидетель нападения. Как принудительно сделать такой отряд враждебным, чтобы скрыть метку? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Kirgudu 949 Опубликовано 18 Октября 2020 Поделиться Опубликовано 18 Октября 2020 @Norman Eisenherz, game_relations.set_squad_goodwill(squad_id, "enemy"). И вообще, стоит поизучать этот модуль и его применение в других скриптах и логике. Инструмент Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 18 Октября 2020 Поделиться Опубликовано 18 Октября 2020 Подскажите пожалуйста, как в ОГСР ВНЕ диалога проверить наличие итема у НПС? Ссылка на комментарий
Norman Eisenherz 225 Опубликовано 19 Октября 2020 Поделиться Опубликовано 19 Октября 2020 @Kirgudu Как определить, что отряд стал враждебным и, возможно, уже начал стрелять по ГГ, оставаясь при этом на нейтральном отношении? Какой параметр отряда меняется, когда отряд становится свидетелем нападения? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Kirgudu 949 Опубликовано 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 225 Опубликовано 20 Октября 2020 Поделиться Опубликовано 20 Октября 2020 Вот именно там и смотрю, и именно эта проверка при явном наличии командиров выдает для соседних отрядов отношение "нейтрал". Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
BFG 7 576 Опубликовано 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 820 Опубликовано 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 225 Опубликовано 30 Октября 2020 Поделиться Опубликовано 30 Октября 2020 Можно обратиться к движковому счетчику патронов: если active_item:get_ammo_in_magazine() и active_item:get_ammo_total() уменьшились на одну величину, это как раз выстрел. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
mole venomous 2 989 Опубликовано 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 225 Опубликовано 31 Октября 2020 Поделиться Опубликовано 31 Октября 2020 Здрасьте. Задача: создать одноименный текстовый файл при создании сейва. В [ui_save_dialog.script] можно отследить имя и создать свой файл при сейве через меню "Сохранить игру". Как сделать то же самое при вводе имени нового сейва через консоль? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
AndreySol 215 Опубликовано 1 Ноября 2020 Поделиться Опубликовано 1 Ноября 2020 9 часов назад, Norman Eisenherz сказал: Как сделать то же самое при вводе имени нового сейва через консоль? Скорее всего никак. Не предусмотрен никакой кэллбэк на это действие, соответственно отследить его не получится. Можно, наверное слепить скриптовые костыли, типа мониторинга на апдейте кол-ва файлов в папке сэйвов и реакцией на появление нового, но не уверен что это возможно. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти