ВВЕДЕНИЕ
В этой теме рассмотрены все известные автору на данный момент методы и способы взлома сетевой (сингловой) частей игры Проклятые земли. Для реализации этих методов будут необходимы следующие инструменты:
1. ArtMoney (или любой другой редактор с аналогичными функциями)
2. Исходники датабазы (databasaLMP.res)
3. Полный список скриптов (консольных комманд)
4. Патч разрешающий ввод консольных комманд в сетевой игре
Автор не пропагандирует взлом данной игры, все сведения, выложенные в данной теме носят чисто познавательный характер.
Взлом с использованием ArtMoney
Программа ArtMoney создавалась как универсальный взломщик к любым играм. Она умеет сканировать память или файлы игры для поиска каких-то определенных значений (деньги, ресурсы и т.д.). Таких значений может быть много и надо выбрать нужные, поэтому поиск разделяется на два этапа - поиск значений и отсев ненужных значений. В итоге получаем адреса, в которых находятся числа, и их можно изменить на нужные.
Поиск в памяти процесса игры. Запустите ArtMoney и потом игру. Выберите, какой параметр, вы хотите сломать и запомните его. Переключитесь из игры на ArtMoney, используя Alt-Tab. Если не помогает, то Ctrl-F12. Теперь выберите процесс с игрой. Если, например, хотим денег, жмем на кнопку "Искать" и выберем метод искать "Точное значение". Поскольку игра не знакомая, то ставим тип - все(стандартные). Это общий принцип применимый для большинства игр.
Для взлома конкретно игры Проклятые земли необходимо вместе с самой программой ArtMoney скачать готовые таблицы.
Таблиц представлено три:
Armor (доспехи)
Weapon (оружие)
Spell (заклинания)
Метод взлома стандартные, сначала в окне конструктора заклинаний (доспехов/оружия) собирается собственно само заклинание (доспех/оружие), далее переключаемся через Alt-Tab в программу и ищем некоторое определенное значение (для заклинаний это "запас сил" для доспехов и оружия это "Вес"). Тип значения "с точкой 4 байта". Программа находит очень много значений, необходимо опять переключится через Alt-Tab в игру, разобрать заклинание (доспех/оружие) и собрать его заново (для заклинаний изменить набор рун, чтобы изменился "запас сил"), (для доспехов и оружия изменить материал, чтобы изменился "Вес" предмета). Переключиться в ArtMoney, и отсеять вновь найденное значение "запас сил/вес". Повторять эти операции до тех пор, пока не останется приблизительно 4-8 значений. Далее загрузить готовую таблицу (Spell/Armor/ Weapon), в правом окне выделить мышкой значение "запас сил/вес", в левом выделить одно из найденных значений и выбрать опцию "автозамена". Если все сделано правильно значение параметров в правой таблице изменятся на необходимые. Изменить любой параметр, заморозить его и опять переключится в игру, несколько раз собрать разобрать заклинание/предмет (чтобы убедиться в правильности найденного значения), если измененный параметр в игре не принимает нужного значения, то надо заново загрузить таблицу и повторить автозамену со следующим найденным значением. В случае возникновения каких либо вопросов, рекомендую обратиться к "руководству по взлому игр с помощью ArtMoney" которое присутствует в самой программе.
В итоге с помощью такого "взлома" можно получить предметы и заклинания с любыми характеристиками.
Взлом с использованием исходников датабазы
Исходники датабазы представляют собой набор текстовых файлов (таблиц), в которых прписывается большинство параметров персонажей, заклинаний, предметов, материалов для сетевой игры. В комплект входят и специальные утилиты для компиляции текстовых файлов (таблиц) в готовый файл databaseLMP.res.
Таблицы в принципе можно редактировать в любом текстовом редакторе, но я настоятельно рекомендую использовать Microsoft Exel (очень удобно). После редактирования и изменнения нужных параметров запускается утилита которая компилирует датабазу "databaseLMP.res", после чего датабазу нужно скопировать в директорию /res установленной игры, предварительно сохранив в безопасном месте имеющуюся в этой директории датабазу.
Взлом с помощью консольных комманд
Консольные команды (скрипты) представляют собой простой язык программирования, в Проклятых землях, начиная с версии 1.03, отключена возможность ввода консольных команд в сетевой игре. Для того, чтобы включить ввод консольных команд необходимо скачать специальный патч и установить его.
Консольные команды вводятся в консоли, которая вызывается пимпой "~", для активации режима ввода команд необходимо в консоли ввести thingamabob и нажать enter, после чего должно появится сообщение Activated!
Внимание! Список консольных команд с необходимыми пояснениями будет приведен в соседней теме в ближайшее время.
Большинство консольных команд из списка необходимо вводить с приставкой @ пример:
@playanimation(getleader(),"crest") (ваш персонаж должен вальяжно присесть)
Часть команд вводится без приставки @ пример:
lootall (в обоз персонажа должен переместиться весь лут с карты)
НИЖЕ ВЫЛОЖЕНЫ ВСЕ ИЗВЕСТНЫЕ МНЕ ЧИТЫ, КОТОРЫЕ РЕАЛИЗУЮТСЯ ВЫШЕИЗЛОЖЕННЫМИ МЕТОДАМИ
1. Неуязвимость
1.1 "Баксовая" броня
Название "баксовая" означает, что вместо числового показателя брони появляется значок 1.$, при этом персонаж одетый в такие доспехи становится в некотором роде бессмертным, урон нанесенный любым оружием с любыми характеристиками и заклинаниями с любыми характеристиками будет равен нулю.
Достигается такой эффект двумя способами:
а) С помощью редактирования датабазы.
В файле "Materials.txt" для какого либо материала необходимо в разделе Absorption в колонках (Piercing … General) исправить показатели. В значениях перед точкой добавить некоторое количество нулей, например 50 нулей (пример для материала Adamantium в колонках Piercing … General раздела Absorption показатели 6.162384551 изменяются на 600000000000000000000000000000000000000000000000000.162384551). После чего компилируется датабаза и копируется в каталог /res установленной игры. После захода в игру необходимо из матерала Adamantium собрать любые доспехи, в результате показатель брони таких доспехов будет 1.$. Легко убедиться, что персонаж одетый в такие доспехи подобен богу Правда не спешите радоваться, в свое время был создан патч, позволяющий убивать персонажей одетых в "баксовую" броню. Патч имеет название AntiBugs, автор патча MB. Эффект пробивания баксовой брони достигается за счет обнуления всей брони в игре, т.е. абсолютно все доспехи будут иметь показатель брони 0 в том числе и те которые вроде бы баксовые. Следует заметить, что после установки данного патча обычная честная игра становится по понятным причинам невозможна.
б) С помощью Artmoney.
Обычным способом (см. выше описание взлома с помшью Artmoney) находим значенние показателя брони и заменяем его на "яяя" с ковычками, в результате показатель брони станет -1.$ эффект такой же как и у брони 1.$ без знака минус, единственное появляется знак минус перед показателем, дополнительная фишечка
1.2 "Безтелость"
Название "безтелость" означает, что у персонажа нет областей для нанесения удара. Эффект достигается редактирование датабазы.
В файле "RaceModels.txt" датабазы необходимо изменить в разделах
(HL: Head … HL: Left Leg) в колонках:
- Type (значения Skull … Leg на значение None);
- Weight (цифры заменить на нули);
- Vitality (стереть значения).
Изменения проводить для нужного вам персонажа (строки) Human Male (мужской персонаж), Human Female (женский персонаж) либо если собираетесь играть за персонажа монстра, то для того монстра которым хотите играть.
После чего компилируется датабаза и копируется в каталог /res установленной игры. После захода в игру необходимо создать обычным способом нового персонажа, и убедиться в том, что области для удара, такие как голова, тело, руки и ноги отсутствуют. Урон от любого оружия, заклинания, скрипта будет равен нулю.
Методы убийства вашего персонажа, обладающего "безтелостью" также имеются, опять же есть патч. Автор патча MB, но беспокоится не имеет большого смысла, ибо в отличие от патча AntiBugs данный патч не распространен для свободного скачивания. Никто из играющих на данный момент такого патча не имеет, за исключением самого автора и возможно еще 1 - 2 человек. Никто из этих счастливчиков в Проклятые земли уже давно не играет
При применение неуязвимости п.п. 1.1, 1.2 персонаж неуязвим не только на сервере самого игрока, но и на серверах других игроков.
1.3 Неуязвимость с помощью скрипта (работает только на сервере самого игрока).
С помощью консоли вводится команда
@GodMode( nPlayer : float , Mode : float )
Команда: GodMode - устанавливает текущей партии игрока под номером: nPlayer режим: Mode - 0 значение по умолчанию, Mode - 1 партия неубиваемы при беге мана нерасходуется, Mode - 2 члены партии неубиваемы, при беге мана нерасходуется и любой юнит из партии убивает врага с одного удара.
2. Игра за персонажей монстров
2.1 С помощью ArtMoney
Я думаю все уже разобрались с программой ArtMoney, и не буду повторять механизм поиска и нахождения нужного значения.
Для начала необходимо немного рассказать о параметрах, которые влияют за отображение той или иной модели персонажа. Таких параметров два, это - параметр в колонке Mask name, раздела Graphics data, файла "RaceModels.txt" датабазы; параметр TypeID, раздела TypeID, файла "RaceModels.txt" датабазы. Оба параметра находятся рядом друг с другом, в соседних колонках. Параметр Mask name это практически название файла анимации для моделей из ресурсов игры, параметр TypeID это своего рода класс персонажей (человек, монстр, животное). В файле "RaceModels.txt" в колонке Mask name отображены все задействованные в сетевой игре названия файлов анимации для всех задействованных в сетевой игре юнитов. Для юнита Human Male название файла анимации прописано unhuma, для юнита Human Female прописано unhufe и т.д. для всех монстров и животных. В файле "RaceModels.txt" в колонке TypeID отражается класс юнитов, которых как уже упониманось 3, а именно - human (человеческие персонажи); monster (персонажи монстры); animal (персонажи животные). Класс юнитов влияет на отображение модели, т.е. если персонажу монстру monster изменить на human, модель получится неправильная (будут отсутствовать некоторые части тела). С этой проблеммой связано неудобство применения программы ArtMoney, возникают частые и малопредсказуемые ошибки, которые ведут к критическому завершению программы (игры). Тем не менее такой способ существует и следует о нем упомянуть.
Итак с помощью ArtMoney (персонаж при этом должен находиться на одной из баз пещера, ингос, суслангер, гипат) ищем и находим текстовое значение unhuma или unhufe (если вы играете женским персонажем), программа найдет несколько тысяч значений. Все найденные значения необходимо заменить на название файла анимации для монстра/животного за которое вы хотите играть, например хочется поиграть драконом (ищем в "RaceModels.txt" в колонке Mask name название файла анимации для дракона - unmodg). После замены unhuma на unmodg возвращаемся в игру и немного "шаманим" т.е. поговорить с какими либо NPC, возможно несколько раз, но в итоге у вас должен появиться дракончик, который будет слегка неправильный (осутствует шея например). Чтобы персонаж был полоценным необходимо аналогичным способом с найти и заменить класс персонажа human на соотвествующий monster или animal.
Еще раз напоминаю о возможных критических ошибках, и не рекомендую использовать данный способ.
2.2 С помощью консольных команд
Этот способ работает на порядок корректнее, применять следует именно его.
Для того, чтобы играть за персонажа монстра необходимо ввести последовательность консольных команда, команды вводятся поочередно одна за другой.
thingamabob
@createparty(0,"NameParty")
@addunittoparty(0,"NameParty::Hero","NameUnit")
@setcurrentparty(0,"NameParty")
@redeployparty(0)
Данные консольные команды следует вводить когда персонаж находится на одной из баз (гипат, суслангер, ингос, пещера).
В данных командах приняты следующие переменные:
NameParty - название новой партии, может быть любым каким вы захотите;
NameUnit - имя юнита из файла "MonstersPrototypes.txt" из колонки Name, раздела Name;
Имя юнита выбирается исходя из вашего желания, в зависимости от того каким именно монстром/животным вы хотите играть. Важное замечание, имя юнита NameUnit писать в скрипте следует с учетом регистра (большие/маленькие буквы имеют значение), ошибки в написании имени юнита не допускаются, ошибка приведет к критическиому завершению программы.
Пример:
Мы хотим поиграть за дракона, в файле "MonstersPrototypes.txt" необходимо найти имя юнита-дракона, в колонке Name, раздела Name находим например "LMP Unique Dragon Plague Ancient 30" (это дракон повелитель из одноименного квеста в сетевой игре в пещере). Далее следует зайти в игру, создать обычным способом нового персонажа и зайти им на одну из баз (гипат, ингос, суслангер, пещера), ввести в консоли последовательность скриптов:
thingamabob
@createparty(0,"Dragon")
@addunittoparty(0,"Dragon::Hero","LMP Unique Dragon Plague Ancient 30")
@setcurrentparty(0,"Dragon")
@redeployparty(0)
В итоге получаем дракона, причем практически полноценного, с шеей
Неполноценность дракона будет заключаться в том, что он будет без имени, с 1 жизнью и 0 запаса сил, будет медленно перемещаться, при попытке зайти в магазин или в окно инвентаря игра будет вылетать с критической ошибкой.
Как сделать дракону имя мы рассмотрим чуть позже.
Проблема с заходом в магазин решается редактированием датабазы, а именно в файле "RaceModels.txt" в колонке TypeID для персонажа дракона (или любого другого которого вы сделали) необходимо заменить значение monster на human (или animal на human). Скомпилировать датабазу и установить ее в папку /res установленной игры (родную датабазу обязательно сохранить в безопасном месте!!!). Теперь персонаж дракон у вас будет выглядеть неполноценно, но сможет заходить в магазин, что очень важно для того, чтобы решить проблемму с медленным перемещением, 1 жизни и 0 запаса сил. После того как вы сделает в магазине все, что вам необходимо, следует вернуть исходную датабазу (чтобы дракон выглядел как подобает дракону), опять же сохранив исправленную в безопасном месте и в последующем при необходимости воспользоваться магазином менять датабазы.
После решения проблемы с заходом в магазин можно приступать к решению проблемы с медленным перемещением, 1 жизнью и 0 запаса сил. Необходимо войти в магазин, и ввести консольные команды:
thingamabob
give 0 exp 5000
проблема собственно решена, у персонажа появляются все необходимые скорость, жизни, запас сил.
Собственно вот таким вот нехитрым образом все и производится, следует заметить, что все монстры и животные полученные любым из двух способов будут без текстур (белые) с текстурами будут только орки и человеческие персонажи, проблема создания персонажей монстров с тесктурами на данный момент не решена.
Эти два метода позволяют создавать только персонажей монстров, которые задействованы в сетевой игре, как делать персонажей не задействованных в сетевой игре и играть за например елку, куст, или домик с гипата будет рассмотренно чуть далее.
3. Имена персонажей
Изменение имени персонажа одна из самых популярных фишек, смотрится достаточно эффектно
Имена изменяются с помощью ArtMoney.
3.1 Написание длинного имени или длинного названия клана
В окне выбора персонажей (там где выбирается каким из созданных ранее персонажей играть) выбирается персонаж с допустим именем "test", и нажимаем изменить название клана и вводим максимально возможное по количеству букв название клана (10 символов), допустим название клана будет 1111111111 то есть наш персонаж будет иметь такое вот имя с названием клана test | 1111111111 (17 символов!), переключаемся в ArtMoney и ищем текстовое значение "test | 1111111111" (без ковычек). Программа найдет от 4 до 7 значений, все эти значения заменяем на нужное нам (не больше не меньше чем 17 символов) например все заменить на ххххххххххххххххх переключаемся в игру и опять нажимаем изменить название клана, видим что у нас получилось имя персонажа ххххххххххххххххх именно этого мы и добивались. Если необходимо иметь еще больше символов имени персонажа, повторяем операцию. Изменяем название клана на ххххххххххххххххх | 1111111111 и опять запускаем ArtMoney повторяя все шаги, в итоге получаем уже 30 символов, хотите больше? Повторяем еще разДопустим нас устраивает 17 символов в имени, имя ххххххххххххххххх состоящее из этих 17 символов не устраивает, опять запускаем ArtMoney и ищем наше 17-ти символьное имя ххххххххххххххххх, находим и заменяем на например SuperCheater 2004. Механизм думаю ясен и до предела прост. Длинное название клана получаем аналогично, делаем длинное имя, символов так 30 например хххххххххххххххххххххххххххххх и при замене в ArtMoney вставлем в нужном месте "|", с двумя пробелами по сторонам, т.е. хххххххх | ххххххххххххххххххх.
3.2 Вставка спец символов в имя или название клана
Аналогично можно использовать ArtMoney, и при замене вставлять спец символы.
Думаю подробно расписывать это не имеет смысла, так как после прочтения предыдущего пункта вопросов быть не должно.
3.3 Изменение цвета имени персонажа или цвета отдельных букв в имени персонажа.
Цвета изменяются нехитрым способом, а именно введение перед именем вот такой вот конструкции ^1 перед всем именем или перед какой либо буквой в имени. Пример делаем имя опять же с помощью ArtMoney например хххххххххххххххххх, н овместо первых двух символов хх ставим ^1ххххххххххххх в итоге получаем ник синего цвета независимо от того цвета который будет назначаться автоматически при заходе на сервер, а если сделаем так:
^1хххххх^2xxxxx то половина имени будет синяя, половина зеленая . Нетрудно догадаться, что что цифра после ^ означает цвет, предлагаю поэкспериментировать и самим установить какая цифра какому цвету соответствует.
В дополнение следует заметить, что таким образом можно менять цвет не только имени и названия клана, но и просто писать в игровом чате разными цветами, просто перед фразами или буквами вводить конструкцию ^n, где n- цифра, соответствующая определенному цвету.
3.4 Присвоение имени безымянному монстру (при создании персонажа монстра см. п.п. 2.2
Как и обещалось рассказываю о присвоении имени монстру в принципе уже наверное можно и самостоятельно догадаться.
По аналогии с п.п 3.1 ищем с помощью ArtMoney имя, возникает резонный вопрос как найти имя если его нету? Ответ прост имени действительно нет, а вот название клана можно ввести и найти Другими словами делаем монстру название клана xxxxxxxxxx, переключаемся в ArtMoney и ищем такую вот текстовую конструкцию "| xxxxxxxxxx" естественно без ковычек, находим и заменяем на хххххххххххх, легко заметить, что всего лишь заменили разделитель имени и названия клана "| " двумя символами "хх". В итоге повторяя вышеописанные операции получаем имя и по п.п. 3.1…3.3 делаем его супер навороченным (или простым).
Первые разделы можно назвать базовыми то, что будет рассказано дальше является продолжением на основе этих базовых знаний, своего рода прикольными фишками.
4. Изменение скорости персонажа
Скорость персонажа меняется редактированием датабазы.
В файле "RaceModels.txt" в колонках Run … Crawl, раздела Speed, для нужного персонажа изменить значения, это и есть скорости передвижения персонажа при ходьбе, беге и т.д. При изменении значений в сторону увеличения существует предел 15.3, выше этого предела скорость не изменить. Т.е. изменить значения можно и на 200 и на 300, но в игре скорость больше чем 15.3 не поднимется. Скомпилировать датабазу, скопировать ее в каталог /res установленной игры, зайти в игру, обязательно создать нового персонажа (у которого скорость будет 15.3, на ранее созданных персонажей изменение не распространится)
Чтобы изменить скорость персонажа выше чем 15.3 необходимо редактировать еще и файл "MonstersPrototypes.txt". В колонке Move, раздела Tuning файла "MonstersPrototypes.txt" для нужного персонажа выставить значение 255, одновременно в разделе "RaceModels.txt" в колонках Run … Crawl, раздела Speed выставить значение 255. Скомпилировать датабазу, скопировать ее в каталог /res установленной игры, зайти в игру, и в отличие от предыдущего созлать нового персонажа скриптами (также как создавали монстров см. п. 2.2). Да ведь я забыл упомянуть, что скриптами можно создавать не только монстров но и обычных персонажей точно так же как и монстров, персонажей людей, задействованных в сетевой игре из файла "MonstersPrototypes.txt". В итоге у созданного таким образом персонажа скорость перемещения будет 150.0, согласитесь впечатляет, за 1 сек переместиться через всю карту
5. Левитация
Многие наверное видели в игре персонажей, которые спокойно бегали по воде аки по суху, так вот за эту способность отвечает левитация.
Взлом производится опять же с помощью датабазы, в файле "RaceModels.txt", в колонке Locomotion, раздела Secondary занченние с 1 изменить на 2, скомпилировать датабазу скопировать ее в каталог /res установленной игры, войти в игру создать нового персонажа и посмотреть на результат - рядом со значением скорости будет красоваться (левитирует), персонаж спокойно бегает по воде, забирается в ранее недоступные места.
6. Игра за монстров которых вроде бы нету в датабазе
Вспомним п. 2.2, там где играли за дракона и т.п. и вспомним сингловую часть игры, в сингле был такой монстр как Проклятье Джунов, летучемышеподобный драконообразый уродец. Им оказывается тоже можно сыграть. Все операции производятся аналогично п. 2.2 также вызываем дракона, но перед этим редактируем датабазу. В файле "RaceModels.txt", в колонке с названием файла анимации, как помнится это колонка Mask name, раздела Graphics data изменяем значение названия файла анимации для дракона, которое имеет название unmodg на unmocu. Unmocu это название файла анимации для Проклятья Джунов. Скомпилировать датабазу скопировать ее в каталог /res установленной игры, аналогично п.2.2 сделать скриптами дракона, но вместо дракончика у нас будет красоваться Проклятье Джунов. Все проще простого, единственное в чем возникнет проблема - откуда узнать названия файлов анимации для других незадействованных в сетевой игре монстров? Узнать это тоже не так трудно, достаточно всего лишь распаковать датабазу для сингловой части игры "database.res". Да именно распаковать, запаковывать мы уже научились, а вот распаковывать нет. Не беда дело 2 минут.
Создаем папку на диске с любым названием и копируем туда файл "database.res" туда же копируем файл из набора исходников датабазы с именем ResBuild.exe (он находится в папке /Utils. В этой же папке создаем тектовый файл в обычном редакторе типа блокнота. Содержание файла должно быть такое:
ResBuild.exe e database.res *.*
Сохраняем этот файл с расширение *.bat.
Таким образом в нашей папке должно лежать три файла database.res, ResBuild.exe и наш созданный файл с расширением *.bat (назовем его к примеру ext.bat). Далее следует запустить наш файл ext.bat и через несколько секунд в папке появятся нужные нам файлы. Файлы с расширением *.adb это и есть нужные нам названия файлов анимации, среди них вы увидите и те названия, которые уже прописаны в сетевой датабазе, но есть и те, которых в сетевой датабазе нету. Это как раз unmocu, файл панцирника unanwicr.adb - нам нужно только название без расширения т.е. unanwicr (его тоже нету в сетевой игре).
Кстати я упоминал игру не только за монстров, животных, людей, но и за неодушевленные предметы типа куста, дерева и т.д. Об этом расскажу в следующем разделе.
7. Игра за неодушевленные предметы типа кустов, деревьев домик с Гипата
Для начала следует сказать, что игра за неодушевленные предметы сама по себе не корректна и 100% будут критические ошибки, но если очень хочется то можно и с критическими ошибками ужиться.
Кстати я ведь не рассказал об одной интересной фиче, которая здорово упрощает ввод скриптовых команд, а эта фича просто спасает при игре за неодушевленные предметы, потому как приходится постоянно вводить одну и туже группу консольных команд. Итак вводить все команда вручную вовсе не обязательно, достаточно эти команды записать изначально в какой-нибудь текстовый файл. Создаем текстовый файл с любым названием и записываем в него наши команды в таком вот виде:
thingamabob
@createparty(0,"NameParty")
@addunittoparty(0,"NameParty::Hero","NameUnit")
@CopyStats(0,"Hero","NameParty::Hero")
@CopyItems(0,"Hero","NameParty::Hero")
@CopyLoot(0,"","NameParty")
@setcurrentparty(0,"NameParty")
@redeployparty(0)
естественно с нужными значениями NameParty и NameUnit см. п. 2.2.
Сохранить этот файл с каким либо названием (допустим monster), скопировать файл в корневую папку установленной игры. В последствии вместо того, чтобы каждый раз набирать вручную эти скрипты наберем в консоли простую команду
exec monster
monster естественно это название нашего файла.
Внимательно приглядевшись, можно заметить, что скриптов стало больше, я не ошибся в этом случае имеет смысл ввести в структуру еще две команды. Это сделано потому, что как я говорил при игре за неодушевленные предметы возникают критические ошибки. Ошибки возникают по такому принципу - после ввода скрипта и получения персонажа допустим дерева им нельзя будет повторно войти в игру, т.е. войдя на базу и запустив скрипт, получив дерево им можно только входить и выходить на карту, при выходе с сервера и попытке вторично выбрать получившегося персонажа игра вылетит в винду. Такой вот своего рода одноразовый персонаж. Естественно в таком случае невозможно добавить такому персонажу полноценности - имя, скорость, жизни и т.п. Эти введенные два скрипта позволяют получившемуся персонажу унаследовать имя и скорость и жизни и запас сил от "родительского" персонажа. То есть от персонажа, которого вы создаете обычным способом которым впоследствии заходите на базу из которого и получается персонаж (монстр либо неодушевленный предмет). Естественно эти же скрипты можно использовать и для создания простых монстров, для упрощения генерации имени и статов (под статами понимается как раз жизни, запас сил, и т.п.).
Далее переходим у непосредственно созданию неодушевленных моделей, принцип такой же как и при создании монстров которых вроде бы нету в датабазе см. п. 6. Все один к одному, за исключением названий файлов анимации, в данном случае их следует искать не в database.res, а в файле figures.res, который также необходимо предварительно распаковать. Содержание bat будет немного другим:
ResBuild.exe e figures.res *.*
Файлов распакуется а порядок больше, названия файлов анимации это названия файлов с расширением *.mod, опять же в датабазу следует записывать одно название файла, без расширения. Еще раз повторюсь, что придется при каждом перезаходе в игру создавать персонажа. Зато эффект того стоит. Я не буду расписывать какие названия каким именном предметам соответствуют, просо на просто лень, те кому интересно могут поэкспериментировать и выложить полный список.
8. Изменение внешнего вида персонажа (комплекции/фигуры/роста)
Многие наверное заметили, что стандартные параметры при создании персонажа не дают возможности получить более менее нормального персонажа, они получаются достаточно комичными (пузатенькие такие).
Меня в свое время заинтересовала проблема получения более менее реалистичного персонажа. Так вот оказывается есть возможность обойти стандартные игровые параметры.
8.1 Изменение роста
Рост меняется с помощью ArtMoney при создании персонажа стандартными игровыми методами. Ищется значение, меняется и т.д. Повторять в который раз работу программы ArtMoney думаю не имеет смысла. Единственно могу заметить, что рост персонажа ограничен только нижним пределом, если поставить рост -99 персонаж получается в виде такого комичного карлика с микроскопическим тельцем. Еще более уменьшать рост вредно, ибо игра будет вылетать.
8.2 Изменение комплекции (фигуры персонажа)
Есть два способа:
а) С помощью датабазы и скриптов
В файле "MonstersPrototypes.txt" в колонке Complection, раздела Graphics Data прописывается изначальная комплекция юнитов, задействованных в сетевой игре. В колонке через запятую стоит три значения например "0.4,0.3,1.1" - первая цифра "0.4" соответствует силе персонажа деленной на 100, т.е. если сила персонажа 40 то значение в колонке будет 40/100=0.4; вторая цифра соответствует ловкости (30/100=0.3); третья росту (110/100=1.1). Необходимо для заранее выбранного персонажа заменить значение на то, которое вам необходимо, например я в свое время делал "1.65,0.35,1.2" что соответствовало персонажу с силой 165, ловкостью 35, ростом 120 и получал этакого мистера олимпия. Далее как обычно собираем датабазу и скриптами см. п. 2.2 делаем персонажа. Вроде ничего сложного.
б) С помощью одной датабазы
В файле "Perks.txt" для perk'a Strength1, устанавливаем в колонке Shown Exp значение 0, в колонке Modifier то занчение которое хотим например 50. Аналогичным образом для perk'a Dexterity1 устанавливаем в колонке Shown Exp значение 0, а в колонке Modifier то значение которое захотелось например 15. Компилируем датабазу, устанавливаем ее, заходим в игру и в окне магазина берем себе навыки сила и ловкость, так как мы устанавили значения Shown Exp=0, то взятие этих навыков не будет стоить нам опыта, а прибавка к силе и ловкости будет 50 и 15. Эти изменения отобразятся на нашем персонаже, он офигурится в момент.
Следует уточнить, что я не люблю второй способ, а пользуюсь исключительно первым, с помощью датабазы и скриптов, так как первый способ не влечет за собой изменения самих параметров силы и ловкости, а только изменение фигуры.
Продолжение следует...