Рассмотрим переменные, которые не рекомендовано редактировать, там задать значение какое то и.т.п. Потому, что:
$PLAYER_ACTOR
$PLAYER_CHAR
$ONMISSON
$PLAYER_GROUP
- Переменная, которая служит для обозначения персонажа (СЖ)
- Переменная, которая служит для обозначения игрока
- Переменная, которая служит для для обозначения флага миссии (включена она или нет)
- Переменная, которая служит для обозначения группы(банды) игрока (СЖ)
Изменять такие имена переменных я не советую! Так же не создавайте переменных, где после $ стоит число. Например: $1, $2, $3 ... Потому, что $1 = $PLAYER_CHAR. Изменяя $1 мы автоматически изменяем $PLAYER_CHAR. А этого нам не нужно.

Кроме чисел в переменных можно хранить и хэндлы (HANDLES). Это указатели на что то(кого то). Другими словами - имя сущности. Вот пример тех хэндлов,  которые можно хранить в переменных:
ACTOR
CAR
OBJECT
PANEL
..........
- АКТЁР
- ТРАНСПОРТ
- ОБЪЕКТ
- ПАНЕЛЬ
..........




Актёр - это любой персонаж из игры: полицейский, байкер, шлюха и.т.п
Транспорт - это средство передвижения в игре: лодка, байк, велик, машина и.т.п.
Объект - это дома, бочки, дороги, двери. В общем сложно объяснить, что это. Скажем — мелкие или большие детали игры.

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

Рассмотрим использование переменных в потоках. Всё, о чём я сейчас расскажу очень важно в скриптинге. Создадим 2 потока: :A и :B:
Code
.....
create_thread @A
create_thread @B
end_thread

:A
thread 'A'
wait 0
0@ = 0
jump @A

:B
thread 'B'
wait 0
0@ = 1
jump @B
Вопрос: что будет хранится в переменной 0@ ?? 1 ?? 0?? Не правильно! В переменной 0@ будут хранится оба числа! Почему так? Потому, что потоки в данном случаи работают параллельно(как бы одновременно). Что бы вам объяснить, рассмотрим пример в реальной жизни:

Представим обычною городскую школу. Представим классы. Например: 11-й. Как известно таких классов много, по этому их разбили на A, B, C...
Вот возьмём имена учеников. Ученики будут нашими переменными:
Код
0@ - Вася
1@ - Славик
2@ - Макс
3@ - Юра
Они учатся в классе 11 A. В параллельном классе, то есть в 11 B есть ученики с теми самими именами:
Код
0@ - Вася
1@ - Славик
2@ - Макс
3@ - Юра
Видим, что имена одинаковы, но не забываем, что характер, черты лица всегда разные, то есть каждый человек - индивидуальный. Так же само с переменными - имена одинаковы, но значения могут иметь разные. Например: могут изменятся только в пределах своего потока. Что это значит "своего потока"? Наш 1-й поток — это класс 11 A. Все ученики заперты в своём классе! Не дай бог этого в реальной жизни smile В нём они творят то, что нам захочется. Также и переменные заперты в потоке. Если вызывается 1-й поток командой сreate_thread, значит строится класс 11 A. Следовательно end_thread — разрушает этот класс в месте с учениками и о них больше ни слова, ни духа, пока мы опять не построим класс(станем вызывать тот же поток).

Одновременно нельзя построить 2 одинаковых класса, то есть:
Code
.....  
create_thread @A  
create_thread @A
end_thread
Вернее можно, но крайне не рекомендовано, так как это приводит к вылету игры как в следствие. Такой вариант не правильный, потому что мы вызываем работающий поток, запущенный ранее. Об этом я вам уже рассказывал в предыдущих уроках. Так же не забываем о игровых лимитах: в потоке может быть не больше 33 локальных переменных. То есть максимум в классе может быть 33 ученика с разными именами. Этого вполне достаточно для потока. Важно! Все имена должны быль меньше числа 34 и больше -1. Если написать так: 102@ = 1, то компилятор сообщит об ошибке: "Локальная переменная вне доступных границ":


Так что пользуемся формулой:
Код
от 0 до 33 + @
Это правило действует только на локальные переменные! Важно! Последние две перемененные - таймеры и они всегда меняют значение, по этому для хранения данных они не очень подходят, по-этому лимит переменных будет ещё большим: от 0 до 31. О таймерах мы поговорим в следующих уроках.

Глобальные же переменные имеют больше возможностей. Они могут существовать и без активного потока и при этом сохранять какую то информацию, а в потоках изменятся или влиять на что то. Давайте рассмотрим пример использования глобальной переменной:


Как видим вначале переменная $DIMA была равна нулю. После создания потока А, мы добавили к ней число 5. Легко догадаться, что в переменной $DIMA теперь будет число 5. Но особенностью глобальных переменных в том, что поток B будет знать о переменной $DIMA, хоть она там и не использовалась! Можно навести пример с реальной жизни. Тоже представим школу и классы. А $DIMA — это директор. Директор - он и в Африке директор smile Во все классы он может зайти или выйти и о нём практически всегда помнят. Значит манипулировать(управлять, изменять, проверять) переменной можно практически в любом месте скрипта. Значение переменной может быть любым, в зависимости от последней выполненной операции над ней. В нашем случаи поток будет знать, что в переменной $DIMA будет число 5.

В следующем уроке мы рассмотрим перемененные, которые могут иметь одинаковые имена.

гет   (10.07.12 15:05)
и как из всего этого составляют скрипт?

wmysterio   (10.07.12 16:30)
В целом я хотел только ознакомить новичка с самими переменными. Перечислить их типы, свойства. Из этого скрипта нормального не составишь, но о переменных нужно знать.
Вход на сайт

Поиск
Категории раздела
Мини-чат
Наш опрос
Что скажете о новом дизайне?
Всего ответов: 0
Активность на сайте
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили: