Как написать cleo скрипт для gta san andreas

Содержание урока:

1. Предыстория
2. Программы
3. Находим персонажа
4. Ставим персонажа

1. Предыстория

Все вы наверняка хотите научиться делать CLEO-скрипты. Этот урок поможет вам воплотить мечту в реальность. Но это не очень быстро и легко!

Чтобы научиться делать годные скрипты потребуются месяцы или даже годы…. Но не буду вас расстраивать, у вас всё точно получится! Это первый урок из нескольких.

2. Программы

В этом разделе я познакомлю вас с программами, которые нужны для создания мода.

Нам понадобятся: Sanny Builder 3 (создание скриптов) и Ped Editor (просмотр моделей персонажей).

3. Находим персонажа

Теперь нам предстоит найти название персонажа. Когда вы откроете Ped Editor, у вас появится интерфейс программы.

Уроки CLEO. Урок №1: ставим персонажа на локацию

Теперь пролистайте строку с персонажами вниз и найдите подходящего. В моём случае это HMORI.

Уроки CLEO. Урок №1: ставим персонажа на локацию

Не закрывая программу, открываем Sanny Builder 3, в которой будем создавать уже сам скрипт, который поставит персонажа на локацию.

3. Ставим персонажа

Теперь пришло время самым интересным действиям — созданию CLEO-cкрипта. Когда вы открыли окно, вы увидите лишь пустой экран. Но нажмите вот на этот значок: Уроки CLEO. Урок №1: ставим персонажа на локацию.

Появится уже немного другое окно, выглядит как простой текстовый документ:

Уроки CLEO. Урок №1: ставим персонажа на локацию

В первой строке нам нужно лишь написать:

{$VERSION 3.1.0027}
{$CLEO .cs}

//————-MAIN—————

Уроки CLEO. Урок №1: ставим персонажа на локацию

Это начало скрипта. Потом нужно написать переход и проверку загрузки персонажа:

:NONAME_1
Model.Load(здесь указывается название модели персонажа после символа «#», в моём случае это: #HMORI)
038B: load_requested_models

Уроки CLEO. Урок №1: ставим персонажа на локацию

Далее пишем:

1@ = Actor.Create(CivMale, #HMORI, )
Actor.Angle(1@) =

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

Чтобы узнать эти координаты, нужно зайти в игру. Просто нажмите на Уроки CLEO. Урок №1: ставим персонажа на локацию, и игра запустится без титров, так быстрее.

Далее загружаем игру, выходим на улицу, встаём на нужное место и скрываем игру.

Разворачиваем Sanny Builder 3, ставим курсор после «CivMale, #HMORI,». Потом нажимаем Shift+Ctrl+C. Координаты будут вставлены. В моём случае это вот так выглядит:

{$VERSION 3.1.0027}
{$CLEO .cs}

//————-MAIN—————

:NONAME_1
Model.Load(#HMORI)
038B: load_requested_models
1@ = Actor.Create(CivMale, #HMORI, 2486.9573, -1656.5065, 13.3479)
Actor.Angle(1@) =

А там, где написано «Actor.Angle(1@) =», нужно нажать Shift+Ctrl+E и появится угол разворота игрока. Вот так получится:

{$VERSION 3.1.0027}
{$CLEO .cs}

//————-MAIN—————

:NONAME_1
Model.Load(#HMORI)
038B: load_requested_models
1@ = Actor.Create(CivMale, #HMORI, 2486.9573, -1656.5065, 13.3479)
Actor.Angle(1@) = 178.8208

end_thread

В конце мы также поставили метку окончания скрипта (end_thread)

Всё, теперь скрипт закончен и игра не вылетит! Можно конвертировать скрипт и посмотреть что получилось, для этого нажмите на Уроки CLEO. Урок №1: ставим персонажа на локацию или F6.

Далее назовите свой файл и сохраните. Если вылетела ошибка, значит вы сделали что-то неправильно! Перепроверьте это:

{$VERSION 3.1.0027}
{$CLEO .cs}

//————-MAIN—————

:NONAME_1
Model.Load(#HMORI)
038B: load_requested_models
1@ = Actor.Create(CivMale, #HMORI, 2486.9573, -1656.5065, 13.3479)
Actor.Angle(1@) = 178.8208
end_thread

Уроки CLEO. Урок №1: ставим персонажа на локацию

Всё, заходим в игру.

Выбранный персонаж стоит.

Уроки CLEO. Урок №1: ставим персонажа на локацию

В следующем уроке мы будем назначать персонажу анимацию.

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

Вам нужно скачать программу по имени «Sanny Builder» ее надо установить.

Запускаем программу. Нажимаем наверху кнопку «Файл» затем — Создать.

Любое клео начинается с строчки {$CLEO .cs}, если вы ее не вводите в начало скрипта то у вас будет крашить.

У нас получается :
{$CLEO .cs}

Затем нам надо перейти к функции добавляем :

gosub @cheat_master

У нас получается :

{$CLEO .cs}
gosub @cheat_master

Пишем
:cheat_master

У нас теперь получается :

{$CLEO .cs}
gosub @cheat_master
:cheat_master

И чтобы нас не крашило когда мы выполняем функцию

Пишем после функции «:cheat_master» :
wait 0

Получается :
{$CLEO .cs}
gosub @cheat_master
:cheat_master
wait 0

Чтобы на нажатии например кнопки минус наш код выполнялся пишем после этих проделанных действие :

if 0AB0: key_pressed 109

Получается :
{$CLEO .cs}
gosub @cheat_master
:cheat_master
wait 0
if 0AB0: key_pressed 109

Потом пишем ( обязательно!!! ) :

jf @cheat_master

Получается :
{$CLEO .cs}
gosub @cheat_master
:cheat_master
wait 0
if 0AB0: key_pressed 109
jf @cheat_master

Сейчас пишем код :
0AF8: «Hello World!» color 0xFFFFFF // 0xFFFFFF — это ваш цвет сообщение //

И у нас получается :
{$CLEO .cs}
gosub @cheat_master
:cheat_master
wait 0
if 0AB0: key_pressed 109
jf @cheat_master
0AF8: «Hello World!» color 0xFFFFFF // 0xFFFFFF — это ваш цвет сообщение //

Все! Чтобы скомпилировать нажимаем F6

Если вы сделали все правильно и Sanny Builder не выдал ни ошибка!
То я вас поздравляю вы сделали свой первый Cleo-Скрипт!

Заходим в игру и нажимаем кнопку «Минус» и у нас в чате высветиться сообщение «Hello World»

Если кому-то я помог выдайте репутацию пожалуйста smile

N1KО

Что такое скриптинг?

От слова script – сценарий, то есть последовательность каких-либо действий. А скриптинг – процесс создания этой последовательности. Для GTA это значит: писать миссии либо более простые вещи (например, давать игроку новые возможности). Тех, кто пишет скрипты, называют скриптерами. Основа любого скрипта – это опкоды (операционные коды), а они сами базируются на переменных, в которые записываются нужные для правильной работы скрипта значения (цифровые, то есть числа целые 1, 2, -1, -2… либо дробные, обязательно с точкой 1.2, -2.3; или аналоговые, то есть люди, авто, объекты). Могут иметь вид 0@, 1@, 2@…33@ или $0, $1, $2… или $»текст на латинице без пробелов и кавычек». Разница между @ и $ такая: первые переменные действуют лишь в рамках одного скрипта (или потока), а вторые можно спокойно использовать на всём протяжении main.scm (наглядный пример: $PLAYER_CHAR).
Как записать значение в переменную?
2@ = 0 // в переменную 2@ записан нуль
00BF: $1 = current_time_hours, $2 = current_time_minutes // в переменные $1, $2 записано текущее игровое время (часы, минуты соответственно).
009A: 2@ = create_actor_pedtype 4 model #MALE01 at 0.0 0.0 0.0 // в переменную 2@ записан актёр
00A5: 0@ = create_car #PONY at 0.0 0.0 0.0 // в переменную 0@ записана машина
Переменную, в которую записывают актёра или авто, принято называть именем. Т.е. в примерах выше 2@ – имя актёра, 0@ – имя транспорта.


Как открыть main.scm?

Самая удобная программа – Sanny Builder. Свежую версию можно найти на sannybuilder.com, и там же на форуме задать интересующий вопрос. Полезные советы: 1) если курсор стоит на модели (она отличается символом # в начале), то в нижней панели слева появляется ID; 2) в современном SB есть много ключевых слов, набрав которые и поставив точку, можно получить список доступных действий, например: Actor, Car, Model; 3) нажатие Сtrl+Alt+1 вызовет Редактор координат, где при запущенной игре будет отображаться текущее положение игрока, а также его можно использовать как телепорт; 4) нажатие Сtrl+Alt+2 вызовет список опкодов; 5) если компиляция скрипта выдала ошибку, не спеши кликать ОК, если не знаешь причину бага, а нажми для начала Помощь; 6) при первом запуске программы нажми F10 или зайди в Сервис > Настройки и выбери себе язык и обязательно укажи папку GTA SA.


 Как писать миссии?

Подробная справка прилагается к SB. Вызвать можно нажатием F12 или Справка > Помощь.


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

Проще через IPL, но некоторым не нравится, что там иногда угол поворота машины бывает не тот, который нужен. И главное: для этих опкодов модель загружать не нужно.
09E2: 0@ = parked_car_generator_w_numberplate #BF400 -1 -1 0 alarm 0 door_lock 0 0 10000 plate «HOMEP_69» at X Y Z angle 0.0 // или…
014B: 0@ = init_parked_car_generator #BF400 -1 -1 1 alarm 0 door_lock 0 0 10000 at X Y Z angle 0.0 // 0@ – имя автогенератора, #BF400 – модель авто (можно писать ID, т.е. в данном случае 581), 2 цифры далее – цвет, X Y Z – координаты, 0.0 – угол; plate – номерной знак (в кавычках, не больше 8 латинских символов)
014C: set_parked_car_generator 0@ cars_to_generate_to 101 // это включает генератор, если вместо 101 написать 0, машина появляться не будет
Для пикапа:
0213: $0 = create_pickup #INFO type 3 at X Y Z // обычный пикап-значок
032B: $0 = create_weapon_pickup #teargas type 15 ammo 15 at X Y Z // оружие
$0 – имя пикапа, #INFO и #teargas – модель (оружие или значок, можно ID); type – тип (3 – одноразовый, 15 – многоразовый); ammo – количество боеприпасов; X Y Z – координаты
Как изменить оружие банд и число гангстеров в определённом районе?
0237: set_gang 0 weapons_to 23 32 1 // 0 – ID банды (0 == Ballas, 1 == Grove Street Families, 2 == Los Santos Vagos, 3 == San Fierro Rifa, 4 == Da Nang Boys, 5 == Mafia, 6 == Mountain Cloud Triad, 7 == Varrio Los Aztecas); 23 32 1 – это оружие (0 – кулaки, 1 – кастет, 2 – клюшка для гольфа, 3 – дубинка для копов, 4 – ножик, 5 – бита, 6 – лопата, 7 – кий, 8 – кaтaнa, 9 – пила, с 10 до 14 – дилдо и цветы, 15 – трость, 16 – гранаты, 17 – слезоточивый газ, 18 – мoлoтoвы, 22 – пистолет, 23 – с глушаком, 24 – Desert Eagle, 25 – дробоган, 26 – обрез, 27 – мощный дробоган, 28 – Mac 10, 29 – MP5, 30 – AK47, 31 – M4, 32 – Tec9, 33 – винтовка, 34 – снайперка, 35 – РПУ, 36 – ракетница с самонаводкой, 37 – огнемёт, 38 – старый добрый Mиниган, 41 – баллончик с краской, 42 – огнетушитель)
076C: set_zone ‘SUN1’ gang 1 density_to 30 // SUN1 – имя района (см. в Справке SB: Документация по SCM > GTA SA > Типы зон); 1 – знакомый ID; 30 – плотность (в процентах от населения этого района)


 Какие есть особые опкоды?

015D: set_gamespeed 0.0 // скорость игры (1.0 – обычная; этот опкод используется в режиме Bullet Time)
01EB: set_traffic_density_multiplier_to 0.0 // отключает движение на дорогах
0110: clear_player $PLAYER_CHAR wanted_level // очистить уровень розыска
01F7: set_player $PLAYER_CHAR ignored_by_cops 1 // копы игнорируют
02AB: set_actor $PLAYER_ACTOR immunities BP 1 FP 1 EP 1 CP 1 MP 1 // установить иммунитет
0330: set_player $PLAYER_CHAR infinite_run 1 // бесконечный спринт
0331: set_player $PLAYER_CHAR fast_reload 1 // быстрая перезарядка оружия (не у всех видов)
0335: enable_free_respray 1 // халявные перекраски
03BF: set_player $PLAYER_CHAR ignored_by_everyone 1 // все игнорируют
03DE: set_pedestrians_density_multiplier_to 0.0 // отключает людской поток на улицах
055D: make_player $PLAYER_CHAR fireproof 1 // огнеупорность
0572: enable_taxi_nitros 1 // все такси с азотоускорением
0629: change_integer_stat 181 to 4 // можно свободно гулять по SA без звёзд розыска
0631: put_actor 0@ in_group $PLAYER_GROUP // актёр будет следовать за игроком
0632: release_group $PLAYER_GROUP // отпустить актёров из группы
06C8: enable_riot 1 // включает бунт (только в LS)
06D0: enable_emergency_traffic 0 // отключает спецслужбы
07A7: put_jetpack_on_actor $PLAYER_ACTOR // джетпак
0879: enable_gang_wars 1 // включает войну за территории
08C6: set_actor $PLAYER_ACTOR stay_on_bike 1 // игрок не падает с байка
08FD: enable_heat_visuals 1 // включение (0 – выключение) эффекта «жарка» при высокой температуре окружающей среды
09C7: change_player $PLAYER_CHAR model_to #MODEL // замена своей модели (сначала надо загрузить новую)
09E6: set_burglary_houses_accessible 1 // доступ в жилые дома
09E9: car 3@ add_single_nitro // одноразовый нитроазот
0A24: enable_military_zones_wanted_level 1 // отключение охраны на военных зонах
0A3D: enable_prostitutes_pay_you 1 // шлюхи платят тебе


 Как убрать эффект NFS MW в моде Night Crimes?

1) открыть в SB файл data/script/main.scm
2) найти строку create_thread @Noname_9 (Сtrl+F)
3) удалить либо закомментировать (Сtrl+Q), чтобы игра игнорировала поток Noname_9
4) компилировать (F6) и запустить игру (F8)
P.S. Для проверки, тот ли это поток, найди Noname_9, там должно быть написано
02E3: 12@ = car $11883 speed
if
12@ >= 30.0
else_jump @Noname_9


 Как изменить количество денег?

0109: player $PLAYER_CHAR money += X // X – положительное или отрицательное целое число, в зависимости от которого денег прибавят или отнимут


 Как сделать, чтобы актёр или автомобиль шёл по определённому пути?

05D6: clear_scmpath
05D7: add_point_to_scmpath X Y Z // X Y Z – координаты добавляемой точки в маршруте
05D8: AS_assign_scmpath to_actor $PLAYER_ACTOR flags 4 0 // для актёра: 4 – скорость (до 7)
06BB: set_actor -1 drive_car 1@ speed 10.0 along_SCM_path // для машины: 10.0 – скорость


 Как выбрать случайного пешехода?

:Noname
wait 0
if and
06FF: any_ped_near_actor $PLAYER_ACTOR in_range 20.0 // радиус
Player.Defined($PLAYER_CHAR)
else_jump @Noname
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to -1 closest_ped_to 1@
if
not 1@ == -1
else_jump @Noname


 Как сделать чтобы банды не приставали?

0746: set_acquaintance 1 of_actors_pedtype 7 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 8 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 9 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 10 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 11 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 12 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 13 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 14 to_actors_pedtype


 Как сделать актёра другом или врагом?

077A: set_actor $Actor acquaintance 4 to_actors_pedtype 0 // acquaintance бывают такие: 1 – уважение, 2 – симпатия, 3 – неприязнь, 4 – вражда


Что такое CLEO?

Библиотека CLEO шагнула в новое измерение, и перед нами четвертая версия этого проекта. Теперь библиотека CLEO поддерживает игры GTA III и GTA VC, что это открывает новые возможности для разработчиков скриптов на данных платформах.

Возможности

Новые опкоды
CLEO 4 имеет в наличии 100 полезных опкодов, которые позволяют работать с внешними файлами, изменять данные в памяти игры, вызывать игровые функции со своими параметрами, а также многое другое. В четвертой версии появились новые опкоды для работы со звуками, форматирования текста, была добавлена возможность выводить на экран тексты без использования внешних текстовых файлов (.gxt, .fxt). Чтобы оценить новые достижения и использовать их в ваших скриптах, установите последнюю версию библиотеки CLEO 4.

Плагины

CLEO-плагины — это обычные DLL-файлы, но имеющие расширение .CLEO. При запуске библиотека CLEO ищет в папке <игра>CLEO файлы с данным расширением и пытается загрузить их. В случае удачной загрузки плагин начинает работать и выполнять те функции, для которых он написан.

CLEO 4 позволяет создавать новые опкоды, используя исходные коды CLEO SDK. В стартовом комплекте библиотеки можно найти три примера таких плагинов:
IniFiles.cleo — работа с INI файлами;
FileSystemOperations.cleo — работа с файлами и папками.
IntOperations.cleo — битовые операции над целыми

Процедура установки плагина очень проста: просто скопируйте файл в папку <игра>CLEO. Чтобы прекратить пользование плагином — удалите файл или измените его расширение. Список доступных плагинов можно найти на этой странице.

Добавление скриптов
Начиная с CLEO 3, в игру можно добавлять новые скрипты, написанные в редакторе Sanny Builder, без необходимости начала новой игры. Все, что требуется для добавления такого скрипта в игру — это поместить его в папку <игра>CLEO. После запуска новой или сохраненной игры скрипт начнет работу. Для удаления скрипта из игры — удалите соответствующий файл.

CLEO 4 разрабатывалась для трех версий exe: 1.0 us, 1.0 eu и 1.01 eu. Таким образом, существует 8 разных exe, с которыми совместима библиотека: 

Оригинальное имя
Описание
Версия игры
Размер

gta_sa.exe
оригинальный 1.0 us
1.0
14 405 632 байт

gta_sa.exe
публичный no-dvd 1.0 us
1.0
14 383 616 байт

gta_sa_compact.exe
listener’s exe
1.0
5 189 632 байт

gta_sa.exe
оригинальный 1.01 eu
1.01
14 405 632 байт

gta_sa.exe
публичный no-dvd 1.01 eu
1.01
15 806 464 байт

gta_sa.exe
версия от 1С
1.01
15 806 464 байт

gta_sa.exe
оригинальный 1.0 eu
1.0
неизвестно

gta_sa.exe
публичный no-dvd 1.0 eu 
1.0
14 386 176 байт


Установка

СLEO 4 распространяется в виде автоматического инсталлятора. Для установки библиотеки запустите инсталлятор и следуйте его инструкциям.

CLEO 4 использует 3 файла в работе: vorbisFile.dll, vorbishooked.dll, cleo.asi.

CLEO 4 для San Andreas для проигрывания звуковых файлов требует установленной библиотеки BASS.dll версии 2.4, которую можно скачать с официального сайта Un4seen Developments Ltd. Устанавливается BASS.dll очень просто — нужно просто скопировать файл bass.dll в корневую директорию игры GTA San Andreas.


Распространение библиотеки CLEO

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

Версия 7.5 дарит возможность генерировать CLEO-скрипты! Принцип написания скриптов и основные возможности не отличаются от основной ветки генератора. Но в этом режиме есть некоторые особенности, о которых стоит рассказать.

Подключение и настройка написана в разделе

Установка и настройка. Компиляция скриптов

. Главное отличие в этой настройке: нам надо подключать библиотеки GTA.III.CLEO, GTA.VC.CLEO или GTA.SA.CLEO. Также здесь нужно указывать папку с игрой, так как метод SetMainSCMFolder недоступен:

static void Main( string[] args ) {

// Куда сохранять FXT-файлы

Generator.SetFXTFolder( @»D:ProgrammGTA_SA Career v2.0modloaderwmysteriocleocleo_text» );

Generator.SetGTAFolder( @»D:ProgrammGTA_SA Career v2.0″ );

Generator.SetSannyBuidlerFolder( @»D:ProgrammSanny Builder 3″ );

//Generator.Start<MAIN>();

Generator.Compile<MAIN>( false );

Между символами < и > указывается тип, который наследует Thread, Mission или MissionCustom. Чтобы создать CLEO-поток, достаточно этого кода:

public class MAIN : Thread {

public override void START( LabelJump label ) {

Мы видим, что никак отличий в коде в сравнении с MAIN.scm потоком не наблюдается. Команда end_thread будет заменена на опкод 0A93: end_custom_thread. Такие же манипуляции будут с другими командами, которые используются только в CLEO.

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

По умолчанию скрипт компилируется с расширением CS или СМ в папку ИГРАCLEO. Если нужно изменить эти свойства, то здесь используется система атрибутов:

public class MAIN : Thread {

public override void START( LabelJump label ) {

Всего таких атрибутов 3; Вы можете использовать только те, которые нужны, игнорируя остальные. Код выше сохранит скрипт по этому пути: ИГРАCLEONEW_DIRMAIN.H.

Убедитесь, что путь содержит все нужные папки на жестком диске!

Атрибут EnableThreadSaving реализует опкод 0A95, но без его явного вызова. Этот атрибут, как и Extension, не применяется к миссиям и будет игнорироваться.

Компиляция нескольких скриптов

Если есть необходимость компиляции целой пачки скриптов, то нам достаточно несколько раз вызывать метод Compile:

Generator.Compile<SCRIPT1>();

Generator.Compile<SCRIPT2>();

Generator.Compile<SCRIPT3>();

Generator.Compile<SCRIPTN>();

Обратите внимание, что если использовать команду

create_thread<SCRIPT_NAME>();

то поток SCRIPT_NAME будет включен в финальную сборку и скомпилируется самостоятельно вместе с исходным скриптом!

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

Вам нужно скачать программу по имени «Sanny Builder» ее надо установить.

Затем нам надо перейти к функции добавляем :

У нас теперь получается :

И чтобы нас не крашило когда мы выполняем функцию

Пишем после функции «:cheat_master» :
wait 0

Чтобы на нажатии например кнопки минус наш код выполнялся пишем после этих проделанных действие :

if 0AB0: key_pressed 109

Потом пишем ( обязательно. ) :

Все! Чтобы скомпилировать нажимаем F6

Если вы сделали все правильно и Sanny Builder не выдал ни ошибка!
То я вас поздравляю вы сделали свой первый Cleo-Скрипт!

Заходим в игру и нажимаем кнопку «Минус» и у нас в чате высветиться сообщение «Hello World»

Источник

Руководство по скриптингу

Что такое скриптинг?

Как открыть main.scm?

Самая удобная программа – Sanny Builder. Свежую версию можно найти на sannybuilder.com, и там же на форуме задать интересующий вопрос. Полезные советы: 1) если курсор стоит на модели (она отличается символом # в начале), то в нижней панели слева появляется ID; 2) в современном SB есть много ключевых слов, набрав которые и поставив точку, можно получить список доступных действий, например: Actor, Car, Model; 3) нажатие Сtrl+Alt+1 вызовет Редактор координат, где при запущенной игре будет отображаться текущее положение игрока, а также его можно использовать как телепорт; 4) нажатие Сtrl+Alt+2 вызовет список опкодов; 5) если компиляция скрипта выдала ошибку, не спеши кликать ОК, если не знаешь причину бага, а нажми для начала Помощь; 6) при первом запуске программы нажми F10 или зайди в Сервис > Настройки и выбери себе язык и обязательно укажи папку GTA SA.

Подробная справка прилагается к SB. Вызвать можно нажатием F12 или Справка > Помощь.

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

Какие есть особые опкоды?

Как убрать эффект NFS MW в моде Night Crimes?

Как изменить количество денег?

Как сделать, чтобы актёр или автомобиль шёл по определённому пути?

Как выбрать случайного пешехода?

Как сделать чтобы банды не приставали?

0746: set_acquaintance 1 of_actors_pedtype 7 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 8 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 9 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 10 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 11 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 12 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 13 to_actors_pedtype 0
0746: set_acquaintance 1 of_actors_pedtype 14 to_actors_pedtype

Как сделать актёра другом или врагом?

Библиотека CLEO шагнула в новое измерение, и перед нами четвертая версия этого проекта. Теперь библиотека CLEO поддерживает игры GTA III и GTA VC, что это открывает новые возможности для разработчиков скриптов на данных платформах.

Плагины

CLEO 4 разрабатывалась для трех версий exe: 1.0 us, 1.0 eu и 1.01 eu. Таким образом, существует 8 разных exe, с которыми совместима библиотека:

Оригинальное имя Описание Версия игры Размер
gta_sa.exe оригинальный 1.0 us 1.0 14 405 632 байт
gta_sa.exe публичный no-dvd 1.0 us 1.0 14 383 616 байт
gta_sa_compact.exe listener’s exe 1.0 5 189 632 байт
gta_sa.exe оригинальный 1.01 eu 1.01 14 405 632 байт
gta_sa.exe публичный no-dvd 1.01 eu 1.01 15 806 464 байт
gta_sa.exe версия от 1С 1.01 15 806 464 байт
gta_sa.exe оригинальный 1.0 eu 1.0 неизвестно
gta_sa.exe публичный no-dvd 1.0 eu 1.0 14 386 176 байт

СLEO 4 распространяется в виде автоматического инсталлятора. Для установки библиотеки запустите инсталлятор и следуйте его инструкциям.

CLEO 4 использует 3 файла в работе: vorbisFile.dll, vorbishooked.dll, cleo.asi.

Распространение библиотеки CLEO

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

Источник

Как написать клео самп

Нужно уверенно знать:

Как начать писать скрипты:

Уроков по основам скриптинга на павне не так уж много, и не такие они ёмкие.
Почитайте о таком языке как PHP и других подобных, они похожи между собой, да и знания не помешают.

Желаю Вам удачи и успехов в написании скриптов.

P.S. Данная статья, возможно, будет дополнена.
hr1
560 2 46FF37 EFFA2E FF3744 0
560 1 F01A00 FFFFFF 3DFF37 0

4459 894574

rank7

1347418

5364 222441

moder

— Вот ты говорил, город — сила, а здесь слабые все.
— Город — это злая сила. Сильный приезжает — становится слабым. Город забирает силу. Вот и ты пропал…© Брат

— Разве вы не хотели бы жить вечно?
— Если в моде останутся штаны со стрелками то нет.© X-Files

Источник

Как написать клео самп

1. Собственно, как же делать эти скриптики и что вообще для этого нужно? Для начала нужно зайти на сайт http://sannybuilder.com/ и скачиваем оттуда свежий Sanny Builder и библиотеку Cleo 3.

Итак, чтобы наш скрипт шел отдельно от main.scm, вставляем такое вот в начале скрипта:

Как вы наверняка заметили, мануал учит вас создавать потоки так:

и закрывать его так:

так вот, при создании клео-скрипта закрывать поток не нужно, а открывается он просто вот так:

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

Как вы заметили там есть wait 0 всегда вставляйте эту строчку, иначе игра может вылететь.

А теперь приведу пример простенького скрипта, дающего броню при нажатии Num+

Как вы можете заметить в скрипте есть jf @Armour и jump @Armour, так вот из-за этого скрипт повторяемый :), для того, чтобы не выдало ошибку при компилировании скрипта, мы и вставляли в начале 0000: NOP
Тут может быть не очень понятно, так оно и есть, но у вас в руках есть отличный мануал. ах дааа, главное чуть не забыл. Откуда же я узнал, что клавииша Num+ имеет номер 107. В мануале написано про клавиши, но это про main.scm, а мы делаем клео сприпт. Чтобы узнать код нужной вам клавиши жмем в SannyBuilder`е Справка-Помощь-CLEO 3 Code Library-Список значений кнопок для 0AB0. В графе Decial нужный нам код, напротив название клавиши.

Рекомендую открывать чужие простенькие скриптики и разбираться в них. ТАк вы поймете всё быстрее. Откройте напимер мой скрипт AutoHydravlic, там при нажатии F5 на машину устанавливается гидравлика. Откройте, посмотрите. Скачать можете в соседней теме.

Ну а для загрузки Запуск-Декомпилировать. Дерзайте smile И еще раз, рекомендую сперва попросматривать чужие скриптики. cool

Copyright Lomtik
Кто хочет забанить Витю ставьте + в репу!

Источник

Уроки CLEO. Урок №1: ставим персонажа на локацию

1. Предыстория
2. Программы
3. Находим персонажа
4. Ставим персонажа

Все вы наверняка хотите научиться делать CLEO-скрипты. Этот урок поможет вам воплотить мечту в реальность. Но это не очень быстро и легко!

Чтобы научиться делать годные скрипты потребуются месяцы или даже годы. Но не буду вас расстраивать, у вас всё точно получится! Это первый урок из нескольких.

В этом разделе я познакомлю вас с программами, которые нужны для создания мода.

Нам понадобятся: Sanny Builder 3 (создание скриптов) и Ped Editor (просмотр моделей персонажей).

3. Находим персонажа

Теперь нам предстоит найти название персонажа. Когда вы откроете Ped Editor, у вас появится интерфейс программы.

78 1

Теперь пролистайте строку с персонажами вниз и найдите подходящего. В моём случае это HMORI.

87 2

Не закрывая программу, открываем Sanny Builder 3, в которой будем создавать уже сам скрипт, который поставит персонажа на локацию.

3. Ставим персонажа

Теперь пришло время самым интересным действиям — созданию CLEO-cкрипта. Когда вы открыли окно, вы увидите лишь пустой экран. Но нажмите вот на этот значок: 56 3.

Появится уже немного другое окно, выглядит как простой текстовый документ:

72 4

В первой строке нам нужно лишь написать:

66 5

Это начало скрипта. Потом нужно написать переход и проверку загрузки персонажа:

:NONAME_1
Model.Load(здесь указывается название модели персонажа после символа «#», в моём случае это: #HMORI)
038B: load_requested_models

83 6

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

Чтобы узнать эти координаты, нужно зайти в игру. Просто нажмите на 21 7, и игра запустится без титров, так быстрее.

Далее загружаем игру, выходим на улицу, встаём на нужное место и скрываем игру.

Разворачиваем Sanny Builder 3, ставим курсор после «CivMale, #HMORI,». Потом нажимаем Shift+Ctrl+C. Координаты будут вставлены. В моём случае это вот так выглядит:

А там, где написано «Actor.Angle([email protected]) =», нужно нажать Shift+Ctrl+E и появится угол разворота игрока. Вот так получится:

В конце мы также поставили метку окончания скрипта (end_thread)

Всё, теперь скрипт закончен и игра не вылетит! Можно конвертировать скрипт и посмотреть что получилось, для этого нажмите на 2 8или F6.

Далее назовите свой файл и сохраните. Если вылетела ошибка, значит вы сделали что-то неправильно! Перепроверьте это:

18 9

Всё, заходим в игру.

Выбранный персонаж стоит.

6 10

В следующем уроке мы будем назначать персонажу анимацию.

Источник

Adblock
detector

Эйоу, здарова гитта тащер.
Сегодня мы будем учиться делать cleo скрипты.
С помощью cleo можно сделать: Миссию и обычный скрипт.
Хорош воду гнать, го учиться.

Подготовка:
-ПК(консолька не подойдет 🙁 )
-ЖТА:СА на твой ПэКа
-Android
-ЖТА:СА на твой Android
-Cleo библиотека на твою ЖТА:СА на Android(Сам ищи)
-Cleo библиотека на твою ЖТА:СА на пк(https://www.cleo.li)
-Sanny Builder(SannyBuilder.com)
-Руки из правильного места и чучуть мозгов(вроде-бы у всех есть)
И так подготовка закончена.

Теперь ставишь ЖТА, cleo и Билдер, после чего открываешь санный билдер, БЕАЧ
Указываешь в настройках место где у тебя стоит ЖТА.
И все ты готов.

Теория(можно не читать):
*.cs — Custom Script — основной вид скриптовтов для ПК версии ГТА
*.cm — Custom Mission — основной вид внешних миссий для ПК версии ГТА
*scm — Хз как расшивровать, но тут сам игровой скрипт, но мы не будем им пользоваться(все внутрении миссии, пикапы и прочее)
*.csa — Custom Script Android — Автозагружаемый вид скриптов для Android версии ГТА
*.csi — Custom Script I(что на i) — Вызываемый(через cleo menu) вид скриптов для Android версии ГТА
Теория кончилась.

Практика:

Открываешь SB.
Жмакаешь Contol+N.
Тут типа надо скрипт писать, кекъ
Ну пишешь значит:
{$Cleo .формат} форматы читай выше,scm не используй
Эта строчка позволяет компилятору узнать, что ему копмилировать и в каком формате.
Дальше
0000:
«0000» — это операционный код(опкод), «:» — это отделение опкода от аргументов. У данного опкода нету аргументов, посему мы ничего не пишим.
Этот опкод нужен, что бы избежать ошибки при прыжке на первую метку.
Но лучше его писать всегда.
thread «MyFirstScritp»
Это можно и не писать, но лучше написать, потом объясню зачем это нужно
И в конец end_thread.
Это что бы когда скрипт закончит свою работу игра не вылетала
Все, первый скрипт готов, но он не сохранен.
Жмем F6 и указываем путь. У меня это «C:Program Files (x86)Advance RolePlaySan Andreas Multiplayercleo»
И название не забудь. Желательно, что бы название совпадало с тем, что написано в thread
Все, скрипт готов, но он ни чего не делает:(. НАДО ИСПРАВИТЬ!
Можно например написать(между thread и end_thread):
Player.Money($PLAYER_CHAR) += 228
или
0109: player $PLAYER_CHAR money += 100
Это одно и тоже. У некоторых опкодов есть более человеко-понятный вид
Теперь разберем:
0109 — опкод.
: — разделение опкода и аргументов.
player — это часть описания опкода, что бы сделать его понятнее, можно не писать(это не аргумент)
$Player_Char — глобальная переменная отвечающая за данные игрока. (это аргумент)
money — это часть описания опкода, что бы сделать его понятнее, можно не писать(это не аргумент)
+= — это действие которое неободимо совершить. (это необходимо писать)
100 — это операнд, количество денег.
И разберем первый вариант:
Player — это сложно объяснить, но это нужно.
Money — это то, что мы будем изменять
$Player_Char — глобальная переменная отвечающая за данные игрока. (это аргумент)
+= — это действие которое неободимо совершить. (это необходимо писать)
228 — это операнд, количество денег.
Итог:
-У нас есть программы для скриптинга
-У нас есть небольшой, но рабочий скрипт.
-Мы знаем уже два опкода.

Урок по cleo №1

Dark_Knight


  • #1

Создание собственного скрипта анимаций.
Для этого нам нужны будут Sanny Builder 3(дальше SB), обновленные файлы базы опкодов Cleo 4(Как установить будет описано в архиве), инклуд клавиш(Как установить будет описано в архиве), Anim manager, любой скин игрока и прямые руки.
Немного информации. Анимации в GTA SA храняться в трех местах. Это ped.ifp, anim.img и gta3.img. Анимации с anim.img такие самые, как в gta3.img. Так что в скриптах используются анимации с ped.ifp и gta3.img
Теперь перейдем к поиску анимации. Для начала будем их искать в ped.ifp. Открываем Anim manager, загружаем в него наш скин. Для на панели инструментов выбераем «Preview» и нажимаем «Load model«. Скрин.
Теперь открываем ped.ifp и видем такой список. В нем есть 3 вещи, которые нам нужны. Это названия архива анимаций, название анимации и время анимации. После того как выбрали анимацию запихиваем её в скрипт. Я уже написал небольшой скрипт, который уже готовый для компилирования.

{$CLEO} //Пишем это для того, чтобы у нас при компилировании скрипт был формата CS, а не scm. SCM-скрипты не работают в сампе.
{$include includesvk_keys.txt} //Подключаем инклуд для того, чтобы не смотреть значения клавиш в справке SB

0000://Пмшем это для того, чтобы у нас при компилировании скрипта не было ошибки "Переход на нулевой оффсет"

while true
wait 0
if and//Данная строка проверяет условия для дальнейшей работы скрипта. 
0AB0: key_pressed VK_SHIFT //Нажата клавиша Левый Шифт
0AB0: key_pressed VK_3 //Нажата клавиша 3
not actor.Driving($PLAYER_ACTOR) //Игрок не за рулем
Player.CanMove($PLAYER_CHAR) = True //Игрок может двигаться. Это условие пишем, чтобы мы не могли использовать анимацию под тазером.
then //Если все условия выполнены, то скрипт идет дальше.
Player.CanMove($PLAYER_CHAR) = True
0812: AS_actor $PLAYER_ACTOR perform_animation "DOOR_LHINGE_O" IFP_file "PED" 50.0 loopA 0 lockX 0 lockY 0 lockF 1 time 90 //Где $PLAYER_ACTOR - это глобальная переменная ped'a которым мы играем с SAMP. DOOR_LHINGE_O - название анимации, "PED" - где именно храниться анимация. 50.0, 0, 0, 0, 1 - я сам не знаю, что это. 90 - время проигрывания анимации. Его мы узнаем в anim manager.
end//Заканчиваем проверку условий 
end

.
Компилируем(Нажимем F6 или «Запуск» -> «Компилировать») и проверяем в игре.
Теперь будем искать анимации в gta3.img. Ищем их так же само, как и в ped.ifp. После того, нашли анимацию ставляем это в SB.

{$CLEO} //Пишем это для того, чтобы у нас при компилировании скрипт был формата CS, а не scm. SCM-скрипты не работают в сампе.
{$include includesvk_keys.txt} //Подключаем инклуд для того, чтобы не смотреть значения клавиш в справке SB

0000://Пишем это для того, чтобы у нас при компилировании скрипта не было ошибки "Переход на нулевой оффсет"

while true
wait 0
if and//Данная строка проверяет условия для дальнейшей работы скрипта. 
key_pressed VK_SHIFT //Нажата клавиша Левый Шифт
key_pressed VK_3 //Нажата клавиша 3
not actor.Driving($PLAYER_ACTOR) //Игрок не за рулем
Player.CanMove($PLAYER_CHAR) = True //Игрок может двигаться. Это условие пишем, чтобы мы не могли использовать анимацию под тазером.
then //Если все условия выполнены, то скрипт идет дальше.
04ED: load_animation "ON_LOOKERS" //Загружаем архив анимаций.
if //Если
04EE: animation "ON_LOOKERS" loaded //Архив анимаций загружен. 
then //Тогда
0615: define_AS_pack_begin 18@ // 
0605: actor -1 perform_animation_sequence "LKAROUND_IN" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1
0605: actor -1 perform_animation_sequence "LKAROUND_LOOP" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1 
0605: actor -1 perform_animation_sequence "LKAROUND_LOOP" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1
0605: actor -1 perform_animation_sequence "LKAROUND_OUT" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1 
0616: define_AS_pack_end 18@ 
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@ 
061B: remove_references_to_AS_pack 18@ 
04EF: release_animation "ON_LOOKERS" 
end
end//Заканчиваем проверку условий 
end

Этот скрипт будет проигрывать вот такую анимацию по нажатию клавиш Левый Шифт и 3. В нем меняем только клавиши, архив анимаций и название анимаций.
Теперь как совместить несколько анимаций. Пример.

{$CLEO} //Пишем это для того, чтобы у нас при компилировании скрипт был формата CS, а не scm. SCM-скрипты не работают в сампе.
{$include includesvk_keys.txt} //Подключаем инклуд для того, чтобы не смотреть значения клавиш в справке SB

0000://Пишем это для того, чтобы у нас при компилировании скрипта не было ошибки "Переход на нулевой оффсет"

while true
wait 0
//Начало первой анимации
if and//Данная строка проверяет условия для дальнейшей работы скрипта. 
key_pressed VK_SHIFT //Нажата клавиша Левый Шифт
key_pressed VK_2 //Нажата клавиша 2
not actor.Driving($PLAYER_ACTOR) //Игрок не за рулем
Player.CanMove($PLAYER_CHAR) = True //Игрок может двигаться. Это условие пишем, чтобы мы не могли использовать анимацию под тазером.
then //Если все условия выполнены, то скрипт идет дальше.
04ED: load_animation "ON_LOOKERS" //Загружаем архив анимаций.
if //Если
04EE: animation "ON_LOOKERS" loaded //Архив анимаций загружен. 
then //Тогда
0615: define_AS_pack_begin 18@ // 
0605: actor -1 perform_animation_sequence "LKAROUND_IN" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1 
0605: actor -1 perform_animation_sequence "LKAROUND_LOOP" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1 
0605: actor -1 perform_animation_sequence "LKAROUND_LOOP" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1 
0605: actor -1 perform_animation_sequence "LKAROUND_OUT" IFP_file "ON_LOOKERS" 4.0 loop 0 0 0 0 time -1
0616: define_AS_pack_end 18@ 
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@ 
061B: remove_references_to_AS_pack 18@ 
04EF: release_animation "ON_LOOKERS" 
end
end//Заканчиваем проверку условий
//Конец первой анимации
//Начало второй анимации
if and//Данная строка проверяет условия для дальнейшей работы скрипта. 
0AB0: key_pressed VK_SHIFT //Нажата клавиша Левый Шифт
0AB0: key_pressed VK_3 //Нажата клавиша 3
not actor.Driving($PLAYER_ACTOR) //Игрок не за рулем
Player.CanMove($PLAYER_CHAR) = True //Игрок может двигаться. Это условие пишем, чтобы мы не могли использовать анимацию под тазером.
then //Если все условия выполнены, то скрипт идет дальше.
Player.CanMove($PLAYER_CHAR) = True
0812: AS_actor $PLAYER_ACTOR perform_animation "DOOR_LHINGE_O" IFP_file "PED" 50.0 loopA 0 lockX 0 lockY 0 lockF 1 time 90 //Где $PLAYER_ACTOR - это глобальная переменная ped'a которым мы играем с SAMP. DOOR_LHINGE_O - название анимации, "PED" - где именно храниться анимация. 50.0, 0, 0, 0, 1 - я сам не знаю, что это. 90 - время проигрывания анимации. Его мы узнаем в anim manager.
end//Заканчиваем проверку условий
//Конец первой анимации 
end

Чтобы вам не мучаться я написал готовые части скрипта. Их вставляем как показанно на примере выше.
Для анимаций с ped.ifp

//Начало анимации
if and 
0AB0: key_pressed Клавиша 
0AB0: key_pressed Клавиша
not actor.Driving($PLAYER_ACTOR) 
Player.CanMove($PLAYER_CHAR) = True 
then 
Player.CanMove($PLAYER_CHAR) = True
0812: AS_actor $PLAYER_ACTOR perform_animation "Название анимации" IFP_file "PED" 50.0 loopA 0 lockX 0 lockY 0 lockF 1 time 90 
end
//Конец анимации

Для анимаций с gta3.img

//Начало анимации
if and
key_pressed Клавиша
key_pressed Клавиша
not actor.Driving($PLAYER_ACTOR)
Player.CanMove($PLAYER_CHAR) = True 
then 
04ED: load_animation "Название архива анимации" 
if //Если
04EE: animation "Название архива анимации" loaded 
then //Тогда
0615: define_AS_pack_begin 18@ // 
0605: actor -1 perform_animation_sequence "Название анимации" IFP_file "Название архива анимации" 4.0 loop 0 0 0 0 time -1
0616: define_AS_pack_end 18@ 
0618: assign_actor $PLAYER_ACTOR to_AS_pack 18@ 
061B: remove_references_to_AS_pack 18@ 
04EF: release_animation "Название архива анимации" 
end
end
//Конец анимации

Sten_Smith

Гость


  • #2

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

Stas07


  • #3

dark ты ведт должен знать что данную анимку видищь тока ты.
Чтобы видели другие пакет отправлять надо.

Dark_Knight


  • #4

dark ты ведт должен знать что данную анимку видищь тока ты.
Чтобы видели другие пакет отправлять надо.

ЛОЛ

Stas07


  • #5

Чё лол попробуй сделай.:-)

Dark_Knight


  • #6

Чё лол попробуй сделай.:-)

Если я сделаю, то с тебя касарь. Пнятненько?

Stas07


  • #7

с ped слабо если ,не сделаешь с данными опкодами с тебя касарь.

  • #8

Вопрос захожу в игру, и варнинги много много много

Stas07


  • #9

Вопрос захожу в игру, и варнинги много много много

Про что я и говорю.Там уже надо другой код.

  • #10

Про что я и говорю.Там уже надо другой код.

Не, все ебашит как надо, только что проверял:D

  • #11

С инклундом хорошо придумано

Понравилась статья? Поделить с друзьями:
  • Как написать call to action
  • Как написать bunnyhop
  • Как написать breakcore
  • Как написать botfather
  • Как написать blizzard