Vayy |
Отправлено: 17 Марта, 2014 - 20:07:47
|
Прохожий
Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2014
Репутация: 0
|
Добрый вечер. Написал скриптик по материалам с сайта и форума. Но скорость работы его оставляет желать лучшего - задержки бывают в секундах, особенно после 4-5 прогона скрипта. Что посоветуете?
ПС. Пробовал компилировать - помогло, но не очень.
ПСС. Название окна скрыл из личных побуждений
PHP:win w=window ("Название окна", "Игра", -1);//Указатель на окно игры
int Image_0[42][1];//Масив, в котором хранится изображение искомого моба
int Image_skilN[21][24];
int Image_HPmob[5][18];
loadimage (#Image_0[0][0], "D:\Image_0.bmp");//Загрузка изображения с .bmp файла в память
loadimage (#Image_skilN[0][0], "D:\Image_skilN.bmp");
loadimage (#Image_HPmob[0][0], "D:\Image_HPmob.bmp");
int PosX_0[1];int PosY_0[1];//Переменные, в которые записаны будут координаты X и Y левого верхнего угла найденой картинки моба
int PosX_skilN[1];int PosY_skilN[1];
int PosX_HPmob[1];int PosY_HPmob[1];
poisk:
if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 1594, 872, 0, 0, 0, 0, 0, 0, 20, -1, w)==1) // Функция поиска изображения в окне игры
{
int x1,y1;
x1 = PosX_0[0]+imagewidth(#Image_0[0][0])/2;
y1 = PosY_0[0]+imageheight(#Image_0[0][0])/2;
mouse (LEFT, x1, y1+30, 1, w);
pause(100);
mouse (LEFT, x1, y1+30, 1, w);
pause(1000);
goto farm; //К фарму моба
}
else
{
lev:
keydown('a');//нажать влево
sleep(500);
keyup('a');//отпустить влево
goto poisk;
}
farm:
if (findimage(1, #Image_skilN[0][0], 0, #PosX_skilN[0], #PosY_skilN[0], 0, 0, 1594, 872, 0, 0, 0, 0, 0, 0, 0, -1, w)==1) // Функция поиска изображения в окне игры
{
if (findimage(1, #Image_HPmob[0][0], 0, #PosX_HPmob[0], #PosY_HPmob[0], 0, 0, 1594, 872, 0, 0, 0, 0, 0, 0, 30, -1, w)==1)
{
sleep(50);
key(51); //Бьем моба, пока хп не упадет
sleep(2000);
goto farm;
}
else
{
sleep(100);
key(70); //собираем дроп
goto poisk;
}
}
else
{
goto lev; //К повороту влево для поиска моба
} |
|
|
RussianRemaker |
Отправлено: 18 Марта, 2014 - 18:07:16
|
Наблюдатель
Покинул форум
Сообщений всего: 26
Дата рег-ции: Февр. 2014
Репутация: 0
|
История наблюдений использования Кибор (личный опыт):
pause и sleep замедляют выполнение скрипта - это априори, но они во многих случаях бывают очень нужны и от этого никуда не деться.
Можно скорректировать скрипт так, чтобы задержки не были излишними.
findimage по любому тормозит, если указана большая территория для поиска с условиями.
С этим тоже можно совладать, если грамотно понизить область поиска и изменить условия.
В качестве альтернативы можно использовать циклы с вызовом функций, где условия обрабатываются по минимальной схеме.
PS:
Цитата: Название окна скрыл
Патологоанатом: - Пациент был бы жив, если бы у него был паспорт...
Интерн: - ???
... (Отобразить)Патологоанатом: - Доктор дал ему не то лекарство. Это лекарство вызвало летальный исход.
Интерн: - ???
Патологоанатом: - По паспорту можно было найти амбулаторную карту и узнать историю болезни...
Интерн: - ???
Патологоанатом: - Не парься, неси закуску, доктор ужа в курсе.
Интерн молча отправился в магазин.
PSS:
Я не доктор, я только учусь... (...скальпель, тампон, спирт, огурец...) |
|
|
HACMOPK |
Отправлено: 18 Марта, 2014 - 19:15:50
|
Участник
Покинул форум
Сообщений всего: 84
Дата рег-ции: Май 2013
Репутация: 4
|
1.Рекомендуется использовать.
sleep <500
pause >500
2.Для красоты использовать массив подробнее смотри тут на скорость не знаю влияет или нет.
3. Вот Это (Отобразить)mouse (LEFT, x1, y1+30, 1, w);
pause(100);
mouse (LEFT, x1, y1+30, 1, w); так и надо или можно mousedbl() двойной клик.
4.А в остальном.
Патологоанатом: - Пациент был бы жив, если бы у него был паспорт...
Интерн: - ??? ))) |
|
|
Vayy |
Отправлено: 18 Марта, 2014 - 19:17:12
|
Прохожий
Покинул форум
Сообщений всего: 9
Дата рег-ции: Март 2014
Репутация: 0
|
Спасибо за советы - как возможно уже снизил всё, что Вы описали!
Ещё один вопрос. Вот это:
CODE:int Image_0[42][1];//Масив, в котором хранится изображение искомого моба
int Image_skilN[21][24];
int Image_HPmob[5][18];
loadimage (#Image_0[0][0], "D:\Image_0.bmp");//Загрузка изображения с .bmp файла в память
loadimage (#Image_skilN[0][0], "D:\Image_skilN.bmp");
loadimage (#Image_HPmob[0][0], "D:\Image_HPmob.bmp");
int PosX_0[1];int PosY_0[1];//Переменные, в которые записаны будут координаты X и Y левого верхнего угла найденой картинки моба
int PosX_skilN[1];int PosY_skilN[1];
int PosX_HPmob[1];int PosY_HPmob[1];
Не сильно грузят процесс? А то я добавил парочку Теперь вообще по 5 секунд задержки.
(Добавление)
RussianRemaker пишет: Патологоанатом: - Пациент был бы жив, если бы у него был паспорт...
Интерн: - ???
... (Отобразить)
PSS:
Я не доктор, я только учусь... (...скальпель, тампон, спирт, огурец...)
HACMOPK пишет: 4.А в остальном.
Патологоанатом: - Пациент был бы жив, если бы у него был паспорт...
Интерн: - ??? )))
убедили CODE:win w=window ("- ArcheAge - Mar 4 2014 (12:12:09) Àíòàëëîí", "ArcheAge", -1);
Мне не жалко |
|
|
|