На главную страницу
Глобальный блок(скрипт такой есть)
Главная | Мой профиль | Выход

Меню сайта

Разделы новостей
Мои статьи [40]

Мини-чат
300

Наш опрос
Оцени мой сайт
Всего ответов: 175

Связь с рипером:
Jocker:
icq: 426-042-393
mail: oneqq@mail.ru
skype: JockerPac

Друзья сайта
Статистика
 
НАроДА: 1
СтРАНниКОВ: 1
ПоЛОЖитЕЛЬных: 0


Вы вошли как Гость | Группа "Гости"
!!!ЗДЕСЬ МОЖЕТ БЫТЬ ВАША РЕКЛАМА!!!
Главная » Статьи » Мои статьи

Переменные и типы данных(урок 1)
В этих статьях я попытаюсь объяснить, как создавать cleo-скрипты в Sanny Builder'е 3... Здесь разобраться будет легче тем, кто в школе на уроках информатики изучал основы программирования (QBasic и Free Pascal – или устаревший Turbo Pascal). В любом случае, в этой статье я попытаюсь дать базовые понятия о том, что дают на этих самых уроках – что такое переменная, каких она бывает типов и т.д. В общем, кому хватает (или хватило) школы могут благополучно на этом прекратить чтение этой статьи…

Начну я с того, что такое переменная. Традиционно, переменную представляют в виде «ящика», в который «кладется» некоторое значение. Строго говоря, переменная имеет свой (всегда уникальный) идентификатор и значение (то что «кладут»). По идентификатору происходит обращение к этой переменной, а значение в ней может перезаписываться… Эти значения бывают разных типов. Когда говорят о типе переменной, подразумевают тип значения в этой переменной. Так вот, переменные делятся на следующие типы:

1.) Целочисленные (Integer). Принимают, как не трудно догадаться, положительные и отрицательные целые значения.
2.) Вещественные (Float). Числа с дробной частью, дробная часть отделяется от целой точкой: например, 5.624.
3.) Строковые (String). Значения строковых переменных представляют собой последовательность символов, отделяются двойными кавычками (строка переменной длины variable-length string) или одинарными (строка фиксированной длины fixed-length string – содержит до 15 символов, - если символов меньше, остаток заполняется символами NULL). Например, “STRING” или ‘STRING’.
4.) Так называемые хэндлы (Handle): обобщают в себе переменные, ссылающиеся на классы: актеров (Actor), машины (Car), объекты (Object), игрока (Player)…
Переменные описанных выше типов объявлять не обязательно, но вы можете это сделать конструкцией:

Code
Var
<идентификатор переменной> : <ее тип>
End

Нажатие ctrl + space в Sanny Builder’е отображает список всех типов.
5.) Массивы (Array). Содержат в себе несколько значений одного и того же типа. Обращение к этим переменным происходит по идентификатору массива и номера значения в нем.. Объявление массива в Sanny Builder'е обязательно:

Code
Var
<идентификатор массива> : Array XX of <тип>
End

*XX здесь – количество значений содержащихся в массиве.

Проще всего к значениям в массиве обращаться следующим образом:

Code
$My_array[0]
, здесь 0 – это номер элемента в массиве. Вместо ноля может стоять любое другое целое число, а также переменная целочисленного типа. В последнем случае обращение происходит к элементу массива под номером, равным значению в этой переменной. Двумерных, трехмерных и т.д массивов в скриптинге GTA я не встречал...
6.)логический (или булев) тип данных (Boolean). Может принимать всего 2 значения - True или False (соответсвенно "правда" или "ложь"). Значение булева типа True заменяется единицей, False - нулем. В языке программирования Sanny Builder'а переменная не может содержать значение булева типа, и следует присваивать эти значения напрямую. Так например в кострукции:
Code

Player.CanMove($PLAYER_CHAR) = True

Игрок получает способность двигаться.

В этом типе данных следует обратить внимание на существование булевых (или логических) операторов: 1) оператор коньюнкции (логическое "И", and), 2) оператор дизьюнкции (логическое "ИЛИ", or), 3) оператор отрицания (логическое "НЕ", not).
Эти операторы используются с двумя или более значениями булева типа, и в конструкции с ними тоже возвращают значение True или False Например, в импликации (конструкции условия)

Code
if and
<condition 1>
>condition 2>
...
<condition N>
jf @label

условие будет выполнено тогда и только тогда, когда будут выполнены все условия, входящие в импликацию (т.е оператору If будет возвращено значение True). Пока можете особо не зацикливаться на этом типе данных, если не понимаете, - все станет намного яснее, когда я буду объяснять о практическом его использовании в условиях и циклах.

Вот, вроде и все типы данных, используемые в скриптинге... Что важно здесь уяснить - работать с переменными определенного типа надо как с переменными определенного типа, четко понимая, чего вы хотите добиться. Можно не уделять даже внимания умным словам, которые я тут понаписал - я их дал чисто для ликбеза (ликвидации безграмотности)...

Идем дальше...

Все переменные в скриптинге GTA делятся на локальные и на глобальные. Что важно, использование глобальных переменных в cleo приводит к конфликтам, поэтому, по меньшей мере, не рекомендуется использовать их при написании cleo-скрипта.

Обращение к локальным переменным происходит следующим образом:
0@, 1@, 2@,...
Как видите, идентификатор состоит из цифр и отделяется знаком @... Локальные переменные действуют только в пределах одного потока (в нашем случае – cleo-скрипта). В скриптах с расширением .cs число локальных переменных ограничено: от 0@ до 33@. Если вы хотите использовать больше переменных, сохраняйте скрипт в формате Custom Mission (с расширением .cm).
К слову, напишу как сохранять скрипт в формате CLEO. Делается это просто – при помощи директив: нужно в шапке скрипта (то есть в самом начале, первой строчкой) написать

Code
{$CLEO <расширение файла>}

Например:
Code
{$CLEO .cm}
или
Code
{$CLEO .cs}

Все - компилятор прочтет эту директиву и сохранит ваш скрипт в нужном формате...
Подробнее о директивах потом…

Обращение к глобальным переменным:
$var_1
Идентификатор может состоять из букв латинского алфавита, цифр и знака подчеркивания. Обратите внимание, что знак доллара (говорящий программе что это не что иное как глобальная переменная) ставится в начале идентификатора. Когда мы вводим этот знак $ с клавиатуры, Sanny Builder выводит список всех использовавшихся в некоторой окрестности скрипта глобальных переменных. Эта окрестность небольшая - так что не удивляйтесь если в этом списке вдруг не окажется нужная вам переменная. Как уже говорилось, использование глобальных переменных в CLEO проиводит к конфликтам (если кто-то хочет подробнее узнать, почему это так - идем сюда или сюда), но ничто не мешает использовать глобальные переменные, описанные в файле CustomVariables.ini или цифровые, если вы точно знаете на что ссылаются эти переменные в main.scm. В первую очередь это относится к переменным:
$ONMISSION - значение этой переменной равно 1, если игрок выполняет какую-либо миссию, и 0 - если нет (при этом когда $ONMISSION равна 1, запрещено сохраняться и начинать новые миссии)
$PLAYER_ACTOR - в эту переменную записан актер - Карл
$PLAYER_CHAR - а в этой игрок (не путать с предыдущим - игрок и актер - разные типы переменных)
ну, и некоторые другие...

На этом я заканчиваю свою первую статью – знаю, она получилась слишком занудной, но совершенно необходимой для того, чтобы научиться писать cleo-скрипты…

Источник: http://Собственные скромные познания, а также справка Sanny Builder'а v3.04, написанная yelmi

Категория: Мои статьи | Добавил: Alien (31.10.2008)
Просмотров: 3908 | Комментарии: 3 | Рейтинг: 3.8/4
Всего комментариев: 2
03.03.2010
2. Дима [Материал]
Надо капилирывать а не просто сахранять.

01.02.2010
1. эдикк [Материал]
Как сохранять написанные в Sanny buildere скрипты в формат cs.За..ался уже сохранять,всегда сохраняется только в txt.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]