Cleo script чем открыть

Обновлено: 07.07.2024

Кодинг. Опкоды и комментарии
Код скрипта состоит из команд (опкодов). Команды записываются по порядку – сверху вниз, в одной строчке – одна команда. В игре команды будут выполняться в том же порядке, в каком они перечислены в коде. Кроме команд в коде часто прописывают комментарии. Комментарии нужны только для того, чтобы сделать код скрипта более наглядным. В процессе компиляции комментарии игнорируются. Оформляются комментарии либо двумя наклонными чертами (//комментарий), либо фигурными скобками (). Если использовать 2 наклонные черты, то будет закомментировано всё, что написано до конца данной строки. Если использовать фигурные скобки, то будет закомментировано всё, что записано между двумя скобками. Комментарии в тексте кода выделяются синим цветом.
Пример из кода:
//Здесь можно писать что угодно, потому что это – комментарий
оформления комментария>

Параметры опкодов. Целые и дробные десятичные числа.
Возвращаемся к опкодам. Большинство опкодов имеют параметры. Если вы возьмете какой-либо скрипт и декомпилируйте его, то, благодаря функции подсветки кода, вы увидите, что опкоды написаны шрифтом черного цвета, а параметры будут выделены различными цветами. При добавлении команд в код допускается менять только параметры. В качестве параметров в большинстве случаев выступают числа (выделяются бордовым цветом) или переменные (выделяются ярко-синим цветом). Что касается чисел, то в основном применяются обычные десятичные числа. Они бывают целыми (без точки) – integer и дробными (с точкой) – float. Какой тип числа должен быть – это зависит от опкода. Целыми числами в игре выражаются время, здоровье игрока, количество денег игрока и др. Дробными числами выражаются расстояния между объектами, углы, скорости транспортных средств и др. Для примера приведу команду ожидания (wait). Параметр для нее выражается в миллисекундах (тысячных долях секунды) и является целым числом. Смысл этой команды состоит в том, что выполнение скрипта приостановится на указанное время.
Пример:
wait 3000 // выполнение скрипта приостановится на 3 секунды

Начало и окончание CLEO кода
Клео-скрипт начинаем всегда так:

wait 0
Первая команда называется директивой. Если ее не написать, то при компиляции будет создан scm файл, а нужен cs. Хотя директива и заключена в фигурные скобки, комментарием она не является. Далее обычно следует нулевое ожидание. Казалось бы, что эта команда бессмысленна, но если ее не написать, то при компиляции может появиться отчет об ошибке. Далее пишем основной код и завершаем скрипт опкодом:
0A93: end_custom_thread
То есть простейший скрипт выглядит так:

wait 0
0A93: end_custom_thread
Обычно после нулевого ожидания пишут проверку на существование игрока – об этом ниже.

Переменные
Переменные используются для хранения каких-либо данных. Можно читать их значения или записывать в них новые. Переменные бывают двух типов: глобальные и локальные. В переменную можно записать не только обычное число, но, например и указатель на какой-либо игровой объект (актер, транспорт и др.). Глобальные переменные обозначаются так:
$IMYA_PEREMENNOI
Локальные переменные: 0@ , 1@ , 2@ , 3@ …
ВАЖНО: в клео-скриптах, как правило, используем только локальные переменные. Исключения есть, но их немного, например переменные игрока (CJ-я): $PLAYER_ACTOR и $PLAYER_CHAR (какую из этих переменных надо использовать – зависит от опкода). В одном CLEO скрипте можно использовать до 32 локальных переменных (0@, 1@, 2@ .. 31@). Переменные 32@ и 33@ - это таймеры. Числовое значение, записанное в них, автоматически увеличивается с каждой миллисекундой на единицу.
Запись числового значения в переменную осуществляется просто:
0@ = 1 // в переменную 0@ записано целое число - 1
1@ = 1.0 // в переменную 1@ записано дробное число – 1.0 (дробное т.к. с точкой)
Записав однажды в переменную, например целое число, дальше мы можем записывать в нее другие значения, но они должны быть того же типа (тип в данном случае – целое число).
Чтобы в переменную можно было записывать данные другого типа, ее необходимо переобъявить. Об этом можете почитать в разделе Кодинг-Переменные, хотя переобъявление в скриптинге используется нечасто.
Кстати, есть опкоды для записи значения одной переменной в другую переменную. Пример:
12@ = 1
0085: 13@ = 12@ // (int)
Как определить, что делает данный опкод? В скриптинге СЛЕВА от знака равно стоит то, КУДА записываем, СПРАВА стоит то, ЧТО записываем. В примере в переменную 13@ скопировано значение переменной 12@, т.е. 1. В комментарии написано int (integer), следовательно данный опкод можно использовать, если в переменных записаны целые числа.
Арифметические действия с переменными записываются так:
0@ += 2 // прибавление целого числа к значению переменной
0@ *= 2 // умножение значения переменной на целое число
0@ /= 3 // деление значения переменной на целое число
0@ += -2 //вычитание целого числа из значения переменной
Для дробных чисел всё точно также, только числа будут с точками.
Домашнее задание: найдите ошибки в скрипте. Всего там 3 ошибки.

wait 0
0@ += 1
0@ = 9
wait 1000
0@ += 15
1@ = 1000
1@ *= 2.258
2@ = 2
0087: 3@ = 2@ // (float)
0A93: end_custom_thread

Опкоды действия и условные опкоды
Большинство опкодов можно разделить на 2 большие группы. С помощью одних опкодов мы что-то проверяем – это условные опкоды (или просто - проверки). С помощью других опкодов мы что-то делаем, производим какие-то действия – это опкоды действия. Любой опкод можно найти через поиск опкодов в СБ – Сервис-Инструменты-ПоискОпкодов. Некоторые наиболее часто употребляемые проверки с описанием можно найти в справке СБ – Статьи-УсловныеОпкоды.

Метки и переходы
Метки используются почти во всех скриптах.
Обозначение:
:ImyaMetki
Команда «перейти на метку с именем ImyaMetki»:
jump @ImyaMetki
Принцип очень простой. Если выполнение кода дойдет до строчки, в которой написана команда перехода на какую-то метку, то дальше код будет выполняться со строчки, в которой записана эта метка. После каждой метки надо писать ожидание (хотя бы нулевое), иначе игра может зависнуть. Пример:

wait 0
:0
wait 0
jump @1
0@ = 1
:1
wait 0
jump @0
Такой код будет выполняться бесконечно, поэтому здесь опкод окончания скрипта не нужен. Команда 0@ = 1 никогда не будет выполнена, несложно понять почему.

Условия
Условие записывается так – сначала кодовое слово if (если), потом условный опкод, потом команда перехода на метку. Выше я показал команду перехода на метку, если условие верно. Есть еще команда перехода на метку, если условие ложно:
jump_if_false @imya_metki // перейти на метку imya_metki если условие ложно. Можно записать короче – jf.
Если в переменных записаны числа, то проверки выглядят так:
0@ == 1 // значение переменной равно 1
0@ > 1
0@ < 1
0@ <> 1 // значение переменной не равно 1
Не забываем, что если используем дробные числа, то они должны быть с точками.
Простейший пример – значение переменной 0@ будет с каждой секундой увеличиваться на 1 до тех пор, пока не достигнет 50.

wait 0
0@ = 0
:0
wait 1000 // ждем секунду
0@ += 1 // прибавляем единицу
if // если
0@ == 50 // значение в переменной - 50
jf @0 // условие ложно, тогда переходим на метку :0
0A93: end_custom_thread
Я показал как проверить какое-то одно условие. Но можно проверить и несколько условий одновременно:

а) проверка одновременного выполнения всех условий
Всё делается точно также, как я описал выше, но вместо if пишется if and , далее перечисляются проверяемые условия (максимум 7 условий, если не ошибаюсь).
Пример кода – если значения переменных 1@ и 2@ больше 100 , то запишем в обе переменные ноль:

wait 0
1@ = 0
2@ = -10
:0
wait 0
1@ += 2
2@ += 3
if and
1@ > 100
2@ > 100
jf @0
1@ = 0
2@ = 0
0A93: end_custom_thread

CLEO скрипт - это дополнительный игровой сценарий, написанный для одной из игр серии Grand Theft Auto от Rockstar Games. Несмотря на то, что в этих играх разнообразный игровой процесс, он может быть еще больше расширен путем добавления новых или изменения уже существующих возможностей. CLEO скрипты компилируются в программе Sanny Builder в отдельный файл с расширением .cs . Любой желающий может научиться создавать свои собственные CLEO скрипты и обмениваться ими среди миллионов фанатов игры GTA - пользователей библиотеки CLEO!

При помощи библиотеки CLEO можно создать как совершенно новые игровые возможности и миссии, так и полностью внутриигровые приложения для модификации игры (как например, DYOM), только лишь при помощи небольших скриптов, которые можно быстро скачать и установить. Такие возможности библиотеки как простая и быстрая установка, появление новых скриптовых команд (опкодов) и новой звуковой системы, загрузка внешних миссий, поддержка плагинов и многое другое открывают простор для реализации ваших идей при изменении любимой игры Grand Theft Auto.

Где скачать CLEO скрипты?

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

Как установить CLEO скрипты?

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

Чтобы установить CLEO скрипт вам нужно скопировать файл с расширением .cs в папку CLEO. Имя файла не имеет значения, однако первые 7 букв названия используются библиотекой для внутреннего обозначения скрипта. Например, CLEO скрипт из файла showsavescreen.cs будет иметь имя SHOWSAV.

Чтобы удалить скрипт, просто удалите соответствующий файл из папки CLEO.

Как написать свой CLEO скрипт?

Создать CLEO скрипт очень просто (при условии, что вы умеете писать скрипты для GTA вообще). В Sanny Builder добавьте директиву в начало файла с исходным кодом скрипта и скомпилируйте его. Получившийся файл будет скопирован в папку CLEO и ему будет дано расширение, заданное директивой (по умолчанию .cs).

Процесс создания CLEO миссии аналогичен, за исключением того, что получившийся файл должен иметь расширение .cm (его можно задать директивой ). Миссия запускается из CLEO скрипта при помощи опкода 0A94.

Есть несколько основных правил, которым вы должны следовать при создании CLEO скрипта:

1) Один файл - один скрипт. CLEO поддерживает только один скрипт в файле. Если вам нужно запустить дополнительные скрипты, используйте опкод 0A92 с указанием пути к другому .cs файлу.

2) Никогда не используйте опкод 004E в CLEO скриптах. CLEO скрипты работают независимо от оригинальных скриптов main.scm, поэтому этот опкод нарушит работу игры. Используйте опкод 0A93, если вам нужно остановить CLEO скрипт. При этом, никогда не используйте 0A93 в CLEO миссиях, вместо него используйте 004E чтобы остановить CLEO миссию.

Каждый CLEO скрипт может быть сохранен и загружен независимо от оригинальных скриптов игры. По умолчанию состояние CLEO скрипта не сохраняется, но вы можете изменить это путем добавления в скрипт опкода 0A95. CLEO сохраняет состояние скриптов в папке 'CLEO\cleo_saves'. Для каждого слота сохранения создается отдельный файл. CLEO-сейв содержит в себе информацию не только об активных скриптах на момент сохранения, но также о тех, которые были завершены (опкодом 0A93), чтобы предотвратить их повторный запуск после загрузки сейва.

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

CLEO скрипты работают также как и обычные скрипты GTA. У них 32 локальные переменные и 2 таймера, которые постоянно увеличивают свое значение. При запуске скрипта опкодом 0A92 или миссии опкодом 0A94 вы можете передать в них до 34 параметров (как в опкоде 004F).

При обмене данными между CLEO скриптом и main.scm необходимо помнить следующее. Несмотря на то, что CLEO скрипты могут читать содержимое main.scm и работать с ним, рекомендуется избегать этого. Это необходимо для независимой работы CLEO скрипта на различных модификациях игры у разных пользователей. Лучше всего, если CLEO скрипт будет использовать только внутренние данные или данные, полученные напрямую из памяти игры. Однако некоторые переменные, такие как $PLAYER_CHAR, $PLAYER_ACTOR и $ONMISSION могут свободно использоваться в CLEO скриптах.

Также для обмена данными между CLEO скриптами вы можете использовать CLEO переменные (опкоды 0AB3, 0AB4).

Стандартная установка CLEO включает в себя примеры простых скриптов с исходниками.

CLEO Library © 2007-2021 Seemann, Alien, Deji
CLEO Library for GTA III / GTA Vice City © 2010-2021 Alien, DK22Pac, ThirteenAG

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