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

> Вопрос по массивам и окнам
sel
сообщение 13.11.2018, 15:08
Сообщение #1


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Вопрос в следующем, мне необходимо отследить количество запущенных окон игры, скрипт у меня ходит между окнами и выполняет разные задачи, ходит в цикле for.

Выглядит примерно так:

set %handle FindWindow ("Игра")
set #f 1
while (#f = 1)
for #i 1 size(%handle)
...
скрипт
...
end_for
end_while

Иногда случается так, что окно с игрой крашится с ошибкой, и скрипт заводит обратно вылетевшее окно с новым хендлом, в этом основная загвоздка, если бы не это обстоятельство то я бы мог записывать в массив %handle [#i 3] допустим цифру 0 если окно вылетело и проводить в цикле ещё один цикл for который бы складывал значения в столбце %handle [#i 3] и если оно будет равняться 0 то скрипт начнёт заводить все окна, но из за краша окон добавляется новая строчка в массиве с новым хендлом.

Задача - определить, что вылетели все окна игры, есть идеи как это можно сделать?
Заранее спасибо за ответ.

p.s. определить какое окно вылетело с ошибкой трудно, может вылететь абсолютно любое, всё что есть это хендл окна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
sel
сообщение 23.12.2018, 4:28
Сообщение #2


**

Neophyte
Сообщений: 32
Регистрация: 4.7.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.986
Возраст: 27



Итак, у меня новый затуп, пытаюсь красиво сохранять массив, но ничего не выходит, есть какие то способы автоматически скриптом генерировать красивый файл?

Ближе к делу, вот мой скрипт:


Код
set %handle FindWindow ("_Игра")   // найти все окна с именем
set linedelay 40
init_arr %list (1 1) персонаж1 персонаж2 перс3 перс4
    set %cash [1 1] Nickname:
    set %cash [1 2] now money:
    set %cash [1 3] past money:
    set %cash [1 4] profit:
    set %cash [1 6] Summary:
    set #handlesize size(%handle)
set #listsize size(%list)
for #i 1 #handlesize
    set #resultat
    set workwindow %handle [#i 1]   // сделать окно рабочим
    ShowWindow %handle [#i 1] TOP
    set $namewimdow GetWindowtext (workwindow)
    set #sizename size ($namewimdow)  // удалялка префикса _ИГРА из названия окна
    set #sizename #sizename - 2
    set $namewimdow Delete($namewimdow #sizename 3) // не обращайте внимания что числа немного не сходятся
    set #name indexOf (%list noabs ($namewimdow) )
    start_script 16 wait // на этой вкладке у меня скрипт из вики "Поиск ближайшего числа в массиве"
    load_array %oldcash ДЕНЬГИ.txt
    set #q #name + 1
    set %cash [#q 1]  %list [#name 1] // 1 столбик - имя персонажа
    set %cash [#q 2] #resultat        // записываем текущие деньги персонажа
    set %cash [#q 4] %oldcash [#q 2] // Загружаем из файла старые деньги
    set %cash [#q 6] %cash [#q 2] - %oldcash [#q 2] // показываем величину нафармленного
    set #allmoney  #allmoney + #resultat // собираем здесь нафармленную сумму всех персонажей
end_for
set %cash [2 8] #allmoney
save_array %cash ДЕНЬГИ.txt
end_script


Переменную #resultat я получаю из скрипта на 16 вкладке, в результате у меня получается вот такой вот файл:

Nickname: now money: past money: profit: Summary:
Персонаж1 3477782 3477782 0 10320006
Персонаж2 4349346 4348499 847
Перс3 2174866 2174866 0
Перс4 318012 318012 0

Я так понимаю, что вся проблема в количестве символов в нике, есть способ сделать ровное форматирование, что бы каждый столбик шёл в ряд? Получившийся файл так же прилагаю.


Прикрепленные файлы
Прикрепленный файл  деньги.txt ( 191 байт ) Кол-во скачиваний: 110
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
sel   Вопрос по массивам и окнам   13.11.2018, 15:08
sutra   Эту строку помести в while если тормозов не будет...   13.11.2018, 15:20
sutra   После анализа массива ненужный элемент можно удали...   13.11.2018, 17:46
sel   Есть где то примеры анализа массивов? Массив приме...   13.11.2018, 18:05
sutra   Я не совсем понял что именно надо. Смысл примерно ...   13.11.2018, 18:27
sutra   Можно отсортировать оба массива, тогда наверное ещ...   13.11.2018, 18:55
sel   Можно отсортировать оба массива, тогда наверное е...   13.11.2018, 19:39
DarkMaster   Его выдает винда при создании окна и он никак не ...   13.11.2018, 20:17
sutra   Опиши подробнее. Скрипт заводит или игра сама соз...   13.11.2018, 23:00
sutra   Ты можешь присвоить окну свой порядковый номер se...   13.11.2018, 23:11
cirus   Скобки не нужны. Тоже самое: set %handleold %han...   14.11.2018, 2:23
sel   Придумал более интересный способ определения вылет...   15.12.2018, 1:34
cirus   Откуда это? Запустить любое количество окон, в и...   15.12.2018, 2:40
sutra   Видимо проблема определения вылетевших окон не реш...   15.12.2018, 4:26
sel   В общем написал преемлемый для меня вариант(есть с...   17.12.2018, 16:16
sutra   Количество окон игры должно быть постоянным? или м...   15.12.2018, 4:59
sutra   Про ошибку конкретного примера кода уже более опыт...   15.12.2018, 5:14
DarkMaster   раньше пилотовский синтаксис отказывался восприни...   15.12.2018, 5:47
sutra   Ну на 100% не вникал, но логика правильная, если в...   17.12.2018, 18:22
DarkMaster   [code]local write, writeIndent, writers, refCount;...   23.12.2018, 5:36
cirus   Дописывать пробелы в конец строки, чтобы все были...   23.12.2018, 5:39
sutra   Я бы порекомендовал использовать табуляцию. Прост...   23.12.2018, 13:10
DarkMaster   Проблема в том, что текстовые редакторы табуляцию...   23.12.2018, 13:41
sutra   Да вариантов полно, табуляция - это просто выравни...   23.12.2018, 14:08
sutra   Если конечно установлен эксель. Выбираешь вкладку ...   23.12.2018, 14:33
sel   Ииии, мне снова нужна ваша помощь друзья:) Проблем...   29.12.2018, 0:48
cirus   В папке с пилотом Scripts\Backup. Ищите рабо...   29.12.2018, 1:22
sutra   Ну если быстро (чисто для Вашего случая) не вникая...   29.12.2018, 3:29
sel   По прежнему сталкиваюсь всё с той же проблемой, ес...   28.2.2019, 0:26
cirus   Возможно в этом проблема. Попробуйте не использов...   28.2.2019, 1:34
sutra   Тоже хотел сказать про это, но и это не главное. И...   28.2.2019, 1:55
sel   Я вроде даже где-то 100% рабочий пример давал с ...   28.2.2019, 2:58
sutra   Подпрограмма в Пилоте - это собственно goto на мет...   28.2.2019, 2:27
sutra   findwindow ищет окна в том порядке, в котором они ...   28.2.2019, 2:47
cirus   2гб и вылет.   28.2.2019, 3:04
sutra   Ну хоть что-то, я тоже думал на эту тему. Всё-таки...   28.2.2019, 3:32
sel   Ну хоть что-то, я тоже думал на эту тему. Всё-так...   5.3.2019, 10:10
sutra   Голову на отсечение конечно давать не буду. Но иск...   28.2.2019, 3:42
sutra   Вот без всякого хвастовства говорю (хотя гордость ...   28.2.2019, 3:55
DarkMaster   gosub работает полностью корректно с циклами при ...   28.2.2019, 14:00
sel   Возникло несколько вопросов: 1. Можно ли команду l...   4.5.2019, 13:45
cirus   Нет, только txt.   4.5.2019, 14:06


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

 

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