Labadal 66 Опубликовано 16 Августа 2021 Поделиться Опубликовано 16 Августа 2021 @UriZzz function motivator_binder:before_hit_callback(p_s_hit, p_ignore_flags) А вот как с этим работать - ума не приложу, пытаюсь по маленьку, но безрезультатно. Нашёл в тырнетах где данный калбек используется, но там все на ОГСЕ разрабатывается, чую - что должен был способ на чистом ХЕ узнать тип хита, но тут я нуб) Когда нибудь да разберусь) God save Hatsune Miku! Ссылка на комментарий
UriZzz 1 004 Опубликовано 16 Августа 2021 Поделиться Опубликовано 16 Августа 2021 @Labadal огсе и X-ray ext во многом схожи, по крайней мере в коллбэках точно. Думаю есть смысл поковыряться в ём. Сам то я не интересовался конкретно этой областью, потому и не копал в том направлении. 30 минут назад, Labadal сказал: (p_s_hit, p_ignore_flags) Мало о чём говорит. Это надо смотреть клиентский скрипт. Ну да ладно. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Labadal 66 Опубликовано 16 Августа 2021 Поделиться Опубликовано 16 Августа 2021 @UriZzz в тех скриптах, используется то, чего нет в ЕХ, что печально) God save Hatsune Miku! Ссылка на комментарий
Zander_driver 10 331 Опубликовано 16 Августа 2021 Поделиться Опубликовано 16 Августа 2021 49 минут назад, Labadal сказал: before_hit_callback(p_s_hit, p_ignore_flags) Насколько я помню, оно в OGSR имеет такую же сигнатуру. А помню я точно. Потому что... сам лично переделывал. И в СЗ сигнатура уже другая, но это не важно... Вторая переменная - это bool флаг для всяких непристойностей , а первая (p_s_hit) - как раз объект хита, который тебе нужен. Из него уже можно тип хита вытаскивать, и подозреваю, раз сигнатура метода такая же - то можно вполне в OGSR подсмотреть, как именно он вытаскивается. Должно быть похоже, хотя наверное не идентично. Это лишь наводка, в какую сторону копать... дальше сам 1 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. Ссылка на комментарий
UriZzz 1 004 Опубликовано 16 Августа 2021 Поделиться Опубликовано 16 Августа 2021 @Labadal не понял, в смысле? Что конкретно там есть чего нет в ext? Может я не так глубоко копал? У меня с ОГСЕшными скриптами пока ни каких проблем не возникало. Может имеются в виду шейдерные прибомбасы??? Там да, не копал, ибо не нужно конкретно мне. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Labadal 66 Опубликовано 16 Августа 2021 Поделиться Опубликовано 16 Августа 2021 (изменено) @UriZzz например: function motivator_binder:before_hit_callback( p_s_hit, p_ignore_flags ) self.last_hit_data = read_hit_data( p_s_hit ) read_hit_data() - из ogse.dll @Zander_driver в том то и дело, что в огсе он вытаскивается тем, чего нет в ХЕ https://github.com/dsh2dsh/op2ogse/blob/3f7514f804eaf1dc875cc3ce8513d8537dd53bc2/gamedata/scripts/xr_motivator.script#L673 Изменено 16 Августа 2021 пользователем Labadal God save Hatsune Miku! Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 19 Августа 2021 Поделиться Опубликовано 19 Августа 2021 Доброго времени! А есть ли возможность зарегистрировать НПС в конкретном гулаге, при условии что мы 100% знаем что там есть на текущий момент свободная работа? Без редактирования gulag_локация.script Чтобы можно было этого НПС потом отвязать от гулага и в другое место точно так же отправить работать на неопределенное время. Ссылка на комментарий
Labadal 66 Опубликовано 19 Августа 2021 Поделиться Опубликовано 19 Августа 2021 @_Sk8_AsTeR_ По идее, в алл спавне в секции нпс пишешь [smart_terrains] имя_гулага = true END и в случае свободных мест в том же гулаге, нпс=а должно в него затянуть God save Hatsune Miku! Ссылка на комментарий
AndreySol 215 Опубликовано 19 Августа 2021 Поделиться Опубликовано 19 Августа 2021 1 час назад, _Sk8_AsTeR_ сказал: Без редактирования gulag_локация.script Это, типа "и на одно место сесть, и рыбку съесть и косточкой не подавиться"? В чем проблема, конфиги и скрипты править под свои похотелки? По клавиатуре лень пальцами перебирать? Ссылка на комментарий
Norman Eisenherz 298 Опубликовано 19 Августа 2021 Поделиться Опубликовано 19 Августа 2021 Здрасьте. [ТЧ 1.0006] Определение объекта "Сидорович" при диалоге/торговле: получаем ссылку из [xr_motivator.script] для обычных NPC, потом проверяем условия "объект NPC отсутствует или не находится в диалоге". Если последний записанный NPC все еще в онлайне, проверка проходит успешно, если нет – проверка не дает никакого результата, тормозит все последующие скрипты и даже выдачу инфо-поршней. Сбой, скорее всего, случается из-за применения метода is_talking() к оффлайн-объекту (например, если до Сидора был диалог с вояками под ж/д мостом), но почему нет полноценного вылета? Если сослаться на объект NPC через level.object_by_id( obj:id() ), дальнейшая проверка условий проходит успешно, но вопрос не в этом. Spoiler [xr_motivator.script] function motivator_binder:use_callback(obj, who) if self.object:alive() then (+) bind_stalker.get_npc(obj) [bind_stalker.script] (+) local npc function get_npc(obj) npc = obj end function actor_binder:info_callback(npc, info_id) (+) if info_id == "ui_trade" then if not npc or ( npc and not npc:is_talking() ) then npc = level_object_by_sid(3) end end Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 (изменено) @AndreySol ну что за предвзятость? Мне никогда не было лень скрипты править. Суть вопроса в другом. По моей задумке я хотел через диалог с НПС уметь регистрировать его в разных гулагах. Например, нажав в диалоге на "иди в Деревню Новичков" НПС пойдет туда и зарегистрируется, возьмёт работу. Нажмем на "иди на Свалку в Ангар" - он пойдет регистрироваться туда. Вот я и ищу метод (если такой возможен), как через скрипты отправить НПС туда, куда нам надо. Чтобы он не просто пришел на вейпоинт, прописанный в Path_walk, а именно чтобы встал под управление гулага. PS Кажется нашел, что искал. se_smart_terrain:register_npc( obj ) Изменено 20 Августа 2021 пользователем _Sk8_AsTeR_ 1 Ссылка на комментарий
mole venomous 3 328 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 @_Sk8_AsTeR_ А как неписи переходят из ГУЛАГа в ГУЛАГ? В зависимости от выданных/дизабленных инфопорций. Тоже можно провернуть и в диалоге. Здесь могла быть ваша реклама. Ссылка на комментарий
AndreySol 215 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 @_Sk8_AsTeR_ Ну так в чем проблема: настроить работы в гулаге, прописать возможные гулаги неписю, выдать определенную инфо-порцию в диалоге, а в работе гулага прописать прекондишен с проверкой этой инфо-порции и соответствия непися. Есть все необходимые стандартные возможности для твоих хотелок, а тебе обязатьльно надо "вломиться" в работу смарт-террайнов\гулагов, чтоб вот так как тебе хоца, сразу в дамки. Что тебе даст se_smart_terrain:register_npc? Ну, к примеру зарегистрируешь ты непися, и что? Все равно под него заранее надо прописать работу, соответственно емкость гулага. Какой смысл, самостоятельно, скриптами повторять всю цепочку действий, которую и так сделат движок и скриптовая обвязка смартов\гулагов? Все равно не будет тебе "раз-два и в дамки". 1 1 1 Ссылка на комментарий
HARD-Team 0 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 А как сделать так что бы при подходе к краю локации ГГ разворачивался назад? Ссылка на комментарий
Okichi 919 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 (изменено) 7 часов назад, _Sk8_AsTeR_ сказал: Кажется нашел, что искал. se_smart_terrain:register_npc( obj ) А зачем городить огород и делать это напрямую через скрипты управления смарт-террейнами? Ведь в кастомдате непися (еще перед его спавном) _зарнее_ можно прописать все доступные ему гулаги, переключение между которыми должно осуществляться взаимоисключающим набором инфопоршней ( как выше АндрейСол и написал ). Причем в таком варианте сразу проверяется, не нарушаются ли где правила отправки в гулаги, чтоб не получить вылетов на голову ( хватает ли там места для этого нпс, не сидят ли там одни эксклюзивы, которых невозможно выгнать, есть ли доступные работы и т.д.). Если же все это делать "вручную" через скрипты - это будет восход солнца вручную, и шансов где-то да накосячить - офердофига. Нет, это конечно можно сделать - в ДШ-моде, например, сделано - но потребуется уйма доп. работы. Изменено 20 Августа 2021 пользователем Okichi 1 1 След от кругов на воде - это тоже след (с) Ссылка на комментарий
Zander_driver 10 331 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 1 час назад, Okichi сказал: А зачем городить огород и делать это напрямую через скрипты управления смарт-террейнами? А Патамушта. Я так понимаю, @_Sk8_AsTeR_ хочет сделать ПОЛНУЮ динамику перемещений нпс. И если ее делать через алл-спавн и инфопоршни, то в кастом-дату каждого нпс придется все гулаги игры записывать... да? 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. Ссылка на комментарий
Okichi 919 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 24 минуты назад, Zander_driver сказал: хочет сделать ПОЛНУЮ динамику перемещений нпс. Во-первых, судя по тому, что человек только вот "прям щас" нашел/увидел ф-ю, отвечающую за регистрацию нпс в гулаге, _полную_ он пока сделать не сможет. ) И каждому НПС это вряд ли нужно( ибо НАФИГА какому-то первому встречному Васе Пупкину говорить, куда ему идти...), а имелось в виду некоторым "квестовым". Для десятка квестовиков - проще именно что не городить огорода. След от кругов на воде - это тоже след (с) Ссылка на комментарий
Zander_driver 10 331 Опубликовано 20 Августа 2021 Поделиться Опубликовано 20 Августа 2021 27 минут назад, Okichi сказал: Во-первых, судя по тому, что ..., _полную_ он пока сделать не сможет. ) Ну, сможет/не сможет, дело наживное. Хочет он вот этого, как мне показалось. Возможно, показалось неправильно. Тут только он сам сможет прояснить. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 21 Августа 2021 Поделиться Опубликовано 21 Августа 2021 @Zander_driver Идея, вкратце, такая была: Строю большую сложную сцену по выдуманному квесту для НПС с новыми анимациями и т.д. И в какой-то момент, при определённом развитии сюжета, этот НПС просто должен "уйти", стать обычным и пойти работать в гулаги. Почему для него не сделать отдельную работу в каком-нибудь гулаге - потому что еще была позаимствована dsh_walking_stalkers у товарища DSH, которая позволяет неписям гулять по зоне от смартов к смартам. Соответственно и наш искомый непись будет бродить по всей зоне. Наверно изначально я неправильно описал свою "хотелку". Нужно как-то в процессе геймплея "забыть" индивидуальную логику НПС и передать его под работу смартов. Ссылка на комментарий
dsh 3 824 Опубликовано 21 Августа 2021 Поделиться Опубликовано 21 Августа 2021 @_Sk8_AsTeR_ вот делает то, что тебе нужно https://github.com/dsh2dsh/op2ogse/blob/7953b887ae63745dfcf73ecce068b49ca9c0b9d7/gamedata/scripts/sak/sak.script#L1454 1 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти