|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
На днях занялся вопросом - как в игре организовать отыгрыш за мутанта (или, например, мертвяка). Кое-чего я добился, поэтому решил поделиться результатами. Пролог. Я – Избранный! Кем? Итак, во-первых, - не задавались ли вы когда-нибудь таким вопросом: а как игра создает объект "Главный герой", он же dude_obj? На стартовой карте artemple.map его нет - значит движок создает его самостоятельно. Пусть так, но откуда он берет характеристики нашего Чузена? Из про-файла 00000001(2).pro? Вовсе нет, это легко проверить, а еще легче предположить - т.к. в игре от про-файлов вообще мало что зависит. На этом исследования можно бы было закончить, т.к. понятно, что за создание Чузена целиком и полностью отвечает злобный движок. Однако можно двинуться дальше, и поискать в fallout2.exe FID (Frame IDentifier) героя-дикаря (набор анимации - hmwarr), а именно 0x0100003E, что я и сделал. К моему удивлению, Far такого сочетания в экзешнике не нашел. Тогда я задал в поиске "hmwarr" и нашел... одно совпадение! Причем совсем рядом с ним находились также hfprim, hmjmps и hfjmps – ничего вам не напоминает? Глава 1. Перворожденный. Обрадованный, я тут же кинулся изменять это самое "hmwarr" на… да, кстати, а на что его изменять? Казалось бы, бери да недолго думая меняй на mamtnt – чего ж проще? Да, безусловно, можно, но не соответствует концепции "залегания" ресурсов в Фоле. Что за концепция? Очень просто – герой отдельно, монстры и ЭнПиСи отдельно (т.е., есть hmwarr, а есть nmwarr). Кроме того, в теме "Анимация" на этом самом форуме Jochua писал, что для героя подключаются стандартные "геройские" звуки, и отдельно их создавать и регистрировать в sndlist.lst не надо, а для НПС и создавать надо, и регистрировать, и не все они еще и проигрываются к тому же… В общем взял я этого mamtnt, да и переименовал в hamtnt (естественно, зарегистрировав в critters.lst). Закинул "новорожденного" в data\art\critters, поменял в экзешнике "hmwarr" на " hamtnt" и запустил Fallout. Перед входом в храм стоял самый что ни на есть настоящий зеленокожий гигант. При этом он двигался, разговаривал, залезал в инвентарь и чесался в самый интимных местах. В общем, настоящий чузен – парень хоть куда. Ура, товарищи? Нет, погодим праздновать, пошли ловить багов. Глава 2. Прощай, оружие! А ловить их на удивление просто – стоит только взять в руки копье, и… Фол намертво подвешивает WinXP! Ха-ха, поверили! Шутка, ничего он не подвешивает, даже не вылетает. Просто наш новый знакомый становится невидимкой. При этом он по-прежнему может лазить в инвентарь, разговаривать… Не может он только чесаться да двигаться (видимо, в Фоле движение намертво завязано с анимацией, поэтому стоит наш полтергейст как столб). Ну что же - прощай, оружие! Здравствуй, тяжелое оружие!! ;) А что насчет брони? Глюки – звери злобные, поэтому расслабляться нам рано. Кинем нашему новому другу на artemple.map кожанку, и посмотрим что будет. Подбираем, лезем в инвентарь - вуаля, снова мы в невидимках. Ну дык, мы же Избранные – зачем нам броня! А ну ее к Мастеру. Глава 3. Крутой Найткин. Но голь на выдумки хитра – именно поэтому я взял анимацию mamtn2, переименовал ее в hmmaxx, и закинул по адресу (data\art\critters). Вновь загрузился, натянул тесную курточку и стал ну прям как Мельхиор (или Маркус – это уж комукак)! [IMHO]Тут следует заметить, что за надеванием брони на чузена занимается собственноручно движок (я имею в ввиду, что именно он меняет картинку персонажа – не думаю, что этим занимаются скрипты). Отсюда делаем вывод, что у нас фиксированное количество видов брони, и они жестко завязаны с анимацией персонажа. Т.к. идентификация происходит, скорей всего, по PID (Proto IDentifier), то чтобы модифицировать броню (картинку нарисовать, характеристики изменить), нам придется изменять существующие файлы (*.pro, а то и карты все перелопатить), и новую броню полноценно создать (в смысле, новый .pro-файл) не получится, т.к. вид чузена изменяться не будет, а то и характеристики не поменяются.[/IMHO] Глава 4. Инвалид. Что-то я от багов отвлекся. Итак, сравним фазы анимации у мутанта (mamtnt) и человека (hmjmps). И убедимся, что мутанты не владеют: а) ножами б) дубинками в) кувалдами г) копьями д) пистолетами е) автоматами ж) винтовками т.е., проще говоря, холодным оружием и "мелкими пушками". Зато легко и непринужденно обращаются с тяжелым оружием (огнемёты, пулемёты, гранатомёты и пр. мёты). Кроме того, мутанты никогда: а) не карабкаются по лестницам б) не бегают в) не бьют ближних своих ногами своими С оружием мы разобрались – наше alter ego переходит в мир духов. По поводу же прочих действий скажу – они попросту не выполняются. Т.е. тяжелый удар в бою у вас не пройдет. Однажды спустившись в подвал вы никогда оттуда не вылезете. Побегать и порезвиться вам тоже не дадут – но тут движок поступает мудрее и заменяет бег на ходьбу. Глава 5. Хирургическое вмешательство. Итак, ребеночек получился дефектным и признан недееспособным. Но не опускайте рук! Для того чтобы вернуть нашего инвалида к активной жизнедеятельности, нужно лишь подсунуть игре соответствующие анимации. Ну то есть нарисовать пару-тройку тысяч (3204, судя по hmjmps) картинок. :о) Ну а если мы не художники, то отказавшись от оружия и бега, окажемся один на один с двумя довольно важными анимациями: тяжелый удар (ногой) и карабканье по лестницам. Включаем фантазию и получаем: "тяжелый" удар можно заменить "легким" (т.е. бить будет кулаком, но очков действия тратить 4 – в общем прямо как с трейтом Крушила: "Бьем нечасто, но зато так, чтобы на всю жизнь запомнили!" (c) Fargus 1998), а карабканье можно заменить на ну, например, возяканье ручками (манипуляции с предметами) или просто на почесывание – все должно заработать, а мы эти потери как-нибудь переживем. Я, кстати, вычислил это так: надев кожаную броню и став Черным Мутантом, при попытке бега картинка заменялась на обычного человека в кожанке – такое вот мгновенное перевоплощение (чтобы это убрать, придется задвинуть critter.dat подальше, предварительно распаковав и удалив все hmmaxx*.*, а уж затем заменять анимации). Для обычного мутанта (hamtnt) я вставил анимацию карабканья и битья ногами от чувака в Крутой Силовой Броне (APA), и все пошло как надо. Глава 6. …Зачем мне вОлтсьют? Я согласен на медаль… Немного слов о начале игры: если пройти Храм Испытаний, картинка заменится на человека в волтсьюте 13-го. Но мы уже знаем что с этим делать: надо в движке заменить hmjmps на hamtnt (если заменить еще и hfprim и hfjmps на hamtnt, сможем играть за женщину-мутанта (но это я не тестировал)). При этом мутант будет заменяться на мутанта же, и все будет "ОК", как часто любит повторять одна небезызвестная Операционная Система. А если мутанта одеть в кожаную броню перед прохождением Храма? Да все в порядке – движок не дурак, и менять картинку не станет. Так что населяем Храм роботами, анклавовцами, Мастерами, Френками, даем мутанту кожаную броню, Гатлинг в зубы – и пусть только попробует не пройдет наше испытание! Хардкор, однако. ;) Глава 7. Некоторые замечания. Прежде чем я набрел на эти "открытия", я пытался изменить картинку на мутантовскую с пом. скриптовой функции metarule3(METARULE3_ART_SET_BASE_FID_NUM, self_obj, 16777319, 0), где 16777319 – FID добавленного мной hamtnt. (Great THNX 2 Wasteland Ghost за ее замечательную доку по скриптам (BIS_help.htm)). Движок вполне честно менял картинку, но все оказалось не так просто – при взятии в руки копья чузен "перевоплощался" в дикаря, а при убирании копья из руки обратно мутантом становиться не хотел. Видимо, для чузена движок хранит еще один FID – уж не знаю зачем, и обрабатывает Избранного совсем не так как НПС. Например, в режиме торговли по бокам экрана внизу есть картинки торгующих персонажей. Так вот на этой картинке был изображен именно дикарь, тогда как "в главном окне" (над диалоговыми рамками) ясно был виден мутант. К тому же я заметил, что для НПС эти "бартерные" картинки – просто какая-то фаза "stand animation" с учетом ориентации (в пространстве, конечно :-) ), а для героя – без учета ориентации (гермафродитт, однако :-] ). Эпилог. Причащение. Чтобы повторить мой опыт ступайте по моим следам: 1) В файле fallout.exe найдите заветное сочетание "hmjmps", и замените hmjmps, hfjmps, hmwarr, hfprim на hamtnt. (Удобно в Far’е) 2) Распакуйте critter.dat в <Fallout2>\data\art\critters, где <Fallout2> - путь к папке с Фолом. 3) Удалите из <Fallout2>\data\art\critters все файлы по маске hmmaxx*.*. 4) Скопируйте из <Fallout2>\data\art\critters куда-нибудь в безопасное место все файлы mamtnt*.* и mamtn2*.*. Переобзовите mamtnt*.* в hamtnt*.*, а mamtn2*.* в hmmaxx*.*. (Удобно в том же Far’е или Total Commander’е – выделите все нужные файлы (например, mamtnt*.*), нажмите F6, введите hamtnt*.* и нажмите Enter). Переместите получившиеся файлы обратно в <Fallout2>\data\art\critters. (Как вы понимаете, копировать необязательно, можно все делать "не отходя от кассы" прямо в <Fallout2>\data\art\critters, но так безопасней). Если собираетесь играть за прекрасный пол, придется убить все hfmaxx*.*, и сделать из mamtn2*.* еще и hfmaxx*.*. 5) Сделайте из mamtntaq.frm -> hamtntar.frm, mamtntaa.frm -> hamtntae.frm, mamtn2aq.frm -> hmmaxxar.frm (и hfmaxxar.frm), mamtn2aa.frm -> hmmaxxae.frm (и hfmaxxae.frm). Созданные файлы бросьте в <Fallout2>\data\art\critters, исходные не удаляйте! 6) В critters.lst добавьте в конец строчку hamtnt, 21 (можно hamtnt, 103 – кому как больше нравиться). Оставьте в конце файла пустую строку (для надежности). Отредактируйте 14-ую строчку (замените hmmaxx,11,1 на hmmaxx,21) и 7-ую строчку (hfmaxx,11,1 на hfmaxx,21 – для женщины). Опять же удобно делать в Far’е, т.к. можно посмотреть номер строки. 7) Примите успокоительное. 8) Начните игру. Rem: Far – рулез! Во время игры соблюдайте следующие правила: а) белое не носить! (холодное оружие и легкие пушки в руки не брать - исчезнете) (кстати, оружие можно убирать из рук чузена скриптом) б) обтягивающее не надевать!! (любую броню, кроме кожаной не надевать) (впрочем, если наденете – просто станете ЧЕЛОВЕКОМ) в) не танцевать!!! (не бегать - впрочем, это у вас все равно не получится) Насчет брони – есть ведь еще анимация Лейтенанта из F1 – уникальный, между прочим, скин. Можно попробовать и ее всунуть, на место, например, металлической брони – но у него всего одна анимация смерти, так что как бы чего не вышло… У меня пока F1 нет, а то бы проверил. P.S. Для игроков-фанатов: Я не гарантирую вам, что вы сможете пройти всю игру до конца (глюки, они разные бывают), однако уверен, что сможете (в кожаной броне |-) И драться поначалу только руками :-)) Пешком! :))) ). Также не гарантирую, что на вас будут реагировать как на мутанта – вас по-прежнему будут воспринимать как человека (это понятно – нужно диалоги менять). Однако внешне мутантом вы будете. Я, например, прошел до Клэмата, убил с десяток крыс, нормально сохранился и загрузился. Кстати, по поводу сохранения – это очень важно, т.к. если бы загрузиться нормально (по-прежнему мутантом) не удалось, исследования завершились бы полным провалом. (Интересно, игра сохраняет FID игрока в савках или нет?) (Отредактировал(а) Perceptron - 17:28 - 31 Июля, 2004)
----- Into The New Year - With A New Vision! Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.
|
Отправлено: 17:25 - 31 Июля, 2004
|
|
Gatling
Пользователь
Откуда: БОМЖ Регистрация: Февр. 2004
Всего: 115 сообщений
|
у лейтенанта вроде все анимациии смерти...
----- "Гизмо...Гизмо-кака!" Gremlin.
|
Отправлено: 17:38 - 31 Июля, 2004
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Кстати, функция metarule3(METARULE3_ART_SET_BASE_FID_NUM, self_obj, FID, 0) нормально работает для НПС, например для многострадального Клинта - даже в бартерном окне его картинка отображается нормально - согласно текущему FID'у. P.S. Моя версия экзешника - от Фаргуса, т.е., по-видимому, американская 1.02d.
----- Into The New Year - With A New Vision! Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.
|
Отправлено: 0:11 - 3 Авг., 2004
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Насчет смены картинки при надевании брони - движок этим, конечно, занимается, но информацию о том, на какую картинку сменить внешний вид Чузена берет из про-файла брони - там есть соответствующие поля. Ведь ввожу народ в заблуждение, а никто не поправит. Кстати, чтобы повторить эксперимент, вам, естественно, придется "убить" патч (распаковать в data и убрать подальше). 2Gatling: Ты это по личному опыту убиения Лейтенанта судишь, или копался в криттер.дат?
----- Into The New Year - With A New Vision! Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.
|
Отправлено: 0:55 - 4 Авг., 2004
|
|
Pavel
Модератор
Откуда: Одесса Украина Регистрация: Май 2004
Всего: 368 сообщений
|
Да ребята, интересную тему вы подняли. К стати, ведь ещё можно ипользовать броню Френка Хоригана. А в общем, если кто нибудь из вас возьмётся за создание такого героя, то возьмусь за нарисовывание к мутантам недостающих картинок. Только о сроках сразу умолчу, так как установка любого срока сразу ставит меня в тупик. Если интересно предложение - мыльте, и приступим за работу.
----- В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...
|
Отправлено: 11:23 - 4 Авг., 2004
|
|
escapist
Пользователь
Откуда: В. Новгород Регистрация: Авг. 2004
Всего: 34 сообщения
|
Во-первых, всем привет (первый пост, однако). Появился у меня по прочтении этой темы такой вопрос: А возможно по ходу игры изменить "расу" игрока?
|
Отправлено: 22:06 - 23 Авг., 2004
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Нет, к сожалению нельзя. К тому же даже в данном случае изменяется не раса, а только внешний вид. А расу, пожалуй, только GVAR'ой можно организовать.
----- Into The New Year - With A New Vision! Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.
|
Отправлено: 1:31 - 24 Авг., 2004
|
|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
У Френки есть анимация удара ногой. Тем, кто не знаком с хекс-эдиторами: потестить поведение Чуза в чужой шкуре можно не модифицируя экзешник. Открываем Mapper\Scripts\Main\obj_dude.ssl и вставляем сразу после critter_p_proc строку metarule3(107,self_obj,FID_нужного_критера,0); Компилируем, копируем в Data\Scripts, играем. Не забудьте только потом удалить obj_dude.int Такой способ не так элегантен, как предложенный Перцептроном: 1) при смене брони ничего не происходит 2) в инвентаре и на steal- и pickup-экранах картинка обычного Чуза 3) баги с анимацией (мы меняем скин Чуза несколько раз в секунду) Но потестить наличие ФРМ-ок различных действий - самое оно. Тем более, старые сейвы должны работать просто отлично. Опять же, в экзешнике раться не надо.
|
Отправлено: 6:56 - 24 Авг., 2004
|
|
|
|
|
|