Logger 1 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 (изменено) Всем привет , как через нет пакет правильно сменить direction у объекта который я спавню через alife:...(или может можно как либо задать direction при спавне через скрипт?)в нет пакетах я не силен , но если кто поможет буду при много благодарен , заранее спасибо) Изменено 8 Апреля 2016 пользователем Logger 1 Ссылка на комментарий
Romz 142 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 трабла в самом изначальном решении разряжать оружие в on_item_drop... В чем смысл-то ?Сие надо бы у автора сего творения спрашивать. Я лишь пытаюсь заставить это нормально работать под ТЧ вообще и ОГСЕ в частности. И если в чистом ТЧ оно работает без вылетов, несмотря на срабатывание actor_binder:on_item_drop на переходах, то в ОГСЕ свои грабли, которые именно на переходах мешают.Смысл сего действа в том, чтобы при подборе\изъятии ствола, он автоматом скидывал патроны в инвентарь. Если в чистом ТЧ, пока я заради проверки добежал от Сидоровича до перехода, у ГГ уже 500 патронов ля ПМа, 150 для MP-5 и 4 пачки дроби, то в ОГСЕ с неписей выпадает 5 патронов в инвентаре и 3 в стволе, но раз так на десятый. И хотя концепцию "Бомж в ЗО" у них так реализовать не получилось, но в начале игры с хламом к Сидоровичу побегать таки приходится, и неписей поотстреливать только заради лишнего патрона. И вот, чтобы кадый ствол в инвентаре не тыкать, нужен сей замечательный прибамбас. В чем смысл-то ? Или ты о чём? 1 Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
Kirgudu 1 207 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 (изменено) А вот это как раз слишком рано. Задумайтесь, как могут срабатывать колбеки до того, как инициализирован сам объект биндера? Это же его методы. Конечно они после __init будут срабатывать. А при чём тут биндер? Речь-то изначально шла о том, как отловить факт перехода на другую локацию перед этим самым переходом. А это происходит уж точно тогда, когда актор полностью инициализирован в процессе предыдущей загрузки. И значит можно сохранить текущую позицию, например id локации, один раз, в момент инициализации актора. @Romz, попробуй в on_item_drop проверять позицию не клиентского объекта, как ты это делаешь сейчас, а серверного. Примерно так: local sObj = alife():object(db.actor:id()) local vPos,idLv,idGv = sObj.position, sObj.m_level_vertex_id, sObj.m_game_vertex_id -- дальше можно вычислить id локации и сравнить с запомненным if idGv and game_graph():valid_vertex_id(idGv) then local oVertex = game_graph():vertex(idGv) if oVertex then local idLevel = oVertex:level_id() end end Засим из дискуссии удаляюсь по причине катастрофической нехватки времени. Удачи в поисках решения! Изменено 8 Апреля 2016 пользователем Kirgudu 1 Инструмент Ссылка на комментарий
Romz 142 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @Kirgudu, Вот два набора координат, полученных при переходе. Первое - твоим методом, второе - тем, что было. Отличия только в LevelVertex. (908846.0625) = spawn_ammo_in_inv => sect [ammo_7.62x54_7h14] npc [single_player] position [ x = 15.177068710327, y = 16.481603622437, z = 684.85302734375] level_vertex_id [290088] game_vertex_id [207] npc ID [0] number [20] (908846.0625) = spawn_ammo_in_inv => sect [ammo_7.62x54_7h14] npc [single_player] position [ x = 15.177068710327, y = 16.481603622437, z = 684.85302734375] level_vertex_id [290880] game_vertex_id [207] npc ID [0] number [20] Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
Zander_driver 10 333 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @Romz, сей прибамбас, думается мне, можно переключить с on_item_drop на on_item_take. Будут стволы разряжаться при взятии, а оно срабатывает массово ПОСЛЕ входа актора на новую локацию.И там допустим просто в __init или в netspawn биндера ставить некий флаг в false, в on_item_take его проверять равен ли истине, а в true его ставить на медленном апдейте секунд через 5 после нетспавна актора. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Romz 142 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 оно срабатывает массово ПОСЛЕ входа актора на новую локациюНо размножения патронов не вызывает, т.к. состояние инвентаря читается из автосохранения.А на actor_binder:on_item_drop можно, как мне тут подсказали, сделать проверку на открытый инвентарь. Т.к. осмыленный выброс происходит из открытого инвентаря. if idGv and game_graph():valid_vertex_id(idGv) then local oVertex = game_graph():vertex(idGv) if oVertex then local idLevel = oVertex:level_id() end endidLevel = nilПричём, в любом случае, и при ручном выбросе, и при переходе. Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
aromatizer 4 429 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 Логично: если оружие было разряжено при взятии, то незачем разряжать уже разряженное оружие при выбрасывании. Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
Romz 142 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @aromatizer, Нелогично, т.к. это может быть твой ствол, который был в слоте, и который ты заменил другим, и решил засунуть в ящик, например. Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
aromatizer 4 429 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 Зарядить оружие можно только поместив его в слот. Значит, при перемещении оружия из слота в инвентарь, оно тоже должно разряжаться. Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
Romz 142 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @aromatizer, Вообще-то, здесь не место для таких обсуждений. Завязываем, а то прилетит.@Kirgudu, @Zander_driver, Проблема решилась таким образом.Добавляем в начало функции ts_mod_soc.ts_on_item_drop проверку на открытый инвентарь if db.actor:has_info("ui_inventory") then И она срабатывает только при явном выбрасывании ствола из инвентаря ГГ. При переходах и прочих развоплощениях уже не срабатывает. 2 Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
vampirnik77 121 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 А теперь обратный вопрос есть у меня Как можно функцией в ствол запихать N количество патронов? Официальная страница проекта Neof-One Crew Ссылка на комментарий
=VENOM= 50 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 И она срабатывает только при явном выбрасывании ствола из инвентаря ГГ Хотелось бы уточнить - то есть на горячей клавише сброса "активного" ствола авторазряжалка не срабатывает? Ссылка на комментарий
vampirnik77 121 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @=VENOM=, А оно и не должно разряжаться из активного слота. Официальная страница проекта Neof-One Crew Ссылка на комментарий
Romz 142 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @=VENOM=, Да, там проверка, что ствол не в слоте. Чтобы, значит, если у тебя его выбьет, он не разрядился и ты без патронов не остался. Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
=VENOM= 50 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 Ясно - я просто никогда не интересовался подобными фишками, просто решил уточнить функционал. Ссылка на комментарий
Romz 142 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 Блин, кто сегодня скачать успел - перекачайте, плиз. В одном месте забыл переменную переименовать Ссылка та же. Я.Диск 1 Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
vampirnik77 121 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 Такая проблема образовалась. Нужно отловить момент броска/взрыва гранаты. Написал простой биндер для гранат, net_spawn(бросок) работает на ура, а вот net_destroy(как я думал взрыв) ведет себя странно, срабатывает сначала секунды за 2 до собственно взрыва, а потом еще раз через 1-2 секунды. Есть какие мысли по этому поводу? Официальная страница проекта Neof-One Crew Ссылка на комментарий
dsh 3 824 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @vampirnik77, первый дестрой вызывается, когда граната вылетает с руки. Дальше летит уже другая граната, если я правильно помню. Второй дестрой - это уже ее взрыв. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
vampirnik77 121 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @dsh, Когда граната вылетает из рук вызывается net_spawn дестрой вообще вызывается невесть как. Официальная страница проекта Neof-One Crew Ссылка на комментарий
dsh 3 824 Опубликовано 8 Апреля 2016 Поделиться Опубликовано 8 Апреля 2016 @vampirnik77, и net_spawn и net_destroy вызываются. Когда граната появляется в руках, вызывается net_spawn и у этой гранаты есть parent. Потом гранату бросают и вызывается net_destroy, а потом появляется новая граната и для нее вызывается net_spawn. parent-а у этой гранаты нет. Она летит, падает и взрывается. Вызывается net_destroy. Один из вариантов отловить взрыв гранаты - это в net_spawn сохранить parent_id, а в net_destroy проверять, имеется-ли сохраненный parent_id. Если нет, значит это взрыв. Если есть - значит граната полетела. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти