Делаем новые миссии. CLEO - скрипты, cutscene, статьи, программы. Игровые новости.
 
1.7.13 14:13 |

Переменные

Раздел: Основы скриптинга | Автор: yelmi | Рейтинг: 0.00 (0) | Хитов 2184
Переменные используются для хранения каких-либо данных. Вы можете читать их значения, записывать в них новые. Переменные бывают двух типов: глобальные (их значения доступны из любой миссии или потока) и локальные (только в пределах одного потока). Переменные используются в качестве операндов (членов) математических и логических выражений. Sanny Builder позволяет не использовать опкоды в подобных выражениях. Например, вы можете писать

Код:
$var = 0


вместо

Код:
0004: $var = 0


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

Однако, если в выражении в обоих сторон участвуют переменные, то компилятор может не знать, какой именно опкод необходим в данном случае. Это происходит из-за того, что возможны два варианта: если обе переменные типа Integer или типа Float.

Для того чтобы подсказать компилятору тип переменной, она должна быть объявлена через конструкцию VAR..END. Она позволяет объявлять переменные и их типы, для последующего манипулирования ими.

Синтаксис:

Код:
var
<имя переменной>: <новый тип>
end


(При нажатии Ctrl+[space] появится список типов)

Например используйте код

Код:
var
$1stIntVar : Integer
$2ndIntVar : Integer
end

и вы можете использовать их в математических операциях подобно

Код:
$1stIntVar = $2ndIntVar 
$1stIntVar *= $2ndIntVar


Поддерживаются следующие типы переменных:

Integer, Int - integer values (целые)
Float - floating-points values (дробные)
String, ShortString - Fixed length string variable (только для массивов, используйте s$, @s для переменных)
LongString - Variable length string variable (только для массивов, используйте v$, @v для переменных)

Кроме глобальных переменных можно объявлять и локальные переменные. Но нужно помнить, что в этом случае все такие переменные во всех потоках будут иметь один и тот же тип. Чтобы избежать этого, вы можете переобъявлять переменные в каждом потоке.

Например:

Код:
Thread 'Food'
Var
10@ : Float
$Var : Float
End
$var = 1
10@ = $Var
end_thread

Thread 'Loop'
Var
10@ : Int
$Var : Int
End
$var = 1
10@ = $Var
end_thread



В первом потоке переменная 10@ будет расцениваться как float, во втором - как integer. Вообще вы можете переобъявлять переменные сколько угодно раз.

Также вы можете инициализировать значение переменной сразу при объявлении. Для этого после указания типа поставьте знак = и стартовое значение:

Код:
var
$fVar: float = 1.0
end


Переменная $fVar будет запомнена как Float и одновременно в SCM будет записан опкод:

Код:
0005: $fVar = 1.0


Инициализация доступна только для переменных, но не массивов!

 

  1 2 3 4 5 6 7 8 9 10  

Родственные ссылки
» Другие статьи раздела Основы скриптинга
» Эта статья от пользователя yelmi

5 cамых читаемых статей из раздела Основы скриптинга:
» Работа со звуками в GTA San Andreas
» Директивы
» Контроль клавиатуры
» External Script – что это такое и как с ним работать?
» Панель, или список товаров. Часть II.

5 последних статей раздела Основы скриптинга:
» Директивы
» Дополнительные команды
» Ключевые слова
» Классы
» Циклы

¤ Перевести статью в страницу для печати
¤ Послать эту cтатью другу

MyArticles 0.6 beta for RUNCMS: by RunCms.ru


Реклама

Вверх     Вернуться на главную. Вход в Систему. Статьи. Скачать. Миссии. ФОРУМ Обратная связь.   
   
   
   
   
- Генерация страницы: 0.3 секунд -