В прошлой статье я рассказывал, как следует расставлять пикапы в редакторе скриптов игры Grand Theft Auto: San Andreas. В этой статье я покажу, как просто работать в Sanny Builder и постараюсь подробно описать процесс редактора синтаксиса main.scm. Наверное, у вас возник вопрос: что такое «скрипт» в San Andreas?
Скрипт – особый язык, понимаемый определенной программой, игрой. Русский язык в определенном смысле тоже скрипт. В GTA скрипт – изменение или создание новых миссий, крупных и мелких возможностей. Как вы уже догадались, в GTA возможности, миссии хранятся в папке script. Если вы откроете эту папку, то увидите файлы main.scm и script.img. Вообще для редактирования скриптов в игре используются программы:
Mission Builder© (Автор программы - Barton Waterduck) – очень известная программа, созданная автором еще во времена GTA III. Программа прогрессировала до версии 0.33 для San Andreas, создатель Mission Builder’а решил прекратить разработку новых версий! Официальная причина:
«Чтобы не поощрять малолетних преступников, которые, наигравшись в жестокие игры, идут в школы и расстреливают своих одноклассников (такой инцидент произошел в США в марте 2005 года)»
Программа не сильно отличается удобством:
1.В ней нет подсветки синтаксиса,
2.«ID» номеруются цифрами.
3.И вообще содержит много недостатков.
Несмотря ни на что Mission Builder – раньше считался лучшей программой для создания «скриптовых» модов.
Sanny Builder© (Автор программы Seemann – русский!!!) – мощнейшее средство для создания новых миссий в линейке трехмерных игр GTA (GTA3, VC, SA). В комплект входит декомпилятор, позволяющий раскомпилировать файлы MAIN.SCM и SCRIPT.IMG (SA), содержащие игровые скрипты; компилятор, и удобный редактор со множеством вспомогательных функций, таких как подсветка синтаксиса, чтение координат игрока в игре, быстрое перемещение по участкам кода и многое другое. Добавьте к этому быструю скорость работы и настраиваемый синтаксис кода (через классы и ключевые слова) и Вы получите представление о программе. Так что лучше?
Эти программы можно скачать на многих сайтах, посвященных GTA.
Давайте откроем Sanny Builder. Вот список основных команд, используемых при создании потока в Sanny Builder:
1. create_thread – команда означает «начать поток» или «построить поток», используется для объявления потока. Пример:
create_thread @BeGamer
create_thread – команда, @... – метка, таким значком объявляют название потока, в данном случае – BeGamer, команда выделяется зеленым цветом. ВНИМАНИЕ!!! Следует знать, что @ нужно ставить перед названием объявляемого потока, а не после (получится локальная переменная, которая выделяется синим цветом).
2. Любой поток начинается со строчки «:BeGamer».
: - обязательный знак перед уникальным именем потока.
BeGamer – уникальное имя потока, взятое для примера. Внимание!!! имя, указанное в опкоде «create_thread @....» всегда должно совпадать с именем, указанным в «:…..» (вместо …….ваше название) и быть уникальным (неповторяемым!). Пример:
:MOD
и потом снова
:MOD
Нельзя!
Можно только так:
:MOD
потом :MOD
2 – можно!
В противном случае – при повторении имен потоков Sanny Builder будет выдавать ошибку при компиляции:
Error (33): Label «имя потока» redeclared
С этим разобрались.
3.
wait 0 - команда задержки, используется для того, что бы дать игре «передохнуть», в противном случае игра может зависнуть.
wait - команда.
0 – число миллисекунд задержки.
1 секунда = 1000 миллисекунд.
Советую использовать числа 10, 20, 30,...., 100.
20 – оптимальный вариант, но если игра будет продолжать виснуть, то увеличьте число.
4.
jump @BeGamer – команда для «прыжка» к потоку, в данном случае – BeGamer.
Используется «jump» для перехода действия.
Пример:
…..
jump @BeGamer
:MOD
….
: BeGamer
….
В этом случае действие переходит от «jump @BeGamer» до «: BeGamer» с пропуском потока «:MOD».
5.
gosub @BeGamer – команда, используемая при переходе на другой поток с последующим возвращением (команда «return») и продолжением действия.
Пример:
…..
gosub @BeGamer
:MOD
….
: BeGamer
….
return
В этом случае действие переходит к потоку «BeGamer» с последующим возвращением к потоку «MOD».
6.
end_thread – команда объявит окончание потока.
Пример:
:MOD
….
end_thread
: BeGamer
В этом примере действие закончится в потоке «MOD», и не перейдет на поток «BeGamer»
Попробуем потоки в «деле»:
1.Найдем строку «create_thread».
2.Вставим между таких же строчек (create_thread) команду create_thread @BeGamer.
3. Найдем строку
-------Mission 0----------
Выше этой строки ставятся все потоки, которые запускаются с начала игры.
4. Выше -------Mission 0----------,
но ниже других потоков вставим:
:BeGamer
wait 20
end_thread
5. Комплируем (F6 или F7)
6. Запускаем игру.
Эта команда ни чего в игру не внесет.
Вы можете это исправить, если вставить какой-нибудь скрипт, например: пикап оружия, беспредел и война банд.
:BeGamer
wait 20
032B: $AK47 = create_weapon_pickup #AK47 15 ammo 9990 at 2471.265 -1679.808 13.44
06C8: toggle_riot 1 //беспредел 1-вкл. 0 -выкл
0879: toggle_gang_wars 1 //война банд 1-вкл. 0 -выкл.
end_threadend_thread
Мы разобрали действия с потоками.