Как создать пикап сохранения
Как создать пикап сохранения
Здравствуйте в этом уроке я расскажу как создать пикап СОХРАНЕНИЯ.

Этого в мануале нет такое знание придёт лишь с опытом ,но кому лень ждать,  тому всё подробно опишу. Итак ,мы будем делать наш внешний скрипт с помощью Sanny Builder 3, а в дальнейшем просто SB (скачать можете с SANNYBUILDER.COM). Итак откроем его и нажмём создать новый Файл (Если же вы открываете его первый раз, то вам нужно будет его настроить ,указать главную директорию игры и т.д) и увидим там пустые строчки которые нам предстоит заполнить опкодами (специальными командами которые воспринимает игра) Раз мы пишем внешний скрипт то в первую очередь зададим формат будущего файла. Делается это директивой {$CLEO .cs} (она указывает что компилируемый файл получит расширение custom script что в сокращении и есть CS) Пишем на первой строчке её (учтите на одной строке одна команда т.е один опкод)

{$CLEO .cs}

Затем нам нужно загрузить в память игры значок сохранения ,делается это командами model.load (#модель) //там где написано модель нужно написать модель в нашем случае это #PICKUPSAVE,но учтите этот файл не имеет заголовка поэтому нужно написать так model.load (1277) // 1277 это id обьекта #PICKUPSAVE т.е написать числовой номер этого объекта. Но этим опкодом мы только объявили те модели которые будем загружать так что нужно написать на следующей строчке 038B: load_requested_models // а вот эти кодом мы загрузили модель в память .Учтите вы можете объявить больше моделей (каждое объявление на новой строчке !) но загрузить их нужно будет только один раз ,поэтому этот опкод пишется один раз ,да и знайте что" //" это начало комментария и компилятор (это такя вещь которая все наши опкоды переводит на понятный игре язык) не обратит на него внимания ,поскольку они служат для удобного ориентирования в скрипте, комментарий это что то на подобии заметки на рабочем столе:)
Затем нужно проверить модели на загруженность иначе если модели не загрузились а мы уже что то с ними делаем то произойдёт вылет .Для начала сделаем метку

: NONAME_10 // это и есть метка чтобы её создать пишем двоеточие а затем имя метки. Метки скриптеры создают чаще всего для проверок, как в нашем случае.
После метки напишим команду wait 0 ms // это задержка в 0 милли секунд т.е задержки нет но писать это команду после меток обязательно (если не напишете ,то ждите вылета) и иногда нужно писать wait 100 ms т.е давать задержку чтобы игра передохнула .Затем напишем if and // это обьявление количества условий у нас их два поэтому пишем if and (скрипт не начнёт выполнятся дальше пока все условия не станут положительными),но если условие одно то нужно написать просто if а если условий ну допустим три и для дальнейшего выполнения скрипта нужно чтобы выполнилось хоть одно из них то напишем if or.
Итак, далее пишем что нам нужно проверять ,а проверять мы будем обобьет на загруженность и игрока на существование для этого пишем:

model.available (1277)//это и есть проверка на загруженность модели
0256: player $PLAYER_CHAR defined //проверка игрок существует
else_jump @noname_10 //т.е это будет звучать так :если модель загружена и игрок существует то выполнение скрипта пойдёт дальше если же нет то перепрыгнем на метку
@noname_10 и с неё начнём повторное выполнение команд model.available (1277) и player $PLAYER_CHAR defined короче данный цикл будет происходить до тех пор пока условие модель загружена и игрок существует не станет правдой.

Вот что у нас пока получилось :

{$CLEO .cs}
wait 100 //задержка для большей безопасности
model.load(1277)
038B: load_requested_models
:NONAME_10
wait 0 ms
if and
0256: player $PLAYER_CHAR defined
model.available(1277)
else_jump @noname_10
 

И ПРИСТУПИМ К ДАЛЬНЕЙШЕМУ ИЗУЧЕНИЮ вЂ¦

Раз мы загрузили и проверили модель то сейчас можно её создать делается это командой

0213: $BUY_ASSET_PICKUPS = create_pickup 1277 type 15 at 1182.986 -1324.592

13.5783 // писать на одной строчке

1277 вЂ” это модель создаваемого объекта (пикапа сохранения)

$BUY_ASSET_PICKUPS это глобальная переменная (вообще их не желательно применять т.к это может вызвать ошибку , НО эта переменная исключение!) в которую будет записана созданная модель т.е в дальнейших своих действиях мы можем не писать 1277 а вместо этого написать $BUY_ASSET_PICKUPS во многих случаях это будет очень удобно 1182.986, -1324.592, 13.5783 -это координаты создаваемого пикапа .Их можно узнать с помощью любого телерепортера а так же sb имеет в наличии встроенный редактор координат (сервис/инструменты /редактор координат вЂ” гта должна быть включена там также есть галочка внизу 1.1 есле её нажать то вы получите телерепортер для версии игры 1.1)

Type вЂ” это тип пикапа, есть следующие типы:
1 вЂ” за деньги, регенерируется почти сразу
2 вЂ” бесплатно, регенерация за 30 минут игрового времени, надо отойти недалеко
3 вЂ” бесплатно, одноразовый
9,11 вЂ” бомба
15 вЂ” регенерируется за 6 часов игрового времени или за 6 минут
мы выбрали тип 15 т.к в игре после сохранения проходит 6 часов

ну вот у нас есть пикап сохранения , НО пока нерабочий.
Для того чтобы он стал полноценным ,нужно добавить ещё одну проверку на поднятость пикапа.
Создаём ещё одну метку к примеру с названием: noname_11
wait 100 // пишем задержку иначе может вылететь
if //обьявляем количество условий т.е у нас оно одно
0214: pickup $BUY_ASSET_PICKUPS[0] picked_up //проверка на поднятость пикапа 
else_jump @noname_11//если игрок не поднял пикап т.е условие не выполнено то выполнение скрипта начнётся с метки @noname_11 и это будет повторятся до тех пор условие не будет выполнено т.е пикап станет поднятым Если всё прошло успешно то нужно показать экран сохранения .Делается это командой 03D8: show_save_screen //это то самое меню откуда вы сохраняетесь ну и чтобы память игры не загрязнить нужно сделать обязательно удаление этого пикапа .Сделаем это так model.Destroy ($BUY_ASSET_PICKUPS)//надеюсь вы не забыли что $BUY_ASSET_PICKUPS это и есть модель 1277
0215: destroy_pickup $BUY_ASSET_PICKUPS//ну и уничтожение самого пикапа ну и как бы чтобы можно опять было сохранится то начнём заново выполнение скрипта с метки @noname_10 т.е напишем jump @noname_10

ВОТ КОД который должен был у вас получится:
 
{$CLEO .cs}
wait 100
0247: load_model 1277
038B: load_requested_models
:NONAME_10
wait 0
00D6: if and
0248: model 1277 available
0256: player $PLAYER_CHAR defined
004D: jump_if_false @NONAME_10
0213: $BUY_ASSET_PICKUPS = create_pickup 1277 type 15 at 1182.986 -1324.592 13.5783
:noname_11
wait 100
if
0214: pickup $BUY_ASSET_PICKUPS[0] picked_up
else_jump @noname_11
00A1: put_actor $PLAYER_ACTOR at 1187.1106 -1323.4843 13.559//Раннее я это не написал но вы лучше этот опкод напишите ,чтобы игрок не оставался на месте сохраннения и всегда не поднимал пикап (этот опкод телепортирует)и помните что // это коментарий .
03D8: show_save_screen
model.Destroy(1277)
0215: destroy_pickup $BUY_ASSET_PICKUPS
jump @noname_10
 
Сравните этот код и тот который получился у вас.Если у вас что нибудь не так то исправте .Когда всё проверели то нажмите заветную кнопку "компилировать"(вверху, напоминает зелёного бегущего человечка). Задайте любое имя вашему Файлу. Сохраните этот скрипт в папке клео (находится должна в директории игры).
Запускайте игру и наслаждайтесь СВОИМ творением.
Удачи в скриптинге! Да и читайте мануал который идёт вместе с Sanny Builder.
Полезно для мозговой деятельности.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Актуальная версия GTA SA HD beta 2.5.7
Обновленияnew
Комментарии
Вы бы хотели бы увидеть новый мод GTA SA HD?
Информация
Пошалим?
Облако тегов

Добро пожаловать на RFG-MODS.RU!

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

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт