Как написать как в гта

Обновлено: 04.07.2024

Любому игростроевцу, который захочет сделать мод для San Andreas, придется продираться через густые скриптовые заросли. Ведь с помощью скриптов можно изменить практически любую игровую составляющую. Хотите добавить в SA безбашенную мини-игру? Не вопрос. Желаете сделать собственный ролик на игровом движке или новую миссию? Тоже не проблема. Главное, научиться разбираться в принципах скриптописания.

Теорию и общие вопросы мы регулярно разбираем в “Самопале” (смотрите цикл статей “ Игровое программирование ”), на страницах же “Мастерской” займемся целенаправленным изучением скриптового языка конкретно GTA: SA.

Сегодня мы разберемся с основами языка программирования игры и научимся создавать несложные модификации. Самая популярная и распространенная программа для скриптинга под San Andreas — SAMB . Возможности этого редактора безграничны. Впрочем, нет, есть одно серьезное ограничение — ваша фантазия. Но тут мы вам, увы, не помощники. Зато разобраться в редакторе поможем легко. Забирайте SAMB с нашего диска и внемлите.

Важное отступление. При написании скриптов очень большое значение имеет количество пробелов, которое стоит между теми или иными элементами скрина. В статье для удобства восприятия везде стоит по одному пробелу, но если вы хотите, чтобы мод работал, число пробелов должно быть “правильным”. Для этого отправляйтесь на наш диск, где выложены исходные скрипты.

Copyright House Industries

Красивый шрифт из GTA 5, да еще и с поддержкой русского языка. Слишком вкусно, чтобы быть правдой? Слишком сладко, а вот использовать где попало его нельзя, лицензия, насколько нам известно, Only Desktop Use. Печально, ну, а как иначе.

Первый запуск

Во время первого запуска редактора вам необходимо указать директорию с установленной игрой, после чего программа запустится автоматически (в ранних версиях редактора директорию указывать не нужно). Ознакомимся с интерфейсом программы.

Большую часть редактора занимает текстовое окно (пока оно серое), где мы и будем создавать что-то новое или редактировать уже существующее. Над этим окном располагается очень удобная панель инструментов . Откройте файл main.scm , располагающийся в подпапке игры: Data/Script — для этого в панели инструментов щелкните на значок папки со стрелочкой или зайдите в пункт меню File/Open . Перед вами появится подобие проводника Windows.

В правом окне вы должны указать путь к файлу main.scm. Например: C:\Games\GtaSan\data\script . После этого напротив поля File type выберите SCM-файлы . В результате в левом окне появится файл main.scm.

Щелкните по нему один раз и нажмите OK . Перед вами появится еще одно меню, в котором необходимо указать путь хранения файла (можно выбрать любой путь). Когда вы определитесь с местом хранения scm-файла, смело нажмите кнопку OK еще раз. Подождите несколько минут, пока программа переведет машинный код в читабельный язык программирования игры.

Синтаксис редактора

Ознакомимся с синтаксисом редактора. Если не соблюдать элементарные правила написания скриптов, то программа будет выдавать массу ошибок. Она просто не поймет, что вы хотите ей сказать.

Все миссии в GTA: SA представляют собой массу связанных между собой команд. Любая строка с необходимой командой, в свою очередь, состоит из трех частей, например 0417: start_mission $test .

Не горим и в воде не тонем!

Разберем эту строчку более подробно:

0417: — это код команды;

start_mission — сама команда, игнорируется редактором;

$test — переменная или число (числа).

Еще один пример: 03D8: show save screen . ( 03D8: — код команды; show save screen — команда).

Совсем не обязательно запоминать коды всех команд. В редактор встроена подсказка. Например, если вы напишите ключевое слово boat (лодка) и нажмете клавишу F1 , программа автоматически подберет нужную команду:

02D3: boat $A88 drive to 171.0578 942.3843 6.0

Нажав клавишу F1 еще несколько раз, редактор будет подбирать коды команд с интересующим вас словом до тех пор, пока не закончатся все варианты. На слово boat будет выведено следующее:

02D3: boat $A88 drive to 171.0578 942.3843 6.0

02DB: set boat $A88 speed to 10.0

02D3: boat $A88 drive to 171.0578 942.3843 6.0

043a: start boat foam animation ;; never used in VC

043b: update boat $cutsceneanim foam animation ;; never used in SA

02D3: boat $A88 drive to 171.0578 942.3843 6.0

Чтобы посмотреть ключевые слова, как, например, в случае с лодкой, откройте документ Keywords , поставляющийся вместе с редактором.

Мы плавно подошли к самому ответственному моменту: созданию собственных модификаций. Для начала разберемся, из чего состоит файл любой миссий в San Andreas.

Файл main.scm состоит из четырех частей.

1 часть. Ставит размер памяти для скриптов — нужно только для редактора.

2 часть. Список используемых объектов в игре и скриптах.

3 часть. Указатели на миссии и внутриигровые блоки.

4 часть. Собственно код миссий, мини-игр, путей самолетов/вертолетов.

Пока нас не будут интересовать первые два блока — они не нужны, если вы не собираетесь создавать мегасложную миссию или совершенно новую игру.

Чтобы создать новую модификацию, нужно знать, как и с чего начать и чем закончить проект. Щелкните по “биноклю” в панели инструментов, в меню поиска введите 004F: create_thread ЈЈ и нажмите кнопку Find . Вы увидите список неизвестных пока вам команд. Давайте разберем на примере, как пишется мод.

004F: create_thread ЈЈIgromod1

004F: — это, как мы говорили чуть выше, код команды.

create_thread ЈЈ — это сама команда, отвечающая за создание потока, программы, ответственной за выполнение какого-либо действия, изменять команду нельзя!

Igromod1 — название нашего мода в файле main.scm.

Cj - настоящий медик. Хирург или патологоанатом.

Найдите то место, где заканчивается последняя команда, начинающаяся c 004F, и ниже вставьте свою строчку: 004F: create_thread ЈЈIgromod1; .

Обратите внимание, что символ ЈЈ необходимо копировать только из других команд: то, что вы напишете сами, программа не примет и выдаст ошибку при компиляции!

Далее в меню поиска (для быстрого вызова нажмите клавишу CTRL+F ) введите слово orig и снова нажмите кнопку Find . Над строчкой:

вы будете размещать все свои модификации, мини-игры, но не миссии — насчет этого будет отдельный разговор.

Любой блок, подпрограмма или мод начинается со строки Igromod1 . Она играет роль идентификатора названия, которое вы писали выше. Название Igromod1 должно соответствовать названию Igromod1 в строке 004F: create_thread ЈЈIgromod1; .

Если названия не совпадут, то при компиляции — переводе языка программирования в машинный код игры — редактор снова выдаст ошибку, что блок не найден.

Ниже нужно написать строку с задержкой на определенное время, чтобы игра не зависла: 0001: wait 0 ms .

В моем случае задержка составила 0 мс, но если, например, вам нужно, чтобы какое-то действие выполнялось не сразу, то задержку можно увеличить.

Дальше начинается чистой воды эксперимент: Например, вы можете установить у игрока бесконечный бег:

0330: set player $PLAYER_CHAR infinite run to 1 (true)

Или сделать его (игрока, конечно) пожароустойчивым:

055D: make player $PLAYER_CHAR fireproof 1

А ведь можно и перекрашиваться совершенно бесплатно:

0335: set free paynspray to 1 (true)

Дадим игроку побольше денег — с ними в SA всегда были проблемы:

0109: player $PLAYER_CHAR money += 9000000

Вам мало брони и жизней — увеличим их стартовый набор на 100 единиц, мало не покажется:

035F: set_actor $PLAYER_ACTOR armour_to 100

055E: set_player $PLAYER_CHAR max_health += 100

Зачем ждать, пока нам в игре любезно предоставят реактивный ранец, создадим его около нашего дома ( gRoove Famile Streets ) сами!

032B: $jet = create_weapon_pickup 370 15 ammo 1 at 2488.562 -1666.864 12.8757

То, что вы должны увидеть при успешной декомпиляции скрипта.

Загадочные цифры 2488.562 -1666.864 12.8757 представляют собой координаты, по которым будет создан jetpack. О координатах и других непонятных цифрах в этой команде речь пойдет во второй статье цикла.

Думаю, быстрая перезарядка ствола придется всем по вкусу:

0331: unknown_player $PLAYER_CHAR set_fast_reload 1

Самое время научиться менять привычную одежку игрока. Изменить одежду главного героя на любую другую не так сложно. Для смены одежды игрока используются вместе две нижеуказанные команды:

087B: set_player $PLAYER_CHAR clothes "VEST" "VEST" 17

070D: $PLAYER_CHAR

Первая задает игроку определенную одежду, а вторая “обновляет” модельку персонажа.

Дадим игроку возможность рассекать по всему игровому миру без ограничений с самого начала игры:

0629: change_stat 181 (islands unlocked) to 4

И напоследок повысим скиллы персонажа до максимума:

062A: change_stat 165 (energy) to 999.0 ; float

062A: change_stat 23 (muscle) to 999.0 ; float

062A: change_stat 21 (fat) to 0.0 ; float

062A: change_stat 163 (health upgrade) to 999.0 ; float

062A: change_stat 160 (driving skill) to 999.0 ; float

062A: change_stat 229 (bike skill) to 999.0 ; float

062A: change_stat 223 (pilot skill) to 999.0 ; float

062A: change_stat 230 (cycling skill) to 999.0 ; float

Знаний для создания первого несложного мода вам уже хватит. Но чтобы модификация заработала, нужно еще написать команду, которая завершит работу после создания всех бонусных вещей. Выглядит она так: 004E: end thread .

Вид на наше творение из игры.

Если вы решили создать мод, содержащий все модификации, описанные в статье, то в итоге у вас должно получиться следующее:

0330: set player $PLAYER_CHAR infinite run to 1 (true)

055D: make player $PLAYER_CHAR fireproof 1

0335: set free paynspray to 1 (true)

032B: $jet = create_weapon_pickup 370 15 ammo 1 at 2488.562 -1666.864 12.8757

0109: player $PLAYER_CHAR money += 9000000

035F: set_actor $PLAYER_ACTOR armour_to 100

055E: set_player $PLAYER_CHAR max_health += 100

0629: change_stat 181 (islands unlocked) to 4

062A: change_stat 165 (energy) to 999.0 ; float

062A: change_stat 23 (muscle) to 999.0 ; float

062A: change_stat 21 (fat) to 0.0 ; float

062A: change_stat 163 (health upgrade) to 999.0 ; float

062A: change_stat 160 (driving skill) to 999.0 ; float

062A: change_stat 229 (bike skill) to 999.0 ; float

062A: change_stat 223 (pilot skill) to 999.0 ; float

062A: change_stat 230 (cycling skill) to 999.0 ; float

087B: set_player $PLAYER_CHAR clothes "countrytr" "countrytr" 17

004E: end thread

Последние штрихи — нажмите клавишу F7 , редактор скомпилирует файл в формат, привычный для игры. Скопируйте его из папки, в которой хранится main.scm (путь для хранения файла main.txt и будущего main.scm вы указывали во второй менюшке, появляющейся при открытии файла main.scm из директории Data/Script установленной игры) в папку Data/Script игры. После чего запускайте San Andreas — и можете играть в модификацию.

Мы изучили основы скриптового языка GTA: SA. Научились работать с редактором SAMB. Даже с этим базовым уровнем знаний вы уже можете экспериментировать, используя данные текстового файла Keywords.

Мы прощаемся с вами до следующей статьи (будет опубликована в одном из ближайших выпусков “Мастерской”), в которой наши модостроительные интересы значительно расширятся — мы научимся манипулировать персонажами и транспортными средствами, создавать свои видеоролики, познакомимся с понятием цикличности и освоим еще множество интереснейших возможностей.

Знай, что я не смогу дать тебе все навыки владения языком. Но не беспокойся, для этого существует множество различных туториалов, книг, видео-лекций. Но как и в случае с иностранными языками, чтобы понять язык программирования, необходимо использовать его на практике. Поэтому мы будем писать с тобой скрипты для GTA 5.

Какие ты захочешь. Только не читерские. Я, конечно, могу взломать любую защиту, но этому учить тебя не буду, хорошо? Мы с тобой займемся скриптами для одиночной игры. Ты познакомишься с внутренним функционалом GTA 5, который довольно обширен. Он настолько огромен, что ещё не был до конца изучен, представляешь?

Но не бойся. Всё, что нужно для создания полноценного мода, уже давно известно. С этим не возникнет никаких проблем.

Прежде, чем приступить, тебе нужен софт. Скачай и установи Visual Studio . Именно в этом редакторе мы создадим с тобой первый скрипт.

Перед тобой открылась рабочая область и начальные строчки кода. Но к этому мы вернемся позже. В правой колонке найди "Обозреватель решений". Там будет отображаться созданный тобою проект. Найти там пункт "Ссылки", нажми на него правой кнопкой мыши - "Добавить ссылку". Нажми кнопку обзор и добавь файл ScriptHookVDotNet2.dll. Он должен быть установлен у тебя в игре, если ты всё же решил заниматься скриптингом

Так же к проекту необходимо подключить стандартную библиотеку Windows - System.Windows.Forms

Теперь необходимо добавить пространство имен в начало скрипта:

using GTA;using GTA.Native;using GTA.Math;using System;using System.Collections.Generic;using System.Drawing;using System.Reflection;using System.Windows.Forms;

В наш уже готовый код допишем настройки, чтобы наш класс унаследовал GTA.Script:

Теперь добавим в наш код конструктор . Конструктор запускается один раз при запуске игры, поэтому добавляй туда только то, что должно быть запущено один раз. Давай впишем туда KeyDown события:

Как видишь, редактор подчеркивает эти строчки красным, якобы там ошибка. Ошибка в том, что мы только что объявили события, но не вписали их в код. Давай это исправим:

Ошибка исправлена. Теперь этот код можно запустить в игре. Но ничего не произойдет, потому что он пустой. Давай добавим что-нибудь. Например. Дадим игроку 5 звезд розыска при нажатии определенной клавиши. Что для этого нужно? Нам необходимо перехватить нажатие клавиши! Для этого мы и добавили событие KeyDown: оно срабатывает при каждом нажатии клавиш на клавиатуре, а класс KeyEventArgs содержит все данные о нажатой клавише. С помощью оператора IF мы можем узнать, нажата ли нужная нам клавиша, и если да, то мы выдадим игроку звезды розыска.

Обрати внимание, GTA 5 поддерживает стандарт Unicode, это значит, что ты можешь писать на русском языке без всяких проблем.

Наш скрипт готов. Найди в верхнем меню пункт "Сборка" - "Собрать решение".

Если всё прошло успешно, в окне ты найдешь путь к своему dll файлу. Если в процессе сборки вылезли ошибки, скидывай скриншот в комментарии, я попытаюсь тебе помочь.

Скрипт необходимо положить в папку Scripts, которая находится в корневой папке GTA 5. Если её нет, то просто создай и положи туда свой скрипт.

Давай зайдем в игру, и убедимся, что наш скрипт работает. Звезды розыска выдаются на английскую клавишу H, ты же можешь выбрать любую другую на своё усмотрение.

United States

Шрифт United States использовался при создание этого логотипа, текст Five в GTA 5 набран именно им. Кириллицы нет, да и надобность под сомнением. Хочешь воспроизвести этот логотип в Photoshop? Милости прошу.

Шрифт GTA 5 United States

Pricedown

Главный шрифт GTA – Pricedown, стал использоваться в логотипе обложки с 3-ей части. Кстати, поддерживает кириллицу.

Основной шрифт GTA Pricedown

Установка русификатора в GTA San Andreas

Чаще всего русификаторы имеют автоматическую установку - вам достаточно указать папку, где установлена ваша игра, и дождаться окончания установки.

Если автоматической установки у русификатора нет, скачайте и установите плагин ModLoader - просто переместите папку modloader и файл modloader.asi в папку с GTA San Andreas. Затем откройте папку Modloader и создайте там ещё одну папку с любым названием - например, MyNewLocalization. Переместите все файлы из скачанного архива в эту папку. Всё! Русификатор успешно установлен.

Если по какой-то причине русификатор не работает, убедитесь, что у вас установлен ASI Loader.

Если мод всё-равно не работает или данная инструкция не помогла вам в установке, вы можете обратиться в нашу группу во Вконтакте , где вам обязательно помогут.

Шрифт GTA

Подборка шрифтов из культовой серии игр Grand Theft Auto. Здесь представлен не только главный шрифт GTA, но и другие. Речь идет о шрифтах в подписях (Vice City, SanAndreas, Five) и интерефейсах. Да, список вряд ли получился полным. К сожалению, не все из них поддерживают кириллицу.

Автору, вашему покорному слуге, очень нравится Grand Theft Auto, особенно Vice City. Делая этот материал, меня захватила ностальгия, я несколько часов смотрел видео из серии игры.

Как установить русификатор в GTA San Andreas


Вопрос перевода в 2004 году стоял очень остро и не обошел стороной GTA: SA. Тогда лицензионные диски с этой игрой от Rockstar Games можно было найти далеко не в каждом городе, зато каждый помнит тот самый пиратский перевод, который был тогда повсюду.

Если вы столкнулись с проблемой установки русификатора в игру, данная универсальная инструкция поможет вам в этом. Если у вас есть проблемы с определенным модом, вы можете оставить ссылку на него в нашей группе во Вконтакте и мы добавим персональную инструкцию по установке к нему.

Как установить русификатор в GTA San Andreas

Rage Italic

Шрифт подписи Vice City, оригинальное название Rage Italic. Насколько нам известно, шрифт не является бесплатным, кириллица не поддерживается. Купить можно на MyFonts.

Шрифт VIce City Rage Italic

Old English Text

Этим шрифтом была сделана надпись San Andreas, встречайте готический шрифт Old English Text бурными аплодисментами. Почему выбран именно этот шрифт? Может быть потому, что он хорош для нанесения тату, а может быть есть и другая причина, в целом, стильно и подходяще.

Шрифт San Andreas Old English

Читайте также: