Уроки моддинга
Основной раздел
Search
K
Links

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@" как член класса.
Вторая часть урока будет посвящена комментариям в поисковике опкодов. Думаю многие заметили, что в результатах поиска бывают комментарии. Вот я Вам расскажу суть некоторых из них:
Комментарий
Описание
// ( int )
указывает, что переменные должны быть целыми числами
// ( float )
указывает, что переменные должны быть дробными числами
// mission only
указывает, что опкод можно использовать только в миссиях
// IF and SET
указывает, что опкод можно использовать как проверку, и как процедуру
// any
указывает, что переменная будет ассоциироваться, как номер
// versionA
указывает, что опкод можно использовать для версии игры ( или какого то метода ) А
// v$
указывает, что нужно использовать строковую переменную типа V
// s$
указывает, что нужно использовать строковую переменную типа S
// see ped.dat
указывает, что данные берутся с файла ( и их описание можно найти там )
Это только некоторые их комментариев, которые я часто использую.
Макросы.
Хм... Интересное название. Это наверное самая полезная возможность в 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