Что такое скриптинг? От слова 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, с которыми совместима библиотека:
Установка
С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 и (или) ее плагины, вы можете также распространять вместе с ним необходимые файлы. Вы можете указать ссылку на данную страницу, чтобы пояснить, как необходимо пользоваться библиотекой и сопутствующими файлами.