|
|
|
Полезные Советы, Практическое применение. Настройка запуска. |
|
|
Sanny |
16.4.2011, 1:23
|
Registred
Сообщений: 9
Регистрация: 18.2.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.460
Возраст: 21
|
В какой-то из тем был вопрос типа "а можно ли скрипт Пилота сделать EXE-шником"... Нет, естественно нельзя, но можно сделать бат-файл который будет запускать нужный вам скрипт и мало-ли что еще вы там пропишите, а потом с помощью Bat-to-exe конвертера который можна загрузить тут БЕCПЛАТНО! www.battoexeconverter.com/В общем прикольная прога, думаю можно добавить к полезным программам... (IMG: style_emoticons/default/cool.gif) battoexeconverter является аналогом Quick Batch File Compiler Quick Batch File Compiler компилит батники в ехе. запускаются без окна консоли, снятия фокуса с окна и т.д. С точным фунционалом www.battoexeconverter.com не знаком, т.к. наткнулся на описание пары багов в нем(скорее отсутствие поддержки некоторых фич батников). Указывалось на то, что в Quick Batch File Compiler их нет.
|
|
|
|
_LESTAT_ |
17.4.2011, 19:50
|
Apprentice
Сообщений: 103
Регистрация: 12.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.512
Возраст: 25
|
Вот и лопнуло мое терпение, надоело мучаться с тем, что сложно определить работает ли определенный скрипт или не запущен или на паузе, и после очередной смерти моего героя в игре из-за вылетевшего скрипта, точней вылета скрипт который проверяет работает ли боевой скрипт... (IMG: style_emoticons/default/smile.gif) написал скрипт который проверяет статус первых 10 скриптов в пилоте, по цвету циферки. Что делает скрипт: 1)Создает одномерный массив %ar[Номер скрипта] Статус, со статусом первых 10 скриптов. Выдает: 1 Если скрипт не запущен 2 Если скрипт работает 3 Если скрипт на паузе Заметьте Начинает проверять считать с нулевого скрипта и отправляет ответ в первую ячейку массива. Пример проверяем что третий скрипт запущен. Цитата set #te %ar[4] if #te = 2 //Действия если скрипт работает end_if
2)Так же скрипт автоматически находит и закрывает всплывающие информационные окна Пилота, такие окна обычно выскакивают при вылете скриптов. 3)Если не хотите прописывать реакции на разные статусы скриптов , прямо в этом скрипте, массив со статусами скриптов сохраняется в файл, потом при желании его можно загрузить в других скриптах и дальше проводить действия уже в них. Перед использованием проверьте следующие настройки пилота1)Для того чтобы он работал, окно пилота(а именно кнопки скриптов) должно быть видимо. Хотя я сделал чтобы скрипт сам возвращался из свернутого режима, хотя лучше все же включить опцию "Располагать поверх всех окон" и отметить галочкой основное окно пилота. 2)В настройках должен быть отключен показ относительных или абсолютных координат курсора, потому что название окна пилота было постоянным, я не смог сделать поиск окна по части названия окна, из-за этого такую полезную функцию как показ относительных координат курсора пришлось отключить, если кто поможет решить эту проблему, буду благодарен. 3)В настройках пилота должна быть включены опции " Отображать кнопки запуска и остановки скриптов" и "Отображать запущенные скрипты" Сам скрипт
:HldSeach set #wind findwindow (UoPilot v2.18.8 WK) //set windowpos 0 0 242 144 #wind //расположение и размеры окна set #var getwindow (#wind CHILD) set #var getwindow (#var NEXT) set #var getwindow (#var CHILD) set #var getwindow (#var CHILD) set #var getwindow (#var NEXT) set #var getwindow (#var NEXT) set #var getwindow (#var NEXT) set #var getwindow (#var NEXT) set workwindow #var :NewCikl if_not 7, 16 54825 //Поиск и Проверка виднмости окна пилота showwindow #wind goto HldSeach else //Если окно найдено, проверяем цвета циферок скриптов //=== 0 === if 8, 7 255 set %ar[1] 3 end_if if 8, 7 54825 set %ar[1] 2 end_if if 8, 7 0 set %ar[1] 1 end_if //=== 1 === if 30, 7 255 set %ar[2] 3 end_if if 30, 7 54825 set %ar[2] 2 end_if if 30, 7 0 set %ar[2] 1 end_if //=== 2 === if 51, 5 255 set %ar[3] 3 end_if if 51, 5 54825 set %ar[3] 2 end_if if 51, 5 0 set %ar[3] 1 end_if //=== 3 === if 69, 5 255 set %ar[4] 3 end_if if 69, 5 54825 set %ar[4] 2 end_if if 69, 5 0 set %ar[4] 1 end_if //=== 4 === if 88, 5 255 set %ar[5] 3 end_if if 88, 5 54825 set %ar[5] 2 end_if if 88, 5 0 set %ar[5] 1 end_if //=== 5 === if 104, 5 255 set %ar[6] 3 end_if if 104, 5 54825 set %ar[6] 2 end_if if 104, 5 0 set %ar[6] 1 end_if //=== 6 === if 123, 5 255 set %ar[7] 3 end_if if 123, 5 54825 set %ar[7] 2 end_if if 123, 5 0 set %ar[7] 1 end_if //=== 7 === if 142, 10 255 set %ar[8] 3 end_if if 142, 10 54825 set %ar[8] 2 end_if if 142, 10 0 set %ar[8] 1 end_if //=== 8 === if 164, 7 255 set %ar[9] 3 end_if if 164, 7 54825 set %ar[9] 2 end_if if 164, 7 0 set %ar[9] 1 end_if //=== 9 === if 183, 7 255 set %ar[10] 3 end_if if 183, 7 54825 set %ar[10] 2 end_if if 183, 7 0 set %ar[10] 1 end_if save_array %ar C:\Путь_куда_сохранять\tempScriptStatus.txt //сохраняем статс скриптов в файл end_if set #em findwindow (UoPilot Message ) //Поиск информационных окон, об ошибках в скриптах if #em > 0 showwindow #em sendex {Enter} //@{F4} //Посылаем Enter в такие окна end_if set #em 0 goto NewCikl
p.s. это крупное упущение автора пилота - невозможность получать статус скриптов, другими скриптами, одной командой, надеюсь в будущих версиях пилота если они будут, введут такую команду и надобность в таких вот скриптах отпадет, а скрипты в пилоте будут работать стабильнее.
|
|
|
|
WKnight |
19.7.2011, 12:36
|
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688
|
Цитата(_LESTAT_ @ 9.4.2011, 10:51) жаль что впилоте нет нужной команды для простого клика без указания координат, тоесть была бы команда просто left, и тогда бы клик проходил там, где сейчас мышь по верхнему окну, это бы облегчило нужную нам задачу в разы и сократило количество строк и шанс возникновения ошибки, надеюсь в будущих версиях пилота если они будут, добавят такую команду, или же добавят на прямую возможность кликать на отрицательных координах, на окне под курсором. есть ли смысл из-за конструкции из двух строк вводить кучу левых команд? get mouse_pos #x #y abs kleft #x #y abs
|
|
|
|
WKnight |
19.7.2011, 12:49
|
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688
|
Цитата А как бы поподробнее узнать об основном и альтернативном определении цвета? основной - getpixel, альиернативный - скриншот. в остальном ничем не отличаются. Цитата в след.версии" - это уже в 2.19 или еще нет? нет, это следующая. выпущу, когда удастся проверить в дебагере то что написано на коленке. Цитата а что должно возвращаться при неальтернативном определении цвета, если цвет не найден? это не "не найден", а именно ошибка. в неальтернативном такого быть не может в принципе. -1 ошибка преобразования параметров, общая -2 ошибка синтаксиса, конкретно в скобках, общая -3 ошибка снятия скриншота, только альтернатив
|
|
|
|
WKnight |
19.7.2011, 17:19
|
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688
|
Если именно "не найдено", то ноль, независимо от способа. оно в принципе и так 0 возвращало, но к нему приписывались три минуса - часть отладочной информации об ошибке, в результате чего число переставало быть числом... ошибка -3 нестабильная, при повторении одних и тех же действий может появиться а может и нет. при ее появлении ряд шагов проделываю заново, но если несколько раз подряд выскочит, то может попасть в результат. в текущей версии количество повторени увеличино почти вдвое, плюс еще кое какая модернизация кода, чтоб минимизировать ее просачивание в результат. результат '0---' иногда возвращался только в альтернативном способе. в обычном нет такого кода, он там ненужен. сейчас и в альтернативном нет (IMG: style_emoticons/default/smile.gif) Сообщение отредактировал WKnight - 19.7.2011, 17:21
|
|
|
|
|
|
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|