Статистика
Онлайн всего: 1 Гостей: 1 Пользователей: 0
|
Как создать пикап сохранения
Здравствуйте в этом уроке я расскажу как создать пикап СОХРАНЕНИЯ. Этого в мануале нет такое знание прийдёт лишь с опытом ,но кому лень ждать , тому всё подробно опишу . Итак ,мы будем делать наш внешний скрипт с помощью 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... (Полезно для мозговой деятельности:))
|
Категория: Скриптинг | Добавил: Bura22 (09.10.2012) |
Просмотров: 748 | Рейтинг: 5.0/1 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
|