• Название:

    Создание пикапа сохранения

  • Размер: 0.05 Мб
  • Формат: RTF
  • или

Урок по созданию пикапа сохранения

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

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

тому всё подробно опишу .

Итак ,мы будем делать наш внешний скрипт с помощью 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...

(Полезно для мозговой деятельности:))