Первый пост, будет постоянно изменяться по мере изменений в боте. Само обсуждение и временные коды, будут предоставляться в самом обсуждении темы.
Вот собственно последняя версия бота для мили чаров, в игре "Rohan"
На данный момент, реализованный функции такие как:
1. Авто-выбор моба
2. Атака моба
3. Использование скиллов (по завершению их куллдауна)
4. Использование баффов (по завершению их куллдауна)
5. Поднятие лута
6. Лечение(возможно лечение скиллом и в тоже время, лечение бутылками)
7. Восполнение маны
Вот собственно последняя версия бота для мили чаров, в игре "Rohan"
Код:
Opt("PixelCoordMode", 2) ;Устанавливаем относительные координаты для определения цвета пикселя
Opt("MouseCoordMode", 2)
HotKeySet("!1", "Play")
HotKeySet("!2", "Stop")
HotKeySet("!3", "_Exit")
Global $b_run = True,$b_play = False, $i_atack
Global $i_stage,$mob_hp,$char_hp, $hWnd
Global Enum $_iStage_select = 1,$_iStage_attack = 2,$_iStage_check = 3
ConsoleWrite('> Нажмите Play для запуска' & @LF)
While $b_run
If Not $b_play Then
ContinueLoop
EndIf
Switch $i_stage
Case $_iStage_select
;Проверка, выделен ли моб
WinActivate($hWnd)
$mob_hp = PixelGetColor(454,20)
If $mob_hp > 10000000 Then
$i_atack = True
$i_stage = $_iStage_attack
Else
Send("{Tab}")
EndIf
Case $_iStage_attack
;Атакуем
If $i_atack Then
Send("{1}")
$i_atack = False
$i_stage = $_iStage_check
Else
$i_stage = $_iStage_check
EndIf
Case $_iStage_check
;Проверим, нужно ли лечится
$char_hp = PixelGetColor(250,25)
If $char_hp < 5000000 Then ;Лечимся
Send("{F1}")
Sleep(500)
Send("{2}")
Sleep(3500)
Send("{ESCAPE}")
EndIf
;Проверим, нужно ли восполнять ману
$char_mp = PixelGetColor(250, 37)
If $char_mp < 2500000 Then ; восполняем ману скллом
Sleep(200)
Send("{5}")
$char_mp = PixelGetColor(120, 37) ;Если мана упала очень низко, то восполняем ее с помощью бутылки.
If $char_mp < 2500000 Then
Send("{8}")
EndIf
EndIf
;Проверим, умер ли моб
$mob_hp = PixelGetColor(453,20)
If $mob_hp <10000000 Then
;Да, моб умер
Send("{SPACE}")
Sleep(500)
Send("{SPACE}")
Sleep(500)
Send("{SPACE}")
$i_atack = True
$i_stage = $_iStage_select;Начинаем сначала
Else
;Нет, моб не умер, продолжаем атаковать
$i_stage = $_iStage_attack
EndIf
EndSwitch
WEnd
ConsoleWrite('> Скрипт завершен.' & @LF)
Func Play()
$b_play = Not $b_play
If $b_play Then
$hWnd = WinGetHandle("R.O.H.A.N.")
If IsHWnd($hWnd) Then
WinActivate($hWnd)
AdlibRegister("Skill_single", 10000) ;Юзаем скилл через каждые 10 сек.
AdlibRegister("Skill_masive", 9000) ;Юзаем второй скилл через каждые 9 сек
AdlibRegister("Buff", 3000000) ;Бафаемся через каждые пол часа
$i_stage = $_iStage_select
Else
ConsoleWrite('> Игра не найдена' & @LF)
$b_play = False
EndIf
EndIf
ConsoleWrite('> Play: '& $b_play & @LF)
EndFunc
Func Skill_single()
Send("{3}")
$i_atack = False
$i_stage = $_iStage_select
EndFunc
Func Skill_masive()
Send("{4}")
$i_atack = False
$i_stage = $_iStage_select
EndFunc
Func Buff()
Send("{F1}")
Sleep(200)
Send("{0}")
Sleep(200)
Send("{ESCAPE}")
$i_atack = False
$i_stage = $_iStage_select
EndFunc
Func Stop()
$b_play = False
AdlibUnRegister("Skill_single")
AdlibUnRegister("Skill_masive")
AdlibUnRegister("Buff")
EndFunc
Func _Exit()
Exit
EndFunc
На данный момент, реализованный функции такие как:
1. Авто-выбор моба
2. Атака моба
3. Использование скиллов (по завершению их куллдауна)
4. Использование баффов (по завершению их куллдауна)
5. Поднятие лута
6. Лечение(возможно лечение скиллом и в тоже время, лечение бутылками)
7. Восполнение маны