Рейтинг - 3.7 (3)

Всем привет! Сегодня мы поговорим о недавно сделанном обновлении - использование глобальных CLEO-переменных. Такие переменные используются в для обмена информации между CLEO-скриптами.

Читать и записывать значения можно через их номера с помощью таких опкодов:

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.

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


Теги: глобальные CLEO-переменны

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

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

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

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Как Вы относитесь к ситуации с OpenIV?
Всего ответов: 9
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

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

Сегодня нас посетили:
Рекомендую
Реклама