Доброго времени суток!
столкнулся с проблемой скрипт работает, но есть незначительные траблы. за основу взять код
http://crapware.aidf.org/forum/index.php?topic=82.msg897#msg897, переделанный на более свежие версии кликера+ вместо мыши используется клава.
моя версия кода
$Count = 3 // Кол-во перебираемых таргетов
$Skil = 1 // Бить только скилом (1-1)
$Delay = 0 // Задержка на респ мобов
$CastDelay = 0 // Задержка между кастами
$IsaHeal = 0 // Сперва таргет на себя, потом хил
$Run = 5 // Количество полу-секунд добежать до монстра и нанести удар
$WaitSkil = 0 // Ждать каста 1-го скила (секунд, если 0 - не ждать)
$Buf1 = 1800
$Buf2 = 300
$Buf3 = 900
$Buf4 = 90
$Buf5 = 1200 // 1100 карамелька
//$Buf6 = 1200 // 75 карамелька
//$Buf7 = 1200
//$Buf8 = 1200
//$Buf9 = 1200
//$BufA = 150
//$BufB = 150
//$BufC = 150
//$Har11 = 0
//$Har12 = 1200 // 1100 карамелька
//$Har13 = 0
//$Har21 = 0
//$Har22 = 0
//$Har23 = 0
// ********************************************************************
// Дальше настроек нет и править только с разрешения Папы Римского!
// ********************************************************************
$Attack = 0 // Вид атаки
$Target = 0 // Текущий номер таргета
$Next = 0 // Нужна ли атака ближайшего?
$TargetOk = 0 // До цели добежали?
//$LastBuff1 = $_time_t
//$LastBuff2 = $LastBuff1
//$LastBuff3 = $LastBuff1
//$LastBuff4 = $LastBuff1
//$LastBuff5 = $LastBuff1
//$LastBuff6 = $LastBuff1
//$LastBuff7 = $LastBuff1
//$LastBuff8 = $LastBuff1
//$LastBuff9 = $LastBuff1
//$LastBuffA = $LastBuff1
//$LastBuffB = $LastBuff1
//$LastBuffC = $LastBuff1
//$LastHarm11 = $LastBuff1
//$LastHarm12 = $LastBuff1
//$LastHarm13 = $LastBuff1
//$LastHarm21 = $LastBuff1
//$LastHarm22 = $LastBuff1
//$LastHarm23 = $LastBuff1
// ********************************************************************
// Алгоритм
// ********************************************************************
// 1. Выбираем очередной таргет (ближайший, потом по списку)
// 2. Выбираем вид атаки
// 3. Атакуем
// 4. Определяем достижимость (добежали и стукнули)
// 5. Определяем убийство (добили до минимума)
// 6. Свип и дроп
// 7. Прыг в п.1
// ********************************************************************
GETSCREEN
$Col_1 = PXL (615,56)
$Col_2 = PXL (615,54)
$Col_3 = PXL (30,84)
$Col_4 = PXL (30,86)
$Col_5 = PXL (763,56)
$Col_6 = PXL (763,54)
$Col_7 = PXL (152,72)
$Col_8 = PXL (152,74)
//$Col_S = PXL (407,754)
// --------------------------------------------------------------
// SUB: SelectTarget - Выбор цели атаки
// --------------------------------------------------------------
sub(SelectTarget)
$CountPause = 0
loop1:
// проверка наличия достижимого ближайшего
if (($Next=1) & ($TargetOk=0))
$Next = 0
end_if
WAITMS(300)
KEYPRESS(#2)
WAITMS(800)
GETSCREEN
if( (PXL(615,56)=$Col_1) & (PXL(615,54)=$Col_2))
$Next = 1
GOTO(ret1)
end_if
// проверка следующего ------------------------------------------------------
proc1:
WAITMS($Delay+10) // проверка задержки на респ
INC($CountPause)
if ($CountPause>10)
$CountPause = 0
WAITMS(1500)
end_if
INC($Target)
if($Target>$Count)
$Target = 1
end_if
$x = ($Target+1)
WAITMS(500)
KEYPRESS(#F$x)
WAITMS(800)
GETSCREEN
if( (PXL(615,56)!$Col_1) | (PXL(615,54)!$Col_2))
GOTO(loop1)
end_if
ret1:
end_sub
// --------------------------------------------------------------
// SUB : SelectAttack - Определение режима атаки
// --------------------------------------------------------------
sub(SelectAttack)
$Attack = 0
GETSCREEN
if( (PXL(30,84)=$Col_3) & (PXL(30,86)=$Col_4))
$Attack = 1
end_if
end_sub
// --------------------------------------------------------------
// SUB: Attack - Выбор режима атаки и атака
// --------------------------------------------------------------
sub(Attack)
if (($Attack = 1) | ($Skil = 1))
$Attack = 0
WAITMS(200)
KEYPRESS(#3)
WAITMS(300)
else
WAITMS(200)
KEYPRESS(#1)
WAITMS(300)
end_if
if ($CastDelay > 0)
WAITMS(($CastDelay+1)*1000)
end_if
end_sub
// --------------------------------------------------------------
// SUB: AttackОк - Проверка первой атаки, прошла или нет
// --------------------------------------------------------------
sub(AttackOk)
$TargetOk = 0
$Cnt = $Run
loop2:
if ($Cnt<1)
GOTO(ret2)
end_if
GETSCREEN
if( (PXL(763,56)!$Col_5) | (PXL(763,54)!$Col_6))
$TargetOk = 1
GOTO(ret2)
else
WAITMS(500)
$Cnt = $Cnt - 1
KEYPRESS(#3)
end_if
//sub(Attack)
GOTO(loop2)
end_if
ret2:
end_sub
// --------------------------------------------------------------
// SUB: DeathОк - Определяем убийство монстра + 1сек
// --------------------------------------------------------------
sub(DeathOk)
$CntDeath = 0
loop3:
//sub(Attack)
GETSCREEN
if( (PXL(615,56)!$Col_1) | (PXL(615,54)!$Col_2))
WAITMS(500)
//sub(Attack)
GOTO(ret3)
else
WAITMS(500)
INC($CntDeath)
if ($CntDeath>30)
GOTO(ret3)
end_if
GOTO(loop3)
end_if
ret3:
end_sub
sub(Heal)
GETSCREEN
if( (PXL(152,72)!$Col_7) | (PXL(152,74)!$Col_8))
if ($IsaHeal = 1)
end_if
WAITMS(500)
KEYPRESS(103)
WAITMS(500)
if ($IsaHeal = 1)
WAITMS(500)
KEYPRESS(103)
WAITMS(500)
end_if
end_if
end_sub
sub(Buff)
//$Flag = 0
if ($Buf1 > 0)
if (($_time_t - $LastBuff1) > $Buf1)
$LastBuff1 = $_time_t
WAITMS(100)
KEYPRESS(97)
WAITMS(700)
//$Flag = 1
end_if
end_if
if ($Buf2 > 0)
if (($_time_t - $LastBuff2) > $Buf2)
$LastBuff2 = $_time_t
WAITMS(100)
KEYPRESS(98)
WAITMS(700)
//$Flag = 1
end_if
end_if
if ($Buf3 > 0)
if (($_time_t - $LastBuff3) > $Buf3)
$LastBuff3 = $_time_t
WAITMS(100)
KEYPRESS(99)
WAITMS(700)
//$Flag = 1
end_if
end_if
if ($Buf4 > 0)
if (($_time_t - $LastBuff4) > $Buf4)
$LastBuff4 = $_time_t
WAITMS(100)
KEYPRESS(100)
WAITMS(700)
//$Flag = 1
end_if
end_if
if ($Buf5 > 0)
if (($_time_t - $LastBuff5) > $Buf5)
$LastBuff5 = $_time_t
WAITMS(100)
KEYPRESS(#NumPad 5)
WAITMS(700)
//$Flag = 1
end_if
end_if
end_sub
sub(WaitAttack)
if ($WaitSkil > 0)
$CntWait = 0
loopwait:
GETSCREEN
LOGWRITE(PXL(407,754))
if(PXL(407,754) = $Col_S)
WAITMS(10)
INC($CntWait)
if ($CntWait < $WaitSkil*100)
GOTO(loopwait)
end_if
end_if
end_if
end_sub
Begin:
Buff()
Heal()
// 1. Выбираем очередной таргет
SelectTarget()
// 2. Выбираем вид атаки
SelectAttack()
// 3. Атакуем
Attack()
// 4. Определяем достижимость
AttackOk()
if ($TargetOk = 0)
GOTO(Begin)
end_if
// 5. Определяем убийство
DeathOk()
// 7. По циклу
GOTO(Begin)
на описания и сноски не обращаем внимания.
буду рад любой помощи.