phalcor 60 Опубликовано 13 Марта 2023 Поделиться Опубликовано 13 Марта 2023 19 минут назад, Kirgudu сказал: ведь свойства checked_characters нет в оригинальном модуле Артоса У меня от ОП 2.2, там есть, и работает. 20 минут назад, Kirgudu сказал: Воспользоваться аналогичным кодом, но поменять свойство character_name. Не соображу, как именно это провернуть с клиентским объектом? Если можно, поясни в двух словах. p.s. Я пока пытаюсь схитрить - увожу нпц в оффлайн, меняю имя и снова вывожу в онлайн, но что-то не все хотят уходить в оффлайн, при том, что sobj.can_switch_offline = true. Видимо, есть ещё какой-то ограничитель. Ссылка на комментарий
Kirgudu 1 217 Опубликовано 13 Марта 2023 Поделиться Опубликовано 13 Марта 2023 @phalcor можно попробовать воспользоваться встроенной в модуль функцией автоматического перевода объекта онлайн-оффлайн-онлайн: m_netpk.do_switchings(id) Она в публичный интерфейс автором не выведена, поскольку предназначена в первую очередь для изменения абстрактной части из коллбэка, но дёрнуть её напрямую ничто не мешает. 1 1 1 Инструмент Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 17 Марта 2023 Поделиться Опубликовано 17 Марта 2023 Здрасьте. При чтении одного и того же текстового файла (что-нибудь вроде "123abc") через getFS():r_open(path):r_stringZ() к видимым знакам добавляются какие-то случайные знаки, часто со сломанной кодировкой. При обозначении каждой строки как [секции] таких знаков обнаруживается меньше. Иногда знаки складываются во что-то осмысленное, вроде Vks_aim0, reload_9 или o_7_run_1 – такое впечатление, что ловятся фрагменты загруженных в память конфигов. Вроде попадалось на просторах форума упоминание о такой проблеме, но кто автор и что именно говорилось в том посте, не помню. Как эти знаки правильно исключить из читаемого текста? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
WinCap 316 Опубликовано 17 Марта 2023 Поделиться Опубликовано 17 Марта 2023 @Norman Eisenherz Функция r_stringZ читает строку до первого символа с кодом 0. Поскольку таких символов в "обычном" текстовом файле быть не может, то функция читает из памяти всё, что попадется до первого символа 0. В качестве решения проблемы могу предложить оформить нужный файл как ini-файл и открывать, используя функцию ini_file(filename). 2 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 17 Марта 2023 Поделиться Опубликовано 17 Марта 2023 (изменено) Получается возвращение к вопросу "Как прочитать конфиг построчно, если в нем нет общей секции [l i s t]". Видимо, для простых текстов остается только жестко ограничивать шаблон поиска… Изменено 17 Марта 2023 пользователем Norman Eisenherz Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 23 Марта 2023 Поделиться Опубликовано 23 Марта 2023 [ТЧ 1.0006] Пара вопросов по классу FS: 1. В папке […\STALKER Shadow of Chernobyl\bin\…] читается только "корень" – папки [BattleEye\], [dedicated\] и файлы в них не обнаруживаются ни проверкой fs:exist(…), ни построением списка. Длина пути явно меньше 256 знаков – до папки [bin\] всего 60. Чем вызван "запрет" обработки этих папок? 2. При построении расширенного списка file_list_open_ex($name$, mask, "folder\\*") часть файлов пропускается. Например, в [config\misc\] не обнаруживаются конфиги инвентарных предметов, квестов, тайников и торговли, а в [config\creatures\] – конфиг ГГ, защитных свойств брони и основной конфиг мутантов. В простом списке с текстовыми путями видны все файлы. В чем может быть причина? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
madrazor 10 Опубликовано 24 Марта 2023 Поделиться Опубликовано 24 Марта 2023 Вопрос по скриптовому управлению перемещением живности. Работаю на ТЧ. Задаю экшн зверьку - action(obj,move(move.run_fwd,pos)) В некоторых ситуациях монстр бежит по прямой, как мне и нужно. Но в некоторых - оббегает хрен знает зачем за тридевять земель. Даже когда точка в паре метров от него, описывает огромную такую "дугу", чтобы добежать до точки. Подскажите, где искать причину? Ссылка на комментарий
Zander_driver 10 334 Опубликовано 25 Марта 2023 Поделиться Опубликовано 25 Марта 2023 2 часа назад, madrazor сказал: где искать причину? Возможно на пол-пути находится рестриктор куда монстру нельзя заходить. Или просто дырка в АИ-сетке. 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. Ссылка на комментарий
mole venomous 3 433 Опубликовано 25 Марта 2023 Поделиться Опубликовано 25 Марта 2023 Давно использую модули @Artos'а для работы с нет-пакетами. Проблем не было, пока не решил использовать таймеры (модуль m_timers) из того же комплекта. Всё отлично работает до загрузки сохранённого таймера. После сейв/лоад с таймера убегает прилично времени - визуально, таймер на худе становится короче на ~2 секунды в чистом ТЧ, на целых ~8 секунд в ТЧ ОГСР. Прикинул, что дело может быть в сохранении/загрузке данных и подключил хранилище (модуль se_store) оттуда же. Результат аналогичен. Чего я недоглядел такого, чего нет в гайде по подключению? В логе красочно указано, когда чекаю, что каждый подключенный модуль "SUCCESS". Или оставить идею с конкретно этими таймерами? Может, кто сталкивался, пните... 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 25 Марта 2023 Поделиться Опубликовано 25 Марта 2023 Может, дело в том, что часть времени съедается на загрузку игры? В ЗП когда прикручивал таймеры (простые, не от Артоса) к индикаторам расходников, пришлось вводить проверку значения счетчика до и после загрузки – поправка доходила до 10–12 секунд (в ТЧ на моем ПК теряется 5–6 секунд). 2 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Это популярное сообщение. Zander_driver 10 334 Опубликовано 25 Марта 2023 Это популярное сообщение. Поделиться Опубликовано 25 Марта 2023 1 час назад, Norman Eisenherz сказал: Может, дело в том, что часть времени съедается на загрузку игры? Само собой. Все эти манипуляции с нетпакетами, на которых основаны модули Артоса, производятся в колбеках on_save, on_load. А между load и завершением Клиент:Синхронизации, всегда и в любом случае, пройдет как минимум несколько секунд. 6 часов назад, mole venomous сказал: Прикинул, что дело может быть в сохранении/загрузке данных и подключил хранилище (модуль se_store) На OGSR лучше использовать script_vars_storage (см. ОГСР-вики). Просто удобнее. А так, ну вникайте же как игра работает-то. Загрузка игрового сейва, и запуск игрока в загруженную игру, это не одно и то же событие, а разные. И они никак не могут быть одновременными. 1 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. Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 31 Марта 2023 Поделиться Опубликовано 31 Марта 2023 [ТЧ 1.0006] Мод по образцу "Мясника" со сбором трофеев без открывания инвентаря, запись состояния "тушка обыскана" в конец нетпакета мутанта: packet:w_bool(self.looted) self.looted = reader:r_bool() Результат: для кабанов, собак и плотей состояние успешно сохраняется и читается после перезагрузки, для псевдособак – нет, хотя состояние точно меняется: тушка становится неактивной после обыска, но после сейва и перезагрузки состояние переменной self.looted сбрасывается на дефолтное значение false. У псевдособак как-то иначе работает биндер? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 1 Апреля 2023 Поделиться Опубликовано 1 Апреля 2023 Подставил единственный скрипт из этого мода: https://ap-pro.ru/forums/topic/1083-tch-butcher/ – состояние тушки псевдособаки не сохраняется. Взял чистый [bind_monster.script], добавил use_callback и одну логическую переменную: init__ – создать как false update – скрыть подсказку, если true use_callback – выдать как есть в сообщение + задать true save – сохранить load – прочитать Результат: тот же сбой на псевдособаке. Кто-нибудь может потестить у себя? https://drive.google.com/file/d/1vbfO2Y_Uf_a0hyt7Pm5tFlEbIbQ47ujx Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
7.9 174 Опубликовано 1 Апреля 2023 Поделиться Опубликовано 1 Апреля 2023 (изменено) Было дело, очень давно, правда, работал над скриптом с GUI-функциями и пришлось бросить - псевдо-собака! С работающим GUI-скриптом при атаке псевдо-собаки был стабильный безлоговоый вылет. И никаких скриптовых и любых других пересечений с псевдо-собакой ни в чём не было. И это было только если она атаковала. Если просто бродила или не работал скрипт - всё было ОК. Я предполагал, что был конфликт при выводе хитов на экран и какой-то конкретной GUI-функции. Но обойти так и не удалось, а без той функции скрипт не имел смысла. Хотя вряд-ли Вам это поможет. Изменено 1 Апреля 2023 пользователем 7.9 всё легко Ссылка на комментарий
h0N0r 341 Опубликовано 1 Апреля 2023 Поделиться Опубликовано 1 Апреля 2023 @Norman Eisenherz Давно кто-то об этом писал, просто сохранил пост как ещё один баг для исправления: Скрытый текст Решил я сохранить некие данные в псторе мобов. Всё было хорошо пока я не вышел с уровня. Как только я ушёл и сразу вернулся, то обнаружил, что все мои данные благополучно потерялись. Стал смотреть в чём дело, оказалось что при переходе между уровнями, а так же при загрузке с автосейва, не вызывается функция load для байндереров мобов и неписей. Из-за чего весь их пстор обнуляется. Если учесть, что все параметры активной логики неписей и мобов хранятся именно в псторе, то его обнуление может неожиданным образом сказаться на их поведении. Например, многоэтапная логика сбросится в своё начало. Последовательность вызова функций binder-ов мобов и неписей. При загрузке обычного сейва: reload reinit load xr_logic.pstor_load_all mob_net_spawn При смене уровня: reload reinit mob_net_spawn Просматривая историю правок script_binder.cpp: Раньше было так: void CScriptBinder::Load (LPCSTR section) { inherited::Load (section); } Забавно, но в день дурака (1.04.04) разрабы изменили на это: void CScriptBinder::Load (LPCSTR section) { } https://sites.google.com/view/xray-sdk-0-4-smg Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 1 Апреля 2023 Поделиться Опубликовано 1 Апреля 2023 Лог действий в биндере обычной собаки и псевдособаки: в первом случае выполняется __init, load и дальше только апдейт, а во втором постоянное пересоздание ! Unknown command: INIT=false -- создание ! Unknown command: READ=true -- правильное чтение ! Unknown command: INIT=false ! Unknown command: READ=false -- сброс ! Unknown command: INIT=false ! Unknown command: READ=false … Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 2 Апреля 2023 Поделиться Опубликовано 2 Апреля 2023 12 часов назад, h0N0r сказал: Раньше было так: void CScriptBinder::Load (LPCSTR section) { inherited::Load (section); } Не значит ли это то, что если вернуть такой вид то многоэтапная логика не будет сбрасываться в самое начало при переходе НПС в оффлайн/смены уровня? ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 2 Апреля 2023 Поделиться Опубликовано 2 Апреля 2023 Чем дальше в лес, тем веселее: псевдособака более не имеет вызова _binder:load – даже на чистой геймдате с единственным скриптом, который только сигналит в лог о действиях биндера, у собак и кабанов на Кордоне есть __init и load, у псевдособаки в живом или мертвом виде один __init. Хелп… Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Kirgudu 1 217 Опубликовано 2 Апреля 2023 Поделиться Опубликовано 2 Апреля 2023 @Norman Eisenherz не подтверждаю. https://disk.yandex.ru/d/TfcsZSLsZNf9zQ Здесь скрипт (дополнил логом в функциях init, update, load и save), лог и сейвы - до использования уже мёртвой псевдособаки, после, и после загрузки. По логу видны манипуляции с тремя объектами: убитой псевдособакой, Сидоровичем (который, емнип, тоже монстр по биндеру) и, наверное, плотью, которую на старте в аномалию засасывает. Сидоровича использовал во время первого диалога, собаку при обыске, плоть - нет. И до и после загрузки видно 2 положительных флага и один отрицательный, как ожидалось. Возможно, разница в движках; пользуюсь купленной 15 лет назад в Стиме версией игры. @imcrazyhoudini не значит, поскольку для того, чтобы отработало inherited::Load(section), необходимо, чтобы класс CScriptBinder наследовал другой, родительский класс, который в актуальной версии не указан. Возможно, там и было что-то ранее, но вопрос возврата всего явно лежит не в плоскости данной темы. 1 Инструмент Ссылка на комментарий
imcrazyhoudini 209 Опубликовано 2 Апреля 2023 Поделиться Опубликовано 2 Апреля 2023 (изменено) Тогда такой вопрос, на счёт того, что НПС переходят в секцию логики указанной в active при переходе в оффлайн. ЧН. Пытался метод dsh адаптировать, но упёрся в правки движка: Скрытый текст FATAL ERROR [error]Expression : assertion failed [error]Function : CInifile::w_string [error]File : D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrCore\Xr_ini.cpp [error]Line : 632 [error]Description : !m_flags.test(eReadOnly) stack trace: xrEngine.exe caused an EXCEPTION_BREAKPOINT in module xrCore.dll at 00000000A904F65A, xrDebug::backend()+0346 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrCore\xrDebugNew.cpp, line 0230 Подумал о варианте попроще - поддержки кондлиста. Помню переносил давным давно на ТЧ поддержку кондлиста для гулагов, примера нет уже. В принципе, работало, правда, требовалась обязательный сейв-лоад. Думаю игроку хоть раз за игру да придётся перезагрузиться и НПС уже подхватит новую логику. Есть у кого пример как реализовать поддержку кондлиста для одиночной логики? Если ещё релоад не нужен будет - вообще отлично. Изменено 2 Апреля 2023 пользователем imcrazyhoudini ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти