Здравствуйте, гость ( Вход | Регистрация )

> Создаем плавающую переменную set: #A1 #A2 ... #A(#i)
FREEON
сообщение 30.8.2019, 0:33
Сообщение #1


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1318
Пользователь №: 18.346
Возраст: 25



Как скриптом создать имя плавающей переменной и затем вывести ее в лог?
Код

for #i 1 5
    set #a(#i) #i
    log #a(#i)
end_for
log #a(4) //вывести содержание переменной из середины
end_script

и при выдаче в лог нужную переменную нам не выдает. лог:
Цитата
1(1)
2(2)
3(3)
4(4)
5(5)
5(4)

с массивом же норм работает и можно обратиться к нужному имени
Код

for #i 1 5
    init_arr %a(#i) #i
    log %a(#i) [1]
end_for
log %a(4) [1]
end_script

лог:
Цитата
1
2
3
4
5
4

но при попытке представить массив в качестве переменной set #a(#i) %a(#i)[1] не получается и обратиться к ней тоже не выходит
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Fors1k
сообщение 30.8.2019, 1:57
Сообщение #2


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2383
Пользователь №: 18.746



Что понимается под плавающей переменной?
Какая именно задача?
Что должны увидеть в логе?
Что значит представить массив в качестве переменной? "set #a(#i) %a(#i)[1]" В этой записи %a(#i)[1] - это уже и есть переменная (ячейка массива итой строки, первого столбца).


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 30.8.2019, 12:24
Сообщение #3


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1318
Пользователь №: 18.346
Возраст: 25



Цитата(Fors1k @ 30.8.2019, 1:57) *

Что понимается под плавающей переменной?
Какая именно задача?
Что должны увидеть в логе?
Что значит представить массив в качестве переменной? "set #a(#i) %a(#i)[1]" В этой записи %a(#i)[1] - это уже и есть переменная (ячейка массива итой строки, первого столбца).

По сути это генерация кода для пилота самим же пилотом. Например сделали поиск объектов и нам выдало несколько результатов дабы не писать объект1 имеет такие-то параметры объект2 имеет такие параметры объект3 имеет такие параметры, мы скриптом по размеру результа поиска присваиваем имена a1 a2 a3 самим пилотом и запоминаем данные.
Пример поиска объектов выдачи им имен и запоминания позиции и затем фильтр по нужным параметрам и затем действие в лучшей для нас позиции
Код

log clear
log mode compact
set #poisk findimage (1023, 34 1077, 50 (D:\_UOPilot\newimage\astro.bmp) %arr 2 80 -1) //поиск
for #i 1 size(%arr)
if  #poisk > 0
    set #sx (%arr[#i 1] - 5)      //координаты для анализа объекта
    set #sy (%arr[#i 2] + 10)
    set #ex (%arr[#i 1] + 12)
    set #ey (%arr[#i 2] + 25)
    //--где будет действие
    set #x %arr[#i 1] + 0
    set #y %arr[#i 2] + 0
    log #x #y
    init_arr %x(#i) #x [1]  //присваеваем уникальное имя и задаем коорд.
    init_arr %y(#i) #y [1]
    //log массив %x(#i)[1] %y(#i)[1]
    //log #sx #sy #ex #ey
    //move  #sx #sy   //обл поиска
    //wait 100
    //move #ex #ey    //конец обл поиска
    set $path "D:\_UOPilot\newimage\ras\"  //картинки для выбора лучшего варианта
    set delimiter ' '
    dir (%image $path *.bmp*)             //поиск картинок в папке и загрузка их в массив
    //log В папке найдено: size(%image) картинок
    for #j 1 size(%image)
        set #v findimage(#sx #sy #ex #ey (%image [#j 1]) %a) //поиск лучшего объекта
        //log поиск в #sx #sy #ex #ey
        if  #v > 0
            //log Найдена картинка %image [#j 3]
            init_arr %b(#i) %image [#j 3] //присвоим параметру отсева уникальное имя
            log %b(#i) [1]
            break
        else
            //log нет цифр
        end_if
    end_for
end_if
end_for
set delimiter
//log %b(1)[1]%b(2)[1]%b(3)[1]
set $p %b(1)[1]%b(2)[1]%b(3)[1]
set $m minx(minx(%b))        //отсев нужного значения
log $m
set #n posex($m $p)                //позиция значения в масиве
log поз #n
for #i 1 size(%arr)         //действие
if #i = #n                  //когда позиция и значение совпадают выполнить действие
    log #i = #n
    move %x(#i)[1] %y(#i)[1]  //действие в лучшей точке в нужном месте
end_if
end_for
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 24.4.2024, 8:17
Designed by Nickostyle