Lond Riders
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Категории каталога
GTA San Andreas [110]
Наш опрос
Как сайт
Всего ответов: 1513
Главная » Статьи » GTA San Andreas

Скриптинг с помощью проги Sanny Builder
Вот нашел в нете инструкцию!Как стать скриптером!

..........................................................................
___ _ _ _ _ _
// \\ // \\ | \ || | \ || \\ //
\\____ ||___|| ||\\ || ||\\ || \\//
\\ || || || \\|| || \\|| ||
\\___// || || || \_| || \_| ||
___ __ ____ __
|| \\ || || || || || \\ || || ||
||___// || || || || || || ||____ ||_ ||
|| \\ || || || || || || || || \\
||___// \\__|| || ||____ ||__// ||____ || \\

..........................................................................

Содержание:

1. О программе
1.1 Что это такое?
1.2 Установка и обновление

2. Кодинг
2.1. Синтаксис
2.2. Типы данных

2.3. Классы
2.3.1 Основные понятия
2.3.2 Условные команды
2.3.3 Процедуры
2.3.4 Свойства
2.3.5 Члены класса
2.3.6 Класс Model
2.3.7 Расширенные названия параметров

2.4. Циклы
2.4.1 Оператор FOR..END
2.4.2 Оператор WHILE..END (NEW)
2.4.3 Оператор REPEAT..UNTIL (NEW)
2.4.4 Continue и Break

2.5 Дополнительные команды (NEW)
2.5.1 Оператор IN (NEW)

2.6 Условия

3. Редактор

4. История изменений

5. Дополнительная информация

..........................................................................

1 О программе

..........................................................................

..........................................................................

1.1 Что это такое?
..........................................................................

Sanny Builder - мощнейшее средство для создания новых
миссий в линейке трехмерных игр GTA (GTA3, VC, SA).
В комплект входит декомпилятор, позволяющий раскомпилировать
файлы MAIN.SCM и SCRIPT.IMG (SA), содержащие игровые скрипты;
компилятор, и удобный редактор со множеством вспомогательных функций,
таких как подсветка синтаксиса, чтение координат игрока в игре,
быстрое перемещение по участкам кода и многое другое.
Добавьте к этому быструю скорость работы и настраиваемый синтаксис
кода (через классы и ключевые слова) и Вы получите представление
о программе.
Have fun.

..........................................................................

1.2 Установка и обновление
..........................................................................

Просто распакуйте архив в удобное для Вас место и
запустите файл sanny.exe

Параметры командной строки:
\sa - использовать как редактор SA (по умолчанию)
\vc - использовать как редактор VC
\gta3 - использовать как редактор GTA3

Свежая версия всегда доступна на веб-страничке программы (см. ниже).

..........................................................................

2 Кодинг

..........................................................................

..........................................................................

2.1 Синтаксис
..........................................................................

Информация для тех, кто привык работать с билдером.
Весь синтаксис команд абсолютно такой же как и в SAMB 0.33, за
исключением обозначения меток: они начинаются с @, независимо от
местоположения в файле - и локальных переменных. Они обозначаются
символом @ в конце, а не в начале, как в SaMB.

посмотрите Mission Builder Readme или http://gtacoding.nm.ru/mb/faq

..........................................................................

2.2 Типы данных
..........................................................................

$ - обозначение глобальных переменных. Могут использоваться в любом
месте кода.
Пример: 0004: $MyVar = 100

@ - в начале: метка
Пример: 0002: jump @MyLabel

- в конце: локальная переменная. Используются только в пределах
одного потока
Пример: 0006: 100@ = 10

'...' - текст (макс. 7 символов).
Пример: 03A4: name_thread 'MAIN'

"..." - текст (точный максимум неизвестен, но не больше 255 символов)
Пример: 0662: write_debug_message "Hello_world"

s$ - глобальная стринговая переменная
Пример: 05A9: s$MyString = 'GLOBAL'

@s - локальная стринговая переменная
Пример: 05AA: 1@s = 'LOCAL'

v$ - глобальная стринговая переменная
Пример: 06D1: v$MyString = "LONG_GLOBAL"

@v - локальная стринговая переменная
Пример: 06D2: 1@v = "LONG_LOCAL"

# - имя модели из одного из IDE - файлов игры
Пример: 0247: request_model #CELLPHONE

..........................................................................

2.3 Классы
..........................................................................

..........................................................................

2.3.1 Основные понятия
..........................................................................

Sanny Builder допускает использование классов при написании кода.
Классы являются группой опкодов, применяемых к какому-либо виду
объектов в игре: игрок, актер, машина и т.д.

Все классы заранее определены в файле classes.db и изменять их в
процессе кодинга невозможно. Все изменения вносятся напрямую в этот
файл.

Каждый класс обладает набором команд (опкодов). Их можно разделить
на несколько групп:

- условные
- процедуры (методы)
- свойства
..........................................................................

2.3.2 Условные команды
..........................................................................
Условные опкоды в списке команд, вызываемом нажатием Ctrl+Space,
обозначаются словом Check. Чаще всего у них один параметр - это
хендл (имя) владельца класса: машины, игрока и т.д.
Например:

if
Player.Defined($PLAYER_CHAR)
jf @anywhere
..........................................................................

2.3.3 Процедуры
..........................................................................
Процедурные опкоды предназначены для выполнения какого-либо
конкретного действия в игре: движение объекта, уничтожение его и
т.п. Отдельный вид таких опкодов - это конструкторы, которые
создают объект (актера, машину) и возвращают его хендл. В SB
конструкторы могут использоваться как процедура, так и как свойство.

Player.Create($PLAYER_CHAR, #NULL, 2488.5601, -1666.84, 13.38) - процедура
$PLAYER_CHAR = Player.Create(#NULL, 2488.5601, -1666.84, 13.38) -
свойство-конструктор

Эффект будет одинаков.

..........................................................................

2.3.4 Свойства
..........................................................................
Свойства класса используются для чтения или записи каких-либо
значений. Например свойство Money класса Player позволяет оперировать
с тремя опкодами:

0109: player $PLAYER_CHAR money += 1000000
010A: player $PLAYER_CHAR money > 461@
010B: 4@ = player $PLAYER_CHAR money

После того как это свойство описано в файле classes.db вы можете
использовать следующие команды:

player($PLAYER_CHAR).Money += 1000000
player($PLAYER_CHAR).Money > 461@
4@ = player($PLAYER_CHAR).Money
..........................................................................

2.3.5 Члены класса
..........................................................................

Начиная с версии 2.6 также можно инициализировать переменные как
члены класса и оперировать с ними как с классом. Например:

var
$PLAYER_CHAR: Player
end

Мы объявили переменную $PLAYER_CHAR как класс Player. Теперь для
нее доступны все команды, какие есть для этого класса.
Например:

if
$PLAYER_CHAR.Defined
jf @anywhere

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

Player.SetClothes($PLAYER_CHAR, "PLAYER_FACE", "HEAD", Head)
=
$PLAYER_CHAR.SetClothes("PLAYER_FACE", "HEAD", Head)

Такие переменные также можно переобъявлять и изменять их тип.

..........................................................................

2.3.6 Класс Model
..........................................................................
Класс Model можно использовать при помощи имен моделей, которые
всегда будут являться членами этого класса. Например, вы можете
использовать следующий код:

...
#AK47.Load

:loop
wait 0
if
#AK47.Available
jf @loop
...

Это будет тоже самое что

...
Model.Load(#AK47)

:loop
wait 0
if
Model.Available(#AK47)
jf @loop
...

..........................................................................

2.3.7 Расширенные названия параметров
..........................................................................

В классах вы можете использовать текстовые названия для параметров
для повышения читабельности кода.

Например:
Player.SetClothes($PLAYER_CHAR, "VEST", "VEST", Torso)

Такие параметры реализуются через описание их в файле 'classes.db'.

Текстовые названия допускаются только для параметров типа Integer.
При описании параметра сначала указывается имя параметра для значения
0, затем - для 1 и т.д. Кол-во названий неограниченно.

Перед именами параметров cледует ставить знак ^. Если вы хотите
пропустить одно из имен, вставьте вместо него пробел, например:
"BodyPart: ^Torso^ ^Legs^Shoes". Тогда при декомпиляции в случае, если
этот параметр будет равен 1, он не будет заменен.

Также вы можете сами определять значение для параметра, вне зависимости
от его порядкового номера. Для этото после имени параметра поставьте
знак = и необходимое значение, например:

"BodyPart: ^Torso^Head^Legs^Shoes^Special=17"
Параметр Special будет компилироваться как число 17.

Для каждого опкода можно использовать только ОДИН расширенный параметр

Для облегчения использования расширенных названий, их список
для текущей команды может вызываться нажатием Ctrl+Space.
Просто установите курсор туда, где должен быть расширенный параметр,
нажмите ctrl+space и в редакторе появится список возможных имен с
указанием числового значения для каждого из них.

..........................................................................

2.4 Циклы
..........................................................................

В SB используются следующие виды циклов:

1. FOR..END
2. WHILE..END
3. REPEAT..UNTIL

Циклы могут быть вложенными (т.е. один цикл внутри другого).

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

..........................................................................

2.4.1 Оператор FOR..END
..........................................................................
Этот оператор задает цикл со строго определенным числом итераций
(повторений)

Для него используется следующий синтаксис:

FOR <counter> = <initial value> TO /DOWNTO <final value> [step <int>]
...
END

Основные параметры:
<counter> - переменная, которая используется в качестве счетчика
итераций (повторений) цикла.

<initial value> - стартовое значение счетчика

TO/DOWNTO - при TO счетчик будет наращивать свое значение, при DOWNTO
уменьшать.

<final value> - конечное значение цикла, при котором он завершит работу
Помните, что при DOWNTO конечное значение должно быть меньше стартового

<step> - значение приращения или уменьшения счетчика при итерациях.
По умолчанию его значение равно 1.

Пример цикла:

...
var
$value: int = 0
$final: int = 100
end

FOR $MyCounter = 1 to $final step 2
$value += $mycounter
end
...

..........................................................................

2.4.2 Оператор WHILE..END
..........................................................................

Синтаксис:

WHILE <condition>
...
END

Цикл WHILE работает до тех пор, пока выполняется условие. Условие
проверяется перед итерациями, поэтому если оно будет сразу ложным,
то цикл не выполнится никогда.

$var = 10

while $var > 11
inc($var)
end

так как условие в цикле ложно, скрипт никогда не придет на команду
Inc($var)

Оператор While может принимать в качестве условий логические
константы True и False:
While True .. End - цикл будет выполняться бесконечно, пока вы не
прервете его командой Break.
While False .. End - цикл будет игнорироваться компилятором.

В текущей версии для цикла WHILE доступно только одно условие.
Вы можете проверять большее кол-во условий внутри тела цикла и
использовать команды Break и Continue.
..........................................................................

2.4.3 Оператор REPEAT..UNTIL
..........................................................................

Синтаксис:

REPEAT
...
UNTIL <condition>

Цикл Repeat работает до тех пор пока не выполнится условие после
команды Until. Условие проверяется после итераций, поэтому
цикл всегда будет иметь минимум одну итерацию.

Оператор Repeat может принимать в качестве условий логические
константы True и False:
Repeat .. Until True - цикл будет иметь только одну итерацию
Repeat .. Until False - цикл будет выполняться бесконечно,
пока вы не прервете его командой Break.

В текущей версии для цикла REPEAT доступно только одно условие.
Вы можете проверять большее кол-во условий внутри тела цикла и
использовать команды Break и Continue.

..........................................................................

2.4.4 Continue и Break
..........................................................................

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

Например:

if
$currentactor.dead
jf continue

В качестве отдельной команды оно обозначает опкод 0002 (jump), с
переходом на следующую итерацию.

if
not $currentactor.dead
jf @next
Continue ; jump continue
:next

Кроме этого существует команда Break, которая прерывает цикл. Она может
использоваться как отдельная команда так и как параметр (jf break)

..........................................................................

2.5 Дополнительные команды
..........................................................................

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

Inc($IntVariable, $Value)
=
$IntVariable += $Value

Inc(1@)
=
1@ += 1
..........................................................................

2. DEC - эта команда уменьшает значение переменной, переданной
как первый параметр, на значение второго параметра.
Второй параметр может не использоваться, тогда вместо него будет
установлена 1.

Dec($IntVariable, $Value)
=
$IntVariable -= $Value

Dec(1@)
=
1@ -= 1
..........................................................................

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

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

5. (sys) ALLOC* - эта команда устанавливает адрес памяти для переменной.
Должна использоваться только для переменных с ТЕКСТОВЫМИ именами.
Для остальных адрес памяти устанавливается по их имени:
переменная $40 всегда будет иметь ячейку памяти #40.
Исключение: если переменная с числовым именем ссылается на ту же
ячейку памяти, что переменная, определенная в файле vars.ini. Эти
адреса будут зарезервированы за этими именами. На команду Alloc()
это не распространяется.

Alloc($MyVar, 40) - переменная $MyVar будет иметь адрес 40.

Чтобы вернуть переменную на ячейку, которую она имела до аллокации,
используйте команду Alloc() со вторым параметром 0 (или совсем без
него): Alloc($MyVar).

см. также 'examples\alloc.txt'

* команды обозначенные словом (sys) не отражаются в коде, а
являются вспомогательными для компилятора.
..........................................................................

6. SQR - эта команда вычисляет квадрат значения (вторую степень)
переменной, переданной в качестве параметра*.

sqr($var)
=
$var *= $var

* Тип переменной должен быть определен. см. п. 3.10
..........................................................................

7. RANDOM - эта функция возвращает случайное число в интервале,
указанном параметрами.

$rnd = random(1, $high)

Данную функцию можно использовать как для типа Integer, так и для
типа Float. Выбор опкода будет зависеть от типа переменной, в
которую записывается случайное значение.

..........................................................................

2.5.1 Оператор IN
..........................................................................

Оператор IN проверяет, входит ли значение переменной в указанный
промежуток.

Синтаксис
<variable> IN [<low value>..<high value>]

Например:

if and
$Var in [20..30]
jf @false

Если переменная >= 20 и <= 30 то условие выполняется. В качестве
пределов могут использоваться другие переменные.

Внимание! Данный оператор может использоваться только внутри
условия с параметром AND (смотри 2.6).

..........................................................................

2.6 Условия
..........................................................................

Для проверки условия (-ий) необходимо использовать оператор IF.

Допускается использование двух видов проверки:
1) низкоуровневое
2) высокоуровневое

1. Используется следующий синтаксис:

00d6: if <N>
... <condition 1>
... <condition 2>
...
... <condition n>
004d: jump_if_false <label>

<N> - параметр, обозначающий количество условий.
0 - проверяется 1 условие
1..6 - 2 и более условий (6 макс.), связанных логическим
оператором AND. Это значит что проверка выполнится, если ВСЕ условия,
входящие в нее, верны.
21..26 - 2 и более условий (6 макс.), связанных логическим оператором
OR. Это значит что проверка выполнится, если хотя бы ОДНО условие,
входящее в нее, верно.

<label> - имя метки, на которую должен перейти скрипт, если условие
ложно.

Sanny Builder допускает не использовать параметр 0 для одиночного
условия. Т.о. if = if 0.
Также вы можете использовать ключевые слова AND или OR вместо числовых
параметров*. Тогда компилятор сам будет высчитывать необходимое
значение.

Например:

if and
$var > 0
$var2 == 10.0
jf @anywhere

Компилятор подставит цифру 1 вместо and.

* В опциях должна быть включена проверка условий: Check Conditions
IF AND - условия связываются логическим оператором And (1..6)
IF OR - условия связываются логическим оператором OR (21..26)

2. Sanny Builder поддерживает конструкции IF..THEN..END и
IF..THEN..ELSE..END*

Создание условия происходит по правилам, описанным выше.
После слова THEN вы указываете команду (-ы), которые должны выполняться,
если условие верно. После слова ELSE вы указываете команду (-ы),
которые должны выполняться, если условие ложно. Условие заканчивается
словом End.

if $var == 5
then
Inc($var)
else
Dec($var)
end

Допускается использование вложенных условий.

* В опциях должна быть включена проверка условий: Check Conditions

..........................................................................

3. Редактор

..........................................................................

Sanny Builder как среда программирования предоставляет пользователю
следующие возможности:

1) Подсветка синтаксиса.
Есть возможность раскрашивать в любые цвета параметры опкодов,
комментарии, ключевые слова. Набор ключевых слов содержится в файле
keywords.txt.

2) Быстрый переход по тексту. Есть два способа:
1. Установить на нужной строке маркер комбинацией клавиш Ctrl +
Shift + <0..9>, а затем быстро перейти к этой строке комбинацией
Ctrl + <0..9>. Удалить все маркеры можно через меню Edit-> Clear All Boookmarks
2. Либо через опцию GoToLine. Она вызывается комбинацией Ctrl+G.
Вводите порядковый номер нужной строки и редактор быстро переместит Вас к ней.

3) Быстрый переход к метке. Для этого установите курсор на какой-либо
метке, например @MyLabel. Нажмите Ctrl+Shift+Down и редактор переместит
курсор к строке с этой меткой (:MyLabel). Вернуться обратно можно
нажатием Ctrl+Shift+Up.

4) Показ различной информации о текущем опкоде (опция Show opcode info)
Сейчас реализован вывод количества параметров опкода и, если курсор
находится над именем модели, цифрового значения модели (только для
моделей из IDE - файлов и только когда определена директория San Andreas).

5) Конвертирование исходников из других подобных редакторов. В текущей
версии поддерживается формат SAMB 0.33. Для конвертации откройте
файл в Sanny Builder и выберите пункт меню Tools\Convert 2 SB
Внимание: при конвертировании используется файл MB.ini, в котором
содержатся текстовые имена переменных и значения адресов памяти.
Содержимое данного файла критически важно при конвертировании переменных
с DMA - функцией (например $MyVar(1) ). Если Вы добавляли свои переменные
в файл variables.ini (из комплекта SAMB 0.33)) используйте его (переименовав
в файл MB.ini).

6) Подбор опкодов. Напишите часть опкода (например fade) и нажмите F1.
Программа из файла opcodes.txt выберет первую строку с этим словом.
(0169: set_fade_color 0 0 0). Если Вам нужен другой опкод с этим словом,
нажмите F1 нужное количество раз.

7) Coord Manager. Нажмите F4, когда запущен SA, и появится окно менеджера.
Здесь вы можете установить новые координаты и скопировать текущие.
Также вы можете быстро вставить координаты игрока в текст комбинацией Ctrl+Shift+C

8) Поддержка прямой записи необходимых значений через конструкцию HEX..END
Все что находится внутри это конструкции будет записано прямо в SCM, минуя
компилятор*. Например:

:Label1

hex
04 00 02 0800 04 01
end

Это будет тоже самое, что 0004: $8 = 1
* Рекомендуется только для опытных скриптеров. Любые ошибки повлекут
невозможность последующего декомпилирования файла и чтения его игрой.

9) Ключевые слова (кейворды).

Заменяют собой опкоды для простых команд. Например кейворд WAIT при
компиляции будет заменен на опкод 0001. Чтобы добавить новый кейворд,
удалить или изменить старый, откройте файл keywords.txt
Чтобы добавить новый кейворд, вставьте строку в формате: OpCode=Keyword

10) Конструкция VAR..END

Позволяет объявлять переменные и их типы, для последующего
манипулирования ими. Например используйте код

var
$1stIntVar : Integer
$2ndIntVar : Integer
end

и вы можете использовать их в математических операциях подобно
$1stIntVar = $2ndIntVar; $1stIntVar *= $2ndIntVar и т.д.

Поддерживаются следующие типы переменных:

Integer, Int - integer values
Float - floating-points values
String, ShortString - Fixed length string variable
(только для массивов, используйте s$, @s для переменных)
LongString - Variable length string variable
(только для массивов, используйте v$, @v для переменных)

(При нажатии Ctrl+Space появится список типов)

Псевдо-типы:
Handle = Int
Boolean, Bool = Int (0/1)

Если вы объявите переменную как Float и попытаетесь записать в нее
целое число, компилятор преобразует его в число с плавающей точкой:

var
$fVar: Float
end
$fVar = 1

это будет записано как $fVar = 1.0

Также Вы можете объявлять и массивы. Используется следующая запись:

var
<array name>: array <size> of <type>
end

Например:

var
$FloatArray: array 10 of Float
end

После этого вы можете работать с этим массивом без указания его типа
и размера. Например:

$FloatArray[$RndIndex] += 100.0

Кроме глобальных переменных можно объявлять и локальные переменные.
Но нужно помнить, что в этом случае все такие переменные во всех
потоках будут иметь один и тот же тип. Чтобы избежать этого, вы
можете переобъявлять переменные в каждом потоке. Например:

;--------------------
Thread 'Food'
Var
10@ : Float
$Var : Float
End
$var = 1
10@ = $Var
end_thread
;--------------------
Thread 'Loop'
Var
10@ : Int
$Var : Int
End
$var = 1
10@ = $Var
end_thread
;--------------------

В первом потоке переменная 10@ будет расцениваться как float,
во втором - как integer. Вообще вы можете переобъявлять переменные
сколько угодно раз.

Также вы можете инициализировать значение переменной сразу при объявлении.
Для этого после указания типа поставьте знак = и стартовое значение:

var
$fVar: float = 1
end

Переменная $fVar будет запомнена как Float и одновременно
в SCM будет записан опкод: 0005: $fVar = 1.0

Инициализация доступна только для переменных, но не массивов!

11) Псевдознаки <, <=, <>.

Вы можете использовать их в логических операциях, например

if
$var < 1000
jf @label

Фактически такие операции будут записаны как:
< -> not >=
not < -> >=
<= -> not >
not <= -> >
<> -> not ==
not <> -> ==

Такие знаки можно использовать и при проверке свойств классов (п. 10.1)
Но следует учесть тот факт, что у свойств все возможные знаки сравнения
прописываются заранее. Например для свойства Money класса Player
при сравнении используется только символ '>' (опкод 010A), поэтому
единственным доступным псевдознаком будет 'not <='

12) Поддержка макросов

Иногда скриптеру необходимо писать одни и те же строки кода, например
для загрузки моделей. Чтобы сократить время написания такого кода, вы
можете вызвать специальный макрос, который вставит в редактор нужный
код. Для этого напишите ключевое слово, соответствующее этому макросу,
например load и нажмите F2. В редакторе появится код

#.Load

while not #.Available
wait 0
end

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

Список используемых макросов содержится в файле 'macroes.txt'.
Используется следующий синтаксис:

Имя макроса (ключевое слово) пишется обычной строкой. После нее
записывается содержимое макроса, каждая строка обозначается символом =.
Место, куда должен быть помещен курсор после вставки обозначается
символом |.

..........................................................................

Кроме этого помимо стандартных работают следующие комбинации клавиш:

Ctrl + Shift + U/I - двигать выделенный блок влево/вправо
Ctrl + Shift + N/C/L - различные режимы выделения текста:
Обычный, По столбцам (аналог - выделение с зажатым Alt), По строкам

Ctrl + Shift + Num8/Num2 - прокрутить страницу на одну строку вверх/вниз
Ctrl + Scroll Up/Down - страница вверх/вниз

Ctrl + Alt + U/L - перевод слова в верхний/нижний регистр

Ctrl + T - удалить слово
Ctrl + Y - удалить строку
Ctrl + Shift + Y - очистить строку

Ctrl+Space - показать список классов/свойств/моделей/меток/переменных/миссий
Ctrl+Shift+Space - показать подсказку для текущей команды класса

F1 - искать опкод с данным словом (без учета '_' и '.')
Ctrl+F1 - искать опкод с данным словом (с учетом '_' и '.')
F2 - использовать макрос

..........................................................................

4. История изменений

..........................................................................

Текущая версия:

* добавлены дополнительные команды (см. п. 2.5)
* добавлен оператор IN
* добавлена конструкция IF..THEN..ELSE..END
* добавлены циклы WHILE, REPEAT
добавлена возможность использования вложенных циклов.
* новый стиль комментариев: //
* позиции маркеров и курсора запоминаются для закрытых файлов
* 15.12.05 - исправлено несколько ошибок

Предыдущие релизы:

05.11.2005 release #8 v. 2.6

* добавлена поддержка форматов Vice City и GTA3
* добавлена возможность инициализации переменных и массивов как членов класса
* добавлен показ списка переменных и меток
* добавлена поддержка циклов ( оператор FOR )
* минорные изменения:
- миссии можно запускать по их имени ( start_mission MYMISSION ), где
MYMISSION - это имя стартовой метки ( DEFINE MISSION 100 at @MYMISSION )
- доступен список импортируемых моделей (defined objects) по Ctrl+Space
- новый псевдооператор <>
- если при декомпиляции не найден script.img, используется оригинальный
- для массивов добавлен тип handle
- возможность отключения предупреждения об использовании IMG игрой

10.10.2005 release #7 v. 2.5

* добавлена поддержка свойств классов
* добавлена поддержка макросов
* добавлена конструкция VAR..END для эффективного управления переменными
* описаны все возможные математические опкоды: 0004..008B
* новые псевдознаки < и <=
* добавлена возможность автоподбора необходимого значения для оператора IF
* добавлена поддержка расширенных названий параметров
* добавлен показ списка моделей
* минорные добавления и исправления

18.09.2005 release #6 v. 2.0

* добавлена поддержка классов
* добавлена поддержка ключевых слов
* добавлена возможность писать некоторые математические команды без опкодов
* для опкода 00D6 по умолчанию устанавливается параметр 0, если иное
не установлено (if = if 0)
* добавлена опция выбора различных видов меток (Formats->Labels Format)
* добавлены ключевые слова True и False, которые обозначают 1 и 0 соответственно
* добавлена конструкция HEX..END для записи шестнадцатиричных значений
прямо в SCM.

07.09.2005 release #5 v. 1.1

* добавлен coord manager
* исправлены некоторые ошибки

04.09.2005 release #4 v. 1.0

* новый формат меток
* добавлен конвертор из синтаксиса BW's SA Mission Builder
* при декомпиляции в исходник добавляются названия моделей и содержимое american.gxt
* добавлены новые опции
* пофиксены некоторые ошибки

20.08.2005 release #3 v. 0.8

* добавлена подсветка синтаксиса
* добавлена возможность ассоциировать SCM-файлы с программой
* сообщения об ошибках стали более информативными
* теперь при декомпиляции имя выходного файла изменяется, если
такой файл уже существует (например, если уже существует main.scm.txt,
то имя нового файла будет main.scm[0].txt)
* добавлена проверка на дублирование меток
* пофиксены некоторые ошибки

10.08.2005 release #2 v. 0.7

* увеличено число опций для работы с текстом
* добавлена возможность работать с несколькими файлами одновременно
* добавлена функция поиска опкодов через F1 (beta)

04.08.2005 release #1 v. 0.6

* полная декомпиляция *.scm файлов San Andreas
* компиляция скриптов в SCM-файл (SA) и IMG-файл.
* доступны минимальные опции работы с текстом

..........................................................................

5. Дополнительная информация

..........................................................................

Программа написана на Delphi 7.0 Ent. Borland Software Corp.
http://www.borland.com

Был использован компонент SynEdit SynEdit Team
http://synedit.sourceforge.net

С замечаниями, советами и предложениями обращаться на gtacoding@nm.ru

http://gtacoding.nm.ru/builder
http://freewebs.com/sannybuilder/
http://forums.ag.ru/?board=gta&action=display&num=1057863893
http://www.gtaforums.com/index.php?showtopic=211077

P.S. Use it at your own risk. In Backup We Trust.
Best regards, Seemann and Xieon

..........................................................................

Категория: GTA San Andreas | Добавил: Black (10.01.2008) | Автор: Black
Просмотров: 10381 | Комментарии: 19 | Рейтинг: 5.0/1 |
Всего комментариев: 3
3 xXx  
0
Есть визуальный HTML редактор????

2 Protonovi4  
0
Большое вам спасибо!
Я создаю мод, в котором придется играть русским иммигрантом...
...Если найдете такой мод, помните, его создал я!
А ваши статьи мне в этом помогли!

1 Timon  
0
молодец Black cool

Имя *:
Email *:
Код *:
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz