Это популярное сообщение. Dennis_Chikin 3 665 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-847221
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 @Zander_driver, блок питания с запасом, кулер по тестам тоже держит температуру, скорее всего дело в процессоре, который старенький и еще видеокарты нет, так что отдувается за всех... Планировал обновить сборку, но с ситуацией на железо в предыдущее года желание отпало Скажите, пожалуйста, в чем может быть причина, что после вызова test_abstract(), код которого приведен в readme: Скрытый текст function test_abstract() --/ Переносим вентилятор из каморки Сидоровича на тумбочку в подвальчике деревни новичков (на Кордоне) local sobj = alife():object("trader_ventilyator_0000") --/ находим в игре серверный объект вентилятора if sobj then --/ нашли? local pk = get_netpk(sobj,0) --/ или m_netpk.net_cse_abstract(sobj) if pk:isOk() then local vPos = vector():set(-212.8,-22.28,-127.20) --/ координаты 'на тумбочке в подвальчике' local vDir = vector():set(0,3.14,0) --/ направление: 'лопастями от стены' --/ var-1: установка колбэка с таблицей local status = pk:setCallback( { position = vPos, direction = vDir } ) --[[ --/ var-2: установка колбэка с функцией local status = pk:setCallback( function(data) data.position = vPos --/ change property 'position' in 'cse_abstract' data.direction = vDir --/ change property 'direction' in 'cse_abstract' end ) --]] end end end вентилятор не меняет своего положения? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474733
Zander_driver 10 357 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 5 минут назад, Купер сказал: Ох, уж эти адепты ЩПЫКа. Движок удобен для отладки ЛЮБЫХ вылетов - с этим спорить невозможно. 1 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474734
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 3 минуты назад, Zander_driver сказал: а какое железо если не секрет? Процессор Intel Pentium G3250, 4 ГБ DDR, 1 ТБ HDD Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474735
Zander_driver 10 357 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 (изменено) 10 минут назад, div сказал: Intel Pentium G3250, 4 ГБ DDR Вообще-то, не так уж и плохо. У меня в команде тестеров были ребята с железом послабее, и у них мод на базе OGSR работал. Хотя это около минимальной для него планки... но запускаться и работать он должен. По нетпакету к сожалению не подскажу. Я эту версию модуля Артоса уже не использовал. Сидел на более ранних-древних, а потом уже на OGSR пересел. Изменено 22 Декабря 2023 пользователем Zander_driver Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474736
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 @Zander_driver возможно, если на чистой системе будет работать... У меня почему ТЧ стабильно работает только с патчем 1.0004, хотя пробовал разные по очереди ставить с переустановкой самой ТЧ... @Zander_driver, @Kirgudu, 2 часа назад, Kirgudu сказал: 5 часов назад, Zander_driver сказал: Но, что при этом отвалится в логике НПС? Любопытный вопрос, на который у меня нет ответа. Но памятуя о том, что в коде обслуживающем действия НПС, обращения к АИ-сетке встречаются на каждом шагу, подозреваю что будут проблемы. Тоже не знаю. Убирал флаги перехода в оффлайн у БТР, сбрасывал какие-то флаги у физ. объектов - проблем не было. НПС спавнить в воздухе в голову не приходило. У меня не как В se_stalker.script я дописал: if self.cb_netpk then self.cb_netpk(self, packet) end в нужное место... Скрытый текст function clear_useful_for_ai(sobj) local pk = get_netpk(sobj, 1) -- [m_netpk] прочитать нетпакет local data = pk:get() -- [m_netpk] вывести данные в таблицу data.object_flags = bit_xor(data.object_flags, 8) -- двоичное сравнение и сброс флага "интерактивно" на 0 (позиция 8 или 2^3 справа налево: …1xxx или …0xxx –> …0xxx) data.object_flags = bit_or(data.object_flags, 8) -- то же для поднятия флага при любых исходных значениях pk:set(data) -- [m_netpk] записать данные в нетпакет по измененной таблице end function test_abstract_npc() local sobj = alife():create("esc_unik_npc", vector():set(-218.20, -20.2, -145.63), 35362, 47) clear_useful_for_ai(sobj) if sobj then --/ нашли? local pk = get_netpk(sobj, 0) --/ или m_netpk.net_cse_abstract(sobj) if pk:isOk() then local vPos = vector():set(-218.20, -20.2 + 10, -145.63) local vDir = vector():set(0, 3.14, 0) --/ var-1: установка колбэка с таблицей local status = pk:setCallback( { position = vPos, direction = vDir } ) end end end Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474737
Kirgudu 1 370 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 @div готовый тестовый пример с вентилятором:https://disk.yandex.ru/d/T2v4KZ0WfBOp4g Внутри сейвы у Сидоровича и в подвале деревни после переноса (сделаны на Steam версии ТЧ, поэтому скорее всего не загрузятся), скриншоты для визуального подтверждения. Для лёгкости понимания вставок упаковал 2 папки: оригинальную из Steam-версии и уже с изменениями. WinMerge или аналог покажет разницу между изменёнными файлами. Не мудрствуя лукаво, повесил запуск телепорта вентилятора на апдейт актора, через 10 секунд после первого апдейта (чтобы успеть сбросить начальный ролик и увидеть телепорт глазами). Дальше самостоятельно, код писать больше не буду. Имхо, технических сведений вполне достаточно, может просто не хватило внимательности при реализации. 1 2 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474745
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 @Kirgudu, @Zander_driver, какие еще есть "подводные камни"? Условие 1) и 2) тоже выполнено, код вроде полный... P. S. @Kirgudu, спасибо Вам за код, изучаю... 28 минут назад, Kirgudu сказал: Имхо, технических сведений вполне достаточно, может просто не хватило внимательности при реализации. @Kirgudu, да, Вы правы, я se_physic не додумался правильно отредактировать в тот момент, сейчас поправил, работает... С npc правда пока код не работает, хотя se_stalker.script соответствует требованиям пунктов 1), 2) и 3) 1 час назад, div сказал: код (Скрыть) function clear_useful_for_ai(sobj) local pk = get_netpk(sobj, 1) -- [m_netpk] прочитать нетпакет local data = pk:get() -- [m_netpk] вывести данные в таблицу data.object_flags = bit_xor(data.object_flags, 8) -- двоичное сравнение и сброс флага "интерактивно" на 0 (позиция 8 или 2^3 справа налево: …1xxx или …0xxx –> …0xxx) data.object_flags = bit_or(data.object_flags, 8) -- то же для поднятия флага при любых исходных значениях pk:set(data) -- [m_netpk] записать данные в нетпакет по измененной таблице end function test_abstract_npc() local sobj = alife():create("esc_unik_npc", vector():set(-218.20, -20.2, -145.63), 35362, 47) clear_useful_for_ai(sobj) if sobj then --/ нашли? local pk = get_netpk(sobj, 0) --/ или m_netpk.net_cse_abstract(sobj) if pk:isOk() then local vPos = vector():set(-218.20, -20.2 + 10, -145.63) local vDir = vector():set(0, 3.14, 0) --/ var-1: установка колбэка с таблицей local status = pk:setCallback( { position = vPos, direction = vDir } ) end end end function clear_useful_for_ai(sobj) local pk = get_netpk(sobj, 1) -- [m_netpk] прочитать нетпакет local data = pk:get() -- [m_netpk] вывести данные в таблицу data.object_flags = bit_xor(data.object_flags, 8) -- двоичное сравнение и сброс флага "интерактивно" на 0 (позиция 8 или 2^3 справа налево: …1xxx или …0xxx –> …0xxx) data.object_flags = bit_or(data.object_flags, 8) -- то же для поднятия флага при любых исходных значениях pk:set(data) -- [m_netpk] записать данные в нетпакет по измененной таблице end function test_abstract_npc() local sobj = alife():create("esc_unik_npc", vector():set(-218.20, -20.2, -145.63), 35362, 47) clear_useful_for_ai(sobj) if sobj then --/ нашли? local pk = get_netpk(sobj, 0) --/ или m_netpk.net_cse_abstract(sobj) if pk:isOk() then local vPos = vector():set(-218.20, -20.2 + 10, -145.63) local vDir = vector():set(0, 3.14, 0) --/ var-1: установка колбэка с таблицей local status = pk:setCallback( { position = vPos, direction = vDir } ) end end end Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474746
Kirgudu 1 370 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 @div, ну тут одно из двух: либо дьявол в неучтённых мелочах, либо, как мы раньше писали, для NPC это не сработает. Изучать и экспериментировать. Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474758
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 я наверно не тот флаг снимаю data.object_flags = bit_xor(data.object_flags, 128) data.object_flags = bit_or(data.object_flags, 128) так же должно быть? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474760
Kirgudu 1 370 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 (изменено) 10 минут назад, div сказал: я наверно не тот флаг снимаю data.object_flags = bit_and(data.object_flags, bit_not(128)) -- сброс UsedAI_Locations Полный список флагов можно посмотреть в том же m_netpk в конце файла, где "_G.object_flags = ..." и далее. 10 минут назад, div сказал: так же должно быть? Или так, наверное. Только что-то одно. Изменено 22 Декабря 2023 пользователем Kirgudu Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474761
Zander_driver 10 357 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 10 минут назад, Kirgudu сказал: либо, как мы раньше писали, для NPC это не сработает Вообще я бы предложил. Для начала попробовать на совершенно простейшем объекте. Аптечке там или пачке патронов. Потом переходить к более сложным, объектам, поэтапно выясняя где работает, а где уже нет. Подозрения что живого NPC оторвать малой кровью от AI-сетки, нельзя - очень сильны. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474762
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 7 минут назад, Kirgudu сказал: Или так, наверное. Только что-то одно. Пробовал через bit_xor с bit_or и bit_and как Вы написали, но пока не дало результата... Копаю дальше... 6 минут назад, Zander_driver сказал: Для начала попробовать на совершенно простейшем объекте. Аптечке там Аптечки (II_MEDKI) в class_registrator.script у себя не нашел, и честно, не знаю как их там прописывать (знаний маловато для этого) Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474763
Zander_driver 10 357 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 18 минут назад, div сказал: не знаю как их там прописывать А зачем прописывать новый класс? Аптечка в игре и так уже есть. И пачка патронов есть. Можно и любой другой простой тип объекта. В class_registrator ничего прописывать для этого не надо, классы объектов указаны в их конфиге. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474765
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 (изменено) @Zander_driver, класс есть, но в se_item.script нужно к чему обращаться? se_... Не к identity_immunities же? se_medkit? Изменено 22 Декабря 2023 пользователем div Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474766
Zander_driver 10 357 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 Так, стоп. А разве Артос-модуль обязательно требует скриптового биндера серверного класса? se_...что-то там, для него обязательны? Насколько помню, древние версии работали и без этого. Но возможно Артос уже после такое требование накрутил... @Kirgudu прокомментируй? Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474768
div 1 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 @Zander_driver, он требует минимум if self.cb_netpk then self.cb_netpk(self, packet) end в методе STATE_Write... Просто я не знаю, что для аптечек нужно использовать в se_... Пробовал на костюме, там понятно что писать нужно в se_outfit:STATE_Write(packet) Подводя промежуточный итог, я заметил, что если использовать код: data.object_flags = bit_and(data.object_flags, bit_not(128)) -- сброс UsedAI_Locations вместо: data.object_flags = bit_xor(data.object_flags, 128) data.object_flags = bit_or(data.object_flags, 128) экзоскелет (exo_outfit) реально падает, в то время как вариант с xor + or он практически сразу же лежит на поверхности карты.... @Zander_driver, @Kirgudu,можно ли сказать в таком случае, что если каким-то образом зафиксировать data.object_flags, то костюм будет висеть в воздухе? Я так понимаю, смотреть в сторону update не стоит, нужен искать способ, как заморозить это значение? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474770
Zander_driver 10 357 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 1 час назад, div сказал: можно ли сказать в таком случае, что если каким-то образом зафиксировать data.object_flags, то костюм будет висеть в воздухе? Для этого надо не только отключать привязку к AI-сетке, но и отключать для него физику, что делает другой флаг (не скажу какой, у меня это получалось манипуляциями в движке, но доступный скриптово флаг для этого вроде тоже существует). При включенной физике объект упадет. При выключенной - на пули и другие коллизии он реагировать не будет тоже. 1 час назад, div сказал: self.cb_netpk(self, packet) А что внутри этого метода? Он ведь добавленный. В оригинале игры нет такого. 1 Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474775
Kirgudu 1 370 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 (изменено) 1 час назад, Zander_driver сказал: прокомментируй Ну конечно. Иначе как раз переключение оффлайн-онлайн работать не будет. А class_registrator в большинстве случаев нужен только затем, чтобы посмотреть, какой биндер и где искать. 1 час назад, div сказал: data.object_flags = bit_xor(data.object_flags, 128) data.object_flags = bit_or(data.object_flags, 128) Потому что вызов данных команд в паре приводит к исходному положению дел. Ведь даже в комментарии поста сказано, что первая - сброс флага, тогда как вторая - поднятие оного. В итоге флаг привязки к сетке после парного выполнения остаётся установленным. Аптечки... честно говоря, не помню, есть ли у них биндер в принципе. Изменено 22 Декабря 2023 пользователем Kirgudu Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474776
Zander_driver 10 357 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 1 минуту назад, Kirgudu сказал: Иначе как раз переключение оффлайн-онлайн работать не будет. Ээм, а почему? Оно же делается методами-флагами самого sobj-объекта. Во всяком случае, так можно сделать и в серверном биндере оно нуждаться не будет. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474778
Kirgudu 1 370 Опубликовано 22 Декабря 2023 Поделиться Опубликовано 22 Декабря 2023 (изменено) @Zander_driver, оговорился. Не будет работать запись в абстрактную часть пакета, которая возможна только при выходе в онлайн. А это - STATE_Write. Изменено 22 Декабря 2023 пользователем Kirgudu Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1210/#findComment-1474779
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти