Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Alex_nub

Pages: [1]
1
Решил не создавать отдельную тему: проблема тоже с GETSCREEN, и с видимостью картинки для кликера в оконном/полноэкранном режимах.
Сейчас тестирую Кликерман в игре Batlestar Galactica (браузер Опера). И выяснилось, что кликер видит и захватывает картинку ТОЛЬКО в оконном режиме БЕЗ привязки к окну. Во всех остальных вариантах (оконный с привязкой, полноэкранный с/без привязки) - только черный экран (хотя идентификатор окна и размер остаётся тот же, что и в оконном режиме "развёрнутом").
В связи с этим возникло два вопроса:
1) может ли такое быть, что перед основной картинкой в игре, есть ещё второе окно/слой - черное с частичной прозрачностью, типа фильтра? Это предположение тем более вероятно, что вся графика в игре (в космосе) очень тёмная, кто играл наверняка обращал на это внимание. (Причём, если резко вылететь из тени планеты на свет, то мгновенно меняется общая яркость всей картинки, видимо без пересчёта графики, так как освещённость всех обектом меняется за долю секунды, и графика никогда не тормозит в этот момент).
2) и как в данном случае посмотреть все элементы окна, или дополнительные окна/слои, если они там есть.
Где-то на форуме я вроде читал про такую программу для анализа окон, но сейчас не нахожу... (Если это действительно отдельное чёрное окно, то было бы неплохо увеличить его прозрачность, а то в игре местами слишком темно).

(Захват картинки тестировал вот таким скриптом, заодно смотрел как работает COLORMODE)
Code: (clickermann) [Select]
//размер экрана 1680х1050
getscreen
WAITMS(100)
screenshot("aster_z")            //8 бит
WAITMS(50)

getscreen
WAITMS(100)
COLORMODE(4, 80, 100, 1600, 950) //4 бита
screenshot("aster_4")
WAITMS(50)


getscreen
WAITMS(100)
COLORMODE(6, 80, 100, 1600, 950) //2 бита
screenshot("aster_6") 
WAITMS(100)

halt // for single run

2
Архив / Re: KEYDOWN жмёт не те клавиши...
« on: July 03, 2013, 11:41:16 AM »
Проверял на "PassMark KeyboardTest"
KeyboardTest.zip
За прогу спасибо - она и время удержания клавиш фиксирует, удобно для подбора времени задержки. С клавиатурой у меня оказалось всё в порядке.

...Проблема с KEYDOWN разрешилась неожиданным образом  :)
Оказалось, что в блокноте и в ворде KEYDOWN(десятичный код) - пишет абракадабру; НО! В игре - всё срабатывает правильно!!! Это создаёт некоторые сложности при тестировании в блокноте - но главное, что в игре работает. Отчего и почему так происходет - это уже философский вопрос...

П.С. Насчёт реакции на нажатие мыши, я имел в виду что-то вроде этого:
Code: (clickermann) [Select]
//Жмёт клавишу по щелчку мыши

WHILE($var < 5)   //общий цикл
IF (iskeydown(1)=1)      //

   WHILE(iskeydown(1)=1)
      WAITMS(100)
   END_CYC
   
WAITMS(RND(100,300))
  KEYDOWN(50) //жмёт цифру 2
  WAITMS(RND(60,110))
  KEYUP(50)
 
  WAITMS(300)

Else
   WAITMS(50)
   
END_IF                  //
END_CYC           //конец общего цикла

halt // for single run

(служит для частичной механизации скана астероидов: щелчок мышью вручную, зато не надо жать клавишу сканера).

3
Скачал Кликерман 4.7 (с целью применения в Batlestar Galactica:)
Пока тренируюсь на блокноте, но выяснилось следующее:
функция KEYPRESS(десятичный код) - работает абсолютно правильно;
функция KEYPRESS(#псевдоним) - работает правильно;
А вот функция KEYDOWN(десятичный код) - пишет странную фигню, коды клавиш совершенно не совпадают с таблицей. Радует только то, что они хотя бы всегда постоянные, и методом тыка можно выяснить, где что. Например, код Бэкспэйса в таблице 8, для KEYPRESS тоже 8, а для KEYDOWN - почему-то 55...

Я написал простенький скрипт, для привязки прямо к окну Лога и проверки кодов клавиш от 1 до 200. Сначала штатно пишет в лог значение кода, потом ставит 2 слэша и рядом жмёт клавишу через кликер.

Скрипт для KEYPRESS:
Code: (clickermann) [Select]
//Тест Keypress 1-120
//Привязать к окну ЛОГА!!!!!!!!

WHILE($V < 120)
LOGWRITE ($V)   //пишет в лог код клавиши

KEYPRESS(191)   //ставит слэш
KEYPRESS(191)   //ставит слэш
KEYPRESS($V)    //жмёт клавишу в окне лога

INC($V,1)
END_CYC

halt // for single run

Для KEYPRESS - всё совпадает с таблицей:
[spoiler]
11:05:02 19//
11:05:02 20//
11:05:02 21//
11:05:02 22//
11:05:02 23//
11:05:02 24//
11:05:02 25//
11:05:02 26//
11:05:02 27//
11:05:02 28//
11:05:02 29//
11:05:02 30//
11:05:02 31//
11:05:02 32//
11:05:02 33//
11:05:02 34//
11:05:02 35//
11:05:02 36//
11:05:02 37//
11:05:02 38//
11:05:02 39//
11:05:02 40//
11:05:02 41//
11:05:02 42//
11:05:02 43//
11:05:02 44//
11:05:02 45//
11:05:02 46//
11:05:02 47//
11:05:02 48//0
11:05:02 49//1
11:05:02 50//2
11:05:03 51//3
11:05:03 52//4
11:05:03 53//5
11:05:03 54//6
11:05:03 55//7
11:05:03 56//8
11:05:03 57//9
11:05:03 58//
11:05:03 59//
11:05:03 60//
11:05:03 61//
11:05:03 62//
11:05:03 63//
11:05:03 64//
11:05:03 65//a
11:05:03 66//b
11:05:03 67//c
11:05:03 68//d
11:05:03 69//e
11:05:03 70//f
11:05:03 71//g
11:05:03 72//h
11:05:03 73//i
11:05:03 74//j
11:05:03 75//k
11:05:03 76//l
11:05:03 77//m
11:05:03 78//n
11:05:03 79//o
11:05:03 80//p
11:05:03 81//q
11:05:03 82//r
11:05:03 83//s
11:05:03 84//t
11:05:03 85//u
11:05:03 86//v
11:05:03 87//w
11:05:03 88//x
11:05:03 89//y
11:05:03 90//z
11:05:03 91//
11:05:03 92//
11:05:03 93//
11:05:03 94//
11:05:03 95//
11:05:03 96//0
11:05:03 97//1
11:05:03 98//2
11:05:03 99//3
11:05:03 100//4
11:05:03 101//5
11:05:03 102//6
11:05:03 103//7
11:05:04 104//8
11:05:04 105//9
11:05:04 106//*
11:05:04 107//+
11:05:04 108//
11:05:04 109//-
11:05:04 110//.
11:05:04 111///
11:05:04 112//
11:05:04 113//
11:05:04 114//
11:05:04 115//
11:05:04 116//
11:05:04 117//
11:05:04 118//
11:05:04 119//[/spoiler]

Скрипт для KEYDOWN:
Code: (clickermann) [Select]
//Тест KeyDown 1-100
//Привязать к окну ЛОГА!!!!!!!!

WHILE($V < 100)
LOGWRITE ($V)   //пишет в лог код клавиши

KEYPRESS(191)   //ставит слэш
KEYPRESS(191)   //ставит слэш

KEYDOWN($V)     //нажимает клавишу с кодом
KEYUP($V)       //отпускает

INC($V,1)
END_CYC

halt // for single run

В результате, получается непонятная фигня.
Лог для KEYDOWN от 1 до 200, совершенно не совпадает с таблицей кодов клавиш в хэлпе:
[spoiler]
11:45:30 0
//                 (похоже на энтер...)
11:45:30 1//
11:45:30 2//
11:45:30 3//f
11:45:30 4//
11:45:30 5//
11:45:30 6//
11:45:30 7//
11:45:30 8//
11:45:30 9//
11:45:30 10//
11:45:30 11//
11:45:30 12//l
11:45:30 13//
11:45:30 14//
11:45:30 15//
11:45:30 16//
11:45:30 17//
11:45:30 18//8
11:45:30 19//
11:45:30 20//
11:45:30 21//
11:45:30 22//
11:45:30 23//
11:45:30 24//
11:45:30 25//
11:45:30 26//
11:45:30 27//
11:45:30 28//
11:45:30 29//
11:45:30 30//
11:45:30 31//
11:45:30 32//9
11:45:30 33//i
11:45:30 34//q
11:45:30 35//o
11:45:30 36//g
11:45:30 37//k
11:45:30 38//h
11:45:30 39//m
11:45:30 40//p
11:45:30 41//
11:45:30 42//
11:45:30 43//
11:45:30 44//t
11:45:30 45//r
11:45:30 46//s
11:45:30 47//3
11:45:30 48//
11:45:30 49//
11:45:30 50//
11:45:30 51//
11:45:30 52//
11:45:30 53//
11:45:30 54//
11:45:30 55/           (здесь бэкспэйс)
11:45:30 56//
11:45:30 57//
11:45:30 58//
11:45:30 59//
11:45:30 60//
11:45:30 61//
11:45:30 62//
11:45:30 63//
11:45:30 64//
11:45:30 65//
11:45:30 66//0
11:45:30 67//
11:45:30 68//
11:45:30 69//
11:45:30 70//
11:45:30 71//
11:45:30 72//
11:45:31 73//
11:45:31 74//
11:45:31 75//
11:45:31 76//
11:45:31 77//2
11:45:31 78//1
11:45:31 79//
11:45:31 80//
11:45:31 81//
11:45:31 82//
11:45:31 83//
11:45:31 84//
11:45:31 85//
11:45:31 86//
11:45:31 87//
11:45:31 88//
11:45:31 89//
11:45:31 90//
11:45:31 91//
11:45:31 92//
11:45:31 93//
11:45:31 94//
11:45:31 95//
11:45:31 96//r
11:45:31 97//o
11:45:31 98//p
11:45:31 99//q
Продолжение от 100 до 200, капс нажался случайно:
11:55:39 99//Q
11:55:39 100//K
11:55:39 101//L
11:55:39 102//M
11:55:39 103//G
11:55:39 104//H
11:55:39 105//I
11:55:39 106//7
11:55:39 107//N
11:55:39 108//
11:55:39 109//J
11:55:39 110//S
11:55:39 111//5
11:55:39 112//
11:55:39 113//
11:55:39 114//
11:55:39 115//
11:55:39 116//
11:55:39 117//
11:55:39 118//A
11:55:39 119//B
11:55:39 120//C
11:55:39 121//D
11:55:39 122//W
11:55:39 123//X
11:55:39 124//4
11:55:39 125//5
11:55:40 126//6
11:55:40 127//7
11:55:40 128//8
11:55:40 129//9
11:55:40 130//*
11:55:40 131//+
11:55:40 132//
11:55:40 133//-
11:55:40 134//.
11:55:40 135//
11:55:40 136//
11:55:40 137//
11:55:40 138//
11:55:40 139//
11:55:40 140//
11:55:40 141//
11:55:40 142//
11:55:40 143//
11:55:40 144//E
11:55:40 145//F
11:55:40 146//
11:55:40 147//
11:55:40 148//
11:55:40 149//
11:55:40 150//
11:55:40 151//
11:55:40 152//
11:55:40 153//
11:55:40 154//
11:55:40 155//
11:55:40 156//
11:55:40 157//
11:55:40 158//
11:55:41 159//
11:55:41 160//
11:55:41 161//6
11:55:41 162//
11:55:41 163//
11:55:41 164//8
11:55:41 165//8
11:55:41 166//*
11:55:41 167//9
11:55:41 168//7
11:55:41 169//8
11:55:41 170//5
11:55:41 171//6
11:55:41 172//2
11:55:41 173//
11:55:41 174//
11:55:41 175//0
11:55:41 176//
11:55:41 177//
11:55:41 178//
11:55:41 179//
11:55:41 180//
11:55:41 181//-
11:55:41 182//+
11:55:41 183//
11:55:41 184//
11:55:41 185//
11:55:41 186//
11:55:41 187//
11:55:41 188
//3
11:55:41 189//
11:55:41 190//4
11:55:41 191//5
11:55:41 192//
11:55:42 193//
11:55:42 194//
11:55:42 195//
11:55:42 196//
11:55:42 197//
11:55:42 198//
11:55:42 199//[/spoiler]

Помогите разобраться, отчего могла появиться такая проблема и как бороться... Я правда уже выяснил методом тыка коды для некоторых клавиш, но это как-то неправильно. Может, мой случай уникальный и дело в особенно кривых руках/винде/компе? У меня Windows 7 "домашняя расширенная ломаная", никаких дополнительных драйверов клавиатуры и т.п. я не устанавливал.

Самое печальное, что при ЗАПИСИ сценария, все коды клавиш в KEYDOWN записываются правильно, как в таблице - а воспроизводится потом что-то абсолютно другое...

========================

(И сразу до кучи второй вопрос: как правильно отслеживать событие нажатия мыши? Я так понимаю, что можно проверять как для любой клавиши, ISKEYDOWN (код мыши)? или есть какой-то отдельный способ проверки именно для нажатий мыши.))) Про это уже нашёл на форуме))))

Pages: [1]