Карлан 1 049 Опубликовано 21 Марта 2017 Доделал бюрера. По идее стал опаснее, чем в ЗП, сохранил ему ближний бой, отредактировал планировщик, и также исправил прекондишны ближнего боя на переменные базового класса, которые он (класс) берет непосредственно из конфига монстра. Ближний бой, возможно, еще допишу, чтобы переходил в него только на выгодных для себя условиях. 5 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 26 Марта 2017 @ChuniMuni, надо смотреть что это за проект, и что там сделано. Если удастся связаться с автором, то разве что в перспективе. Мы на самом деле как-раз в плане, непосредственно, кода стараемся сторонится всяких прикручиваний, в основном тянем все сами, интегрированного кода у нас практически нет, только в сфере исправления ошибок, и тот проходит довольно тщательную проверку и обработку. Баллистику мы сами пишем, но если этот проект чем-то качественно сможет дополнить общую картину, то его можно будет врезать (полностью либо частично). В любом случае это все будет требовать проверки на совместимость (принципиальную), осмысления того, что там хотели сделать, и что там реально сделано, ну и далее по классике. 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 28 Марта 2017 И какое виденье у команды этого архиважного вопроса? Мне трудно ответить на этот вопрос. Вопрос такой. Планируется или же уже реализованы правки движка для оружейной составляющей, в плане полной-неполной перезарядки оружия? Нет. Для дополнений такого плана требуются штатные моделлеры. Но, если упомянуть о принципиальной возможности таких нововведений, то на уровне кода движка это все делается очень просто. Будут моделлеры, напишем код. Ссылки на скачивание бета-версии удалены. Готовится финальная версия, сегодня-завтра будет. 1 5 2 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 29 Марта 2017 Пришло время ставить точку.Итак, дорогие друзья, каковы же итоги за год упорной, давящей и методичной расправы над мрачным миром бэк-сайда игры? А итоги таковы, что нам, своим скромным составом, удалось создать одну из мощнейших скриптовых систем для ТЧ (повторюсь, всего за год), которая вполне может потягаться с такими титанами, как SIMBION или NLC, и которая, на данный момент, позволяет реализовать практически любую идею. Помимо этого, проведен масштабный багфикс многих скриптов, систем, подсистем, конфигов и многого другого. Мы постарались максимально комплементарно объединить весь опыт предшественников (не могу здесь не упомянуть таких людей, как бардак и натвак, большое дело делали), а также и сами внесли довольно весомый вклад в это направление, который по объему как минимум не уступает всему интегрированному материалу, а скорее даже и превосходит. Только от моих рук полегло несколько сотен ошибок! И это не просто рекламная болтовня, каждый может скачать, посмотреть и убедится в этом. Помимо этого, исправлено много различных ошибок на уровне исходников, и диапазон критичности здесь абсолютно такой же. Здесь особенно стоит отметить, что исправлены многие "нерешаемые" ошибки по мнению NLC комьюнити (не в претензию ребятам, у них очень крутое сообщество, надеюсь, что нам все-таки когда-нибудь удастся с вами поколлабить), т.о. у нас опять же появляется техническое преимущество.И также одна из фундаментальных задач состояла в удалении мусора, рудиментов и атавизмов, и здесь у нас тоже все получилось достаточно педантично, мощно и бескомпромиссно. Количество скриптов сократилось на треть по сравнению с оригинальной игрой. Из конфигов также вычищено достаточно мусора, все модули с (необходимыми) единичными функциями скомпонованы в общие вспомогательные файлы, что существенно упрощает работу со скриптами.Нельзя обойти стороной и оптимизацию работы в сетевой части, механизмы для работы с сетевой игрой были упрощены до самого минимума, удалены сетевые библиотеки, из xrGame удалось убрать более мегабайта теперь уже ненужного кода. Работа здесь проведена довольно объемная и масштабная, все подготовлено для какого-то дальнейшего продвижения в части переделывания самой загрузки, что, потенциально, даст еще больший прирост к скорости.Еще также стоит отметить обновление LuaJIT. Для скриптов это, наверное, сильнейший бонус, который вообще можно придумать, скорость работы возрастает в разы, а также появляется дополнительный инструмент (в коробке), который позволяет существенно повысить и качество, и скорость скриптового луа-кода. На ТЧ у нас здесь, определенно, пальма первенства.Печально, что вот такие проекты, как правило, мало востребованы. Таких проектов очень мало, и у всех этих проектов очень слабая маркетинговая кампания, наш, к слову, здесь ничем не выделяется. Поэтому мы с вами из мода в мод видим как кочуют одни и те же проблемы, которые обрастают различными легендами по поводу своей (не)решаемости, а многие проблемы ведь уже давно решены, просто эти проекты валяются где-то в сталкерских глубинах, в забытье. Жаль.Наконец, могу сказать, что я полностью доволен проделанной работой. Все первоначальные цели достигнуты, и мы продемонстрировали один из многих вариантов, как, именно в глобальном плане, можно привести всю скриптовую часть в порядок. Мы создали для себя и для других людей, кто будет пользоваться этой работой, твердую почву под ногами разработав единый луа-организм, который включает в себя все общеизвестные системы, такие как события, таймеры, хранилище и т.д. Также мы полноценно подключили все эти системы, примеров наглядного использования просто масса! Бета-тест также обрадовал, никаких сложных проблем не возникло, в основном это были какие-то мелкие ошибки в синтаксисе и алгоритмах, либо ошибки, которые были в нашем поле зрения и как-раз ложились на плечи бета-версии. Это наглядно демонстрирует тот факт, что мы еще можем делать качественный продукт! Всем спасибо, кто играет, будет играть, будет использовать это все как-либо, и, возможно, все-таки начнут забирать какие-то решения вековых проблем, чтобы все что мы сделали было не зря, и вот этот тяжелейший технический проект не рухнет в ту же пропасть к остальным своим предшественникам. Но будем надеяться на лучшее, ведь правильное дело всегда поддержат и подхватят, главное делать.Это последняя и финальная версия Prosectors в том векторе, в котором он разрабатывался изначально. Все поставленные цели достигнуты, не все сделанное вошло в проект, мы сделали достаточный объем работ и помимо того, что есть. Это дело принесло нам бесценный опыт, который позволил выстроить технически качественную стратегию разработки. Возможно этот not included stuff выйдет какой-то расширенной версией или просто дополнением, пока ничего сказать не могу. Что будет с развитием проекта дальше пока не ясно, возможно мы пройдем некий ребрендинг, посмотрим. Ссылка: https://mega.nz/#F!FhdynQwT!4sOqPMmEtH-y7rG9kz1aLA (нужна новая игра, это для тех, кто играет в бету). См также шапку темы. Всем мир и уважение, пока! 12 4 4 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 30 Марта 2017 Ну вот и первое зависание Опиши полную последовательность действий, как воспроизвести эту ошибку. Приложи сейв. Любой тык в инвентарь-рюкзак -- зависает как у Панды -- приходится убивать процесс. 7.9, подтверждаю, при выборе любого юзабельного итема (водка, аптечка и т.п.) через инвентарь... фатальная ошибка...гы. Так что ждем и надеемся на новые фиксы. >Hotfix< (не обязателен для владельцев ШФ) 2 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 30 Марта 2017 Если возможность/невозможность ремонта или использования предметов будет определяться их кондицией, то состояние предметов лучше выводить в процентах, а не отображать полоской. Такой вариант устроит? Весьма неудобно взаимодействовать с мелкими игровыми объектами, вылавливая пиксель в центре экрана. Хорошо бы добавить маркер, который появлялся бы когда пустые руки. В опциях доступен "упрощенный подбор предметов", на сложности "Мастер" это, возможно, будет не лишним. По поводу худа: индикаторы жизненно важных параметров ГГ в виде худовых спецэффектов и мигающих иконок не позволяют адекватно оценивать эти параметры, а боец, не способный адекватно оценить свои способности- не боец. В игре это будет причиной перерасхода медикаментов/загрузки предыдущего сейва. Это вопрос опыта. После "притирания" к игре уже примерно представляешь, когда можно колбасу есть, а когда можно еще повременить, и также с остальными предметами вроде еды и медикаментов. @Panda19, дело не в видеокарте, а в баге движка из-за реализации равнозначных слотов, иногда реальный слот итема, и тот слот, в котором он находится - отличны, из-за этого происходит ошибка, нужно понять эти случаи и придумать какое-то решение. Как удалось добиться, что иконки голода и здоровья на худе не превращаются в овалы на широком формате? Переписал формулы в движке, также можно обратить внимание и на окошко с патронами, и на мини-карту, правда с последней я еще до ее рамки так и не добрался, она по прежнему тянется, но сама мини-карта рисуется адекватно. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 30 Марта 2017 Если "нормальные герои всегда идут в обход", то- да.) А как иначе? В текущем дизайне куда засунуть 4 символа я просто не представляю. Как это работает? Приводится к оригиналу. И сколько, на вскидку, часов страданий надо провести в игре для "притирания"? И все это время юзер будет вспоминать разработчиков "добрыми" словами. Я не обладаю такой статистикой. Я притерся . Посмотреть как это сделано в других проектах. Здесь я считаю нужным немного подробнее изложить суть проблемы. Сразу укажу, что Влад (Real Wolf) в приведенном тобою проекте (видео) просто заткнул этот вылет, т.е. косячный предмет тебе просто запретят дропнуть и все, я же иду путем исправления, то есть я эту ошибку пытаюсь именно исправить, а не заткнуть. Да, сейчас я немного разобрался в этом коде, и там у меня допущен пробел в алгоритме, кое-что необходимо поменять местами. Суть вообще проблемы в чем, есть слот итема, есть слот в котором он находится, игра же всегда пытается дропнуть предмет именно из того слота, который в данный момент назначен этому предмету, я, поскольку никакого отношения к написанию этой системы не имею, не могу точно назвать истинную причину данного явления, возможно (пере)назначенный слот попросту не сохраняется, возможно что-то еще, поэтому я при дропе в случае ошибки просто-напросто экстренно проставляю текущий слот стволу, т.е. такая эмуляция загрузки этих данных, но вот видите, никто не идеален . Но эту ошибку, так или иначе, охарактеризовать можно как "крайне редкая" и "не стабильная", так что боятся, в крайнем случае, ее не нужно. Если рассматривать конкретный случай, случай Панды, то у него в слоте пистолета стояло ружье, а игра хотела дропнуть пистолет, но по его слоту получала ружье, что и привело к такому вылету. В ближайшем апдейте будет нормальное исправление. Я такую ошибку не ловил вообще за всю историю разработки, так что достаточно трудно такое вот исправляется. И здесь снова, безусловно, спасибо Панде! @Tigrica, мини-карта активируется по нажатию клавиши Tab. Возможности сна пока нет вообще. По поводу голода, рекомендую запасатся консервами, они не портятся, и к середине игры их уже достаточно для сытной жизни. И также рекомендую начинать принимать пищу только при "желтом" голоде, ранние стадии безвредны. А чего там переписывать? Я может чего не понимаю, но что мешает использовать ui_maingame_16.xml? Там как раз все размеры для ш/ф задаются. Дело вовсе не в этих описателях, это всего-лишь данные. Фрейм патронов, тем не менее, ведь тянется на _16.xml, верно? Как ты это объяснишь? То-то и оно. 1 4 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 30 Марта 2017 Нашел кровь камня, но на пояс он не цепляется, хотя с левой стороны явно обозначены ячейки для артефактов. Или артефакты прямо из рюкзака работают? Артефакт, безусловно, должен вешаться, давай сейв. Какой костюм? Защита костюмов от пуль в процентах реально работает, или как у ПЫС? Как найдешь экзоскелет, так не поленись, найди и куртку новичка. Затем влезь в жесткую перестрелку сначала в первом, затем во втором бронике. Копий на эту тему много сломано, в частности и в этой теме, не хочу поднимать этот разговор в очередной раз. По-подробней, пожалуйста. Радиус увеличивается, проще подобрать предмет. Вернулся на Свалку от Сидоровича, Бес погиб от костра. Когда я ставил в игру мод Dynamic Campfire Mod ver. 1.32. То в костёр ни кто не лез, причину не знаю, но надо это устранять. Да, это болячка известная, до костров просто в принципе руки не дошли, в движке они готовы, но вот заскриптовать и баги оригинала поправить так и не дошло дело, там это надо будет и с кампами увязывать и еще с другими моментами, есть там еще над чем поработать. По мутантам тушканы и кошки друзья? Отношения между мутантами будут пересматриваться после окончания заселения. Пока отношения стандартные, по большей части четвероногие воюют с двуногими. Возможно там что-то еще принципиально в самих релейшенсах изменится, работа идет, со временем всех с кем надо поссорим и подружим . Небольшое обращение к игрокам: ребят, вот по поводу багов, если заметили что-то не так работающее по вашему мнению, не поленитесь, сделайте сейв и к посту сразу же его приложите, если это баг, то я сразу же посмотрю, если это не баг, то я вам сообщу. Я абсолютно спокойно и с пониманием отношусь ко всем вашим претензиям по поводу геймплея, и абсолютно такая же политика в отношении багов, никакого гонора по поводу "так и должно быть" или "вы ничего не смыслите" никогда не будет, если это ошибка, то я прямо так и говорю - ошибка, если нет, то я вам также отвечу что это не ошибка, а какая-то особенность геймплея. Давайте как-то более продуктивно будем взаимодействовать, так как из постов "что-то мне кажется у меня тут не это" проблемы не решаются, хороший рецепт для исправления - это алгоритм воспроизведения + лог + сейв, в противном случае я могу не смочь ответить оперативно, и вы потом эту ошибку уже не сможете как-то воспроизвести, так как прошли этот момент достаточно давно и откатываться ни желания, ни возможности. Надеюсь на понимание, спасибо. 3 2 1 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 31 Марта 2017 (изменено) Сделайте сейв перед багом с мышью, я так и не могу воспроизвести появление данного бага. @DEXER верно подсказал промежуточное решение, разговор с неписем отлипает мышь. Что прикажете мне дальше делать? Жми кнопку "Поторгуемся?" в торговле, крути ползунок вправо, у тебя там уже нормально можно цены сбить. На твоем сейве я купил рюкзак у Сидора, правда есть некоторые заморочки, спасибо, я немного подправлю в движке чтобы не убийственно это все было. >Сразу вот готовый сейв, если по моей инструкции не справишься< Инструкция в скриншотах: 1. https://yadi.sk/i/PYJs3LkU3GXsHN 2. https://yadi.sk/i/QxGinqpb3GXsJi 3. https://yadi.sk/i/jIr-A6mv3GXsKb 4. https://yadi.sk/i/m5Dtqfq93GXsME Изменено 31 Марта 2017 пользователем Карлан 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 1 Апреля 2017 Не уверен насколько это может быть важно или нет на данный момент, но похоже что статистика артефактов не работает, т.к. найденные артефакты не засчитываются. Пока не затронуто, так как с оригиналом не пересекается. И еще вопросы: группировки Чистое небо, охотники и Грех уже вплетены в прохождение или пока только числятся в статистике и надеяться встретить их в скором времени не стоит? И то что Меченый относится к наёмникам(который сам по себе) это так было задумано? Не стоит. Опять же по вышеизложенной причине. Добавлены лишь на уровне файлов. Про Меченного - да, пока так и задумано, потом будет видно. И есть ли смысл сообщать о недочетах которые были в чистой игре, но пока не затрагивались? Да, конечно. В первую очередь, так как это был основной вектор и мы о нем не будем забывать. Эххх... и выйти не могу с ТД Если вылет стабильный, то давай сейв, так или иначе фатальность убрал, но необходимо устранить, а пока не узнаем что за объект устранить не выйдет. И ещё при прохождении когда всё знаешь, особого интереса нет играть. Эта часть у нас не затрагивалась, и затрагивать ее не планируем, хотя бы до того момента, пока не будет новых карт, старые уже заполнены и какие там квесты можно делать совершенно не понятно. Я вот даже когда спавнил всяких вырезанных монстров, и то уже куча одна на другой, приходилось местами лавировать и попеременно включать/выключать гулаги. to ALL: в самое ближайшее время выложим описание нововведений, оно практически готово. upd: В шапку добавлено описание нововведений. 3 1 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 1 Апреля 2017 @Panda19, спасибо. Зло побеждено, это были вороны . @DEXER, нет, неверно. В функции использования аптечки берется первый попавшийся предмет на классе аптечки, а поскольку все таблетки на этом классе. то не удивительно, что сжирается что-то еще. Быстрые слоты у меня вообще под большим вопросом, их надо либо делать как подобие разгрузки, либо не делать вообще, одно время я их вообще вырезать хотел. Иными словами сам я ими не пользуюсь, и что с ними вообще делать, кроме как вырезать, пока идей нет. to ALL: Исправление ошибки: m_cleaner.script:181: attempt to call method 'game_death_time' (a nil value) >Hotfix< Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 1 Апреля 2017 Нужно обрасти визуальным "мяском" Второй рендер портирован (ЗП->ТЧ), но все фишки отключены по причине отсутствия человека, который все настроит (погода, шейдеры и т.д.). Заочно уже обросли, правда без новых директов, но и до них не велик труд дойти. Картинка, безусловно, приятнее, но все надо настраивать, так что если кто-то захочет, то двери всегда открыты. А как слоты в ЗП можно сделать? Тогда это всех устроит. Сами будут выбирать куда что положить. Сделать конечно можно, я пока думаю вообще над их уместностью. И если я их и буду делать, то скорее всего в стиле разгрузки, это будет выглядеть не как в ЗП, и опять же с привязью к броникам и потенциалом прокачки, но, повторюсь, я пока не уверен в нужности всего этого, не исключено, что и те, что есть будут вырезаны. Это все надо куда-то в дизайн вписывать, на текущем фоне не совсем понятно куда их засовывать, когда они у меня были включены они были сверху над бронежилетом, лучшего места тогда для них я не нашел. Вот усиленное использование нескольких препаратов одновременно весьма сомнительно, маловероятно что гг на бегу сможет распаковывать 2 и более аптечки и эффективно использовать их, к тому же все таки могут быть и побочные эффекты. Да, я разделяю это мнение. Весьма сомнителен аддитивный эффект при запивании коагулянтов водкой (я не врач, но из своих знаний вроде водка будет полностью нивелировать эффект этого лекарства). Эта мысль у меня уже давно, и обязательно это все будет, но в текущую версию я не стал это включать, так как от игроков, предполагаю, было бы много непонимания, когда при съедании одного, другого, третьего здоровье шло бы на убыль. Практика показала, что торговля интуитивно не ясна, тут и подавно. А можно ссылку на последнии обновления.А то что то не очень хочется качать полностью игру с вшитым проектом. По другому не выйдет. Моя практика показала, что пользователь достаточно плохо понимает как устанавливать различные облегченные версии, я тут конечно же не исключаю пробелов в своем объяснении, но вот как есть. Так будет проще, особенно тем, у кого скоростной интернет и безлимитный трафик, в противном случае, если люди качали бету, то они должны были понимать на что идут. Это моя позиция. 2 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Апреля 2017 @Дар Ветер, рекомендую критически изучить информацию по поводу того, кто же все-таки создал небо, землю и колесо. @Cromanjonez07, сна пока нет в принципе. Поспать не удастся вообще. Реализуем позже. @Panda19, Кузя меняется только если вы его "покупаете", это закономерно. Ошибку подтвердить не могу, у меня не воспроизводится, прошу других игроков по возможности проверить, имеет-ли место эта ошибка, или она появилась в следствии каких-то твоих собственных внедрений. Ошибка стабильная? 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 5 Апреля 2017 По поводу ошибки: Ошибку удалось воспроизвести. Подтверждаю. Исправил. Войдет в патч. Все репо скрыты, или я на старые ссылки вышел? Репо пока нет вообще. А ссылки эти на мои страницы на gitlab и github, а не на репозитории Prosectors. Вопрос к авторам разработки, можно ли сделать так.... Занятно, я обязательно рассмотрю, спасибо. Логичен вопрос, как к имеющимся скриптам подключить свои, или точнее как адаптировать сюда другие моды, к примеру хочу добавить к игре сообщения о смерти и просто спам? Если можно поподробнее. Спасибо. Приветствую! Скинь те файлы (или мод), который ты хочешь подключить, я на основе него напишу тутор. @Яр8, версия уже финальная, это не бета. К этой версии готовится патч, который выйдет в течении этого месяца. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 7 Апреля 2017 Едем дальше. @ted.80, рассмотрел твои мини-моды, написал тутор по подключению. Автопауза и автосейв у нас по моему есть в дебаге, их, возможно, мы просто выведем во внутриигровое меню. to ALL: Тутор по подключению опциональных модулей на примере actor_talk.script предложенный @ted.80. Созданием файла: 1. В папке scripts создаем папку optional. 2. В папке optional создаем m_actor_talk.script. Подключение модуля: 1. Берем текст из скрипта по ссылке и вставляем его в наш созданный файл (m_actor_talk.script), исходный вариант: local radTbl = { [[characters_voice\human_01\dolg\states\radiation\radiation_1]], [[characters_voice\human_01\dolg\states\radiation\radiation_2]], [[characters_voice\human_01\dolg\states\radiation\radiation_3]], [[characters_voice\human_01\dolg\states\radiation\radiation_4]] } local hpTbl = { [[characters_voice\human_01\ecolog\states\health\health_1]], [[characters_voice\human_01\newbie\states\idle\idle_19]], [[characters_voice\human_01\stalker\states\idle\idle_26]], [[characters_voice\human_01\killer\states\idle\idle_19]] } local hlTbl = { [[characters_voice\human_01\killer\help\wounded_heavy\help_3]], [[characters_voice\human_01\killer\help\wounded_heavy\help_4]], [[characters_voice\human_01\killer\help\wounded_heavy\help_5]], [[characters_voice\human_01\killer\help\wounded_heavy\help_6]] } local victimSTbl = { [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_1]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_2]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_3]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_4]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_5]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_6]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_7]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_1]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_2]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_3]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_4]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_5]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_6]] } local victimMTbl ={ [[characters_voice\human_01\stalker\fight\fire\fire_1]], [[characters_voice\human_01\stalker\fight\fire\fire_2]], [[characters_voice\human_01\stalker\fight\fire\fire_3]], [[characters_voice\human_01\stalker\fight\fire\fire_4]], [[characters_voice\human_01\stalker\fight\fire\fire_5]], [[characters_voice\human_01\stalker\fight\fire\fire_6]], [[characters_voice\human_01\dolg\reactions\dead_mutant\dead_mutant_1]], [[characters_voice\human_01\dolg\reactions\dead_mutant\dead_mutant_2]], [[characters_voice\human_01\dolg\reactions\dead_mutant\dead_mutant_3]] } local Ptimer1, Ntimer1 = 0, 0 function start_talk() vol = 0.7 if db.actor.health < 0.33 then rand_music = hlTbl[math.random(#hlTbl)] this.playsnd(rand_music,vol) end if db.actor.health < 0.66 then rand_music = hpTbl[math.random(#hpTbl)] this.playsnd(rand_music,vol) end if db.actor.radiation > 0.1 and db.actor.health > 0.66 then rand_music = radTbl[math.random(#radTbl)] this.playsnd(rand_music,vol) end end function kill_mob(victim) vol = 0.5 local Ntimer2 = time_global() if Ntimer1 < Ntimer2 then Ntimer1 = Ntimer2 + 8000 if victim and IsStalker(victim) then rand_music = victimSTbl[math.random(#victimSTbl)] end if victim and IsMonster(victim) then rand_music = victimMTbl[math.random(#victimMTbl)] end this.playsnd(rand_music,vol) end end function playsnd(rand_music,vol) local Ptimer2 = time_global() if Ptimer1 < Ptimer2 then Ptimer1 = Ptimer2 + 10000 playsnd_obj = xr_sound.get_safe_sound_object(rand_music) playsnd_obj:play_no_feedback(db.actor, sound_object.s2d, 1, vector(), vol) end end 2. Во всем скрипте заменяем db.actor на actor 3. Заменяем xr_sound на m_sound (82 строка) 4. В конец(!) скрипта добавляем такую конструкцию: function init() event("actor_update"):register(start_talk) event("mob_death"):register(kill_mob) event("npc_death"):register(kill_mob) end 5. Аргумент в функции kill_mob меняем на e, и следующей строкой пишем local victim = e.victim 6. В базе звуков меняем строчки: [[characters_voice\human_01\dolg\reactions\dead_mutant\dead_mutant_1]], [[characters_voice\human_01\dolg\reactions\dead_mutant\dead_mutant_2]], [[characters_voice\human_01\dolg\reactions\dead_mutant\dead_mutant_3]] на: [[characters_voice\_deleted\reactions\dead_mutant\dead_mutant_1]], [[characters_voice\_deleted\reactions\dead_mutant\dead_mutant_2]], [[characters_voice\_deleted\reactions\dead_mutant\dead_mutant_3]] 7. Конечный вариант скрипта должен получится таким: local radTbl = { [[characters_voice\human_01\dolg\states\radiation\radiation_1]], [[characters_voice\human_01\dolg\states\radiation\radiation_2]], [[characters_voice\human_01\dolg\states\radiation\radiation_3]], [[characters_voice\human_01\dolg\states\radiation\radiation_4]] } local hpTbl = { [[characters_voice\human_01\ecolog\states\health\health_1]], [[characters_voice\human_01\newbie\states\idle\idle_19]], [[characters_voice\human_01\stalker\states\idle\idle_26]], [[characters_voice\human_01\killer\states\idle\idle_19]] } local hlTbl = { [[characters_voice\human_01\killer\help\wounded_heavy\help_3]], [[characters_voice\human_01\killer\help\wounded_heavy\help_4]], [[characters_voice\human_01\killer\help\wounded_heavy\help_5]], [[characters_voice\human_01\killer\help\wounded_heavy\help_6]] } local victimSTbl = { [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_1]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_2]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_3]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_4]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_5]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_6]], [[characters_voice\human_01\stalker\fight\enemy_down\enemy_down_7]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_1]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_2]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_3]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_4]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_5]], [[characters_voice\human_01\stalker\fight\enemy_hit\enemy_hit_6]] } local victimMTbl ={ [[characters_voice\human_01\stalker\fight\fire\fire_1]], [[characters_voice\human_01\stalker\fight\fire\fire_2]], [[characters_voice\human_01\stalker\fight\fire\fire_3]], [[characters_voice\human_01\stalker\fight\fire\fire_4]], [[characters_voice\human_01\stalker\fight\fire\fire_5]], [[characters_voice\human_01\stalker\fight\fire\fire_6]], [[characters_voice\_deleted\reactions\dead_mutant\dead_mutant_1]], [[characters_voice\_deleted\reactions\dead_mutant\dead_mutant_2]], [[characters_voice\_deleted\reactions\dead_mutant\dead_mutant_3]] } local Ptimer1, Ntimer1 = 0, 0 function start_talk() vol = 0.7 if actor.health < 0.33 then rand_music = hlTbl[math.random(#hlTbl)] this.playsnd(rand_music,vol) end if actor.health < 0.66 then rand_music = hpTbl[math.random(#hpTbl)] this.playsnd(rand_music,vol) end if actor.radiation > 0.1 and actor.health > 0.66 then rand_music = radTbl[math.random(#radTbl)] this.playsnd(rand_music,vol) end end function kill_mob(e) local victim = e.victim vol = 0.5 local Ntimer2 = time_global() if Ntimer1 < Ntimer2 then Ntimer1 = Ntimer2 + 8000 if victim and IsStalker(victim) then rand_music = victimSTbl[math.random(#victimSTbl)] end if victim and IsMonster(victim) then rand_music = victimMTbl[math.random(#victimMTbl)] end this.playsnd(rand_music,vol) end end function playsnd(rand_music,vol) local Ptimer2 = time_global() if Ptimer1 < Ptimer2 then Ptimer1 = Ptimer2 + 10000 playsnd_obj = m_sound.get_safe_sound_object(rand_music) playsnd_obj:play_no_feedback(actor, sound_object.s2d, 1, vector(), vol) end end function init() event("actor_update"):register(start_talk) event("mob_death"):register(kill_mob) event("npc_death"):register(kill_mob) end Подключение окончено! Теперь этот файл можно удалять и добавлять к скриптам проекта в любое время без всяких дополнительных телодвижений, он стал абсолютно автономным и опциональным. На вопросы остальных отвечу немного позже, в крайнем случае завтра. 5 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 8 Апреля 2017 Кстати, нашел не большой баг: если снять с себя рюкзак и попробовать взять что-то - сразу вылет! Эти проблемы уже исправлены. Ожидайте патч. конечно тогда уж не помешало бы полное соответствие других сообщений иконкам самих персонажей (а не постоянно от левого свободовца) У этой фишки самый низший приоритет. В оригинале ТЧ везде как заглушка используется этот "свободовец". Функция определения оружия, из которого был нанесён хит объекту(или уничтожен объект). Во всех хит коллбеках я давно добавил два дополнительных параметра - айди оружия из которого был нанесен хит и, собственно, сам тип хита. Так называемое "хранилище актора", объем которого равен смехотворным 8 килобайтам. Тут также все решено. Даже 40 килобайт очень далеко до верхней границы. Я год назад проводил стресс-тесты, точно уже не помню, но, как минимум, миллион строк мне сохранить удалось (если совсем память напрячь, то мое железо уперлось куда-то в 10Mb, но тут могу соврать, можно самим проверить). У нас по стандарту в хранилище пишется чуть-ли не в два-три раза больше, чем в оригинале, это десятки тысяч переменных, но хранилище достаточно разумно себя ведет и активно занимается самозачисткой. Единственное, что здесь стоит учитывать, это увеличение фриза при сохранении/загрузке, но на 40Кб я думаю опасаться нечего. Слышимость ГГ Посмотри стелс-видео от Bak'a. Динамическая смена типа рестрикторов(0,1,2,3). Желательно прямо в их логике. Где угодно и когда угодно, есть функция создания рестриктора (не прибегая к нет-пакетам), где можно указать тип. Также в онлайне у движкового клиентского объекта есть это свойство на запись. Пример для оружия: hit_power = {+info1} 0.05, {+info2} 0.1. Этого не было и не будет. Все данные параметры доступны на запись в онлайне, и сажать это все на кондлисты под апдейт - издевательство. Меняются они по требованию. Динамическая смена визуалов объектов(мобов, сталкеров, физ. объектов) без перехода в оффлайн и обратно. Это сделаем, в принципе уже готово (на уровне движка), просто там скрипт отваливается, когда дойдем до всяких "переодеваний", то будет. Для оформления тасков(заданий) очень полезной была бы функция отметки нужного объекта не по его Story_ID, а по имени секции или как-то ещё. А то приходится SID на каждую кочку цеплять. Отметка ставится по айди. В тасках там какой-то функцонал под стори айди, но он и удобнее, чем по секции. Стори айди ставится одной строкой, секция не идентифицирует объект (иначе в ней можно было бы задавать стори айди), поэтому я придерживаюсь мнения, что куда надо на какую угодно кочку можно воткнуть sid, другое дело что если работать с ним динамично, то нужно будет изобретать какой-то функционал типа как в ЧН/ЗП, в ТЧ они статичны (если рассматирвать без магии чисел). Тут все останется как есть. Функционал хороший, до отличного ему не дают добраться только косметические дыры (при динамическом использовании в ТЧ так или иначе придется прибегать в магическим числам против ЧН/ЗП). А что на счёт анимаций при спринте для гг? Как прописываешь? Бинокль у нас полностью уехал в оружие, попробуй взять ключ из оружейной секции. У мертвых нпс фонари не выключаются - это баг или фича??? Это не баг. Фонарь выключается только если его снять с трупа, это логично. 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 8 Апреля 2017 Когда первый раз к Лукашу приходишь, говоришь о Долге, и тут же берёшь задание вылет. У себя воспроизвести не могу, давай сохранку прямо перед диалогом. Потенциально вылет возможен, сделал правку, запусти косячный диалог и скинь лог, посмотрим что там не так. >Fix< 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 8 Апреля 2017 По диалогу с Кругловым нужно точное пошаговое описание как ты там проходил через какие места, так как, очевидно, некоторые рестрикторы не отработали и диалог соответственно тоже, я конечно логически исправил граф, но не факт что он где-то теперь в другом месте не распоролся. >Фикс диалога с Кругловым< Вылет "Can't find variable blast_r in [wpn_fake_missile2]" подтвердить не могу, несколько раз перезагружался со второго сейва при разных стейтах подствольника и выпущенных гранатах. У тебя вылет стабильный? Если да, то может быть так, что ты сам что-то там у себя исправил? Этот ключ, очевидно, присутствует в данной секции, и пока я склоняюсь к тому, что такой вылет невозможен в принципе. Поэтому если есть у разрабов делать хард моды, то это как минимум должна быть опциональная функция. Каждый должен иметь возможность выбрать стиль под свой вкус (хотя бы минимально). Да, опциональность, безусловно, мы будем развивать. Если уже есть какие-то идеи, то можно высказываться, мы рассмотрим. папка mods работает стандартно? Можно ли закидывать паки моделей в нее? Насколько я помню *.xdb никак не затрагивали, так что проблем быть не должно. 2 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 10 Апреля 2017 По рюкзаку у меня проблем не возникает, видимо эти все проблемы относятся к тем, на которые я уже повесил ярлык "профиксено". Будет ли исправлена потеря зарядов в подствольнике при переводе оффлайн\онлайн? Я уже исправлял этот момент, но из-за какой-то коллизии отключил это исправление. Со временем посмотрю из-за чего там я это отключал, и врубим обратно. Скажите, не думали ли отделить модель рук от модели оружия как в чн,зп? Технически на уровне движка я это сделал (перенес из ЗП), но для полноценного всего этого внедрения нужны моделлеры. Их, как известно, нет. В патче, к слову, будет поддержка ЧН/ЗП моделей безо всякого конвертирования, так что, я думаю, возможно и модели вышедшие из SDK 0.7 будут подходить (возможно не все, тут требуется тестирование и, в случае чего, небольшая доработка). Затянул я вроде как все, и модели, и анимации, и раздельные руки. @Sightholder, пиши, что за опция, возможно мы где-то неверный дефолт выставили или сломали настройку, как это было, например, с токеном глобального освещения. За пузырь взял прицел и решил грохнуть Макса - вылет и сохранка пост 232 Убил Макса. Не вылетел. Вылет, вероятно, редкий и требует отладки. Отражение артов на худе, нет карманов в бронекостюме, а арты отражаются , до этого был комбез наёмника. Рассказывай пошаговое воспроизведение, у себя не могу воспроизвести данную ошибку. Завис на Янтаре Закомментируй (или удали) 254 строчку в sr_psy_antenna.script. 2 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 11 Апреля 2017 после отключения установки, при перезагрузке постоянно идёт повтор ролика с доктором. >Fix< @UriZzz, обновление будет в виде патча, он будет легкий, до 50Mb, а основной инсталлятор потребуется в любом случае, так что не беспокойся. @ted.80, таблицу почистить можно просто t = {}. @DEXER, не могут, научить можно, но левел-дизайн в ТЧ (оригинальный) не предполагает такой фишки, поэтому я это отложил до лучших времен. Если кому-то будет надо, то сделаем конечно. 2 3 3 Поделиться этим сообщением Ссылка на сообщение