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 - Dregrops

Pages: [1] 2
1
Также на етом скрине видно само окно и как привязано.
етот скрини я зделал когда именно проверял работает или нет, а все скрини што више били зделани исключительно для изятия пикселей для поиска.
Или ти о чемто другом?

2
Также пробовал делать скрини со светокорекцией а потом опять вирезять все и все равно не помогло.
Скрини делал с самого кликера.

3
Также на етом скрине видно само окно и как привязано.

4
Полагаю, рациональнее всего было бы выложить свой код, чтобы метры проверили на ошибки.
Ну и картинку+скрин окна, где искать ее надо. Если привязка к окну, разумеется, скриншот того, как кликер это видит (может банально серый экран вместо игры получился?). Полагаю, назвать версию кликера, в которой писалось, и какую сейчас используете, тоже не помешает.
А вообще, если сами хотите посмотреть, то попробуйте в разных частях кода добавить строчки вывода в лог. Допустим при поиске картинки, если нашел PRINT("картинка №1 найдена"), поле else PRINT(" не найдено, картинка №1").
Code: (clickermann) [Select]
KEYPRESS(#3)
WAITMS(500)
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN(200,120,550,220,"R.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
   END_IF   
   GETSCREEN
   IF_PICTURE_IN(200,120,550,220,"U.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
   END_IF   
   GETSCREEN
   IF_PICTURE_IN(200,120,550,220,"L.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
   END_IF   
   GETSCREEN
   IF_PICTURE_IN(200,120,550,220,"D.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
   END_IF
   WAITMS(50)
END_CYC
WAITMS(500)
 
KEYPRESS(#Q)
WAITMS(100)
писалось не помню в каком но щяс Clickermann v4.13 x64
писалось гдето пол года назад
На щет добавления кода я к сожелению не обладаю такими знаниями но нашол в папке с кликером тест которий запустил и он видал в логе что картинка не била найдена(
Если понадобится еще чтото я зделаю уш больно сильно хочю разобратса с етой проблемой.

5
Общие вопросы / Кликер и поиск картинки
« on: October 04, 2018, 01:58:21 PM »
Проблема заключается в том, что кликер не ищет ни картинку ни пиксель который я прописываю в скрипте такое впечатление что он не видит их. У меня прописан цикл и в идеале если бы кликер нашел картинку он должен щелкнуть на ней и на этом цикл заканчивается и начинается другая часть кода но кликер зацикливается на поиске картинки не понимаю в чем может быть проблема потому что сделал 4 различных скрина и ни один из них не находит также пробовал такие же самые манипуляции с поиском пикселя но он также не дал результата может что-то подскажете. Скриптом я пользовался но после долгого перерыва с ним произошла эта проблема пробовал переписывать переснимать скрины картинок но это ничего не изменило.Могу представить также скрини кликер  код скрипта и прочее если ето поможе.

6
Общие вопросы / Re: Письмо на почту
« on: January 22, 2018, 07:04:56 PM »
Вот что удалось нарыть.

Консольная программка mailsend позволяет отправлять почту из командной строки
http://forum.ru-board.com/topic.cgi?forum=5&topic=46975#19

К сожалению как не пытался, текст на русском отправляется в неправильной кодировке. Так что нужно писать на английском.

В архиве пример использования.

Но прежде нужно настроить батник на имеющуюся у тебя почту.

set - это создание переменной в языке BAT
mailsender - это имя переменной
=mailsend.exe - присваивание значения переменной

set mailsender=mailsend.exe - это имя запускаемой программы
set smtpsender=username@mail.ru - это адрес твоего почтового ящика отправителя
set smtpsenderfullname=User Name - это имя будет присутствовать в поле "от кого" пришло письмо
set smtpserver=smtp.mail.ru - это адрес smtp сервера
set smtpport=465 - порт smtp сервера действителен для mail.ru
set smtpuser=username@mail.ru - адрес твоего почтового ящика (видимо для "от кого" письмо)
set smtppwd="password" - Пароль от твоего почтового ящика
set mailto=usernanme@yandex.ru - адрес куда будет отправлено письмо.
set subject="Тестовая тема" - Тема письма
set attach=report.txt - файл вложения

В параметрах командной строки также указано что вложение считается телом письма. Это для того чтобы кликер смог спокойно писать текст в файл и он считался бы телом письма.

На счет поиска картинки, пример использования.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
   TFCLEAR("report.txt", 0)
   TFWRITE("report.txt", "Kartinka naidena")
   WAITMS(100)   
   EXECUTE("Run.bat")
   HALT
END_IF
WAITMS(100)
а как настроить батеик ато я в етом не очень понимаю

7
Общие вопросы / Письмо на почту
« on: January 22, 2018, 03:20:14 AM »
Можно ли с помощью кода зделать так чтоб при обнаружении какойто картинки на екране бот надсилал вам письмо на елекронную почту?

8
у вас должна быть папка source и в ней должны лежать картинки
у вас должна быть папка libs  и в ней должны лежать представленные вами  файлы и...
нужен файл  warspear.cms которого нет
нужен файл  notification.cms  которого нет
возможно один из них  это "код которий откривает остальние"

файл Comand_lib должен называться сomand_lib
к тому же в стартовом файле нужно указывать
$id_ = 0  и это ни как не ноль , в дальнейших файлах значение проверяется
нужен файл party_command0.ini

Все пречисление вами файли присутствуют в етих папках а также картинки

9
Сейчас кофий заварю, на кофейной гуще погадаем, ну или можете "очень сложную программу" здесь выложить, метод конечно не такой приятный как кофий, но тоже иногда помогает.
Извиняюсь но может ви можете мне помочь разобратса в етом.

10
Могу уточнить где именно кликер перестает роботать.

11
 Если нужно еще чтото пишите я мог чето упустить
И кстати ето дание блокнота что соответствуют 1 боту
[skills]
skill1_use = 1
skill2_use = 0
skill3_use = 0
skill4_use = 1
skill4_is_area = 1
skill5_use = 1
skill6_use = 1
skill_heal = 2
skill_shield = 3
#skill_heal_use = 1 - self only , 2 - party
skill_heal_use = 1
#skill_shield_use = 1 - self only, 2 - party
skill_shield_use = 1
[battle]
#r_find = 5 - радиус раскрутки в шагах
r_find = 1
#find_near = 1 - искать ближайших
#find_near = 0 - поиск с верхнего левого угла
find_near = 1
#not_far_as = 6 - не дальше чем (в шагах)
not_far_as = 6
is_meelee = 1
#dy = 0 - смещение в пикселях если моб слишком высокий
dy = 5
[mode]
#mode = 0 - master
#mode = 1 - slave
#mode = 2 - only heal
mode = 0
#id - номер члена в пати, не используется
#id = 0
#pid = 0 - номер пати
pid = 0
[general]
#смещения для разных версий винды
#7ка:3,24
#10ка:3,26
offsetX = 3
offsetY = 26
 Ето все

12
battle_lib
Code: (clickermann) [Select]
//áèáëèîòåêà ôóíêöèé óïðàâëåíèÿ áîåì è ïîèñêà ìîáîâ
$time_move_cursor = 100

//[skills]
$skill_heal_use = INT ( INIREAD ($iniSettings, "skill_heal_use","skills"))
$skill_heal = INT ( INIREAD ($iniSettings, "skill_heal","skills") )
$skill_shield_use = INT ( INIREAD ($iniSettings, "skill_shield_use","skills"))
$skill_shield = INT ( INIREAD ($iniSettings, "skill_shield","skills") )
$skill1_use = INT ( INIREAD ($iniSettings, "skill1_use","skills") )
$skill2_use = INT ( INIREAD ($iniSettings, "skill2_use","skills") )
$skill3_use = INT ( INIREAD ($iniSettings, "skill3_use","skills") )
$skill4_use = INT ( INIREAD ($iniSettings, "skill4_use","skills") )
$skill4_is_area = INT ( INIREAD ($iniSettings, "skill4_is_area","skills") )
$skill5_use = INT ( INIREAD ($iniSettings, "skill5_use","skills") )
$skill6_use = INT ( INIREAD ($iniSettings, "skill6_use","skills") )
//[battle]
$r_find =  INT ( INIREAD ($iniSettings, "r_find","battle") )
$find_near =  INT ( INIREAD ($iniSettings, "find_near","battle") )
$is_meelee =  INT ( INIREAD ($iniSettings, "is_meelee","battle") )
$not_far_as =  INT ( INIREAD ($iniSettings, "not_far_as","battle") )
$dy =  INT ( INIREAD ($iniSettings, "dy","battle") )
$dx_hp = 20


//-------------------------------------------------------------------
//ïðîâåðêà õï
SUB (check_hp)
   GETSCREEN (0,0,200,100)
   print ("check hp")
   
   IF_PICTURE_IN (0,0, 200,100, "source/hp_bar_left_up.bmp", -1, 100)
     
      IF (PXL($_return1 + 70 + $dx_hp ,$_return2 + 7) = 6248447 )
      $need_heal = 0
  INIWRITE($iniFile, "need_heal", 0, STRCONCAT("p",$id_))
   ELSE
      //íóæåí õèë
      print("need heal")
      $need_heal = 1
  INIWRITE($iniFile, "need_heal", 1, STRCONCAT("p",$id_))
  INIWRITE($iniFile, "x", $persX, STRCONCAT("p",$id_))
  INIWRITE($iniFile, "y", $persY, STRCONCAT("p",$id_))
   END_IF
   END_IF
   
   
END_SUB
//  îáùàÿ ôóíêöèÿ íàæàòèÿ áîåâûõ ñêèëîâ
SUB (skill_pressed,$button)
   SWITCH($button)
      CASE (1)
      KEYPRESS (#1)
      CASE (2)
      KEYPRESS (#2)
      CASE (3)
      KEYPRESS (#3)
      CASE (4)
      KEYPRESS (#4)
      CASE (5)
      KEYPRESS (#5)
      CASE (6)
      KEYPRESS (#6)
   END_SWITCH
   
END_SUB
//  õèë â ñåáÿ
SUB (heal_self)
   get_pers_pos_map()
   skill_pressed($skill_heal)
   waitms(200)
   //DBLCLICK ($screenX,$screenY)
   LCLICK ($screenX,$screenY)
   print("heal self")
   waitms(1000)
END_SUB
SUB (heal_friend,$frx,$fry)   
   skill_pressed($skill_heal)
   waitms(100)
   get_pers_pos_map()
   $friendScreenX = ($frx - $persX)*$step + $screenX
   $friendScreenY = ($fry - $persY)*$step + $screenY
   LCLICK ($friendScreenX,$friendScreenY)
   waitms(700)
   LCLICK ($friendScreenX,$friendScreenY)
   print("heal friend: ",$frx,",",$fry)
   waitms(800)
END_SUB
//  ùèò â ñåáÿ
SUB (shield_self)
   get_pers_pos_map()
   skill_pressed($skill_shield)
   waitms(200)
   //DBLCLICK ($screenX,$screenY)
   LCLICK ($screenX,$screenY)
   print("shield self")
   waitms(300)
END_SUB
SUB (shield_friend,$frx,$fry) 
   skill_pressed($skill_shield)
   waitms(100)
   get_pers_pos_map()
   $friendScreenX = ($frx - $persX)*$step + $screenX
   $friendScreenY = ($fry - $persY)*$step + $screenY
   LCLICK ($friendScreenX,$friendScreenY)
   waitms(700)
   LCLICK ($friendScreenX,$friendScreenY)
   print("shield friend: ",$frx,",",$fry)
   waitms(800)
END_SUB

// ïîèñê ìîáà
SUB(find_fast)
   
   print("fast scan started")
   $minX = 0
   $minY = 0
   $mobFound = 0
   GETSCREEN
   DEFINE ($allMobPosArr)
   GETFILELIST ($arr, "mobs/*.bmp")
   FOR ($a=0,$a< ARRSIZE ($arr))
      SCANPICTURE ( $ARR_SCAN, 0,0, $_xmax,$_ymax, STRCONCAT ("mobs/",$arr[$a]), -1, 100)
     
      $ARR_NUM = 0
      WHILE ( $ARR_NUM < ARRSIZE ( $ARR_SCAN))
         $X = $ARR_SCAN [ $ARR_NUM ]
         INC ( $ARR_NUM ,1 )
         $Y = $ARR_SCAN [$ARR_NUM]
         INC ( $ARR_NUM,1)
         ARRPUSH ( $allMobPosArr, $X)
         ARRPUSH ( $allMobPosArr, $Y)
      END_CYC
      UNDEFINE ( $ARR_SCAN)
   END_CYC
   IF(ARRSIZE($allMobPosArr) > 2)
      $mobX = $allMobPosArr[1]
      $mobY = $allMobPosArr[2] +$dy
   END_IF
   //îïðåäåëÿåì áëèæàéøåãî
   IF($find_near = 1)
      get_pers_pos_map()
      $minDist = 9999
      $a = 1
     
      WHILE($a<ARRSIZE($allMobPosArr))
         $dist =  DIST ($screenX, $screenY, $allMobPosArr[$a], $allMobPosArr[$a+1])
         IF ($dist < $minDist)
            $minDist = $dist
            $pairNum = $a
         END_IF
         INC($a,2)
      END_CYC
      IF(ARRSIZE($allMobPosArr) > 2)
         $minX = $allMobPosArr[$pairNum]
         $minY = $allMobPosArr[$pairNum+1]
         print("nearest mob: ",$minX,",",$minY)
      END_IF
     
      $mobX = $minX
      $mobY = $minY +$dy
     
      UNDEFINE($allMobPosArr)
   END_IF
   IF ($mobX > 0 & $mobY > (0 +$dy) & ($dist/$step) < $not_far_as)
      $mobFound = 1
      print("mobFound: ",$mobX,",",$mobY)
   ELSE
      $mobFound = 0
      print("no mob found")
   END_IF
END_SUB

SUB(find_sword_or_hand)
   //èùåì ìå÷ èëè ðóêó
   WAITMS($time_move_cursor)
   //$tstart = $_ms
   $mobFound = 0
   GETSCREEN($screenX-$r_find*$step,$screenY-$r_find*$step,$screenX+$r_find*$step,$screenY+$r_find*$step)
   IF_PICTURE_IN ($screenX-($cur_r+1)*$step,$screenY-($cur_r+1)*$step,$screenX+($cur_r+1)*$step,$screenY+($cur_r+1)*$step, "source/sword.bmp", -1, 100)
      print("need attack")
      $mobX = $_return1 - $offsetX
      $mobY = $_return2 - $offsetY
      $mobFound = 1
      $time = 0
     
   END_IF
   IF_PICTURE_IN ($screenX-($cur_r+1)*$step,$screenY-($cur_r+1)*$step,$screenX+($cur_r+1)*$step,$screenY+($cur_r+1)*$step, "source/hand.bmp", -1, 100)
      print("need get drop")
      $mobX = $_return1 - $offsetX
      $mobY = $_return2 - $offsetY
      $mobFound = 2
      $time = 0
     
   END_IF
   //$time = $_ms + $time_move_cursor
   //WHILE($time > $_ms)
   
   
   
   //END_CYC
   //$tend = $_ms
   //print("time: ",$tend-$tstart)
END_SUB

SUB(slow_scan)
   //ðàñêðó÷èâàåì êóðñîð âîêðóã ïåðñà
   //â çàâèñèìîñòè îò ìå÷à èëè ðóêè àòàêóåì èëè ïîäíèìàåì äðîï
   print("slow_scan started")
   //ïðîâåðèì áûëè ëè íàæàòû è íåèñïîëüçîâàíû ñêèëû
   GETSCREEN
   //IF (PXL(367,457) = 2590663)
   IF (PXL(367,431 + $offsetY) = 2590663)
      skill_pressed($last_skill)
      print("skill pressed detected")
   END_IF
   
   get_pers_pos_map()
   //ñòàâèì êóðñîð íà ïåðñà
   LCLICK($screenX,$screenY)
   WAITMS(100)
   
   
   
   //ïðîâåðÿåì îòîáðàæåíèå êóðñîðà
   find_sword_or_hand()
   $cur_r = 1
   IF($mobFound = 0)
      //åñëè íå íàøëè ìîáà, òî íà÷èíàåì ðàñêðó÷èâàòü ñïèðàëü
      WHILE ($cur_r <= $r_find)
         
         //up
         IF($mobFound = 0)
            KEYPRESS(#UP)
           
            find_sword_or_hand()
         END_IF
         
         //right
         IF($mobFound = 0)
            $a = 0
            WHILE($a<$cur_r)
               KEYPRESS(#RIGHT)
               
               find_sword_or_hand()
               IF($mobFound > 0)
                  $a = $cur_r
                 
               END_IF
               INC($a,1)
            END_CYC
         END_IF
         //down
         IF($mobFound = 0)
            $a = 0
            WHILE($a<$cur_r*2)
               KEYPRESS(#DOWN)
               
               find_sword_or_hand()
               IF($mobFound > 0)
                  $a = $cur_r*2
                 
               END_IF
               INC($a,1)
            END_CYC
         END_IF
         //left
         IF($mobFound = 0)
            $a = 0
            WHILE($a<$cur_r*2)
               KEYPRESS(#LEFT)
               
               find_sword_or_hand()
               IF($mobFound > 0)
                  $a = $cur_r*2
                 
               END_IF
               INC($a,1)
            END_CYC
         END_IF
         //up
         IF($mobFound = 0)
            $a = 0
            WHILE($a<$cur_r*2)
               KEYPRESS(#UP)
               
               find_sword_or_hand()
               IF($mobFound > 0)
                  $a = $cur_r*2
                 
               END_IF
               INC($a,1)
            END_CYC
         END_IF
         //right
         IF($mobFound = 0)
            $a = 0
            WHILE($a<$cur_r)
               KEYPRESS(#RIGHT)
               
               find_sword_or_hand()
               IF($mobFound > 0)
                  $a = $cur_r
                 
               END_IF
               INC($a,1)
            END_CYC
         END_IF
         INC($cur_r,1)
         
         
      END_CYC
     
   END_IF
   
END_SUB
SUB(find_mob)
   slow_scan()
   IF($mobFound = 0 & $mode_ = 0)
      find_fast()
   END_IF
   
END_SUB
// àòàêà ìîáà
SUB(attack_mob)
   print("attack mob: ",$mobX,",",$mobY)
   $mapMobX = $persX + INT (( $mobX - $screenX)/$step)
   $mapMobY = $persY + INT (( $mobY - $screenY)/$step)
   set_command(2, $mapMobX, $mapMobY )
   
   $time_to_mob = INT(DIST($mobX,$mobY,$screenX,$screenY) *10)
   
   
   IF ($time_to_mob > 600)
DBLCLICK($mobX,$mobY)
   ELSE
LCLICK($mobX,$mobY)
//òóò ìîæåò âûñêîñ÷èòü ïîïàï âûáîðà öåëè
WAITMS(600)
LCLICK($mobX,$mobY)
   END_IF
   
print("time to mob: ",$time_to_mob)
WAITMS($time_to_mob)

   IF($skill1_use = 1)
      skill_pressed(1)
      $last_skill = 1
      WAITMS(100)
   END_IF
   //find_sword_or_hand()
   IF($skill2_use = 1 & $mobFound > 0)
      skill_pressed(2)
      $last_skill = 2
      WAITMS(100)
   END_IF
   //find_sword_or_hand()
   IF($skill3_use = 1 & $mobFound > 0)
      skill_pressed(3)
      $last_skill = 3
      WAITMS(100)
   END_IF
   //find_sword_or_hand()
   IF($skill4_use = 1 & $mobFound > 0)
      skill_pressed(4)
      $last_skill = 4
      IF($skill4_is_area = 1)
         WAITMS(100)
         KEYPRESS(#ENTER)
WAITMS(300)
DBLCLICK($mobX,$mobY)
      END_IF
      WAITMS(100)
   END_IF
   //find_sword_or_hand()
   IF($skill5_use = 1 & $mobFound > 0)
      skill_pressed(5)
      $last_skill = 5
      WAITMS(100)
   END_IF
   //find_sword_or_hand()
   IF($skill6_use = 1 & $mobFound > 0)
      skill_pressed(6)
      $last_skill = 6
      WAITMS(100)
   END_IF
   //WAITMS(2000)
END_SUB
// ñáîð ëóòà
SUB(get_drop)
   print("drop loot: ",$mobX,",",$mobY)
   $mapMobX = $persX + INT (( $mobX - $screenX)/$step)
   $mapMobY = $persY + INT (( $mobY - $screenY)/$step)
   set_command(3, $mapMobX, $mapMobY )
   LCLICK($mobX,$mobY)
   WAITMS($time_to_mob)
   //ïîâåøó íàæàòèå íà ñîáðàòü âñå íà ïîòîê îáðàáîòêè âñïëûâàþùèõ îêîí
   //KEYPRESS(#ENTER)
   WAITMS(1000)
END_SUB

SUB(return_to_start)
   //ýòà ôóíêöèÿ äîëæíà âåðíóòü ïåðñîíàæà íà ìåñòî ñòàðòà
   //êîîðäèíàòû ñòàðòà â ãëîáàëüíûõ øàãàõ
   //âèäèìûé ýêðàí èìååò 15*9 öåëûõ øàãîâ
   
   $try = 3
   get_pers_pos_map()
   print("return to start point: ",$startX,",",$startY)
   print("current pos: ",$persX,",",$persY)
   
   WHILE((($persX != $startX) | ($persY != $startY)) & $try > 0)
      IF(ABS($startX - $persX) < 7)
         $dx_step = $startX - $persX
      ELSE
         $delta = $startX - $persX
         $dx_step = INT((($delta)/ABS($delta))*6) +RNDFROM(-2,1,0,1)
      END_IF
      IF(ABS($startY - $persY) < 4)
         $dy_step = $startY - $persY
      ELSE
         $delta = $startY - $persY
         $dy_step = INT((($delta)/ABS($delta))*3) +RNDFROM(-2,1,0,1)
      END_IF
      LCLICK($screenX + $dx_step*$step,$screenY + $dy_step*$step)
      WAITMS(INT(DIST(0,0,$dx_step,$dy_step)*10*$step))
     
      INC($try,-1)
      get_pers_pos_map()
      set_command(1,$persX,$persY)
   END_CYC
END_SUB

SUB(follow,$fx,$fy)
   $startX = $fx
   $startY = $fy
   return_to_start()
END_SUB

SUB(check_command)
   $com_ = INT(INIREAD($iniFile, "com","command"))
   $x_ =  INT(INIREAD($iniFile, "x","command"))
   $y_ =  INT(INIREAD($iniFile, "y","command"))
   print("check command: ",$com_," ",$x_," ",$y_)
   SWITCH($com_)
   CASE(1)
      // follow me
      print("follow me: ",$x_,",",$y_)
      follow($x_,$y_)
   CASE(2)
      // attack mob
      print("attack mob at: ",$x_,",",$y_)
      follow($x_,$y_)
      find_mob()
      IF($mobFound = 0)
         //äåéñòâè¤ â ñëó÷àå îòñóòñòâè¤ ìîáà
         return_to_start()
      END_IF
      IF ($mobFound = 1)
         attack_mob()
      END_IF
      IF ($mobFound = 2)
         get_drop()
      END_IF
     
   CASE(3)
      // get drop
      print("get drop at: ",$x_,",",$y_)
      follow($x_,$y_)
      find_mob()
      IF($mobFound = 0)
         //äåéñòâè¤ â ñëó÷àå îòñóòñòâè¤ ìîáà
         return_to_start()
      END_IF
      IF ($mobFound = 1)
         attack_mob()
      END_IF
      IF ($mobFound = 2)
         get_drop()
      END_IF
     
     
   CASE(4)
      // check party need_heal
     
   DEFAULT
      // idle
     
   END_SWITCH
   
END_SUB

SUB(check_heal_friend)
//ñìîòðèì ïî âñåì ÷ëåíàì ïàòè, èùåì need_heal = 1 è êîîðäèíàòû
$need_heal_friend = 0
FOR ($a=0,$a < 5)
IF($a != $id_) // íå õèëèì òàêèì îáðàçîì ñàìè ñåáÿ
IF(INT(INIREAD($iniFile, "need_heal",STRCONCAT("p",$a))))
$friend_healX = INT(INIREAD($iniFile, "x",STRCONCAT("p",$a)))
$friend_healY = INT(INIREAD($iniFile, "y",STRCONCAT("p",$a)))
$need_heal_friend = 1
print("need heal friend")
//áåðåì ïåðâîãî ïîïàâøåãîñÿ è âûõîäèì
//GOTO(end_check_heal_friend)
END_IF
END_IF
END_CYC
//end_check_heal_friend:
END_SUB

13
Ето сам кликер которий используетса как главний.
 run_bot0
Code: (clickermann) [Select]
$id_ = 0
#include "libs/warspear.cms"
дальше идет код которий откривает остальние требующиеся коди
Code: (clickermann) [Select]
//#autorun
LOGCLEAR
$wname = STRCONCAT("bot",$id_)
$hwnd = WNDFIND("Warspear Online")
IF ($hwnd = 0)
   $hwnd = WNDFIND($wname)
END_IF
HSET($hwnd,1)

HSETTEXT ($hwnd, $wname)

$iniSettings = STRCONCAT("bot",$id_,"/settings.ini")
$mode_ = INT(INIREAD($iniSettings, "mode","mode"))
//$id_ = INT(INIREAD($iniSettings, "id","mode"))
$offsetX =  INT(INIREAD($iniSettings, "offsetX","general"))
$offsetY = INT(INIREAD($iniSettings, "offsetY","general"))

print(HGETTEXT ($hwnd)," ",$hwnd)
print("start script")
$win_width = $_xmax + 1
$win_height = $_ymax + 1


#include "libs/command_lib.cms"
#include "libs/thread_check_broken.cms"
#include "libs/thread_check_popups.cms"
#include "libs/get_source_fix.cms"
#include "libs/battle_lib.cms"

IF ($mode_ = 0)
   set_command(0,0,0)
END_IF

waitms(1000)
get_pers_pos_map()
save_start_pos()
waitms(1000)
while ($exit = 0)
   //основное тело скрипта
   
   check_hp()
   IF (($need_heal = 1) & ($skill_heal_use > 0))
      heal_self()
   END_IF
   IF (($need_heal = 1) & ($skill_shield_use > 0))
      shield_self()
   END_IF
   
   IF ($skill_heal_use = 2)
      check_heal_friend()
      IF($need_heal_friend = 1)
         heal_friend($friend_healX,$friend_healY)
         
         
      END_IF
   END_IF
   IF ($skill_shield_use = 2)
      check_heal_friend()
      IF($need_heal_friend = 1)
         shield_friend($friend_healX,$friend_healY)
      END_IF
   END_IF
   
   
   //дальнейшие действия определяются параметром mode
   //master играет как обычно
   //slave выполяет команды мастера
   
   IF($mode_ = 0)
     
      find_mob()
      IF($mobFound = 0)
         //действия в случае отсутствия моба
         KEYPRESS(#F1)
         return_to_start()
      END_IF
      IF ($mobFound = 1)
         attack_mob()
      END_IF
      IF ($mobFound = 2)
         get_drop()
      END_IF
     
   ELSE
      check_command()
   END_IF
   //$exit = 1
end_cyc
//выход из тела скрипта
//
HALT

Comand_lib
Code: (clickermann) [Select]
$pid_ = INT(INIREAD($iniSettings, "pid","mode"))
$iniFile = "party_command0.ini"

SUB(set_command, $com,$x_com,$y_com)
   $iniPath = ""
   $iniName = "party_command"
   $iniFile = STRCONCAT($iniPath,$iniName,$pid_,".ini")
   //$iniFile = "party_command0.ini"
   IF ($mode_ = 0)
      INIWRITE($iniFile, "com", $com, "command")
      INIWRITE($iniFile, "x", $x_com, "command")
      INIWRITE($iniFile, "y", $y_com, "command")
   END_IF
   
END_SUB

thread_check_broken
Code: (clickermann) [Select]
//поток проверяет наличие поломанного щита
//в нижнем правом углу
//если находит, то жмет 9 скил, в котором должен быть рем
//проверка каждые 30 сек
THREAD(thread_check_broken,0)
   waitms(1000)
   GETSCREEN(700,400,$_xmax,$_ymax)
   IF_PICTURE_IN (700,400, $_xmax,$_ymax, "source/broken_shield_yellow.bmp", -1, 100)
      print("broken shield")
      KEYPRESS(#9)
      WAITMS(50)
   END_IF
   IF_PICTURE_IN (700,400, $_xmax,$_ymax, "source/broken_shield_red.bmp", -1, 100)
      print("broken shield")
      KEYPRESS(#9)
      WAITMS(50)
   END_IF
   
   wait(30)
END_THREAD
SETTHREAD (thread_check_broken, 1)

thread_check_popups
Code: (clickermann) [Select]
// поток проверяет наличие разных всплывающих окон
// и закрывает их
//
THREAD(thread_check_popups,0)
   waitms(400)
   GETSCREEN
   //IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/part_of_popup1.bmp", -1, 100)
   //print("some popup detected")
   //KEYPRESS(#F1)
   //WAITMS(50)
   //END_IF
   //IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/part_of_popup2.bmp", -1, 100)
   //print("some popup detected")
   //KEYPRESS(#F1)
   //WAITMS(50)
   //END_IF
   //IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/day_offer.bmp", -1, 100)
   //print("day offer detected")
   //KEYPRESS(#F1)
   //WAITMS(50)
   //END_IF
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/bag_selected.bmp", -1, 100)
      print("bag is open")
      KEYPRESS(#ENTER)
      //WAITMS(50)
   END_IF
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/bag_not_selected.bmp", -1, 100)
      print("bag is open (not selected)")
      LCLICK($_return1 - $offsetX, $_return2 - $offsetY)
      KEYPRESS(#ENTER)
      //WAITMS(50)
   END_IF
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/select_target.bmp", -1, 100)
      print("select target popup detected")
      //KEYPRESS(#ENTER)
      //выберем цель у которой хп меньше 76%
      SCANPICTURE($arr_target, 243,120, 370,430, "source/hp_bar.bmp", -1, 100)
      IF(ARRSIZE($arr_target) > 0)
         FOR($a=0,$a<ARRSIZE($arr_target),2)
            $x_hp = $arr_target[$a]
            $y_hp = $arr_target[$a+1]
           
            IF(PXL($x_hp + 72,$y_hp + 9) != 6248447)
               //print($x_hp,",",$y_hp )
               LCLICK($x_hp,$y_hp - $offsetY)
               print("find pers with low hp")
               GOTO(end_cyc)
            END_IF
         END_CYC
      END_IF
      KEYPRESS(#ENTER) // если не нашли
      end_cyc:
      //WAITMS(50)
   END_IF
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/dead.bmp", -1, 100)
      print("char dead")
      SCREENSHOT("dead")
      $need_report_to_mail = INT(INIREAD("notification.ini", "need_report","general"))
      IF($need_report_to_mail = 1 & $was_send = 0)
         #include "libs/notification.cms"
      END_IF
      //запишем флаг выхода из скрипта
      $exit = 1
      //WAIT(10)
   END_IF
END_THREAD
SETTHREAD (thread_check_popups, 1)

get_source_fix
Code: (clickermann) [Select]
$step = 48 //1 шаг в игре это 48 пикселей
$clientWidth = 780
$clientHeight = 520
$menuHeight = 58 //высота строки меню

SUB(mapToScreen,$x,$y)
   $globalScreenX = $step*($x+1/2)
   $globalScreenY = $step*($y+1/2)
   //вычисляем координату x в окне
   IF($globalScreenX < $clientWidth/2)
      $screenX = $globalScreenX
   ELSE
      IF($globalScreenX > (28*$step - $clientWidth/2))
         $screenX = $clientWidth - (28*$step - $globalScreenX)
      ELSE
         $screenX =  $clientWidth/2
      END_IF
   END_IF
   //вычисляем координату y в окне
   IF($globalScreenY < ($clientHeight-$menuHeight)/2)
      $screenY = $globalScreenY
   ELSE
      IF($globalScreenY > (28*$step - ($clientHeight-$menuHeight)/2))
         $screenY = ($clientHeight-$menuHeight) - (28*$step - $globalScreenY)
      ELSE
         $screenY =  ($clientHeight-$menuHeight)/2
      END_IF
   END_IF
   //print("screenX,screenY: ",$screenX,",",$screenY)
END_SUB

SUB(get_pers_pos_map)
   GETSCREEN
   //координаты верхнего левого угла карты
   $mapX0 = 669 - $offsetX
   $mapY0 = 138 - $offsetY
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "source/map_cursor.bmp", -1, 100)
      $_return2_ =($_return2 - $offsetY) + 4
      $_return1_ =($_return1 - $offsetX) + 4
      $persX = ($_return1_ - $mapX0)/4
      $persY = ($_return2_ - $mapY0)/4
      $persX = ROUND($persX,0)
      $persY  = ROUND($persY,0)
      //print("persX,persY: ",$persX,",",$persY)
      mapToScreen($persX,$persY)
   END_IF
END_SUB

SUB(save_start_pos)
   $startX = $persX
   $startY = $persY
END_SUB

14
Следующие ошибки возникли при попытке отправки сообщения:
Сообщение превышает максимально допустимую длину (20000 знаков).
Вот в чем еще проблема.

15
Но конешно если вам будет проще если я каждий файл закину целиком то я могу так зделать но там папка целая различних файлов.

Pages: [1] 2