|
|
|
-Счётчик, -Lua- |
|
|
cirus |
21.6.2020, 1:29
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26540
Пользователь №: 16.971
Возраст: 29
|
Цитата workwindow (W[i][1], W[i][2], W[i][3], W[i][4], W[i][5], W[i][6]) Что это за бред. Можно только одно окно сделать рабочим. Код В луа индексация массива начинается с 1. Цитата как проверить в этом же цикле существование каждого из них? Код --lua local W = {111, 222, nil, 444}
for i=1, #W do if W[i] then log (W[i]) end end
|
|
|
|
Levo222 |
21.6.2020, 5:46
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 21.6.2020, 1:45) Вместо log использовать move.
Почему для Код А так мы координаты передавали или # переменной, чё-т оя не понял? move годится А workwindow нет? Так то одновременно и мышь не может в 2-х точках находится, как и workwindow быть привязанным к 2-м окнам. Цитата(cirus @ 21.6.2020, 5:47) то в функцию будете передавать 50 параметров?
А что с ней от этого будет? С функцией? Она же неживая) Вытерпит и 100 параметров
|
|
|
|
Levo222 |
21.6.2020, 9:51
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Вобщем ошибка такая: 43: Код attemp to compare number with table А с этим я разобрался. Правда у меня цикл счетчика на 3 круга проверяет. Не могу понять почему так и почему-то Код не работаетНу хоть left работает. Х с ним
|
|
|
|
Levo222 |
21.6.2020, 10:53
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Вот это вот не работает почему-то? Исходный код local w1 = findwindow("W1") local w2 = findwindow("W2") local w3 = findwindow("W3") local w4 = findwindow("W4") local w5 = findwindow("W5") local w6 = findwindow("W6") local W = {w1, w2, w3, w4, w5, w6} local Wcount = {0, 0, 0, 0, 0, 0} function ActivW(x, y) return(color (x, y)) end -- (317, 81) == 0 --Другие окна alarm ("Начинаю процедуру выхода.wav") for k=1, #W do if W[k] then log (W[k]) while Wcount[e] == 0 do for e=0, 6 do hint ("Выхожу") workwindow (W[e][1]) if ActivW(317, 81) == 0 then --окно активно --Глушим его send217 ("5") alarm ("выхожу.wav") else Wcount[e] = 1 -- записываем если неактивно hint ("Окно неактивно") end end end else msg ("Окно W[e]) не найденоВозможно оно потеряноХотите вернуть его состояние?") --и присваеваем потерявшемуся окну 1 в счетчике, чтобы его больше не искало wait (200) Wcount[e] = 1 end end end Сообщение отредактировал Fors1k - 22.6.2020, 19:35
|
|
|
|
Levo222 |
21.6.2020, 15:45
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 21.6.2020, 19:26) Опишите что вообще надо сделать. Или предлагаете по коду с ошибками догадываться?
Так я уже тут 10 раз писал. Нужно пачку окон закрыть если они существуют вообще, но в цикле перебора их имён Эм. ну ладно, а так будет работать? Исходный код local w1 = findwindow("W1") local w2 = findwindow("W2") local w3 = findwindow("W3") local w4 = findwindow("W4") local w5 = findwindow("W5") local w6 = findwindow("W6") local W = {w1, w2, w3, w4, w5, w6} local Wcount = {0, 0, 0, 0, 0, 0} function ActivW(x, y) return(color (x, y)) end -- (317, 81) == 0 --если окна активны alarm ("выход.wav") for k=1, #W do --цикл для каждого окна из таблицы W if W[k] then -- если каждое из них существует log (W[k]) for e=0, 6 do --то перебираем каждое из них и закрываем while Wcount[e] == 0 do --пока какое-то окно из W активно hint ("Выхожу") workwindow (W[e][1]) if ActivW(317, 81) == 0 then --если окно активно --Глушим его send217 ("5") alarm ("выхожу.wav") else Wcount[e] = 1 -- записываем что неактивно hint ("Окно неактивно") end end end else -- если окно не найдено msg ("Окно W[e]) не найденоВозможно оно потеряноХотите вернуть его состояние?") --и присваеваем потерявшемуся окну 1 в счетчике, чтобы его больше не искало wait (200) Wcount[e] = 1 end end end Я конечно могу на каждое окно писать 20+ строк закрытия, но чёт мне кажется так покомпактнее будет А зачем вообще использовать for в таком случае? Если можно использовать if и бесконечный цикл внутри него на проверку истинности этого if?А счётчик же нужен... Сообщение отредактировал Fors1k - 22.6.2020, 19:35
|
|
|
|
Levo222 |
21.6.2020, 17:09
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 21.6.2020, 20:39) Зачем? Findwindow возвращает массив, размер которого известен.
То есть мне что-то выше поставить? Вот так чтоли? Код local W = {w1, w2, w3, w4, w5, w6} local Wcount = {0, 0, 0, 0, 0, 0} local w1 = findwindow("W1") local w2 = findwindow("W2") local w3 = findwindow("W3") local w4 = findwindow("W4") local w5 = findwindow("W5") local w6 = findwindow("W6")
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|