Author Topic: if_picture_in не работает в приложении и прочие нубовопросы  (Read 8103 times)

0 Members and 3 Guests are viewing this topic.

Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
В игре присутствует динамическое освещение (в зависимости от времени суток) + очень мрачная палитра, мало ярких цветов. Пытались искать участки экрана по сохраненному изображению - не находит. Пытались упрощать цвета буфера и искомых скриншотов colormode (6) и ставить currency аж до 30%, все равно не находит ничего. При этом если открыть сохраненные картинки в любом редакторе, скрипт находит их на ура, но только не в игре. Что с этим делать?
Пытались перекрашивать некотрые обьекты в однотонный (255), выяснили что в зависимости от времени суток значение этого красного может упасть до (132).

Привязка к окну:
Если привязать кликер к окну игры, перестает работать часть скрипта отетственная за нажатие виртуальных клавиш. Пробовал перед каждой коммандой нажатия прописывать #ps2_keyboard, результат тот же. В компе клава ps/2. При этом если кликер не привязывать к окну игры то в игре срабатывает нажатие виртуальных клавиш.
И  если сделать скриншот с привязкой к игре - на скрине белая картинка, без привязки адекватная.

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
чо за игра то?
уникальные пиксели софтиной пробовал искать?
браузеры разные для привязки пробовал?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Очевидно что в твоем случаи привязка не применима. Графику может не видеть из за аппаратного ускорения.
Директиву #ps2_keyboard пишут в начале скрипта 1 раз и она действует сразу на весь скрипт.
В оконном режиме ps2 не работает так как команды шлются окну через POSTMESSAGE.

Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
чо за игра то?
уникальные пиксели софтиной пробовал искать?
браузеры разные для привязки пробовал?
Она не браузерная, там свой клиент.
Еще нет, попробую. Правда естъ сомнения, уж больно там палитра бедная.
Вот эта, мод к православному фоллауту:
[spoiler][/spoiler]
« Last Edit: November 30, 2016, 11:42:20 AM by Hool »

Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
к примеру нужно найти кактус, или кочан капусты, как это сделать?

Луций

  • Активный участник
  • ***
  • Posts: 248
  • чат в телеге: https://t.me/klickermannchat
    • View Profile
    • Пишу скрипты на заказ:
хорошо находится, кроме случаев, когда каждая модель может быть направлена в 8 сторон и стоять к тебе 8 разными частями, и нужно делать 8 поисков, ага

есть мнение, что автору нужно поискать модификацию графики ля игры (подобную находили для таймзеро) там все 8 картинок заменяются одной и все ок

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Глядя на "капусту" кажется, что её там всего 2 вида.


Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
скрины без сжатия покажи с этими кочанами. Поллитра нормальная, да и маркеры в игре довольно контрастные. Вообще в 2D играх всё хорошо находится.
Там можно взаимодействовать почти с любыми обьектами на карте. Вот скрины куска экрана с билбордом в разное время суток:
[spoiler][/spoiler]
В игре поиском по картинке ни одну из его частей я найти его не могу.
ЧЯДТ?

есть мнение, что автору нужно поискать модификацию графики ля игры (подобную находили для таймзеро) там все 8 картинок заменяются одной и все ок

К графике есть доступ. Перекрасили часть обьектов в черный (0). Идея была такая, черный есть черный, он не изменится, искать обьекты подсчетом количества пикселей цвета (0). Ан нет. Черный обьектов меняет свой оттенок. Непонятно
« Last Edit: November 30, 2016, 07:17:43 PM by Hool »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
А может следует найти ту зависимость изменения цветов от времени? Возможно, каждый канал ргб цвета пикселя просто статично уменьшается/увеличивается в зависимости от времени.

Ты изменил цвет каких-то объектов на черный 0 , а ты взгляни на какой цвет изменился этот объект, и раскинь его на цвета ргб, если все каналы ргб равны, то ищи зависимость увеличения уменьшения от времени.
« Last Edit: November 30, 2016, 09:44:50 PM by dramster »

Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Неужели так часто меняется яркость? обычно утро- день- вечер- ночь, большего юзеры не потерпят и в такую игру играть не будут которая заставляет  постоянно напрягать глаза.
 Не закрашивать все одним цветом, а ставить метки цветные например 4 пикселя красный- синий-зелёный- зелёный - метка на капусте после COLORMODE(7) всё упростится до 8 цветов, без всяких оттенков весь красный сведётся например к цвету 8355839.
Да яркость цветов меняется часто и нелинейно, в определенный момент ночи каждую секунду. Это некомерческий проект, там может быть все что угодно.
А может следует найти ту зависимость изменения цветов от времени? Возможно, каждый канал ргб цвета пикселя просто статично уменьшается/увеличивается в зависимости от времени.

Ты изменил цвет каких-то объектов на черный 0 , а ты взгляни на какой цвет изменился этот объект, и раскинь его на цвета ргб, если все каналы ргб равны, то ищи зависимость увеличения уменьшения от времени.
Обьясните пожалуйста подробнo, как это сделать

Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Code: [Select]
// RECORDED SCRIPT 28.11.2016
// waitms correction
$S_CORR = 0

waitms(100 + $S_CORR)
  keyDown(39)
waitms(500 + $S_CORR)
  keyUp(39)
waitms(100 + $S_CORR)
  keyDown(38)
waitms(500 + $S_CORR)
  keyUp(38)
waitms(100 + $S_CORR)
RCLICK(849,525)
waitms(100 + $S_CORR)
LCLICK(849,525)
waitms(2000 + $S_CORR)
GETSCREEN
$count=PXLCOUNT(204,25, 1475,1007, 255)
LOGWRITE("pixel: ", $count)


//pathfinder
if ($count=15077)

$S_CORR = 0

waitms(2345 + $S_CORR)
  keyDown(56)
waitms(188 + $S_CORR)
  keyUp(56)
waitms(795 + $S_CORR)
  lDown(723,558)
waitms(121 + $S_CORR)
  lUp(723,558)
waitms(3454 + $S_CORR)
  keyDown(56)
waitms(157 + $S_CORR)
  keyUp(56)
waitms(316 + $S_CORR)
  lDown(755,587)
waitms(136 + $S_CORR)
  lUp(755,587)
waitms(2193 + $S_CORR)
  keyDown(55)
waitms(158 + $S_CORR)
  keyUp(55)
waitms(601 + $S_CORR)
  lDown(967,918)
waitms(103 + $S_CORR)
  lUp(967,918)
waitms(5238 + $S_CORR)
  keyDown(40)
waitms(280 + $S_CORR)
  keyUp(40)
waitms(2495 + $S_CORR)
  keyDown(37)
waitms(218 + $S_CORR)
  keyUp(37)
waitms(4069 + $S_CORR)
  keyDown(55)
waitms(158 + $S_CORR)
  keyUp(55)
waitms(704 + $S_CORR)
  lDown(1211,583)
waitms(118 + $S_CORR)
  lUp(1211,583)
waitms(7307 + $S_CORR)
  keyDown(37)
waitms(371 + $S_CORR)
  keyUp(37)
waitms(2184 + $S_CORR)
  keyDown(55)
waitms(126 + $S_CORR)
  keyUp(55)
waitms(636 + $S_CORR)
  lDown(732,760)
waitms(121 + $S_CORR)
  lUp(732,760)
waitms(9556 + $S_CORR)
  keyDown(56)
waitms(156 + $S_CORR)
  keyUp(56)
waitms(400 + $S_CORR)
  lDown(1094,643)
waitms(119 + $S_CORR)
  lUp(1094,643)
waitms(5022 + $S_CORR)
  keyDown(56)
waitms(158 + $S_CORR)
  keyUp(56)
waitms(541 + $S_CORR)
  lDown(525,455)
waitms(119 + $S_CORR)
  lUp(525,455)
waitms(10977 + $S_CORR)
  keyDown(40)
waitms(96 + $S_CORR)
  keyUp(40)
waitms(616 + $S_CORR)
  keyDown(38)
waitms(218 + $S_CORR)
  keyUp(38)
waitms(615 + $S_CORR)
  keyDown(40)
waitms(96 + $S_CORR)
  keyUp(40)
waitms(1659 + $S_CORR)
  keyDown(55)
waitms(97 + $S_CORR)
  keyUp(55)
waitms(955 + $S_CORR)
  lDown(373,757)
waitms(111 + $S_CORR)
  lUp(373,757)
waitms(1081 + $S_CORR)
  rDown(453,827)
waitms(56 + $S_CORR)
  rUp(453,829)
waitms(144 + $S_CORR)
  lDown(455,829)
waitms(128 + $S_CORR)
  lUp(455,829)
waitms(944 + $S_CORR)
  lDown(334,832)
waitms(104 + $S_CORR)
  lUp(334,832)
waitms(847 + $S_CORR)
  lDown(362,795)
waitms(144 + $S_CORR)
  lUp(362,795)
waitms(840 + $S_CORR)
  lDown(354,798)
waitms(120 + $S_CORR)
  lUp(354,798)
waitms(1696 + $S_CORR)
  keyDown(55)
waitms(128 + $S_CORR)
  keyUp(55)
waitms(577 + $S_CORR)
  lDown(373,750)
waitms(143 + $S_CORR)
  lUp(373,750)
waitms(1817 + $S_CORR)
  rDown(727,824)
waitms(88 + $S_CORR)
  rUp(727,824)
waitms(560 + $S_CORR)
  lDown(731,827)
waitms(103 + $S_CORR)
  lUp(731,827)
waitms(712 + $S_CORR)
  lDown(779,765)
waitms(112 + $S_CORR)
  lUp(779,765)
waitms(760 + $S_CORR)
  lDown(809,738)
waitms(121 + $S_CORR)
  lUp(809,738)
waitms(679 + $S_CORR)
  lDown(815,567)
waitms(120 + $S_CORR)
  lUp(815,567)
waitms(801 + $S_CORR)
  lDown(831,523)
waitms(95 + $S_CORR)
  lUp(831,523)
waitms(1316 + $S_CORR)
  keyDown(38)
waitms(282 + $S_CORR)
  keyUp(38)
waitms(1627 + $S_CORR)
  keyDown(56)
waitms(127 + $S_CORR)
  keyUp(56)
waitms(1664 + $S_CORR)
  lDown(451,116)
waitms(128 + $S_CORR)
  lUp(451,116)
waitms(13329 + $S_CORR)
  rDown(608,98)
waitms(54 + $S_CORR)
  rUp(608,98)
waitms(537 + $S_CORR)
  lDown(616,74)
waitms(144 + $S_CORR)
  lUp(616,74)
waitms(3970 + $S_CORR)
waitms(399 + $S_CORR)
waitms(12 + $S_CORR)
  keyUp(18)
waitms(0 + $S_CORR)
  keyUp(83)
waitms(0 + $S_CORR)
  keyUp(164)

end if
halt

Почему начинает исполняться код //pathfinder, когда $count не равно 15077?

UPD. Приписал else, стало работать как надо. Т.е. else обязательно для if()?
« Last Edit: December 02, 2016, 12:35:08 AM by Hool »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
У тебя в конце end if а надо end_if
halt в конце остановит выполнение.

Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Спасибо.
Возможны ли вложенные циклы с выходом из цикла вида
FOR ($а, $а<5)
FOR ($b, $b<5)
IF (условие)
$а=5
else
END_IF
END_CYC
END_CYC

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Возможно.
Если нужно и и прерывать, тогда и $b приравнивать.


Hool

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
спасибо
Code: [Select]
#logfile


// upper right

$S_CORR = 0

waitms(100 + $S_CORR)
keyDown(39)
waitms(1000 + $S_CORR)
keyUp(39)
waitms(100 + $S_CORR)
keyDown(38)
waitms(1000 + $S_CORR)
keyUp(38)
waitms(100 + $S_CORR)
RCLICK(849,525)
waitms(100 + $S_CORR)
LCLICK(849,525)
waitms(2000 + $S_CORR)

//colors

$arr[0]=263172
$arr[1]=197636
$arr[2]=197380
$arr[3]=197379
$arr[4]=131843
$arr[5]=131587
$arr[6]=131586
$arr[7]=197122
$arr[8]=262915

//black staff

$x[0]=930
$y[0]=449
$x1[0]=1323
$y1[0]=519

$x[1]=790
$y[1]=795
$x1[1]=828
$y1[1]=887

$x[2]=1089
$y[2]=342
$x1[2]=1229
$y1[2]=401

$x[3]=1217
$y[3]=142
$x1[3]=1267
$y1[3]=245

$x[4]=853
$y[4]=234
$x1[4]=935
$y1[4]=291

$x[5]=931
$y[5]=528
$x1[5]=1028
$y1[5]=627

$x[6]=652
$y[6]=93
$x1[6]=753
$y1[6]=165

$x[7]=1173
$y[7]=636
$x1[7]=1211
$y1[7]=755

GETSCREEN
FOR($c, $c < 8)

FOR($a, $a < 8)
 
   $i[$a]=PXLCOUNT($x[$c],$y[$c], $x1[$c],$y1[$c], $arr[$a] )
   LOGWRITE ($i[$a])
   IF($i[$a]>0 )
      $b=$i[$a]
$a=8
$c=7
   else
   end_if
END_CYC
END_CYC

LOGWRITE ("Ñîîáùåíèå",$b)
SCREENSHOTEX(0,0, $_xmax,$_ymax, $b, 0)

halt


Почему код не изменяет кординаты в функции $i[$a]=PXLCOUNT($x[$c],$y[$c], $x1[$c],$y1[$c], $arr[$a] )? Он берет координаты из
$x[0]=930
$y[0]=449
$x1[0]=1323
$y1[0]=519

И такими они и остаются?
« Last Edit: December 02, 2016, 06:29:42 PM by Hool »