Jump to content

Leaderboard

  1. ed_rez

    ed_rez

    Жители


    • Points

      11,321

    • Content Count

      11,340


  2. SergeT

     SergeT

     НС


    • Points

      9,818

    • Content Count

      7,232


  3. Murarius

     Murarius

     Администраторы


    • Points

      6,998

    • Content Count

      10,737


  4. BFG

     BFG

     Шеф-модератор


    • Points

      6,728

    • Content Count

      6,272



Popular Content

Showing content with the highest reputation since 09/06/2012 in all areas

  1. 75 points
    Unofficial patch: Call of Pripyat 1.6.03 Разработчик: Jurok Версия: 1.6.03 Платформа: 1.6.02
  2. 74 points
    Prosectors Project Текущая версия: 1.4 ( ссылка | обновление #1 | обновление #2 | описание | гайд по опциям) Проверенные дополнения: оружейный пак на базе STCoP Народное творчество - здесь Для модмейкеров: lua_help (от 17.12.18) | дебаговая версия движка | спавн Разработчики: @Карлан @Nazgool @Malandrinus @Bak @Дядя Вася
  3. 73 points
    ДОРОГИЕ АМКШНИКИ ! 25 февраля наш форум празднует юбилей - десять лет как жизни нет вместе на отдельной площадке. Кто-то пришел раньше, кто-то позже. Кто-то уже ушел из сталкерских сообществ в другие игры (бывает и такое, вообразите себе!), кто-то привел сюда своих детей. Кто-то вообще играть давно бросил, кто-то лишь недавно узнал о "Сталкере". Кто-то уже ушел из жизни. Из реальной жизни. Но мы на плаву. Не за счет реклам и продаж чего-либо, а за счет труда и интереса. В кадрах администрации должности пророка нет, но я попробую, так сказать, внештатно потрудиться оракулом: думаю, что еще десятку мы пройдем. Трудно предположить, кто в этом далеком времени будет у руля сайта, о чем именно мы будем говорить здесь в 2028-м году, но сталкерские темы точно останутся незакрытыми. Потому что, проникнув в наши души, эта атмосфера раз и навсегда открыла нам большой мир как игры, так и работы над игрой. Этот мир - не бесшовный, проблем в нем все еще много. Но те, кто трудятся над тем, чтобы он стал лучше, никогда не делали это из чисто технического интереса. Всегда - с душой. Немного истории... Мы подготовили для вас две приятности. Одна из них коснется лишь некоторых форумчан. Другая - всех, хотя и не всех сразу. Завершая, вангую вот что: в феврале 2028-го кто-то потратит некоторое время, чтобы написать такой же пост. Буду рад, если этот пост увижу. Буду бесконечно горд, если доведется его написать. В конце концов, так ли долго ждать - еще десять лет? Предыдущие-то как один день пролетели. От имени Администраторов и Модераторов форума поздравляю всех с десятилетием. Приходите вновь, работайте, дарите плоды своих трудов всем желающим, и общайтесь на здоровье. С ЮБИЛЕЕМ !!!
  4. 67 points
    Трудно называть баги "забавными"... Ровно год назад состоялся релиз очень ожидаемого в сталкерском сообществе мода "OGSE 0.6.9.3". Мод был принят очень хорошо, и причин тому несколько: помимо собственно составляющих конечного продукта разработчики обеспечили качественную техподдержку, что в модостроении является редкостью - обычно разработчики после релиза или почивают на лаврах, или изо всех сил отбиваются от претензий. В том, что обсуждение мода активно и спустя год после его выхода, большая заслуга одного из ключевых членов команды - @KD87. С ним мы и поговорили о моде и дальнейших планах. AMK-Team: Костя, привет. Давай начнем с предыстории. Как ты стал модмейкером? Как все началось и был ли у тебя перед этим технический багаж? Если да, то многому ли пришлось учиться для моддинга именно "Сталкера"? KD87: Да все просто – сначала захотелось распаковать спавн ЗП, чтобы сделать нормальные переходы, потом ковырялся в конфигах, чтобы понять, как там по квестам изменяется отношение фракций, потом ковыряние аивраппера, перенос АМК ТЧ на ЗП и т.д. и т.п. Багажа никакого не было, за исключением институтского курса Pascal. Так что приходилось учиться вообще всему, за что брался. AMK-Team: Что вообще послужило началом OGSE и как он докатился до 0.6.9.3? KD87: Началом ОГСЕ послужило стойкое убеждение Георгия (@Deathdoor), что в ОГСМ ТЧ многое можно и нужно поменять. Первые версии мода были просто небольшими правками конфигов, но начало пошло. Постепенно мод обрастал фишками, контентом, талантливыми разработчиками, пока не докатился до текущего уровня, когда от исходного ОГСМ практически ничего не осталось. Ну, на то мод и называется Evolution. AMK-Team: OGSE разрабатывался как один из вариантов "Того Самого Сталкера", но в релизе мы увидели много того, что к ТСС отношения не имеет - это и новое оружие, и напарники, и новые аномалии, и новая медицина... Как бы ты сформулировал конечную идею мода сейчас? Что в нем главное? KD87: По моему мнению, мод уже давно стал полигоном для самовыражения разработчиков. Никакой концепции по сути нет, новые фишки вносились в мод по принципу "а чего бы еще такого отличного добавить?". Впрочем, в отличие от всевозможных солянок, большая часть фишек были оригинальными, уникальными и разрабатывались самостоятельно. По сути, мод – демонстрация того, что можно сделать прямыми руками на стареньком ТЧ. Это я бы и назвал главным, пожалуй. AMK-Team: Как приходят идеи? Длинен ли путь от появившейся в голове "фишки" до ее реализации? KD87: У кого как, наверное. У того же @Jek@n'a путь длинный – квесты вообще делаются довольно небыстро, и для генерации идей нужна фантазия. У меня попроще – смотришь другую игру, видишь красивый графический эффект, вот тебе и идея для "Сталкера". А что касается быстроты реализации – не так сложно реализовать идею, как подготовить базис, основу для реализации. Скажем, систему работы с графикой в ogse.dll я делал очень долго. А когда дело дошло до реализации собственно фишек, это уже было быстро и несложно. AMK-Team: Случалось ли так, что идея после обсуждения была отвергнута как не реализуемая по техническим причинам? Если да, то можешь ли ты перечислить что-то, не вошедшее в мод? KD87: Сложно говорить за всех. Вообще, нереализуемых вещей не бывает. Вопрос в трудозатратах на реализацию. По той же графике я много чего откидывал, к примеру, темпоральное сглаживание, подповерхностное рассеивание на коже, рендеринг шерсти у монстров. Скриптерам было сильно проще, по запросам из движка каких только функций в скрипты не выводилось. AMK-Team: С годами все отчетливей видно, что транспорт в ТЧ вряд ли когда-то будет выглядеть естественно. Транспорт в OGSE смотрится во многом лучше, чем в других модах, но благодаря лишь титаническим усилиям и все равно не идеально. Почему не отказались от него вообще? Стоило ли "лечить труп"? KD87: Почему же сразу труп – ездить можно (и даже получать от езды удовольствие), груз возить можно, езда экономит время. Не настолько физика машин плоха, чтобы однозначно от них отказаться. По этим причинам транспорт и остался. Конечно, сталкер не NFS и не GTA, ну так требований к машинам в игре гораздо меньше. Памятуя о проблемах, мы их не выставляем напоказ. По сути, можно пройти игру всего раз проехавшись на запорожце, квест с которым задуман как обучалка. Далее можно ходить пешком, если транспорт по каким-то причинам не устраивает. Все-таки это далеко не главная геймплейная составляющая в моде. AMK-Team: Баланс в моде в целом выглядит нормально, за исключением некоторых стволов и "Клондайка артефактов". Здесь не было ли споров, опасений, что уберпушки и 100500 здоровья приведут к терминаторству? KD87: Уберпушки попадают к игроку на поздних этапах игры. Да и они будут убраны в будущем. То же касается и Клондайка – чтобы добраться до концовки, необходимо пройти Армейские склады и Мертвый город, что под силу только «прокачанному» игроку. Так что глобально влияния на баланс нет, к концу игры же игрок все равно становится «терминатором» безо всяких клондайков. AMK-Team: В модостроении часто случается так, что люди выпадают из процесса, в команду приходят новые люди, в общем - текучка. OGSE не стал исключением? KD87: Разумеется, нет. В этом легко убедиться, взглянув на список разработчиков мода. Десятки ников, при этом при мне над ОГСЕ одновременно никогда не работало более 7-8 человек (не считая, впрочем, тестеров). AMK-Team: Без скандалов, как это тоже часто бывает, увы, не обошлось. Когда была объявлена дата релиза, Deathdoor был возмущен тем, что с ним это никто не обсуждал предварительно, и покинул проект. Это стало ударом для команды? Или наоборот, сплотило? Пытались ли остальные члены команды повлиять на его решение уйти? KD87: Ну, скажем так, там далеко неоднозначная ситуация была, поэтому нашлись как те, кто Георгия поддержал, так и те, кто негативно отнесся к его тогдашним действиям. Удержать – нет, никто не пытался. Каждый решает за себя, насильно не заставишь работать. Что касается удара для команды, то его не было. Нельзя ударить то, чего нет, а к релизу ОГСЕ от команды уже мало что осталось. AMK-Team: Мод, каким бы цельным он ни выглядел, всегда так или иначе делится на составляющие. Какая из них лично тебе в OGSE нравится больше всего? Что не понравилось и хотелось бы исправить или даже полностью переделать? KD87: Ответ очевиден – больше всего нравится, конечно же, то, что сделал сам, хе-хе. Если серьезно, там все хорошо, нет явно плохих моментов. Единственное, что я бы поменял – концепцию оружия. Никогда не понимал смысла в миллионе типов стволов в Сталкере. Впрочем, мы потихоньку ее меняем сейчас. Еще хотелось бы хоть как-то охватить «жизнью» две новые локации – Болота и ПЖД. Мертвый Город, Лощину и Генераторы вот успели осилить, а эти две – нет. Ну тут уж придется поработать волонтерам, видимо. AMK-Team: Модмейкеры сталкиваются с разными нестыковками и багами в процессе разработки. Были ли забавные ситуации в вашей работе над модом? KD87: Трудно называть баг "забавным", как бы он ни проявлялся. Так - да, багов было просто миллионы. Далеко не последними были баги движка и оригинальных локаций (тут вообще было, что называется, "туши свет"). Ну, локации вроде вылизали, баги движка по возможности исправили. Из забавных совсем недавно был такой эпизод – во время боя на Арене Калигула (один из квестовых персонажей), крадучись, подбирался к стене и на глазах у игрока забирался по ней вверх, аки Человек-паук.. AMK-Team: Кто работал над исправлениями и дополнениями OGSE после релиза? Патч 1.07 - финальный? KD87: Над патчами ОБТ мы работали вместе с @kamikazze, начиная же с осени прошлого года, ковыряюсь один. Этот патч финальным не будет, уже набралось правок, как минимум, еще на патч. Кроме того, готовится к релизу мультиязычная версия с поддержкой английского и французского языков, она не будет требовать установленного сталкера. Вот там тоже кое-какие изменения будут. AMK-Team: Нет ли планов выпустить DLC? KD87: Нет, конечно. Для этого нужен готовый контент, а его нет. И желающих его генерировать нет. Есть, впрочем, задел по паре квестов, если кто-то захочет заняться – милости прошу, поспособствую всеми силами. AMK-Team: Если у вас нет планов по DLC ввиду отсутствия контента и его генераторов, может ли кто-то обратиться к вам со своими глобальными идеями и помощью в реализации? Или уже нет желания что-то глобальное вписывать? KD87: Обращаться можно. Только дополнительно к идеям должна быть готовность (и, пожалуй, умение) работать над ними, в противном случае, это все уйдет впустую. Я и так могу пяток диздоков (не идей даже!) по нереализованным/незаконченным квестам дать. Основная проблема – отсутствие рабочих рук. AMK-Team: 0.6.9.3 - законченный проект. Что дальше? Следующая версия? Или вообще новая команда с новыми идеями? KD87: Прежде всего – выпуск мультиязычной версии. Надо дать и иностранным игрокам поиграть, они давно ждут на моддб. А потом – как получится. Никаких определенных планов нет. AMK-Team: Не привела ли работа над модом к ущербу в обычной жизни, в работе, учебе? Ведь все это ковыряние в файлах занимает много времени... KD87: Ущерб был причинен разве что здоровому сну, хех. Главное – умеренность. В нашей команде разработчики зачастую надолго отвлекались от мода, в этом нет ничего страшного. При этом участие в команде лично мне дало новые знакомства с хорошими людьми. С тем же Deathdoor мы до сих пор иногда выбираемся на природу с семьями. AMK-Team: Работа над глобальным модом в течение нескольких лет - колоссальный опыт. Что можешь посоветовать начинающим модостроителям? Какие качества в себе развивать в первую очередь, каких подводных камней избегать? KD87: Совет простой – рассчитывайте свои силы. Не стоит браться за глобальный мод с преферансом и институтками, если кроме как заспавнить ствол в инвентарь больше ничего не умеете. Лучше сделать небольшой, но добротный мод, например, с десятком квестов на одной локации, чем пытаться охватить сразу все. Также крайне забавно наблюдать за командами, где почти никто ничего не умеет, но все с умным видом рассуждают о том, какие крутые фишки будут в моде. Примеров – тьма, все их прекрасно знают. Первое правило хорошего модмейкера – сначала сделай, потом показывай. Хочешь собрать команду – сделай, а потом покажи. И люди потянутся. Самое нужное качество – терпение. Да, X-Ray – не самая идеальная платформа для моддинга, но на ней разработчики сделали три неплохих игры, а модмейкеры – много хороших модов. Если что-то не выходит, глючит, не работает, ищите причину не в движке, а в своем коде – 9 к 1, что она именно там. AMK-Team: Жив еще "Сталкер" или нет - вопрос слишком общий, и однозначный ответ на него дать трудно. Но можно уточнить вопрос так, что дать ответ на него будет легче: у тебя все еще есть желание и силы заниматься моддингом? Иными словами - в тебе "Сталкер" жив? KD87: Скажем так - если будет какой-то интересный проект, предполагающий переосмысление концепции, геймплея и прежде всего сюжета "Сталкера", возможно, мне будет интересно в нем поучаствовать. В любом случае, сейчас, когда еще приходится работать над ОГСЕ, об этом трудно говорить.
  5. 57 points
    Тайные Тропы 2 на OGSR Engine x64 Свежий патч - 13.12.2019 20:48 (Под спойлером в ссылках на скачивание)
  6. 52 points
    Дорогие форумчане! Завершается еще один год сталкерства. Итак... Если сидеть на земле у костра вам интереснее, чем сидеть в кресле у камина; Если продуманный заранее бег через поля аномалий для вас важнее, чем спланированный бег по карьерной лестнице в офисе; Если фраза "а колбасу и батоны нынче хреновые стали делать" вам более понятна, чем фраза "проявляется тенденция к снижению качества продовольственных товаров"; Если, приползая домой пьяным до бесчувствия, вы объясняете, что пили водку для того, чтобы вывести радиацию; Если понятие "надеть костюм" вызывает у вас в памяти не тройку с бабочкой, а единственную возможность выжить на Радаре; Если супруга косится на вас, услышав в вашем разговоре с друзьями словосочетание "Модель Майя"; Если самой ценной частью туши кабана для вас является не окорок, а копыто; Если слово "скрип", услышанное в обычной жизни, заставляет Вас переспросить: "Какой скрипт?"; Если бар, в котором вы сидите с друзьями после работы в пятницу, выглядит неестественно без соседа, тоскливо восклицающего "Эх, если б кто помог!.."; Если, завидев на улице знакомого, вы кричите ему: "Подходи, пообщаемся!"; Если в слове "Долина" ударение вы делаете не на первом слоге, а на втором; Если вы готовы доказывать окружающим, что прыгать с трамплина нельзя, в него можно только попасть; Если вы интересуетесь у пожарных, надевают ли они на дежурстве артефакты на пояс своего защитного костюма... ...и так далее, и так далее, и так далее... Словом, если все вышеперечисленное и многое другое - про вас, значит, в 2016 году мы вновь увидимся на форуме AMK-Team! Мы вновь будем реализовывать свои идеи и публиковать их, соглашаться и возражать, предполагать и доказывать, спорить, поддерживать, удивляться, восхищаться, объяснять и понимать, учить и учиться; проще говоря - общаться так же активно, как и в уходящем году, а может быть, и еще больше! 2015-й год подарил нам немало замечательных модификаций. Наша с вами оценка этих работ очень важна, но самое важное, что моды создаются и выходят в свет. Моддинг "Сталкера" безусловно жив и, на наш взгляд, после небольшого спада последних лет вновь набирает обороты. Конечно, мы все очень надеемся на то, что проекты, которые уже близки к завершению, выйдут в 2016-м году, но замечательно и то, что есть еще много нереализованных идей, и мы верим, что их авторы в новом году наконец-то решат начать работу над ними. Мы верим в этих людей и поддерживаем их, и так будет всегда. Поэтому отбросьте все ваши сомнения и смело садитесь за работу - у вас есть чем удивить людей и есть за что получать "спасибо". И большую благодарность, чем респекты от сталкерского сообщества за бескорыстный труд, трудно придумать. Но достаточно лирики! Переходим к осязаемым приятностям. Мы соблюдаем ежегодную традицию и вновь подводим итоги опроса "Лучший Модератор / Куратор" Итак, по результатам голосования: Лучший Модератор 2015 @BFG Лучшие Кураторы 2015 @Гектор, @KD87, @Eugen81 Поздравляем, уважаем, благодарим и вручаем соответствующие знаки отличия! Но приятности на этом не заканчиваются. Летом прошлого года мы заменили Систему репутации пользователей на Систему оценок постов. Среди оценок есть одна очень важная, которая характеризует то, насколько публикации пользователя полезны для моддинга вообще и форума в частности. Полгода - небольшой срок, поэтому в прошлом году мы не подводили итоги по этой оценке, но сейчас это время настало. Мы взяли статистику с начала введения в действие Системы оценок и на основании этих данных выделили десять форумчан, набравших своими публикациями наибольшее количество оценок "Полезно", и вручаем им особенную награду. Лауреатами этого почетного знака стали @BFG ~~~ @Dennis_Chikin ~~~ @ed_rez ~~~ @Eugen81 ~~~ @karavan150 @RayTwitty ~~~ @romale ~~~ @shahvkit ~~~ @Zander_driver ~~~ @Гектор Поздравляем, гордимся, благодарим и вручаем знак отличия - "Специалист-2015"! Мы желаем лауреатам всех наград поддержать это высокое звание и в 2016-м году, а всем остальным форумчанам - потеснить обладателей наград с пьедестала! Как обычно, нам очень приятно выразить отдельную благодарность Нашему хостеру - ООО ТК Рустелеком. Спасибо за внимательное к нам отношение и оперативно протягиваемую руку помощи! Компании IBResource и лично Дмитрию Легкому и Денису Чурсину за техподдержку форумного движка, отзывчивость и внимание к нашим просьбам. @Kirgudu - за помощь в подготовке баннера к 9 Мая ScarabeeGreen - за помощь в разработке баннера к 9 Мая, создание визуалов наград. @mikelik - за картину "Бурлаки на форуме" А также: Авторам вышедших в 2015-м году модов. Спасибо вам! Благодаря вашим работам нам было чем заняться весь этот год! Теоретикам и практикам программирования и скриптования, моделирования и вооружения, сюжетов и квестов, всего-всего, что мы уже видим в модах или сможем увидеть в ближайшее время. Тестерам разработок: ваш труд и незамыленный взгляд неоценимы! Ветеранам форума - за то, что не бросаете сообщество. Кураторам тем форума: без вас все бы давно скатилось в школоло и ВК. Модераторам форума - атлантам, поддерживающим атмосферу и не позволяющим себе даже небольшой передышки. А также всем пользователям - от Новичков до Глобальных Модераторов - за то, что общаетесь на форуме. Вы все - и есть AMK-Team.ru! Администрация AMK-Team поздравляет всех посетителей форума с наступающим праздником! Мы желаем вам в 2016-м году незабываемых ощущений от старого мира Зоны, проходимого по-новому и покорения новых высот в моддинге даже тогда, когда вокруг все говорят, что "Сталкер - не тот и не то"! А также добра, мира и всего наилучшего вам и тем, кто вас окружает. Будьте здоровы и счастливы! С Новым годом!
  7. 44 points
    Адаптация графической части движка OGSE на Народную Солянку 2016
  8. 42 points
  9. 40 points
    ЛЦУ [wip] Разработка лцу была начата давно, но мы решили не упоминать о ней до тех пор, пока у нас не получится что-то толковое. Мы поставили цель не только реализовать адекватно работающий лцу, но сделать его функционально лучше чем во многих других шутерах. Итак, что сделано. 1. Луч лазера, имеющий мягкую прозрачность и самосвечение. (реализовано благодаря починке отображения шейдера lightplanes от первого лица) 2. а) Лазерная точка динамическая, то есть двигается вместе с оружием. Куда смотрит ствол, там она и отображается. Колеблется во время ходьбы и т.д. б) Точка накладывается на поверхность, не висит в воздухе, чем дальше предмет (цель) тем меньше точка, соответственно чем ближе цель, тем лучше точка видна. в) Точка не отображается в небе. 3. Возможность включать/выключать лцу, при этом отыгрываются уникальные анимации. Для этого введена новая клавиша (назначение вынесено в опции). ЛЦУ будет устанавливаться через апгрейд во всех случаях, если он изначально не встроен в оружие, как в случае с FN P90. Хочу выразить благодарность @amikу за помошь в создании партиклов для лцу. Им были созданы несколько вариантов точки и луч лазера. Луч был отсеян из-за невозможности вылечить некоторые побочки. Я реализовал его через модель. Демонстрируется рабочая версия, в дальнейшем будет дорабатываться на предмет устранения мелких глюков. Но в целом лцу уже играбелен и выглядит, на мой взгляд, достойно. Возможно некоторые подумают, что теперь я опять начну переделывать многострадальные пистолеты, вешая на них лцу. Анимации и модели лцу на пистолеты устанавливались с самого начала, просто я об этом не говорил. Модели лцу будут показаны в дальнейшем, есть и такие варианты, которых еще нигде не было. Так же хочу отметить, что необходимость лцу будет весьма ощутимой на ветеране, где мы планируем отключить прицельное перекрестие.
  10. 33 points
    DEAGLE v.2 Полная переработка анимаций пустынного орла с новой некст-ген моделью от Toasty Fresh и SAM61. Пока только видео-рендер:
  11. 32 points
    АК-74М / ГП-25 / ТГП-А ШТЫК
  12. 30 points
    Фанаты мода наверно уже привыкли видеть регулярно серии Саббата, следить за тем как он преодолевает трудности и набирает хабара в "Судьбе Зоны". А технических видео, показывающих новые технологии мода - давненько не было. Пришло время и это исправить. По техническим причинам видео без звука - включите у себя музыку параллельно с просмотром, если вам тишина создает неудобства. Информация в этом видео предназначена для разработчиков, для тех кто возьмется делать что-либо на основе "Судьбы Зоны". Если вы не планировали этого делать, но вы разработчик и делаете свои моды - все равно взгляните, возможно вы перемените свое мнение. Если вы моддингом раньше не занимались, но тема вам интересна - посмотрите. Увидите как просто это может быть. Когда я начал работать над этим видео, то понял что оно явно получится очень длинным. И короче сделать сложно, учитывая что надо показать. Так что я разделил его на 3 серии, и сейчас предоставляю вашему вниманию первую.
  13. 28 points
  14. 28 points
    S.T.A.L.K.E.R.: Chronicles of Levels - НИИ "Агропром"
  15. 27 points
    Это скриптовый файл, дающий новый способ создания диалогов, и не отменяя старые. Новый способ прост и не требует от пользователя знания скриптов, помогает быстро и легко отловить все распространенные ошибки в диалогах, а так же существенно упрощает сам процесс создания и редактирования, особенно в случае больших, сложных и разветвленных диалогов, по сравнению со старыми методами. Диалог пишется в файле ltx-конфига, и избавлен от громоздкой мишуры xml-тегов. Возможно это мое субъективное мнение, но форма написания диалога получается более наглядной. Сохраняются все возможности диалогов созданных по-старинке: к любой фразе можно прицепить прекондишен, повесить вызов функции, выдачу/отнятие инфопоршня, проверку на наличие/отсутствие инфопоршня. Добавлена возможность написания диалоговых блоков - своего рода готовых деталей для сборки. И диалог можно составлять как из простых фраз, так и из готовых блоков, в любом сочетании. Сложность и размеры диалоговых блоков практически не ограничены, любой диалоговый блок сам так же может быть составлен из других, более мелких диалоговых блоков. Вы можете использовать одни и те же диалоговые блоки в различных диалогах, это как детали конструктора. Ряд возможных ошибок при составлении диалога, ранее приводивших к неинформативным или безлоговым вылетам, теперь сопровождаются более ясной информацией в логе. примеры: 1) Старые методы: При указании функции для прекондишена, допущена опечатка/функция не существует. Результат: пока не добраться до той фразы, все работает. Дойдя до проблемной фразы, уже разговаривая с нпс в игре, получаем безлоговый вылет. Новый метод: Еще при формировании диалога, выполняется проверка существования всех вызываемых в нем функций. В случае, если функция не существует, произойдет вылет: Новый метод: Еще при формировании диалога, проверяется его структура. В случае такой ошибки произойдет вылет: Новый метод: Существует возможность настроить отслеживание фраз. обычный диалог - первая фраза принадлежит актору. старт-диалог - первая фраза принадлежит нпс. Если чередование фраз нарушено, Это будет обнаружено еще при формировании диалога, и произойдет такой вылет: Так же есть возможность отключить отслеживание чередования для отдельно взятого диалога. Dialog <имя диалога>; line <номер строки в диалоге>: function <файл>.<функция> not exist 2) Старые методы: В большом разветвленном диалоге, из-за ошибки в связях между фразами, к какой-либо фразе отсутствует входящая связь. Результат: насколько я помню, довольно неинформативный вылет, никак не помогающий найти ошибку. Отсутствует входящий линк для фразы. section <имя диалога>, phrase <номер строки> 3) Старые методы: По ошибке/невнимательности, модостроитель при составлении сложноразветвленного диалога, допустил нарушение чередования фраз актор/нпс. Результат: непредсказуемое поведение диалога в игре, как правило не то что ожидалось, причину приходится искать вручную. Нарушено чередование фраз npc/actor. section <имя диалога>, line <номер строки> указывающий точно, где именно произошло "столкновение" с фразой, принадлежащей не тому собеседнику. Единственный недостаток - чтобы начать делать диалоги по-новому, придется изучить набор команд, используемых при написании. Это достаточно просто и не займет много времени у любого пользователя. 1. скачать можно тут https://yadi.sk/d/XxUqwIvthfeWo 2. распаковываем архив, кидаем файл в папку gamedata/scripts 3. пользуемся новыми возможностями. Никакого совмещения не требуется. Встроена проверка версий, так что модуль будет работать на любой версии игры. (ТЧ любой патч / ЧН / ЗП). Правда, я не тестировал на других версиях Если я ошибся и что-то не работает, пишите. * Для того чтобы правильно работали функции отслеживания ошибок, у вас должны быть рабочие функции abort и log. Ну для начала, раз теперь у нас диалоги пишутся в ltx-файлах конфигов, неплохо бы завести для них отдельное место. Это не обязательное действие, просто для удобства следует выполнить следующее: 1. в папке config создаем новую папку dialogs 2. создаем в нем текстовый файл, называем его dialogs.ltx 3. открываем в папке config файл system.ltx, и в самый его конец пишем: #include "dialogs\dialogs.ltx" 4. теперь можно в папке dialogs создавать новые файлы, писать в них свои диалоги, к примеру мы создали файл my_first_dialog.ltx, его надо подключить к игре. открываем наш файл dialogs.ltx, и в нем пишем #include "my_first_dialog.ltx" Но, сторонники бардака и беспорядка могут писать свои диалоги в любых файлах конфигов где угодно, только не забудьте так или иначе подключить их к system.ltx. Как создать диалог. 1. Каждый диалог в новой системе имеет секцию конфига. таким образом, создав в файле конфига секцию [my_first_dialog] вы уже создали новый диалог. Правда пока он не имеет ни единой фразы, но мы решим этот вопрос позже. Пока надо сделать чтобы скрипты его увидели. 2. Идем в gamedata/config/gameplay, открываем файл dialogs.xml, Где-нибудь между уже имеющихся диалогов, добавляем в него следущее: 4. Открываем его, вставляем такой код: <dialog id="my_first_dialog"> <init_func>dialogs_new_system.my_first_dialog</init_func> </dialog> 3. Идем в gamedata/scripts, создаем новый текстовый файл, называем его dialogs_new_system.script function my_first_dialog(dlg) assembly_dialogs.construct_dialog("my_first_dialog",dlg) end Все, игра его видит. Правда он все еще не написан. Пишем диалог... 1. Идем в gamedata\config\dialogs, открываем наш файл my_first_dialog.ltx, где мы создали пока еще пустую, секцию диалога. Диалог в конфиге пишется при помощи команд, далее я напишу какие команды что делают. 2. НЕОБЯЗАТЕЛЬНО. Настраиваем чередование фраз. Вначале можно настроить, надо ли в этом диалоге отслеживать чередование фраз. если мы напишем params_sequence = actor значит это обычный диалог, где первую фразу говорит актор. система будет отслеживать чтобы собеседники говорили по очереди не нарушая порядок. Если написать params_sequence = npc значит это старт-диалог, и в нем первая фраза принадлежит НПС. система так же будет отслеживать порядок фраз. А если мы напишем params_sequence = free То чередование фраз отслеживаться не будет. Если не указывать этот параметр, то по умолчанию считается что params_sequence = actor, т.е. это обычный диалог, первая фраза принадлежит актору, отслеживание активно. 3. добавляем фразы, и связи между ними вот пример простенького диалога: [my_first_dialog] x0 = текст_первой_фразы link0 = 1 x1 = текст_второй_фразы link1 = 2 x2 = текст_третьей_фразы Тут все, я думаю, очевидно и понятно. команды x<номер фразы> - создают новую фразу в диалоге. значение команды это ее текст. Можно писать текст прямо тут, можно приводить string_id из файлов папки config/text/rus. рекомендуется второй вариант. Диалог всегда начинается с фразы x0, она здесь обязательна. команды link<номер фразы> = № следующей фразы - создают связи между фразами. Теперь возьмем пример посложнее. [my_first_dialog] x0 = текст_первой_фразы link0 = 1 x1 = текст_второй_фразы link1 = 10, 20, 30 x10 = текст_фразы_10 link10 = 11 x11 = текст_фразы_11 x20 = текст_фразы_20 link20 = 21 x21 = text link21 = 22 x22 = text x30 = text link30 = 31 x31 = text Тут у нас актор произносит фразу х0, нпс ему отвечает фразой х1, а далее актору открывается выбор из трех фраз, х10, х20, х30, каждая из которых ведет в свою ветку диалога. Из любой фразы можно сделать неограниченное число линков, разделяя их запятыми. Этот пример так же показывает тот факт, что нумерация фраз не обязана быть сплошной. В них могут быть разрывы до сотни. И еще вот такой пример: [my_first_dialog] x0 = text link0 = 1 x1 = text link1 = 2 x2 = text link2 = 3 x3 = text link3 = 4 x4 = text link4 = 1, 5 x5 = text link5 = 6 x6 = text здесь после 4-й фразы (нпс) актору открывается выбор, продолжить диалог или вернуться к началу. Думаю, с созданием фраз и связей между ними, все уже понятно. 4. Добавляем другие команды все команды пишутся по принципу <команда><номер фразы> команда a - добавит вызов функции в указанной фразе (аналогично тегу <action>) команда p - добавит прекондишен (проверку условия) в указанной фразе (аналогично тегу <precondition>) команда h - добавит проверку наличия инфопоршня в указанной фразе (аналогично тегу <has_info>) команда d - добавит проверку отсутствия инфопоршня в указанной фразе (аналогично тегу <dont_has_info>) команда gi - выдать актору инфопоршень в указанной фразе (аналогично тегу <give_info>) команда di - отнять у актора инфопоршень в указанной фразе. (аналогично тегу <disable_info>) команда item - заспавнить в инвентарь актора итем указанной секции и количества. количество пишется через точку, если не указано то считается равным единице. пример: item5 = bandage.10, medkit.5 ; заспавнит 10 бинтов и 5 аптечек пример2: item5 = antirad, wpn_pm.2 ; заспавнит 1 антирад и два ПМа. команда remove - удалить из инвентаря актора итемы указанных секций и количества. Если у актора меньше итемов, удаляются те что есть. Т.е. проверка необходимого количества здесь не выполняется. Если такая проверка нужна, используйте команду has_item. пример: remove5 = wpn_pm ; удалит ПМ пример2: remove5 = bandage.2, medkit.3, antirad.4, vodka.5 ; удалит 2 бинта, 3 аптечки, 4 антирада и 5 бутылок водки. если чего-то не хватает, это не помешает. команда has_item - вставляет проверку наличия в инвентаре актора, указанных предметов в указанном количестве. фраза не будет пропущена, если хоть какого-то из указанных итемов не хватает. пример: has_item5 = wpn_abakan ; фраза будет доступна если у актора есть абакан пример2: has_item5 = af_medusa.10, bandage.4 ; фраза будет доступна если у актора есть 10 медуз и 4 бинта. команда donthas_item - вставляет проверку, что в инвентаре актора указанных предметов меньше заданного количества. пример: donthas_item5 = wpn_pm, wpn_abakan, wpn_mp5, medkit ; фраза будет доступна только если у актора нет ничего из перечисленного оружия и нет аптечек. пример2: donthas_item5 = bandage.25, medkit ; фраза будет доступна если у актора нет ни одной аптечки, и количество бинтов в его инвентаре менее 25. пример: [my_first_dialog] x0 = text link0 = 1 a0 = spawn.minigun x1 = text link1 = 5, 10, 15 gi1 = answer_infoportion x5 = text link5 = 6 p5 = my_script.answer_function x6 = text a6 = spawn.ammo_1, spawn.medkit, xr_motivator.kill_all_bandits x10 = text h10 = какой_то_поршень_1, какой_то_поршень_2 link10 = 11 x11 = text x15 = text link15 = 16 x16 = text link16 = 17 x17 = text тут мы в стартовой фразе х0, вызываем скриптовую функцию spawn.minigun, в следующей выдаем актору некий инфопоршень, затем у нас развилка на три ветки. первая ветка начинается с фразы 5, в ней предусловие - my_script.answer_function и если указанная функция вернет истину, то только тогда эта ветка диалога будет доступна. в следующей фразе вызываем три функции, spawn.ammo_1, spawn.medkit, xr_motivator.kill_all_bandits - для любой команды, можно указывать любое количество аргументов, разделяя их запятыми. при вызове, очередность их следования будет соблюдаться. в другой ветке, начинающейся с фразы x10, на входе мы проверяем наличие двух каких-то инфопоршней. ветка будет доступна если у актора есть оба. третья ветка, начинается с фразы x15, доступна в любом случае и не снабжена никакими командами. что можно сказать по итогам. К каждой фразе можно прицепить неограниченное количество каких вам угодно команд, и каждой указать любое количество аргументов через запятую. Не надо только повторять команды. к примеру такая запись: x5 = text a5 = my_script.xxx_function link5 = 6 a5 = my_file.answer_function неправильна, из двух команд a5, читаться будет только одна. Правильный способ записи в таком случае будет выглядеть так: x5 = text a5 = my_script.xxx_function, my_file.answer_function link5 = 6 5. прописываем в профиле любого удобного вам НПС, новый диалог <actor_dialog>my_first_dialog</actor_dialog> И идем проверять как все работает. Щас уже поздно, так что пока хватит. Утром допишу про создание блоков, и компоновку диалога из них. Это одно из главных преимуществ новой системы. Зачем отдельная тема - затем что я предполагаю, кроме обсуждения, еще код каких-нибудь широко-употребимых блоков, написанный в этой системе, будет здесь же выкладываться. К модераторам просьба, организуйте мне кураторство в этой теме. Для начала, что такое диалоговый блок. Это некоторый фрагмент диалога, у него есть вход - начальная фраза. Некоторое число фраз, от одной до - много. и есть фразы, (от нуля до сколько захотите), которые считаются выходами диалогового блока. Я не случайно говорю "от нуля" - выходы могут и отсутствовать. Что такое выходы - это те фразы, к которым будет подключать линки на последующие внешние для этого блока, фразы, внешний для него же, конструктор диалога. Пока все может быть не очень понятно, наберитесь терпения. когда доберемся до конкретных примеров, все станет яснее. Как создаются диалоговые блоки? А точно так же как и диалоги. создаем секцию, в нее пишем фразы, линки и команды. Начальная фраза - вход, выходов может быть нет, может быть есть один, может быть много. Чем же отличается диалоговый блок, от самого диалога? А отличается он тем, что может быть подключен к другому диалогу, в любом месте. Для создания выходов диалогового блока, существует команда exit. аргумент, который для нее указывается - это порядковый номер выхода. Давайте уже перейдем к примерам. Создадим простенький диалоговый блок с одним выходом: [dlg_block_test] x1 = text_phrase_1 link1 = 2 x2 = text_phrase_2 link2 = 3 x3 = text_phrase_3 link3 = 4 x4 = text_phrase_4 link4 = 1, 5 x5 = text_phrase_5 link5 = 6 x6 = text_phrase_6 link6 = 7, 8 x7 = text_phrase_7 link7 = 9 x8 = text_phrase_8 x9 = text_phrase_9 exit9 = 1 Как видим, в середине есть возможность вернуться в начало, образуя петлю, в конце есть развилка, одна ветка ведет вникуда, т.е. приводит к обрыванию диалога, другая - вроде бы тоже, но в ней объявлен пока загадочный для нас ВЫХОД. Пока получается что-то похожее на диалог, правда? Кстати обратите внимание на еще одно отличие - в диалоговом блоке первая фраза x1, а не x0. Ну и, не лишне будет сказать, при создании диалоговых блоков так же можно пользоваться всеми командами, описанными выше. Теперь идем далее. Слегка усложним один из примеров диалогов, приведенных ранее. Это не диалоговый блок, это сам диалог. [my_first_dialog] params_sequence = actor x0 = text0 link0 = 1 x1 = text1 link1 = 10, 20, 30 x10 = text10 link10 = 11 x11 = text11 link11 = 12 x12 = text12 link12 = 40 x20 = text20 link20 = 21 x21 = text21 link21 = 22 x22 = text22 link22 = 40 x30 = text30 link30 = 31 x31 = text31 link31 = 32 x32 = text32 link32 = 40 x40 = text40 link40 = 41 x41 = text41 link41 = 42 x42 = text42 link42 = 43 x43 = text43 Тут у нас диалог ветвится на три потока, которые затем опять сходятся в один. Ну так вот. любую фразу в диалоге можно заменить на диалоговый блок. Делается это например так: Берем вот этот кусок x31 = text31 link31 = 32 x32 = text32 link32 = 40 И меняем вот так: x31 = text31 link31 = 32 block32 = dlg_block_test, block_1 link32 = 40 вместо команды x (создание фразы) - команда block. подключение диалогового блока. первый аргумент команды - секция конфига подключаемого блока. второй аргумент - имя блока, должно быть уникальным для данного блока. Вы ведь уже поняли что можно вставлять один и тот же блок несколько раз в разных местах диалога? имена только им надо давать разные. Например, вставим наш блок вместо фраз 12, 22, 32: block12 = dlg_block_test, block_1 ... block22 = dlg_block_test, block_2 ... block32 = dlg_block_test, block_3 Мы сделали это с тем диалогом что приведен выше, my_first_dialog. Что же в итоге получится? А вот что: Граф диалога усложнился в разы а мы всего лишь три строчки поменяли. В любой диалог, в любом его месте, можно вставить какой угодно диалоговый блок. При желании можно практически весь диалог из блоков и строить, только начальная фраза должна оставаться фразой. Ну и теперь самый смак. помните, что я говорил, что при создании диалогового блока доступны все те же команды что и для диалога? Так вот. команда block - тоже доступна. Вы можете составлять блоки из блоков, а те в свою очередь еще из блоков - сколько уровней вложенности вам понадобится, столько и будет. Единственное, чего не стоит делать, это вставлять диалоговый блок внутри себя самого. Спровоцируете бесконечный цикл, который завершится переполнением стека и вылетом. Таким образом, в код диалогового блока можно вставлять любые другие блоки, кроме него самого. Давайте немного обленимся, просто возьмем вот такой код [test_block_2] x1 = text1 link1 = 10, 20, 30 x10 = text10 link10 = 11 x11 = text11 link11 = 12 x12 = text12 link12 = 40 x20 = text20 link20 = 21 x21 = text21 link21 = 22 x22 = text22 link22 = 40 x30 = text30 link30 = 31 x31 = text31 link31 = 32 x32 = text32 link32 = 40 x40 = text40 link40 = 41 x41 = text41 link41 = 42 x42 = text42 link42 = 43 x43 = text43 Как видите это уже знакомый вам диалог на три ветки, сходящиеся потом в одну. Мы из него выкинули начальную фразу, и превратили в диалоговый блок. Добавим в него 4 выхода. [test_block_2] x1 = text1 link1 = 10, 20, 30 x10 = text10 link10 = 11 x11 = text11 link11 = 12 exit11 = 1 x12 = text12 link12 = 40 x20 = text20 link20 = 21 x21 = text21 link21 = 22 exit21 = 2 x22 = text22 link22 = 40 x30 = text30 link30 = 31 x31 = text31 link31 = 32 exit31 = 3 x32 = text32 link32 = 40 x40 = text40 link40 = 41 x41 = text41 link41 = 42 x42 = text42 link42 = 43 exit42 = 4 x43 = text43 Напомню, аргумент команды exit - это порядковый номер выхода. Что такое выход - думаю уже понятно. Это та фраза, или тот адрес, куда будут подключаться связи, которые должны выходить из диалогового блока. Но их несколько и они в разных местах. как же с ними обращаться? пишем такой диалог: [my_second_dialog] x0 = text0 link0 = 1 x1 = text1 link1 = 2 x2 = text2 link2 = 3 block3 = test_block_2, inserted_block link3 = 10 | 20 | 30, 40 | 50 x10 = text10 link10 = 11 x11 = text11 x20 = text20 link20 = 21 x21 = text21 x30 = text30 link30 = 31 x31 = text31 x40 = text40 link40 = 41 x41 = text41 x50 = text50 link50 = 51 x51 = text51 Зеленые фразы и синие стрелки - Встроенный диалоговый блок. Желтые фразы и фиолетовые стрелки - внешний диалог. Оранжевые стрелки - связи подключенные к выходам диалогового блока. Обратите внимание, как оформлены аргументы команды link, выходящей из диалогового блока: link3 = 10 | 20 | 30, 40 | 50 Символ запятая, по прежнему разделяет адреса связей, исходящих из одной и той же фразы. А символы | разделяют потоки, выходящие из разных выходов. Можно к примеру сделать так, что в каждой из 4-х фраз-выходов диалогового блока, будет выбор, в какую из веток пойти. сделаем все 5 веток доступными для всех выходов: link3 = 10, 20, 30, 40, 50 | 10, 20, 30, 40, 50 | 10, 20, 30, 40, 50 | 10, 20, 30, 40, 50 Или например: к второму и третьему выходу не будем ничего подключать: link3 = 10, 20, 30, 40, 50 | | | 10, 20, 30, 40, 50 Или еще пример: оставим к каждому выходу одну фразу, 50 и 51 фразы удалим из диалога: link3 = 10 | 20 | 30 | 40 Как видите, каждый выход из диалогового блока - может подключаться к любому числу фраз или не подключаться никуда, каждым выходом-потоком можно управлять отдельно. Тут есть один момент. При написании аргумента к команде link диалогового блока, можно записать меньше потоков, чем есть в блоке. Проблем от этого не возникнет, например если я сделаю так: link3 = 10, 20, 30, 40 | 50 то будут подключены 10,20,30,40-я фразы к первому выходу, 50-я ко второму. к остальным двум выходам не будет подключено ничего. А вот если я сделаю так: link3 = 10 | 20 | 30 | 40 | 50 Получится запись которая требует 5 выходов. А у этого диалогового блока есть только четыре. В таком случае произойдет такой вылет: Dialog <имя диалога>; line <номер строки>: Число выходов диалогового блока недостаточно для подключаемых входов. Число потоков, подключаемых к выходам диалогового блока, не должно превышать число имеющихся у него выходов. Вышеописанными блочными конструкциями, возможности модуля не ограничиваются. Если вы скриптер, вы можете писать свои функции, для динамической генерации диалоговых блоков, и точно так же подключать их в любое место любого диалога. Возьмем диалог из последнего примера. Там диалоговый блок подключался вот так: block3 = test_block_2, inserted_block link3 = 10 | 20 | 30, 40 | 50 и тут, все характеристики этого блока читаются из конфига, который, как ни крути, статичен. Однако можно сделать иначе: block3 = barter_manager_3.buy_terminal_all, inserted_block link3 = 10, 20, 30, 40, 50 Здесь - диалоговый блок это не секция конфига. Это указание вида файл.функция. На свою функцию формирования диалогового блока. inserted_block - все так же, уникальное имя этого блока в этом диалоге. И вы можете свои функции для формирования диалоговых блоков, писать в любом файле скрипта, где вам удобно. Генератор диалога сначала проверит, что такая функция существует, затем ее вызовет, предоставив ей генерировать диалоговый блок по своему разумению. Для того чтобы работать с этой системой, ваша скриптовая функция должна выполнять ряд правил: 1. генератор вызывая вашу функцию, передает ей 5 аргументов: *table: phr_tbl, - таблица, хранящая объекты фраз генерируемого диалога (точнее, ссылка на нее) number: phr_k, - следующий индекс, в который вам предоставлено писать свои фразы *userdata: dlg, - ссылка на объект диалога, созданный движком, и переданный в скрипты для генерации string: block_name, - уникальное имя диалогового блока string: block_input_key - адрес фразы, из которой подан линк на вход вашего блока. Это не id фразы, а ее адрес в системе генератора. 2. ваша функция обязана после завершения своей работы, вернуть генератору аргумент - таблицу. В этой таблице должны быть два элемента, с числовыми ключами. Первый - следующий после вас, свободный индекс в таблице фраз. Второй - еще таблица, в которой по числовым индексам, хранятся строковые адреса фраз, являющихся выходами вашего блока. 3. при каждом добавлении фразы, обязательно добавлять счетчик фраз на единицу. 4. адреса фраз, создаваемых внутри вашей функции, составлять с применением выданного на входе, имени диалогового блока. Так вы обеспечите уникальность адресов в тех случаях, когда ваш диалоговый блок будет подключаться несколько раз к одному диалогу. Если вы уверены что такого не будет, то 4-е правило соблюдать не обязательно. еще, в качестве рекомендации, для добавления фраз советую обратить внимание на функцию assembly_dialogs.assembly_phrase_ex. формирует фразы, опираясь не на конфиг, а на переданные в нее данные. Для наглядного примера, привожу код своего блока, это блок для бартерной системы торговли, он позволяет актору выбрать средство оплаты для уже выбранных покупок, производится перебор всех существующих в игре артефактов, формируются фразы на разное их количество, навешиваются прекондишены для проверки того что у актора есть в наличии нужное количество выбранных артов, и того что такой вариант подходит по цене к выбранному товару. Это лишь пример, цели диалоговых блоков могут быть любыми. function dlgblock_select_costitem(section_item, cnt_item, phr_tbl, phr_k, dlg, type_key, input_key) --[[ блок выбора артефакта/трофея для оплаты. цена оплаты определена до этого, наличие у ГГ ценных предметов определено до этого Actor Название х Количество Прекондишн: проверить наличие требуемого количества нужных артов Прекондишн: проверить что это та цена которая требуется Акшн: внести выбранное название в память. Блок в одну фразу. все построение блока сводится к формированию функций обработки фразы. ]] --printf(string.format("dlgblock_select_costitem %s", section_item)) --local inside_key = 1 --local lost_attempts = 0 --local inside_links = {} --local block_links = {} -- источник - полный адрес. цель - номер в локальной сети. local exit_table = {} --local item_count = barter_manager_3.Get_Art_Count(section_item) if not din_functions_dlg then _G.din_functions_dlg = {} end din_functions_dlg[string.format("costprec_%s_%i", section_item, cost_increment_table[cnt_item])] = function(a, local item_count = barter_manager_3.Get_Art_Count(section_item) if cnt_item > item_count then return false end -- у ГГ нет столько артов этого вида local cost_level = af_memory.level local self_cost = af_ranks[section_item] + cost_increment_table[cnt_item] return cost_level == self_cost end local p_tbl = {string.format("din_functions_dlg.costprec_%s_%i", section_item, cost_increment_table[cnt_item])} local cost_level = af_memory.level din_functions_dlg[string.format("costact_%s_%i", section_item, cost_increment_table[cnt_item])] = function(a, barter_manager_3.set_af_memory(section_item, cnt_item, cost_level) end local a_tbl = {string.format("din_functions_dlg.costact_%s_%i", section_item, cost_increment_table[cnt_item])} local textn = ltx:r_string(section_item, "inv_name") local text = string.format("%s x %i", game.translate_string(textn), cnt_item) assembly_dialogs.assembly_phrase_ex(text, phr_tbl, phr_k, dlg, string.format("%s%i", type_key, 1), input_key, a_tbl, p_tbl) phr_k = phr_k + 1 exit_table[1] = string.format("%s%i", type_key, 1) --- после завершения формирования реальных фраз, надо обработать массив дополнительных линков. --phr_k = assembly_dialogs.final_link_BD(inside_key, inside_links, phr_tbl, phr_k, dlg, type_key) --phr_k = assembly_dialogs.final_blocklink_BD(block_links, phr_tbl, phr_k, dlg, type_key) return {phr_k, exit_table} --- возвращаем следующий свободный ид в таблице фраз, и таблицу полных ид фраз, являющихся выходами данного блока. end function buy_terminal_all(phr_tbl, phr_k, dlg, block_name, block_input_key) --[[ блок выбора оплаты, можно подключать к стандартно-формируемым диалогам. выбор производится по всем категориям средств оплаты структура: NPC Actor NPC чем расплатишься? -> [1 артефакт "А"] -> Хорошо, получаются у нас [2 артефакта "А"] вот такие условия сделки: [4 артефакта "А"] (вывод условий сделки) * * * [1 артефакт "B"] * * * ]] local exit_table = {} local exit_blocks_data = {} local text = "Чем расплатишься?" local PHR_id = block_name.."buy_terminal_all_input" local a_tbl, p_tbl = {}, {} assembly_dialogs.assembly_phrase_ex(text, phr_tbl, phr_k, dlg, PHR_id, block_input_key, a_tbl, p_tbl) phr_k = phr_k + 1 for k, v in pairs(af_ranks) do local a = 1 while a < 100 do local BD = barter_manager_3.dlgblock_select_costitem(k, a, phr_tbl, phr_k, dlg, string.format("sel_cost_all_%s_%i", k, a), PHR_id) phr_k = BD[1] local n_exit = BD[2] table.insert(exit_blocks_data, n_exit[1]) a = a * 2 end end text = "Итак, получается у нас с тобой сделка на таких условиях:" local PHR_exit = block_name.."buy_terminal_all_exit" local exit_created = false local exit_a_tbl = { "barter_manager_3.get_params_transaction" } for i, j in pairs(exit_blocks_data) do if exit_created then phr_tbl[phr_k] = dlg:AddPhrase("", assembly_dialogs.dia(PHR_exit), assembly_dialogs.dia(j), 0) phr_k = phr_k + 1 else assembly_dialogs.assembly_phrase_ex(text, phr_tbl, phr_k, dlg, PHR_exit, j, exit_a_tbl, p_tbl) phr_k = phr_k + 1 exit_created = true end end exit_table[1] = PHR_exit return {phr_k, exit_table} --- возвращаем следующий свободный ид в таблице фраз, и таблицу полных ид фраз, являющихся выходами данного блока. end Тут все наверно в курсе, что я занимаюсь разработкой мода "Судьба Зоны" который уже год. Ну так вот, выложенный здесь модуль - это одна из технологий этого мода. В несколько более горбатом виде, но понятном "для своих", этот модуль существовал в моде еще два года назад. Все до единого диалоги мода, были написаны с помощью этой технологии. Забегая дальше, кто-то может помнит, что у меня было в планах написать скриптовый гуи-интерфейс для окна диалога, планы эти никуда не делись, в версиях мода после 0.5 это все будет. И в частности могу пообещать что тот скриптовый гуи будет воспринимать диалоги, написанные по вот этой выложенной здесь технологии. https://yadi.sk/d/XxUqwIvthfeWo
  16. 26 points
    Сделали интересные правки, будь то: конфиги, скрипты, шейдеры, текстуры, модели, движок и прочие ресурсы ? Поделитесь своими работами в этой теме! Также, если вы наткнулись на чью то интересную правку - не проходите мимо этой темы? Поделитесь с остальными своей находкой! Тема только для публикации готовых правок. По вопросам работы с правками, обращаться в соответствующие темы в разделе: http://www.amk-team.ru/forum/forum/45-shkola-moddinga/
  17. 25 points
    Вот и подошел к концу 5-ти летний марафон разработки этого мода. Неоднократно были помыслы бросить все, но все-таки хватило сил довести это до логического завершения. Многое вышло не так, как хотелось, многое не получилось, но - как есть, мои ресурсы тоже не безграничны. Кто ждал и интересовался - вот оно, перед вами, качайте и играйте. Только сильно не пинайтесь за данную поделку. Приятной игры.
  18. 25 points
    The Long Road (build 090120) Разработчик: Jurok Жанр: Survival Платформа: ЗП 1.6.02
  19. 25 points
    Всем привет! У нас тут новая кат-сцена от Dan Stash
  20. 25 points
    Тайники Коллекционера - 2 Чтобы не путаться, где искать подсказку, смотрим описание в записке. Если в записке три места - тайник старый, тогда их местоположение можно узнать вот ЗДЕСЬ Если больше трёх - новый.
  21. 24 points
  22. 23 points
    CS GSC Style Pack Платформа: ТЧ
  23. 23 points
    Необходимо ввести сменные штаны и трусы, ибо после встречи с контроллёром просто крайне необходим сменный комплект, иначе не реализм!!!11
  24. 22 points
    Принимайте Все мои поздравления с наступающим Новым годом!!! Желаю здоровья тонну и удачу в придачу.
  25. 22 points
    Тема только для публикации готовых hud'ов рук. По вопросам работы с ними, обращаться в соответствующие темы в разделе: http://www.amk-team.ru/forum/forum/45-shkola-moddinga/ Создали свой hud рук? Поделитесь со всеми в этой теме!
  26. 22 points
    Это - очень важный пост, касающийся всех. Даже тех, кто следит за своей речью и не позволяет себе мата и вульгарностей. 18 января вступил в действие пункт Правил 2.0, который гласит: Коллектив Администраторов и Модераторов просит вас отнестись к тексту этого пункта более серьезно, чем к какому-либо другому. Причина проста: наказание за него очень легко получить по неосторожности. Многие слова и выражения, взявшие свой смысл и свою основу от выражений матерных, вошли в обиход и уже не считаются даже грубыми и не ассоциируются с матом, однако по сути они являются завуалированными ругательствами. Часто нам очень неприятно наказывать по этому пункту тех, кто по неосторожности допускает его нарушение, однако текст этого пункта согласован внутри модераторского коллектива, итоговая формулировка не вызвала возражений, пункт принят и действует. Поверьте, что мы очень хорошо понимаем те сложности, с которыми пользователям приходится сталкиваться при написании постов - нужно очень внимательно следить за своей речью - но в итоге мы считаем, что это поможет как нам всем вместе взятым (форум будет высоко ставить некую планку общения, которая в соцсетях, например, опущена очень низко), так и каждому из нас в отдельности (поскольку поможет поддерживать свою речь в нормальных человеческих рамках не только на нашем форуме). Это не романтика и не иллюзии, это реально работает: если вы постоянно общаетесь хорошим человеческим языком на одной из площадок в интернете, то это накладывает отпечаток и на ваше общение на других площадках, и даже в реальной жизни. Мы в этом убеждены, и считаем, что нам под силу противостоять общей ситуации, складывающейся в общении в сети и в реале. Еще раз: да, на первых порах будет трудно. Но привычка - очень сильная штука, а к хорошему быстро привыкаешь. Модераторы форума просят вас не торопиться при написании постов и перед отправкой перечитывать их. Если вы допустили в тексте выражения, которые могут быть поняты Модераторами как нецензурные или вульгарные - переформулируйте свой текст. Это совсем не сложно, выражения любой степени экспрессивности могут быть заменены на цензурные, достаточно этого просто захотеть. Любые слова и выражения, которые, как вам кажется, лучше характеризуют вас и ваше отношение к чему-либо, могу быть более цензурными и не менее доходчивыми. Мы можем заверить вас, что будем тщательно просматривать то, что вы пишете на форуме, и будьте готовы к тому, что какие-то ваши слова и выражения будут расцениваться как нарушение п. 2.0 или 2.1, даже если вы не видите в них ничего "такого". Возможно, что-то будет и пропущено нами, но это не будет означать, что это позволительно, такие ситуации - всего лишь наши недоработки, которые мы будем исправлять по мере обнаружения. Модераторы будут исходить из Правил форума, однако они - тоже люди, и полную меру наказания применяют не всегда, иногда они могут просто исправить в постах слова и выражения, нарушающие Правила, не предупреждая автора поста. Однако надеяться на такой вариант мы не советуем: помните, что Модератор в любой момент может использовать всю меру наказания за нарушение, предусмотренную в Правилах, и его мнение по вопросу правильности вынесенного предупреждения имеет приоритет над вашим. Все ваши жалобы на действия Модераторов, отправленные с помощью системы жалоб форума, по-прежнему будут рассматриваться, но при этом не ждите, что Администраторы будут вступать в лингвистические дискуссии, и поймите нас правильно: мы доверяем Модераторам, и отменяем их решения только в том случае, если считаем их неправильными, но не в том случае, если их считаете неправильными только вы. Очень хочется привести несколько примеров, чтобы было понятно, за что пользователь может быть наказан, но мы сознательно не приводим их. Не для того, чтобы оставлять себе возможность наказывать за что попало, а для того, чтобы вы сами подумали над этим чуть больше, чем над другими пунктами Правил и тщательно определили для себя рамки вашего общения. Мы надеемся и верим, что ваши представления о хорошем общении совпадут с представлениями Модераторов и Администраторов. Спасибо.
  27. 22 points
  28. 21 points
    Любой материал, выкладываемый в этой теме, должен удовлетворять следующим требованиям: 1. Совместимость с ЛЮБЫМ каким угодно модом. Рабочая платформа может быть любая ТЧ/ЧН/ЗП, все сразу или какая то одна, но в любом случае выложенный здесь модуль, инструмент, что угодно - безболезненно подключается к какому угодно моду на указанной платформе. 2. Практическая польза для модостроителя. т.е. это не "новые скины главного меню", это что-то такое, что дает новые возможности разработчикам модов. 3. Стабильность и законченность. Никакого сырого кода здесь не будет. 4. Обязательное наличие ясной и понятной инструкции - что это такое, что оно делает, как работает, как пользоваться.
  29. 21 points
    Добро пожаловать, Друзья. Присаживайтесь к нашему Костру!
  30. 21 points
    Поздравляем всех с наступающим Новым Годом. Сталкеры Бункера Бобра.
  31. 21 points
    Автор модели: 4А Games (Metro Last Light) Скелет, привязка, анимации: Jeka81 Новый монстр - ПАУК (не финальная версия - требует доработки). Видео под спойлером
  32. 21 points
    FN Five-seveN [render] Напарник для FN P90. Долгое время был под вопросом, но все таки ввод нового калибра ради всего лишь одной пушки был не очень оправдан. Вероятно парочка будет выдана наемникам.
  33. 21 points
    ТОЗ-34 [рендер] Чуток забегая вперед, сделал базовые анимации для замечательной вертикалки от SAM61.
  34. 21 points
  35. 21 points
    @middim, Ну вот....взял и разрушил светлые идеалы РЕАЛИЗМА. Почитай внимательно описание мода, из шапки темы.
  36. 20 points
    Ну я думаю все уже догадались что релиз будет сегодня, в воскресенье, 3 июля. не все сразу если честно, не силен я в этих графических наворотах. Народ любит чтоб было красиво, потому и ставил. Полагаю снести все красивости можно будет просто установкой текстур из оригинала ТЧ. на динамике пойдет со всеми SWTC и апокалипсисами.
  37. 20 points
    Вопрос - не в бровь а в глаз... от разработки усталость есть. от ЧЗО нет... Уже дошло до того что, когда меня все достало, и очередной скрипт после многочасовой отладки так и не желает работать как надо, я просто запускаю Судьбу Зоны и играю. Отдыхаю там. Она ведь почти готова уже. Не перестает радовать меня своей непредсказуемостью... никакой левелдизайнер не придумал бы таких выкрутасов, которые мне подкидывает созданная мною зона. Ну а после такого - и желание таки доделать этот мод, воскресает вновь. Так и живем потихоньку. @Romark, Предложенная вами концепция - это очень близкое воспроизведение реальной жизни. Да, в реале если кто-то из нас не дай бог получит пулю или будет покусан собакой, лечиться придется долго, не день и не два. Но все же не стоит путать или приравнивать игру, и реальность. Это разные понятия. И если уж на то пошло, даже убрав полностью из игры все аптечки - мы не запретим выносить толпы врагов. Потому что в игре - есть одно, самое главное отличие игры от реальной жизни. В игре можно сохраниться. И если что-то пошло не так, загрузить сохранение. Соответственно, если реализовать вашу концепцию - игроки будут убивать одного врага, если все прошло хорошо, сохраняться, убивать еще одного, опять сохраняться, и т.д. А при получении любого ранения, немедленно загружать последнее сохранение. Вот и все. Ограничивать сохранения - простите, тогда мы выводим свое творение из понятия "Игра" - и превращаем в некий гибрид Игры и реальной деятельности. да, примеры такие в сталкеромоддинге есть... но я не считаю такой путь правильным. А если не загружаться - задумайтесь кто станет играть по таким правилам? У подавляющего большинства здесь есть реальная жизнь. Мы ходим на работу/учебу, и после всех дел вечером или в выходной приходим домой и включаем компьютер на несколько часов или даже меньше, чтобы запустить игру. Отдохнуть в ней, получить интересные впечатления и яркие эмоции. Покажите мне того, кто проведя 8-10 часов на работе, и затем еще час-полтора в городских пробках, захочет еще затем 6-8 часов сидеть у компа, дожидаясь когда его персонаж в игре излечится от случайного ранения, перебинтовывая ему раны и вовремя принимая антибиотик? Есть конечно игроки которые такому будут рады... т.к. у них скорее всего нету тех 8 часов на работе и часа в пробках, они просто все свободное время у компа проводят. Простите это не сюда, и вообще для таких товарищей давно придуман жанр MMORPG-игр где можно хоть сутками находить себе занятие. Если поместить на один полюс - оригинал ТЧ, где аптечка действовала мгновенно, жралась безоткатно и не мешала использовать оружие, А на другой полюс - вашу концепцию медицины То окажется что Судьба Зоны вообще то сделала немалый шаг от оригинала - в сторону вашего полюса. Но все же осталась ближе к оригиналу, чем к вашей концепции. У нас аптечка действует постепенно, в течение 10-15 сек, и пока она не закончит действие, другую съесть нельзя. реген здоровья от нее довольно медленный, и допустим если на вас напала стая собак, то аптечки вас просто не успеют отлечить. Серьезным оружием, кроме пистолетов, опять же нельзя пользоваться пока действует аптечка Ну и наконец кровопотери. Я вот буквально вчера в порядке теста кое-чего, участвовал в перестрелке в СЗ. И хотя бинты применял вовремя, крови потерял существенно. Больше половины. И знаете что, вот так вот взять и восстановить это прям сразу - не существует способа в игре. Можно восстановить едой, но есть нельзя если не голоден - т.е. много за раз не съешь. А чтобы восстановить существенную кровопотерю, одного приема еды мало. Можно восстановить сном, но опять же кто вам даст заснуть посреди поля боя. Это действительно проблема, которая пресекает "терминаторство" сразу. Приходится быть осторожным и хорошенько думать прежде чем куда то лезть и в кого то стрелять.
  38. 19 points
    Судьба Зоны: Обсуждение и прохождение
  39. 19 points
    Вот да. В честь такого подбежал бы бюрер в темном коридоре лаборатории и вместо того чтобы агрессивничать - поздравил с новым годом и вручил ценный подарок
  40. 19 points
    Достигнут очередной маленький рекорд) вчера при помощи "Пушки мододела" в игре был установлен гулаг с рекордной численностью - 100 нпс. Не буду уточнять на какой локации и в какой группировке гулаг работает в 9 состояниях, переключает свои работы, исправно функционирует и не вызывает проблем с производительностью. Кстати. готовность мода версии 0.5 я бы оценил... в 99%.
  41. 19 points
    Creator (Moders) Всем привет! Я бы хотел показать вам свою панель - плагин для Photoshop CS6. Для чего она сделана? Для облегчения работы 3d artist -а. Выполнения той или иной рутинной работы, которую порою не только скучно, но и надоедает выполнять. Так же дополнение не расчитанно как панацея от всех бед. Можно сделать не мало, но всегда вы!, будете контролировать процесс текстуринга. Финальный результат зависит лишь от вас, как и прежде. Упомяну, что эта версия, сделана специально для вас, модостроителей. Если же вы хотите узнать о полной версии, и её возможностях, пишите в мне лс. Народ! Если вы не прочь делиться своим рабочим процессом, или интересностями в текстуринге, пишите. Я с радостью выслушаю, и постараюсь сделать что то для вас в панели. Update 31.12.2014 На сей момент это финальная версия Пасиб за поддержку всем и помощь в дополнении панели.
  42. 18 points
    День добрый, ну зачем же так критично утверждать. Я понимаю может просто коса на камень нашла, в тот момент когда Вы юзали это шедевр.Но поймите нам выложили свежий релиз, этого культового мода. А ведь ребята старались и не один год вынашивали идею довести финал до логического конца. Как изначально планировал создатель Архара. Я Вам больше скажу, у нас так со всеми релизами и не было еще не одного мода. Что как только вышел и все идет без сучка и задоринки. Это просто не реально выпустить мод с идеальной работоспособностью у всех юзеров. ---------------- Не много отдохните, пройдет еще пару месяцев и уверяю Вас в шапке будет полностью доработанный финальный шедевр. Полностью поправленный последним финальным фиксом. Надо отдать должное команде НС - 2016, за их труд, понимание ситуации. Ребята реально живут в двух измерениях в реальности дома и тут на форуме. Создали несколько тем, тех - поддержка, не отказывают и не прячутся от нас юзеров.
  43. 18 points
    Решил тоже тему поддержать. Выкладываю свои варианты моделек для расширения уже имеющихся.
  44. 18 points
    С наступающим НГ всех жителей форума!
  45. 18 points
    Комбинезон монолита (обновление) Обновление визуала рук для монолита было неизбежным по ряду причин. Во первых слишком толстая перчатка - недостаток перчаток оаклей из серии modern warfare , во вторых оголенный палец не подходил под общий. Ну и в целом качество не совсем хорошее было. Новые перчатки оаклей из cod ghosts (наконец-то нормальные пропорции, хотя и пришлось дорабатывать мелкие детали от себя), автором рукавов является Tigg (текстура от Bullshit).
  46. 17 points
    Наткнулся на интересное, попробовал реализовать. Результат такой же как и здесь. Для ОП-2 2.09-2: Правка проваливающихся сквозь текстуры предметов из разбиваемых ящиков. На самых ранних версиях работать не будет. Не помню в каком патче расширили модуль нет-пакетов в амк скрипте - лень разбираться Искать добавленные ф-ции get_item_params и set_item_params. C той версии может и будет работать - пробовать надо.
  47. 17 points
    Обновил плагины для Total Commander для распаковки игровых архивов. Теперь поддерживают упакованные файлы. Вот новые версии обоих плагинов на яндекс диске. Также ссылки на официальный сайт с новыми версиями в моей подписи. https://yadi.sk/d/094hymb_r275S https://yadi.sk/d/hCfFUj7Tr277b
  48. 17 points
    Эх, как купил пиратку с модами в 2007, на котором была одна из первых версий АМК, так и остался в этой игре. Знакомство с игрой у меня началось с модов, а уж потом только оригинал. И, словно как завещала судьба, первый запущенный мною в жизни мод на сталкера был АМК. Случайно решил, что установлю его первым, и вот, пожалуйста, 9 лет уже прошло. Как сейчас помню первые походы, шугался каждой собачки, хлопков аномалий.. Да. Эти впечатления запали мне на всю жизнь, и ни одна игра, а тем более мод к ней, не произвели на меня такого эффекта, и вряд ли уже произведут. А сегодня я снова увидел этот красный покосившийся логотип (на форуме), как когда-то видел в лаунчере, главном меню.. И чуть не взяла меня слеза А еще напомнили про первый сайт, на котором можно проследить хронологию разработки по новостям на главной сайта. История, однако.. И теперь мне захотелось вернуться почти на 10 лет назад и установить тот самый мод. Чистый. Без малейших правок. В общем, все это ностальгические мысли (Логотип увидел - понеслась вода по трубам). А что по делу сказать, так это поздравить этот МОД (С большой буквы) с уже 9-м Днем Рождения, который объединил под собой сотни, а то и тысячи игроков и мододелов. А "АМК мод" - это все те, кто приложил руку к его разработке, каждый человек вложивший время в сей шедевр. Ну и 9 лет - это ребята срок.. Многое поменялось с тех пор у каждого из нас. Но что-то все же осталось как и раньше - этот мод продолжает объединять людей.
  49. 17 points
    Я не знаю что тут кто пытается доказать, но так понимаю суть вещей на данном этапе: Мод версии 0.5, грубо говоря, собой будет представлять отдельный геймплей. На основе которого в последствии либо Автором, либо еще кем другим (либо всем миром), можно будет запилить любой другой мод и с локациями, и с графоном с "обертками" какими кому будет угодно. Поэтому вайнить по поводу лок, графона, пух и прочего....к чему это вообще? Если на данный момент работа не на эти цели направлена. Я когда скачаю мод прежде всего попробую геймплей с нововведениями. А картинку прикрутить, или локи, или сюжет - это все будет сделано еще сто раз, на любой вкус. Я так понимаю.
  50. 17 points
    Old Good Stalker Evolution 0.6.9.3: Обсуждение и прохождение Описание и ссылки на скачивание <<<>>> Технические проблемы <<<>>> Правки и модификации Внимание разработчикам с навыками изготовления 3Д-моделей и анимации! Есть для вас работа на примете! :) Перед тем, как постить вопрос по квесту, прочитайте FAQ. Скорее всего, там уже есть ответ. Посты с проблемами, решаемыми с помощью шапки, будут удалены.
This leaderboard is set to Moscow/GMT+03:00

AMK-Team.ru

×
×
  • Create New...