Zander_driver 10 325 Опубликовано 13 Августа 2023 Поделиться Опубликовано 13 Августа 2023 10.08.2023 в 13:25, 666Ian сказал: Но если я буду записывать сразу 100 переменных, там ничего не треснет? Не сломается? Я у себя записываю около пары сотен тысяч переменных. И еще до 100 000 переменных сверху, под конец прохождения мода. Пока ничего не ломалось с этой стороны. 10.08.2023 в 13:25, 666Ian сказал: я же правильно делаю, что на игрока пишу и с него читаю, или можно как-то по уму это делать, грамотно? Скрытый текст Ты не правильно даже говоришь об этом. xvars не имеет никакого отношения ни к игроку, ни к каким-то там объектам... Ты пишешь не "на игрока". А именуешь переменные неким образом, отчего тебе почему-то кажется что "это записано на игрока" ... кажется тебе это. Неправильно. И в тот раз, мы не в объект писали. Просто в xvars, просто в имени переменной содержится id объекта... а оно может и не содержаться. К объектам никакого отношения нет, это просто переменная которую ты можешь обозвать как угодно. Вложив что-либо в название для того чтобы с чем-то другим не перепутать, и только. 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. Ссылка на комментарий
phalcor 57 Опубликовано 23 Августа 2023 Поделиться Опубликовано 23 Августа 2023 (изменено) Приветствую! Непонятный затык какой-то... Заметил, что давно нет респавна убитым монстрам/сталкерам. По времени уже несколько раз должны были сработать респавны. Кордон почти пуст третьи сутки. И если ранее при ручном спавне тестового сталкера он тут же переходил под управление какого-нибудь гулага, то теперь сколько не спавню - они все ходят-бродят кругами, не будучи подхваченные гулагами. Понятно, что мутновато описал проблему, но вдруг кто-то стилкивался с подобным и знает решение? p.s. А где интересно сам механизм захвата заспавненного сталкера под гулаг - в скриптах или же в движке? UPD: такс, нашёл, гулаг объекту назначается в частности в скрипте se_respawn вызовом obj:brain():update(), и далее проверка - нет гулага, объект удаляется. Вот потому у мну и пустыня... Вопрос, что мешает этому brain():update() назначить сталкерам гулаг?!! По условиям тех же гулагов (capacity и т.д.) всё норм. Изменено 23 Августа 2023 пользователем phalcor update Ссылка на комментарий
Это популярное сообщение. phalcor 57 Опубликовано 24 Августа 2023 Это популярное сообщение. Поделиться Опубликовано 24 Августа 2023 (изменено) 17 часов назад, phalcor сказал: давно нет респавна убитым монстрам/сталкерам Нашёл-таки причину. Кому интересно: Скрытый текст Дело всё в том, что при поиске подходящего гулага в obj:brain():update() учитываются allspawnоские трупы, так как у них в ini есть секции [smart_terrains] esc_lager = true Из-за этого такие трупы занимают свободные места в smart_terrainах, уменьшая значения self.gulag.capacity_non_exclusive. Т.е. в методах fill_exclusives для сталков/монстров не проверяется их живость... Где-то это хорошо, а мне вот оказалось плохо - кучу времени потратил. Решение: ждать пропажи трупов или добавить таки проверку в fill_exclusives на alive. Изменено 24 Августа 2023 пользователем phalcor 2 3 Ссылка на комментарий
Norman Eisenherz 280 Опубликовано 3 Сентября 2023 Поделиться Опубликовано 3 Сентября 2023 OGSE 0.6.9.3, переназначение клавиш и кнопок для обработки новых действий: Spoiler [ogse_rebind_key.script] local dik_key_to_name = { … --[256] = "MOUSE_1", -- похоже, враньё в lua_help --[512] = "MOUSE_2", -- аналогично --[1024] = "MOUSE_3", -- та же песня [337] = "MOUSE_1", [338] = "MOUSE_2", [339] = "MOUSE_3", В ТЧ 1.0006 событие "нажать / отпустить ЛКМ или ПКМ" успешно ловится (в скриптовом окне) при ссылке на таблицу DIK_keys с "неправильными" кодами кнопок мыши. Как понимать указанный выше комментарий в OGSE? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
I am Dead 909 Опубликовано 12 Сентября 2023 Поделиться Опубликовано 12 Сентября 2023 04.09.2023 в 04:49, Norman Eisenherz сказал: Как понимать указанный выше комментарий в OGSE? Вот так и понимай, выше неправильные коды, правильные - 0xED(=200) + num Ссылка на комментарий
Norman Eisenherz 280 Опубликовано 13 Сентября 2023 Поделиться Опубликовано 13 Сентября 2023 1. ED (hex) = 237 (16^1 * 14 + 16^0 * 13), иначе не сходится. 2. Картинка сложилась: в [lua_help.script] указаны действующие ссылки и неправильные значения, а при проверке if dik == DIK_keys.MOUSE_1 и т. п. читаются движковые значения. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
wdfgosdgf 62 Опубликовано 13 Сентября 2023 Поделиться Опубликовано 13 Сентября 2023 Подскажите, пожалуйста, можно ли делать проверку расстояния от актора до произвольных координат, не привязанных к игровому объекту? Мне нужна просто проверка расстояния до заданной мной фиксированной точки на локации, не хотелось бы спавнить объекты без необходимости. Как это сделать правильно? Anomaly 1.5.2. Вот пример (оно работает, если что): function is_swamp() local actor = db.actor local obj_pos = vector():set(44.860466003418,-3.8407301902771,-361.91436767578) if actor and obj_pos then if actor:position():distance_to(obj_pos) < 75 then log("ambient_sound: actor in swamp zone! ") --return true end end end ПОСЛЕДНИЕ ВЕРСИИ ПРАВОК И АДДОНОВ: Турель расходует патроны v1.01 ОП2.2 Миноискатель v1.3 + фикс разброса вещей ОП2.2 Объемный звук дождя v1.1 ОП2.2 Дистанция и инфа только со смарт-биноклем в руках ОП2.2 Возврат травы в Тёмную лощину. Фикс пака HD текстур ОП2.2 Аномальные документы с вертолёта v1.0 ОП2.2 + адапт. для LSC 30.08 БТРы и турели издают звук v1.41 ОП2.2 Ссылка на комментарий
I am Dead 909 Опубликовано 15 Сентября 2023 Поделиться Опубликовано 15 Сентября 2023 14.09.2023 в 02:34, wdfgosdgf сказал: Вот пример (оно работает, если что): Ну так в чем суть вопроса если есть рабочий код?) 3 Ссылка на комментарий
Stalkersof 115 Опубликовано 21 Сентября 2023 Поделиться Опубликовано 21 Сентября 2023 Привет друзья. Подскажите как скриптом прочитать параметр из user.ltx Ссылка на комментарий
Norman Eisenherz 280 Опубликовано 21 Сентября 2023 Поделиться Опубликовано 21 Сентября 2023 (изменено) В ТЧ через файловую систему: local file = getFS():r_open(полный путь) или …($app_data_root$, "user.ltx") local text = file:r_stringZ() -- дальше разбирать полученный текст через string.find, string.match и прочие методы В ЧН через библиотеку io: local filename = "_appdata_\\user.ltx" for line in io.iines(filename) do -- построчное чтение local x = line:find(…) … Еще через консоль можно: get_console():get_тип(название параметра или привязки клавиши). Изменено 21 Сентября 2023 пользователем Norman Eisenherz 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Stalkersof 115 Опубликовано 21 Сентября 2023 Поделиться Опубликовано 21 Сентября 2023 Забыл уточнить для ТЧ. А нет ли у кого полного кода или функции. Разбирать и парсить еще не умею. Ссылка на комментарий
Norman Eisenherz 280 Опубликовано 21 Сентября 2023 Поделиться Опубликовано 21 Сентября 2023 При одном параметре можно обойтись консолью. Если надо больше, требуется полное описание задачи. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Stalkersof 115 Опубликовано 27 Сентября 2023 Поделиться Опубликовано 27 Сентября 2023 (изменено) Привет всем у меня опять проблемка. В начале скрипта помещаю некую переменную и присваиваю ей значение, по этому условию выполняю некое действие в функции по нажатию кнопки. Смысл в том чтоб по условию выполнить действие один раз при нажатии кнопки. Все прекрасно работает только до перезагрузки сейва и вообще при любой загрузке кроме ни. Весь код приводить не буду просто кусочек. Простая задача вроде а всю голову сломал. --в начале скрипта local outfit = false --в кусок кода в функции при нажатии кнопки if not outfit then item:set_condition(1) self:GetStatic("no_money"):SetText("Костюм отремонтирован") outfit = true else self:GetStatic("no_money"):SetText("Закончились кевларовые пластины") end Да забыл уточнить ремнабор многоразовый вернее трех разовый. т.е скрипт запускается три раза до удаления предмета из инвентаря. Все ломается после загрузки сейва. Изменено 27 Сентября 2023 пользователем Stalkersof Ссылка на комментарий
Kirgudu 1 171 Опубликовано 27 Сентября 2023 Поделиться Опубликовано 27 Сентября 2023 @Stalkersof разумеется, так и будет, поскольку при каждой загрузке из сохранения твоя строка в начале скрипта выполняется заново, и переменная приобретает первоначальное значение. Чтобы этого не происходило, значение переменной нужно не просто присваивать, но также сохранять в сейве (и читать оттуда при загрузке). Примеров достаточно на любой вкус, даже в оригинале: см. xr_logic.pstor_store / xr_logic.pstor_retrieve (но это не лучший из вариантов, разве что для единичного использования). 1 1 1 Инструмент Ссылка на комментарий
Max_Raf 35 Опубликовано 27 Сентября 2023 Поделиться Опубликовано 27 Сентября 2023 Здравствуйте. Интересует пару вопросов. 1. Есть ли у кого какой-либо парсер xml данных нпс по specific_character id, чтобы получить этим самым парсером данные по спавну оружия и предметов у конкретного нпс? (всё думаю сделать скриптовую замену спавна предметов нпсам при спавне, через условную Lua-таблицу. В теории можно было бы просто <supplies> закоментить и спавнить что хош уже в скриптах, но было бы здорово получить хоть какие то данные из xml, чтобы хоть как то не подтереть что квестовое ненароком) 2. Словил прикол с поведением зверушек. А именно: 1) заспавнил зверушку и перманентно её ослепил. (set_fov(0)) 2) далее просто сделал движение и зверушка меня услышала и начала бежать на меня. 3) Я убежал, аж за АИ-сетку, чтобы зверушка отстала от меня. 4) Зверушка отагрилась и уселась под кустом отдыхать 5) Самый сок: я возвращаюсь на АИ-сетку за овер9999 метров от неё, она начинает бежать на меня. Самое интересное что best_enemy == nil , а get_enemy == 0. По моему монстры не обнуляют что то у себя, тем самым и возникают проблемы с тем что они порой "видят спиной". Вот интересно мнение спеца на подобное. 3. Монстры "видят спиной", как лечить? 4. Ребят, как реализовать рандомные апгрейды в ЗП на заспавненных предметах? В наличии есть m_netpk, но не знаю какой параметр и как "подкручивать" 5. есть у кого рабочая схема работы подствольников для нпс на COC 1.4.22 ? 6. в COC 1.4.22 когда нпс стреляют из РГ-6 то у них затем в некоторой области зависает danger_inertion: стоят тупо озираются и ничего больше не делают. Мало ли у кого есть правка. 7. Пытаюсь перенести музыку из бара на базе ЧН в ЧН - в ЗП COC 1.4.22. Столкнулся с проблемой при установке комментария на музыку . Использовал oggcommentfix ver. 8 и ничего не вышло,звучит всё так же "из головы" а не от бара. Может кто подсказать в чём дело? Мб каким другим софтом коммент править? ... А наше дело маленькое - с ружьём да по болотам. (с) Ссылка на комментарий
Zander_driver 10 325 Опубликовано 28 Сентября 2023 Поделиться Опубликовано 28 Сентября 2023 9 часов назад, Max_Raf сказал: было бы здорово получить хоть какие то данные из xml, чтобы хоть как то не подтереть что квестовое ненароком Для того чтоб составить луа-таблицу под ваши нужды, совершенно нет нужды пользоваться луа. Давно есть готовые инструменты для парсинга xml на любом удобном языке, из массово-употребимых. php, C++, или другие по вкусу. Пишете там свой парсер, он вам дает данные, а их уже Ctrl+C -> Ctrl+V в свой Lua-скрипт. Ну, я лично делал бы так. Если все же категорически хочется юзать Луа - тут это обсуждалось. 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. Ссылка на комментарий
Norman Eisenherz 280 Опубликовано 1 Октября 2023 Поделиться Опубликовано 1 Октября 2023 Кто-нибудь разбирал методы биндеров подробно? 1. Что такое net_Relcase и почему этот метод вызывается 10–20 раз подряд при спавне объекта, а после по 1–2 раза при обращении к инвентарю и прочих вроде бы не связанных с отдельным объектом действиях? Есть старый пост, но он мало похож на правду – метод net_destroy показывает, что объект находится в онлайне при всех вызовах net_Relcase. В движке под таким методом вроде как удаляются ссылки на объект. 2. При каких условиях вызываются методы net_import и net_export? Есть другой старый пост, но он, видимо, вообще не про биндеры. 3. Зачем нужен метод reinit(section), если ссылку на секцию объекта можно получить через self.object в методе reload, который вызывается при тех же условиях "спавн / онлайн"? 4. Обязательно ли выполнять обновление объекта через общий класс object_binder в методах reload, reinit и update? 5. Обязательно ли проверять объект через object_binder.net_spawn? 6. Обязательно ли удалять биндер через object_binder.net_destroy? 7. Почему для разрушаемых объектов вроде ящиков привязка событий через set_callback указана не в reinit, а в net_destroy? 8. Обязательно ли отключать обработку событий в net_destroy? 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
wdfgosdgf 62 Опубликовано 5 Октября 2023 Поделиться Опубликовано 5 Октября 2023 Подскажите, пожалуйста, как правильно запускать звук на воронах, чтобы он двигался вместе с ними? НПС, например, при движении ведут звук за собой, а на воронах он остаётся в точке начала воспроизведения. snd:play_no_feedback(obj, sound_object.s3d, 0, obj:position(), 1) -- звук не движется за объектом Я что-то неправильно делаю или для ворон это не работает в принципе? Через play_at_pos тот же результат. Если для ворон движение звука не сделать в принципе, то ещё вопрос: snd:play_at_pos(obj, obj:position(), 5, sound_object.s3d) Если задать timeout 5 секунд для звука движущегося объекта, в какой позиции он начнёт воспроизводиться?: 1. в той, где объект был на момент выполнения функции 2. в той, где объект будет находиться в момент начала воспроизведения звука после истечения таймера 1 ПОСЛЕДНИЕ ВЕРСИИ ПРАВОК И АДДОНОВ: Турель расходует патроны v1.01 ОП2.2 Миноискатель v1.3 + фикс разброса вещей ОП2.2 Объемный звук дождя v1.1 ОП2.2 Дистанция и инфа только со смарт-биноклем в руках ОП2.2 Возврат травы в Тёмную лощину. Фикс пака HD текстур ОП2.2 Аномальные документы с вертолёта v1.0 ОП2.2 + адапт. для LSC 30.08 БТРы и турели издают звук v1.41 ОП2.2 Ссылка на комментарий
RayTwitty 491 Опубликовано 9 Октября 2023 Поделиться Опубликовано 9 Октября 2023 (изменено) @wdfgosdgf https://xray-engine.org/index.php?title=Класс_sound_object Автоматическое изменение позиции звука не реализовано, нужно делать ручками. В твоем случае надо подвязаться на апдейт биндера вороны и обновлять позицию звука через метод set_position. Разумеется, для каждой вороны свой экземпляр звукового объекта, ссылка на который сохраняется в биндере. Изменено 9 Октября 2023 пользователем RayTwitty 3 1 Ссылка на комментарий
Norman Eisenherz 280 Опубликовано 13 Октября 2023 Поделиться Опубликовано 13 Октября 2023 On 12/8/2014 at 11:51 AM, Dennis_Chikin said: Ну, помним, незабвенный watcher_act.scrip, когда непись прямо во время боя прется через всю локацию, ни на что не обращая внимания, подбирать упавший бинтик, на другом краю этой локации, причем ориентируясь НА СЛУХ. Надо полагать, это файл из НС-2010, в котором "ориентирование на слух" представлено перебором стандартного списка memory_sound_objects. Потестил в ТЧ: бинты и прочие медикаменты при сбросе даже рядом с NPC в список источников звука не заносятся. В "солянке" не правленый движок, скрипты только – была ли в действительности такая проблема? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти