Итак если вы решили освоить скриптинг, то это для вас.
На разных сайтах я видел статьи по скриптингу, но среди них практически нет таких, которые объясняют новичку, с чего нужно начать. Конечно можно воспользоваться справкой к Sanny Builder, но я постараюсь объяснить всё кратко и понятно, и в следующих статьях расскажу о том, о чём трудно найти информацию, поделюсь своим опытом. Я буду говорить не отдельно о каждом понятии в скриптинге, а расскажу, что именно нужно писать в скрипте
Итак, начинаем. Открываем Sanny Builder. Лучше использовать версию 3.04, на данный момент это последння версия программы. Можно использовать и предыдущие версии, но в них меньше возможностей и есть некоторые недоработки. Клео скрипты можно делать только в версиях с 3.00 по 3.04.
Нажимаем Файл/Создать. Появится вкладка под названием «Безымянный». В ней увидите число 0001. В последствии в каждой строке будут появлятся следующие числа – 0002, 0003, 0004 и т.д. - это адреса строк. Каждый опкод должен помещаться в одной строке.
Теперь о директивах. О них можно прочесть в справке, я лишь скажу, что они нужны чтобы указать компилятору определённый процесс поведения при компиляции. От них зависит формат, в котором сохранится файл.
Если нам нужно сделать клео скрипт, то в первой строке пишем
{$CLEO .cs}
или просто
{$CLEO}
Есть и другие директивы, например {$CLEO .cm}. Но о ней мы поговорим позже.
Теперь напишем название. Делается это так
03A4: name_thread 'name'
name – название.
Теперь создаём поток. Для этого ставим знак : и после него без пробела название. Оно такое же, как то, которое мы написали в начале – name. После name ставим _ и любые цифры, например 22. Получится :name_22. Другие потоки должны тоже называться name_, но сдругими цифрами. Например name_1045, name_2070, name_534 и т.д.
Сразу под названием потока нужно написать ожидание - wait 0, т.е. время, через которое скрипт начнёт работать. Если не указывать ожидание, то может возникнуть ошибка. Измеряется в Милли секундах, поэтому если надо ждать 1 секунду, то пишем wait 1000, если 5 секунд - wait 5000. При компиляции код преобразуется 0001: wait N ms (N – указанные вами миллисекунды), но можно записывать просто wait N.
Далее почти в каждом скрипте нужно сделать проверку, найден ли игрок (особенно если мы будем работать с ним) Проверка делается командой
if
В следующей строке пишем опкод, которые указывает, что именно мы проверяем. В нашем случае этот код выглядит так:
0256: player $PLAYER_CHAR defined
Далее пишем код, который указывает, на какой участок скрипта (поток) нужно перейти, если проверка не подтвердилась. Если нужно перейти на начало, то нужно еаписать так
004D: jump_if_false @name_22
Если проверка подтвердилась, то скрипт пойдёт дальше.
В конце скрипта нужно написать код
0A93: end_custom_thread
Этот код завершает скрипт. Но если нам нужно, что бы он не завершался, а например возвращался к началу, то пишем код
jump @name_22.
И так, у нас получился простой скрипт, который выглядит так
Или так
Теперь нажимаем Запуск/Компилировать. В появившемся окне пишем название фвйла и нажимаем Сохранить.
Теперь если снова открыть сохранённый файл, после компиляции он будет выглядеть так.
Мы рассмотрели основу скрипта. Вы можете почитать в справке как создать актёра, транспорт и др. Я не буду про это писать, потому что об этом и так много информации. Советую почитать про переменные, и сразу хочу сказать, что в справках в опкодах пишут глобальные переменные, хотя в клео их лучше не использовать (кроме таких, как $PLAYER_CHAR, $PLAYER_ACTOR, $ONMISSION…). Лучше заменяйте их на локальные. Например $act заменяйте на 1@. Правда локальных переменных только 34 (от 0@ до 33@), но в клео скриптах этого хватит.
Если есть вопросы, обращайтесь на форуме.
|