00073. Переменные, как члены класса. Коментарии в поиске опкодов. Макросы

Переменные, как члены класса. Коментарии в поиске опкодов. Макросы|Здравствуйте, уважаемы пользователи сайта! Здесь пойдёт речь о классах, а именно отнесения переменной к нему и её использование.|wmysterio|wmysterio||||Прежде всего, нам понадобится блок VAR...END, так, как именно он позволяет такую возможность. Давайте сначала выберем класс и переменную, которая будет отнесена к нему. Допустим, это будет класс "player", а переменная - "$PLAYER_CHAR". Объявим всё это в блоке:

var
$PLAYER_CHAR: player
end

Это позволит нам использовать переменную в место класса! Причём этой переменной будут доступны все процедуры, свойства и условия этого класса! Для примера, введём эту переменную в поле SB и нажмём ".", как это обычно делается, и видим, что нам предлагают доступные для неё действия:

Давайте таким образом добавим деньги игроку. Используя возможность, это будет выглядеть так:

$PLAYER_CHAR.Money += 2000

Это существенно сокращает время, чем использовать обычный режим ввода. Давайте напишем пример скрипта, где при нажатии кнопки 1`, игроку будут добавлять 1 доллар:

{$CLEO}
0000:

var
$PLAYER_CHAR: player
end

while true
 if
 0AB0: key_pressed 49 // 1
 then
 $PLAYER_CHAR.Money += 1
 end
wait 0
end

По аналогии, сделаем похожий скрипт загрузки модели. Нам нужно взять класс "model", а также номер ( или текстовой идентификатор ) модели. Допустим, это будет "#ADMIRAL". В блоке var пишем название модели и класс:


{$CLEO}
0000:

var
#ADMIRAL: model
end

:A
thread 'A'
wait 0
#ADMIRAL.Load
038B: load_requested_models
 
:A_1
wait 0
if
#ADMIRAL.Available
jf @A_1
0A93: end_custom_thread

Тогда код загрузки будет выглядеть так:

var
#ADMIRAL: model
end

Объявление переменных как членов класса очень удобная штука! Правда её редко используют новички, так как им ещё не понятно назначение этой возможности и из-за этого возникают много ошибок, например: пытаются привязать переменную к классу "camera", который по-сути не может иметь хендлов на субъекты.

Для закрепления этого небольшого материала вам задание - создать автомобиль, используя переменную "0@" как член класса.

Вторая часть урока будет посвящена комментариям в поисковике опкодов. Думаю многие заметили, что в результатах поиска бывают комментарии. Вот я Вам расскажу суть некоторых из них:

Это только некоторые их комментариев, которые я часто использую.

Макросы.

Хм... Интересное название. Это наверное самая полезная возможность в Sanny Builder! Главная задача макросов - быстрая вставка кода. Изначально в СБ есть парочка стандартных макросов. Увидеть их можно, нажав комбинацию CTRL+<kbd>J:

Давайте выберем из списка макрос "else" и нажмём ENTER`. Видим, что в окно программы вставился текст:

if

then

else

end // if

Теперь нам не нужно тратить время на написания команд )) Но, естественно, будет полезная возможность вставки своих кодов, поэтому давайте напишем небольшой скрипт:

model.Load(#ADMIRAL)
038B: load_requested_models

while not model.Available(#ADMIRAL)
wait 0
end

0@ = car.Create(#ADMIRAL, 0.0, 0.0, 0.0)
car.Angle(0@) = 0.0
model.Destroy(#ADMIRAL)

Теперь выделим этот текст и нажимаем "Добавить макрос", что находится в меню "Сервис":

После этого выскочит окно и предложит сохранить макрос. Заполним поля и нажимаем "ок":

Всё! Макрос добавлен! Теперь остаётся вызвать его, используя горячие клавиши! Очистите поле редактирования и повторите вставку макроса ( в списке появится добавленный ранее шаблон ).

Советую вам сделать шаблон Cleo-скрипта и миссии. Это намного сэкономит ваше время!|828|1|0|20375270png456181400158``\|55487539png580205400141``|28459959png400`311

`\|66264246`png`260`191

`||peremennye_kak_chleny_klassa_komentarii_v_poiske_opkodov_makrosy|1499709653

Last updated