Set: различия между версиями
Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == Запись значения в переменную и/или ее объявление. == Синтаксис == Привязка к...») |
Tatikoma (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: Нет. | Привязка к окну: Нет. | ||
− | + | <br>Работа со свернутым окном: Да. | |
− | set # | + | set #<имя> <значение1> [<зн. оп.> <значение2>] |
− | set $ | + | set $<имя> <значение> |
− | set % | + | set %<имя> [элемент] <значение> |
'''#''' - признак числовой переменной, может содержать только числа, позволяет выполнять математические операции. | '''#''' - признак числовой переменной, может содержать только числа, позволяет выполнять математические операции. | ||
− | + | <br>'''$''' - признак строковой переменной, может содержать любые символы. | |
− | + | <br>'''%''' - признак массива (переменные сгруппированные под одним именем), может содержать любые символы. | |
− | + | <br>'''<имя>''' - в имени переменной допустимы символы - ['0'..'9','A'..'z','А'..'я'], регистр не учитывается. | |
− | + | <br>'''<значение>''' - может содержать цифры, буквы, символы. Так же может быть результатом работы функции, например, set #var random(10). | |
При двух или более запущенных скриптах вы можете обращаться к переменным, определенным в других скриптах пилота. | При двух или более запущенных скриптах вы можете обращаться к переменным, определенным в других скриптах пилота. | ||
Строка 97: | Строка 97: | ||
[[Переменные из других скриптов]] | [[Переменные из других скриптов]] | ||
− | + | <br>[[Set clipboard]] | |
− | + | <br>[[Set windowpos]] | |
− | + | <br>[[SetSelectedText]] | |
− | + | <br>[[Setwindowtext]] | |
== История развития == | == История развития == | ||
'''0.98 beta''' | '''0.98 beta''' | ||
− | + | <br>добавил переменные. | |
в имени переменной допустимы символы - ['0'..'9','A'..'z','А'..'я'], регистр не учитывается. | в имени переменной допустимы символы - ['0'..'9','A'..'z','А'..'я'], регистр не учитывается. | ||
отныне слово следующее за '#' считается именем переменной и заменяется ее значением, если оно было присвоено ранее. исключением является первое слово после команд set и for. переменные изменяются только при участии set и for, команда repeat использует значение, не изменяя его. | отныне слово следующее за '#' считается именем переменной и заменяется ее значением, если оно было присвоено ранее. исключением является первое слово после команд set и for. переменные изменяются только при участии set и for, команда repeat использует значение, не изменяя его. | ||
добавил команду 'set' - установка\добавление переменных | добавил команду 'set' - установка\добавление переменных | ||
− | Set $ | + | Set $<имя> <значение> или |
− | Set # | + | Set #<имя> <знач1> [<зн. оп.> <знач2>] |
между знаком операции и значениями должен быть разделитель. | между знаком операции и значениями должен быть разделитель. | ||
поддерживаются следующие операции: +, -, *, / | поддерживаются следующие операции: +, -, *, / | ||
Строка 119: | Строка 119: | ||
'''1.04 beta 2''' | '''1.04 beta 2''' | ||
− | + | <br>Добавил строковые переменные. Отныне символ '$' считается идентификатором строковой переменной | |
− | + | <br>Добавил возможность изменения кучи всякого полезного мусора в UO. | |
− | set | + | set <параметр> <значение> // где <параметр> есть одно из следующего: target, lastobjectid, lastobjecttype, lasttargetid, lasttargetx, lasttargety, lasttargetz, lasttargetkind, lastliftedid, lastskill, lastspell, laststatictype. |
'''1.05 beta 1''' | '''1.05 beta 1''' | ||
− | + | <br>Теперь можно использовать всякие извращенные формулы в команде set. переменные должны быть выделены пробелом. | |
set #q ((5+4)/(3+-2)* #e )-(2-(-5+9))*3 | set #q ((5+4)/(3+-2)* #e )-(2-(-5+9))*3 | ||
'''1.05 beta 3''' | '''1.05 beta 3''' | ||
− | + | <br>Добавил возможность использовать случайные числа в условных операторах и команде set. random <number> возвращает число в диапазоне от 0 до number-1 | |
set #a random 2 | set #a random 2 | ||
'''1.07 beta 4''' | '''1.07 beta 4''' | ||
− | + | <br>добавил возможность использовать переменные из параллельных скриптов, добавив к имени переменной номер скрипта через точку | |
set #i.2 5 | set #i.2 5 | ||
Добавил возможность использовать характеристики персонажа из параллельных скриптов, добавив к имени переменной номер скрипта через точку | Добавил возможность использовать характеристики персонажа из параллельных скриптов, добавив к имени переменной номер скрипта через точку | ||
Строка 138: | Строка 138: | ||
'''1.07 beta 5''' | '''1.07 beta 5''' | ||
− | + | <br>Добавил массивы. отныне символ процента '%' считается идентификатором массива. индексы массива указываются после имени в квадратных скобках '[' и ']'. размер массива равен максимальному использованному индексу. присваивание значений осуществляется каждому элементу индивидуально. элементы массива могут содержать как строки, так и числа. | |
допустимо ссылаться на массивы параллельных скриптов, указав после имени массива, через точку, номер скрипта. | допустимо ссылаться на массивы параллельных скриптов, указав после имени массива, через точку, номер скрипта. | ||
при указании только первого индекса в двумерном массиве, результатом будет строка из всех элементов второй размерности массива, соответствующих указанному индексу, и разделенных пробелом | при указании только первого индекса в двумерном массиве, результатом будет строка из всех элементов второй размерности массива, соответствующих указанному индексу, и разделенных пробелом | ||
Строка 147: | Строка 147: | ||
//left %arr [50] // клик левой кнопкой по координатам 544 800 | //left %arr [50] // клик левой кнопкой по координатам 544 800 | ||
! элементы массивов нельзя напрямую использовать в условных операторах | ! элементы массивов нельзя напрямую использовать в условных операторах | ||
− | //if charposx | + | //if charposx <> %arr [50 1] |
'''2.05''' | '''2.05''' | ||
− | + | <br>Добавил переменную delimiter, используется для разделения элементов массива. | |
set %a [1 1] 1 | set %a [1 1] 1 | ||
set %a [1 2] 2 | set %a [1 2] 2 | ||
Строка 162: | Строка 162: | ||
'''2.38''' | '''2.38''' | ||
− | + | <br>Исправил определение имени переменной в команде 'set'. | |
[[Категория:Работа с переменными]] | [[Категория:Работа с переменными]] |
Текущая версия на 11:14, 28 августа 2019
Описание
Запись значения в переменную и/или ее объявление.
Синтаксис
Привязка к окну: Нет.
Работа со свернутым окном: Да.
set #<имя> <значение1> [<зн. оп.> <значение2>] set $<имя> <значение> set %<имя> [элемент] <значение>
# - признак числовой переменной, может содержать только числа, позволяет выполнять математические операции.
$ - признак строковой переменной, может содержать любые символы.
% - признак массива (переменные сгруппированные под одним именем), может содержать любые символы.
<имя> - в имени переменной допустимы символы - ['0'..'9','A'..'z','А'..'я'], регистр не учитывается.
<значение> - может содержать цифры, буквы, символы. Так же может быть результатом работы функции, например, set #var random(10).
При двух или более запущенных скриптах вы можете обращаться к переменным, определенным в других скриптах пилота.
#i.2 - обращаемся к переменной #i из скрипта, находящегося в окне номер 2, при этом скрипт 2 должен работать или быть на паузе. $i.5 - обращаемся к строковой переменной из 5 скрипта. %arr.5 [1 3] - обращаемся к элементу массива из 5 скрипта.
Примеры
// Пример 1 set #c 5 //записать константное число в переменную msg #c End_script
// Пример 2 set $a qwerty //записать константную строку в переменную msg $a End_script
// Пример 3 set #mana #mana + 1 //записать результат арифметической операции в переменную, в данном случае инкрементация msg #mana
// Пример 4 set #b Findcolor ( #xx1 #yy1 #xx2 #yy2 1 1 3355443 %arr 2) //записать возвращаемые данные из функции в переменную
// Пример 5 //одномерный массив set %arr [1] 123 set %arr [2] 432 set %arr [3] 687 msg %arr [1] %arr [2] %arr [3] End_script
// Пример 6 //двумерный массив set %arr [1 1] 123 set %arr [1 2] 432 set %arr [2 1] 687 set %arr [2 2] 831 msg %arr [1 1] %arr [1 2] msg %arr [2 1] %arr [2 2] End_script
// Пример 7 //сложение числовых переменных set #a 10 set #b 13 set #c #a + #b msg #c End_script
// Пример 8 //Получить псевдослучайное число set #a random (10) //в данном случае от 0 до 9 msg #a
// Пример 9 //получение переменной из другого скрипта (при этом скрипт из которого надо получить переменную должен работать) set #a #b.2 //присвоить переменной #a значение переменной #b из 2 скрипта set $a #b.2 //для строковой переменной set %arr [1 1] #b.2 //для массива set %arr [1 2] %arr.2 [1 1] //присвоить элементу массива значение элемента массива из 2 скрипта
// Пример 10 set #abc 10 / 3 //при нецелом делении дробная часть будет отброшена. msg #abc End_script
// Пример 11 // Так как числовые переменные могут содержать только целые числа, то результат нужно округлять // Корень из 137 (11,7): set #a round(sqrt(137)) // вычислить корень и округлить до ближайшего целого: 12 msg #a set #a floor(sqrt(137)) // вычислить корень и округлить до ближайшего целого, которое меньше 11,7: 11 msg #a //если нужен точный результат, то используйте строковую переменную //но учтите, чтобы в дальнейшем использовать эту переменную, её всё равно придётся округлить set $a sqrt(137) msg $a End_script
Смотрите также
Переменные из других скриптов
Set clipboard
Set windowpos
SetSelectedText
Setwindowtext
История развития
0.98 beta
добавил переменные.
в имени переменной допустимы символы - ['0'..'9','A'..'z','А'..'я'], регистр не учитывается.
отныне слово следующее за '#' считается именем переменной и заменяется ее значением, если оно было присвоено ранее. исключением является первое слово после команд set и for. переменные изменяются только при участии set и for, команда repeat использует значение, не изменяя его.
добавил команду 'set' - установка\добавление переменных Set $<имя> <значение> или Set #<имя> <знач1> [<зн. оп.> <знач2>] между знаком операции и значениями должен быть разделитель. поддерживаются следующие операции: +, -, *, / при делении результат округляется к ближайшему целому.
Set #i #i + 1 Set $s test string
1.04 beta 2
Добавил строковые переменные. Отныне символ '$' считается идентификатором строковой переменной
Добавил возможность изменения кучи всякого полезного мусора в UO.
set <параметр> <значение> // где <параметр> есть одно из следующего: target, lastobjectid, lastobjecttype, lasttargetid, lasttargetx, lasttargety, lasttargetz, lasttargetkind, lastliftedid, lastskill, lastspell, laststatictype.
1.05 beta 1
Теперь можно использовать всякие извращенные формулы в команде set. переменные должны быть выделены пробелом.
set #q ((5+4)/(3+-2)* #e )-(2-(-5+9))*3
1.05 beta 3
Добавил возможность использовать случайные числа в условных операторах и команде set. random <number> возвращает число в диапазоне от 0 до number-1
set #a random 2
1.07 beta 4
добавил возможность использовать переменные из параллельных скриптов, добавив к имени переменной номер скрипта через точку
set #i.2 5
Добавил возможность использовать характеристики персонажа из параллельных скриптов, добавив к имени переменной номер скрипта через точку
set lasttargetid.1 7
1.07 beta 5
Добавил массивы. отныне символ процента '%' считается идентификатором массива. индексы массива указываются после имени в квадратных скобках '[' и ']'. размер массива равен максимальному использованному индексу. присваивание значений осуществляется каждому элементу индивидуально. элементы массива могут содержать как строки, так и числа.
допустимо ссылаться на массивы параллельных скриптов, указав после имени массива, через точку, номер скрипта.
при указании только первого индекса в двумерном массиве, результатом будет строка из всех элементов второй размерности массива, соответствующих указанному индексу, и разделенных пробелом
//set %ar [4] тест // одномерный массив на 4 элемента
//set %arr [50 1] 544
//set %arr [50 2] 800 // двумерный массив на 50 раз по 2 элемента
//set %ar.2 [5] // одномерный массив в параллельном скрипте
//left %arr [50] // клик левой кнопкой по координатам 544 800
! элементы массивов нельзя напрямую использовать в условных операторах
//if charposx <> %arr [50 1]
2.05
Добавил переменную delimiter, используется для разделения элементов массива.
set %a [1 1] 1 set %a [1 2] 2 set delimiter '+' msg %a [1] set #n %a [1] msg #n set delimiter set #n %a [1] msg #n
2.38
Исправил определение имени переменной в команде 'set'.