Author Topic: Нужна помощь в обнаружении ошибки в коде.  (Read 5292 times)

0 Members and 1 Guest are viewing this topic.

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Здраствуйте у меня случилась такая ситуация мне один знакомий написала очень сложную програму состоящюю с нескольких файлов і он у меня почемуто не роботами.
У него все роботало отлично не могу понять что в нема не так можете уточнити найдетса ето сможет помочь разобратса в чем дело.

Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
Здраствуйте у меня случилась такая ситуация мне один знакомий написала очень сложную програму состоящюю с нескольких файлов і он у меня почемуто не роботами.
У него все роботало отлично не могу понять что в нема не так можете уточнити найдетса ето сможет помочь разобратса в чем дело.

ты с гугл переводчика пишешь?

where are u from?
Начинаю что то понимать
LOADING . . .

Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
ты с гугл переводчика пишешь?
where are u from?
я просто пытался заставить увидеть его. думал getscreen сделал....
Вмдимо вы одной программой для перевода пользуетесь.  ;D

Но я точно не из Англии  ;D
Начинаю что то понимать
LOADING . . .

Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
ты с гугл переводчика пишешь?
where are u from?
я просто пытался заставить увидеть его. думал getscreen сделал....
Вмдимо вы одной программой для перевода пользуетесь.  ;D

а ты кстати не знаешь, можно ли выставить число пробелов в табуляции во встроенном редакторе?
или лучше писать во внешнем? но я так понял внешний не будет синтаксис подсвечивать.
Начинаю что то понимать
LOADING . . .

Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
ты с гугл переводчика пишешь?
where are u from?
я просто пытался заставить увидеть его. думал getscreen сделал....
Вмдимо вы одной программой для перевода пользуетесь.  ;D

а ты кстати не знаешь, можно ли выставить число пробелов в табуляции во встроенном редакторе?
или лучше писать во внешнем? но я так понял внешний не будет синтаксис подсвечивать.
Знаю конечно, но ответ явно не будет иметь отношения к теме обозначенной автором.
А если в лс?
Начинаю что то понимать
LOADING . . .

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Ну проблема в тому что там не 1 код там код котрий включает в себя еще 4-5 кодов а некоторие из них берут информацию с блокнотов

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Проще будет если я буду транслировать и все покажу что вам нужно

Oraven

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

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

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Но конешно если вам будет проще если я каждий файл закину целиком то я могу так зделать но там папка целая различних файлов.

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Следующие ошибки возникли при попытке отправки сообщения:
Сообщение превышает максимально допустимую длину (20000 знаков).
Вот в чем еще проблема.

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Ето сам кликер которий используетса как главний.
 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
« Last Edit: January 20, 2018, 08:28:58 AM by Oraven »

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
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

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
 Если нужно еще чтото пишите я мог чето упустить
И кстати ето дание блокнота что соответствуют 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
 Ето все

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Могу уточнить где именно кликер перестает роботать.

Dregrops

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Сейчас кофий заварю, на кофейной гуще погадаем, ну или можете "очень сложную программу" здесь выложить, метод конечно не такой приятный как кофий, но тоже иногда помогает.
Извиняюсь но может ви можете мне помочь разобратса в етом.