Всем привет! Сегодня мы поговорим о недавно сделанном обновлении - использование глобальных CLEO-переменных. Такие переменные используются в для обмена информации между CLE-скриптами. Читать и записывать значения можно через их номера с помощью таких опкодов:
  • 0AB3: var 0 = 10
  • 0AB4: 0@ = var 0
Первый опкод указывает в какую переменную будет записано значение. В данном случаи в переменную 0 будет записано 10. Второй опкод, наоборот, получает значение переменной 0 и записывает результат в локальную переменную 0@. Диапазон номеров для переменных от 0 до 1023. Нужно учесть, что в номер можно записать с любого скрипта, по-этому нужно учесть и сторонние разработки, чтобы ваши скрипты нормально работали. Можно написать простые примеры скриптов с их использованием. Допустим первый скрипт будет в цикле записывать значения переменных. Второй их считывать и выводить на экран результат:
Код
{$CLEO}
thread 'ONE'
wait 1500

for 0@ = 0 to 2000
0AB3: var 0 = 0@
wait 1000
end

0AB3: var 0 = -1
0A93: end_custom_thread
Второй скрипт:
Код
{$CLEO}
thread 'TWO'
wait 2000

repeat
wait 0
0AB4: 0@ = var 0
0AD1: show_formatted_text_highpriority "%d" time 1 0@
until 0@ == -1

0A93: end_custom_thread
Наш результат таков: каждую секунду глобальная переменная 0 прибавляет 1.


Это достаточно полезная вещь, так как мы можем взаимодействовать между скриптами и менять их поведение. Вы можем обмениваться практически любыми данными (не тестировал правда строки). На этом всё, ждите новых уроков :)

SanKing   (01.03.14 17:45)
Очень полезно.

Slivkin-Sergey   (02.03.14 18:07)
Хорошая вещица, иногда бывает полезной, но так можно было делать и раньше, выбирая обыкновенные глобальные переменные с именами по-заковыристей (которых точно не встретишь в main.scm) - таких было придумать не так уж трудно. И кроме того, чисто синтаксически эти переменные всё равно нельзя использовать в статус-текстах и таймерах, так что полностью проблему использования глобальных переменных в CLEO скриптах решить всё же не удалось.

wmysterio   (02.03.14 19:11)
Синтаксически нельзя, но это вполне осуществимо, как показано в справке SB. Просто всем либо впадло(как мне) или непонятно как использовать тот код.
Вход на сайт

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

Онлайн всего: 2
Гостей: 1
Пользователей: 1
wmysterio
Сегодня нас посетили:
wmysterio