Pull to refresh

Вертолеты в GTA III/LCS или лучше поздно, чем никогда

Games and game consoles
Sandbox
Давным-давно у меня была мечта попасть на маяк в GTA III (и ещё в пару интересных мест вроде города-призрака, обсерватории, стадиона и т.д.), но разработчики сделали это практически невыполнимым, из авиа-техники там был только самолетик Додо без крыльев, на котором было очень сложно летать. Потом вышла часть Liberty City Stories для PS2 (с практически тем же игровым городом) – приставки у меня не было (жили мы тогда бедно) и игра попала в мой список игр. Спустя много лет я купил приставку и прошел её, вертолётов там не оказалось тоже, но я сделал их себе там сам и нашёл кое-что ещё.

Хотя эта игра вышла давно, думаю, эта статья будет многим интересна и может кого-то вдохновит на достижение его старых целей. Лично у меня если цель поставлена — я выполню её всё равно, рано или поздно. Тогда же появилась идея написать статью про то что получилось. Потом на пару-тройку лет меня затянуло в работу, но про статью я не забыл, и вот она.

При написании статьи я нашел еще одну классную вещь для ПК версии GTA III, про которую почти нет информации в русском интернете и получил ещё немного приятных воспоминаний из детства.



Я не хотел читать прохождения и просто прошел Liberty City Stories на PS2 до конца. Вертолётов и самолётов там не оказалось, а трюк с угоном вертолёта в одной из миссий (как я узнал потом) был уже недоступен для меня, перепроходить заново я не хотел. После поиска читов\сохранений\редакторов я понял что для этой части на PS2 нет практически ничего, есть немного для PSP, но покупать ее я не хотел.

К тому моменту я уже приучил мою PS2 читать игры по сети, она мне досталась в отличном состоянии и чипованная. Как только я увидел сетевой порт на приставке, я почувствовал, что что-то подобное должно быть, и не зря. Это была отдельная радость, которую может понять только железячник или кто-то такой же бережливый, как и я — никакого износа лазера и легко переключаться между играми, приставка стала почти вечной (правда друзья и родственники моей радости не разделяли, ну и ладно). А также я мог заходить в её карту памяти файловым менеджером (ulaunchelf).

И я решил, что смогу достать вертолет и так – у меня была полная уверенность в том, что он в игре был. Я сделал несколько сохранений в одном и том же гараже с разными автомобилями (чтоб были разные ID) и скопировал их с карты памяти на флешку (та версия загрузчика игр, которую я тогда использовал, не могла ещё делать виртуальные карты памяти).

Интернета в том доме, где я жил, тогда не было – пришлось нести флешку на работу, где меня ждал ещё один сюрприз – в именах сохранений были двоеточия, FAT32 нормально принимает такие файлы, но все наши компьютеры работали под виндой (имя файла вроде «1: The Sicilian Gambit» не принимается), и только сервер стоял на убунте… Закончилось тем, что я просто воткнул флешку в сервер и скопировал\переименовал всё на нем.

Попробовал поискать по ID из предыдущей игры – Vice City – не вышло ничего, некоторые были одинаковые, некоторые отличались (на произвольную величину). Как ни странно, я смог нагуглить «GTA LCS Vehicles IDs», на какой-то по счету странице был правильный список. Можно было достать его и из файлов игры, но это было бы сложнее, а так это сэкономило порядочно времени.

После пары отсевов я обнаружил, что даже при том, что в гараже сохранялся каждый раз только один транспорт, он мог сохраняться в разные места файла. Например по одному ID находим 100 значений, а после отсева по адресам в другом файле – ни одного. Мне повезло, что хотя бы некоторые файлы совпали и записали ID транспорта по одному и тому же адресу, это подтверждалось; а также очень повезло, что файл вообще никак не зашифрован, просто в своем формате. В конце концов я нашёл, что одна из позиций в гараже находится по адресу 0000DCF4, 4-х байтовое целое:



Изменил значение (с 210 на 213 — ID Hunter'a, военного вертолёта), порадовался и пошёл домой. Скопировал дома файл обратно на карту памяти и меня ждал облом – «файл сохранения поврежден». На следующий день каким-то чудом удалось найти формат файла сохранения Vice City, про LCS найти не было даже шансов и я подумал, что хотя ID авто и отличаются, сейвы должны быть примерно одинаковые (ох уж эта программистская лень), так и оказалось.

Оказывается, в конце файла (по адресу 00018FFC) находится простая проверка — побайтовая сумма всего файла в 4-байтовом поле. Написал на PHP простой скрипт, который просуммировал весь файл как байтовые значения (просто открыть как строку и сумму ord() всех символов кроме последних четырёх) и это подтвердило, что в последней ячейке такая сумма.



Домой в тот вечер я реально спешил. Как оказалось, двоеточие в имени файла можно заменить на что угодно и игра всё равно его «поймёт», например, «1_ The Sicilian Gambit» тоже ею понимается нормально. И радости не было предела, когда в открывшемся гараже вывалился хвост вертолёта.



Домашние долго не могли понять, что в этом такого, от чего у меня весь вечер улыбка до ушей. В игре военный вертолёт нигде не использовался и не появлялся, он просто валялся в игре, полностью рабочий, с пулемётом и ракетами. Это был долгий радостный вечер, я побывал на маяке и почти везде, где хотел, увидел, почему вертолёты и самолёты были убраны (большинство крыш без текстур и коллизий) и устроил настоящий погром.

Добраться получилось практически везде, кроме города призрака (его не оказалось, он есть только в третьей части) и обсерватории (в этой части игры низкий потолок высоты и туда не добраться никак). Это было три года назад и тогда у меня не было времени на эту статью.

Сейчас я поискал информацию и не нашёл опять ничего толком для PS2. Зато нашёл отличную новость для тех, кто как и я, хочет доисследовать GTA III – оказывается уже год назад группа людей выпустила дополнение для ПК версии этой игры, называется «GTA III Aircraft», в её версии «Assisted Installation» надо просто скопировать все её файлы в папку с игрой и в ней появятся вертолёты и самолёты. Странно, что в русскоязычном интернете про этот мод толком не было ничего. Чтоб вертолёты появились в нескольких местах, надо найти в интернете файл CLEO.asi (загрузчик дополнительных скриптов) и скопировать в папку с игрой, иначе вертолёты и самолёты в самой игре будут, но спавниться нигде не будут. После всех действий первый вертолёт можно найти на скале напротив маяка, под ним – водный самолет Скиммер, остальные разбросаны по карте.

С этим модом я смог добраться до обсерватории (потолок высоты в ПК версии GTA III большой) и даже смог забраться на маяк.



Как оказалось, маяк в третьей части и в LCS – не одно и то же. Если в LCS вокруг него можно ходить и спускаться по лестнице, то в третьей части у него вообще нет коллизии (каркаса взаимодействия). Он плоский сверху и дальше игрок просто стекает по нему в воду, даже на ступеньках и основании нельзя задержаться. Я ждал от моей детской мечты большего, помню как мы с братом часами атаковали маяк на самолётике Додо с обрезанными крыльями, пытаясь забраться на него, но так и не смогли на него попасть (то ли тот самолетик и правда ужасно управлялся, то ли виновата коллизия маяка).

Так или иначе я рад, что сделал то, что давно хотел, пролетел везде, где можно в этом городе и написал эту статью. И кстати, я специально не прикрепляю фото с обсерваторией или городом-призраком, может кто-то отправится туда сам.

А у вас есть подобные детские мечты? И кто-то хочет попробовать переделать лимит высоты для приставочного исполняемого файла в LCS? Говорят, он захардкожен внутри него…

UPD: В PSP версии маяк правда другой (по сравнению с 3 частью), у него странная коллизия — есть только верх и них, а центра нету, можно пролететь насквозь (в PS2 версии то же самое).
image
И у обсерватории со всем окружающим ландшафтом нет коллизии тоже.
image
С хаком для PS2 версии я не закончил, сильно много вариантов там и желания заниматься этим уже нет, думаю там всё как в PSP версии, только непонятно зачем лимит высоты сделали гораздо меньше.
Tags:игрыигровые приставкиигровая механика
Hubs: Games and game consoles
Total votes 58: ↑55 and ↓3 +52
Views33.8K

Popular right now

Game Producer (возможен релокейт)
from 3,000 $WannaPlayМинскRemote job
Gameplay UE4 C++ Developer
from 200,000 ₽Omniverse GamesСанкт-Петербург
Middle Game designer
to 2,000 $Stark GamesМинскRemote job
Unity3D Developer
from 110,000 ₽Game InsightRemote job
Data Scientist
to 6,000 $MobalyticsRemote job