ted.80 206 Опубликовано 10 Марта Поделиться Опубликовано 10 Марта 20 минут назад, UriZzz сказал: Хм, а точно не nil if variable == nil or variable == "nil" or variable == false then variable ~= true end 1 Цитата Ссылка на комментарий
Colder 12 Опубликовано 12 Марта Поделиться Опубликовано 12 Марта Всем привет! Имею такой код: Скрытый текст function actor_on_update(status) local tm = task_manager.get_random_task() local active = tm.active_task_by_type for k, task_id in pairs(active) do local task_status = tm.task_info[task_id].status if task_status == "completed" then --// Если завершили таск ---- end end end Хочу сделать что бы при взятии задания на убиство нпс задание завершалось автоматически а не бежать обратно за наградой. Как завершить принудительно выполненый таск? Цитата Ссылка на комментарий
imcrazyhoudini 126 Опубликовано 12 Марта Поделиться Опубликовано 12 Марта Никто случайно не вникал (и соответственно) не правил работу стейт менеджера? Проблема в том, что НПС отыгрывает анимации лишь с into, a out и idle прекрасно игнорирует. Проблема касается ТЧ и ЧН, как обстоят дела в ЗП - не знаю (но судя по одному скриншоту где НПС "ищет" артефакты в аномалии, то могу предложить что там могли исправить). Цитата ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
phalcor 49 Опубликовано 13 Марта Поделиться Опубликовано 13 Марта Добрый день. Как у нпц поменять имя? Для серверного объекта способ нашёл: local sobj = alife():object( id ) local pk = m_netpk.get(sobj, 1) local data = pk:get() local name = data.checked_characters --ВОТ ТУТ МЕНЯЕМ data.checked_characters = "Джек Потрошитель" pk:set(data) А как тоже самое сделать для клиентского объекта? Цитата Ссылка на комментарий
Kirgudu 767 Опубликовано 13 Марта Поделиться Опубликовано 13 Марта 3 часа назад, phalcor сказал: Для серверного объекта способ нашёл Не очень понимаю, как такое может сработать, ведь свойства checked_characters нет в оригинальном модуле Артоса для работы с нет-пакетами (который тут, судя по всему, и используется). 3 часа назад, phalcor сказал: А как тоже самое сделать для клиентского объекта Воспользоваться аналогичным кодом, но поменять свойство character_name. Это, однако, не поможет, поскольку имя персонажа в журнале, диалогах и при наведении курсора берётся из профиля. Можно, конечно, и профиль на лету поменять - для этого в нетпакете есть свойства specific_character и character_profile, но и они не охватывают всё, к тому же сие чревато другими последствиями, такими как замена визуала и т. п. Имхо, без редактирования движка на все 100 задачу не выполнить. 1 1 Цитата Ссылка на комментарий
phalcor 49 Опубликовано 13 Марта Поделиться Опубликовано 13 Марта 19 минут назад, Kirgudu сказал: ведь свойства checked_characters нет в оригинальном модуле Артоса У меня от ОП 2.2, там есть, и работает. 20 минут назад, Kirgudu сказал: Воспользоваться аналогичным кодом, но поменять свойство character_name. Не соображу, как именно это провернуть с клиентским объектом? Если можно, поясни в двух словах. p.s. Я пока пытаюсь схитрить - увожу нпц в оффлайн, меняю имя и снова вывожу в онлайн, но что-то не все хотят уходить в оффлайн, при том, что sobj.can_switch_offline = true. Видимо, есть ещё какой-то ограничитель. Цитата Ссылка на комментарий
Kirgudu 767 Опубликовано 13 Марта Поделиться Опубликовано 13 Марта @phalcor можно попробовать воспользоваться встроенной в модуль функцией автоматического перевода объекта онлайн-оффлайн-онлайн: m_netpk.do_switchings(id) Она в публичный интерфейс автором не выведена, поскольку предназначена в первую очередь для изменения абстрактной части из коллбэка, но дёрнуть её напрямую ничто не мешает. 1 1 1 Цитата Ссылка на комментарий
Norman Eisenherz 149 Опубликовано 17 Марта Поделиться Опубликовано 17 Марта Здрасьте. При чтении одного и того же текстового файла (что-нибудь вроде "123abc") через getFS():r_open(path):r_stringZ() к видимым знакам добавляются какие-то случайные знаки, часто со сломанной кодировкой. При обозначении каждой строки как [секции] таких знаков обнаруживается меньше. Иногда знаки складываются во что-то осмысленное, вроде Vks_aim0, reload_9 или o_7_run_1 – такое впечатление, что ловятся фрагменты загруженных в память конфигов. Вроде попадалось на просторах форума упоминание о такой проблеме, но кто автор и что именно говорилось в том посте, не помню. Как эти знаки правильно исключить из читаемого текста? Цитата Мини-моды: ТЧ ЧН ЗП Ссылка на комментарий
WinCap 273 Опубликовано 17 Марта Поделиться Опубликовано 17 Марта @Norman Eisenherz Функция r_stringZ читает строку до первого символа с кодом 0. Поскольку таких символов в "обычном" текстовом файле быть не может, то функция читает из памяти всё, что попадется до первого символа 0. В качестве решения проблемы могу предложить оформить нужный файл как ini-файл и открывать, используя функцию ini_file(filename). 2 Цитата S.T.A.L.K.E.R. CoP Objects (upd 06.06.23) S.T.A.L.K.E.R. CoP Tools Ссылка на комментарий
Norman Eisenherz 149 Опубликовано 17 Марта Поделиться Опубликовано 17 Марта (изменено) Получается возвращение к вопросу "Как прочитать конфиг построчно, если в нем нет общей секции [l i s t]". Видимо, для простых текстов остается только жестко ограничивать шаблон поиска… Изменено 17 Марта пользователем Norman Eisenherz Цитата Мини-моды: ТЧ ЧН ЗП Ссылка на комментарий
Norman Eisenherz 149 Опубликовано 23 Марта Поделиться Опубликовано 23 Марта [ТЧ 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 Марта Поделиться Опубликовано 24 Марта Вопрос по скриптовому управлению перемещением живности. Работаю на ТЧ. Задаю экшн зверьку - action(obj,move(move.run_fwd,pos)) В некоторых ситуациях монстр бежит по прямой, как мне и нужно. Но в некоторых - оббегает хрен знает зачем за тридевять земель. Даже когда точка в паре метров от него, описывает огромную такую "дугу", чтобы добежать до точки. Подскажите, где искать причину? Цитата Ссылка на комментарий
Zander_driver 9 782 Опубликовано 25 Марта Поделиться Опубликовано 25 Марта 2 часа назад, madrazor сказал: где искать причину? Возможно на пол-пути находится рестриктор куда монстру нельзя заходить. Или просто дырка в АИ-сетке. 1 Цитата Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. Ссылка на комментарий
mole venomous 2 119 Опубликовано 25 Марта Поделиться Опубликовано 25 Марта Давно использую модули @Artos'а для работы с нет-пакетами. Проблем не было, пока не решил использовать таймеры (модуль m_timers) из того же комплекта. Всё отлично работает до загрузки сохранённого таймера. После сейв/лоад с таймера убегает прилично времени - визуально, таймер на худе становится короче на ~2 секунды в чистом ТЧ, на целых ~8 секунд в ТЧ ОГСР. Прикинул, что дело может быть в сохранении/загрузке данных и подключил хранилище (модуль se_store) оттуда же. Результат аналогичен. Чего я недоглядел такого, чего нет в гайде по подключению? В логе красочно указано, когда чекаю, что каждый подключенный модуль "SUCCESS". Или оставить идею с конкретно этими таймерами? Может, кто сталкивался, пните... 1 Цитата Ссылка на комментарий
Norman Eisenherz 149 Опубликовано 25 Марта Поделиться Опубликовано 25 Марта Может, дело в том, что часть времени съедается на загрузку игры? В ЗП когда прикручивал таймеры (простые, не от Артоса) к индикаторам расходников, пришлось вводить проверку значения счетчика до и после загрузки – поправка доходила до 10–12 секунд (в ТЧ на моем ПК теряется 5–6 секунд). 2 1 Цитата Мини-моды: ТЧ ЧН ЗП Ссылка на комментарий
Это популярное сообщение. Zander_driver 9 782 Опубликовано 25 Марта Это популярное сообщение. Поделиться Опубликовано 25 Марта 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. Программист. Ссылка на комментарий
Norman Eisenherz 149 Опубликовано 31 Марта Поделиться Опубликовано 31 Марта [ТЧ 1.0006] Мод по образцу "Мясника" со сбором трофеев без открывания инвентаря, запись состояния "тушка обыскана" в конец нетпакета мутанта: packet:w_bool(self.looted) self.looted = reader:r_bool() Результат: для кабанов, собак и плотей состояние успешно сохраняется и читается после перезагрузки, для псевдособак – нет, хотя состояние точно меняется: тушка становится неактивной после обыска, но после сейва и перезагрузки состояние переменной self.looted сбрасывается на дефолтное значение false. У псевдособак как-то иначе работает биндер? Цитата Мини-моды: ТЧ ЧН ЗП Ссылка на комментарий
Norman Eisenherz 149 Опубликовано 1 Апреля Поделиться Опубликовано 1 Апреля Подставил единственный скрипт из этого мода: 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 Апреля Поделиться Опубликовано 1 Апреля (изменено) Было дело, очень давно, правда, работал над скриптом с GUI-функциями и пришлось бросить - псевдо-собака! С работающим GUI-скриптом при атаке псевдо-собаки был стабильный безлоговоый вылет. И никаких скриптовых и любых других пересечений с псевдо-собакой ни в чём не было. И это было только если она атаковала. Если просто бродила или не работал скрипт - всё было ОК. Я предполагал, что был конфликт при выводе хитов на экран и какой-то конкретной GUI-функции. Но обойти так и не удалось, а без той функции скрипт не имел смысла. Хотя вряд-ли Вам это поможет. Изменено 1 Апреля пользователем 7.9 Цитата всё легко Ссылка на комментарий
h0N0r 232 Опубликовано 1 Апреля Поделиться Опубликовано 1 Апреля @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) { } Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.