Решил вот по доброте душевной вылить на паблик свое детище
Этим скриптом и Кликерманом 4.5 откачано 3 персонажа с 1 по 86 лвл на руофе, пока фрост вусмерть не задолбал. Да и запал немного пропал ... а так ваще ниче, бодрячком.
Скрипт тут:
// ====================================================================
// Супер-cкрипт божественного фарма v.1.947 epsilon
// Копировать Направо (С) Majestio (majestio@ya.ru)
//
// Скрипт для автоматического фарма в игрухе LINEAGE используя
// замечательный движок Clickermann v.4.5 (http://clickermann.tk)
//
// Пользуйтесь, если сможете ... скрипт бесплатен!
// Техподдержка бесплатна только для участников ВОВ и боевых действий
// ====================================================================
// ********************************************************************
// НАСТРОЙКИ Использования:
// ********************************************************************
// Макросы таргета прописываются в ячейках панелей:
// 4-1/12 - бафы
// 3-10-12 - бафы с предварительным выбором таргета (3-8,3-9)
// 3-1/4 - таргеты на монстров монстры
// 3-5 - next target
// 1-1 - атакующий скилл
// 1-8 - обычная атака
// 1-2 - свип
// 1-9 - поднять дроп
// 1-10 - баночка с хилом, или баф хила (см. IsaHeal)
// --------------------------------------------------------------------
$Count = 1 // Кол-во перебираемых таргетов (макросы на мобов из 3-1/4)
$Sweep = 0 // Нужен ли свип
$Bow = 0 // Нужно ли перекидывать лук, если моб х3 где-то вверху
$Skil = 0 // Бить только скилом (1-1)
$Delay = 0 // Задержка на респ мобов
$CastDelay = 0 // Задержка между кастами
$Drop = 0 // Нужно ли подбегать к дропу
$IsaHeal = 0 // Сперва таргет на себя, потом хил
$Run = 25 // Количество полу-секунд добежать до монстра и нанести удар
$WaitSkil = 0 // Ждать каста 1-го скила (секунд, если 0 - не ждать)
// ********************************************************************
// НАСТРОЙКИ Бафа:
// ********************************************************************
$Buf1 = 1200
$Buf2 = 1200
$Buf3 = 1200
$Buf4 = 1200
$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
// ********************************************************************
MOVE(534,68)
WAITMS(500)
LCLICK(534,68)
WAITMS(1000)
LCLICK(534,68)
WAITMS(1000)
GETSCREEN
$Col_1 = PXL(549,54)
$Col_2 = PXL(549,52)
$Col_3 = PXL(54,82)
$Col_4 = PXL(54,84)
$Col_5 = PXL(691,54)
$Col_6 = PXL(691,52)
$Col_7 = PXL(152,72)
$Col_8 = PXL(152,74)
$Col_S = PXL(407,754)
Begin:
// 1. Выбираем очередной таргет
GOSUB(SelectTarget)
// 2. Выбираем вид атаки
GOSUB(SelectAttack)
// 3. Атакуем
GOSUB(Attack)
// 4. Определяем достижимость
GOSUB(AttackOk)
if ($TargetOk = 0)
GOTO(Begin)
end_if
// 5. Определяем убийство
GOSUB(DeathOk)
// 6. Свип и дроп
GOSUB(SweepDrop)
// 7. По циклу
GOTO(Begin)
// --------------------------------------------------------------
// SUB: SelectTarget - Выбор цели атаки
// --------------------------------------------------------------
sub(SelectTarget)
$CountPause = 0
loop1:
GOSUB(Heal)
GOSUB(Buff)
GOSUB(Heal)
// проверка наличия достижимого ближайшего
if (($Next=1) & ($TargetOk=0))
$Next = 0
MOVE(855,380)
WAITMS(500)
RDOWN(855,380)
MOVE(700,380)
WAITMS(500)
MOVE(600,380)
WAITMS(500)
MOVE(500,380)
WAITMS(500)
MOVE(400,380)
WAITMS(500)
RUP(400,380)
MOVE(245,445)
WAITMS(500)
LCLICK(245,445)
WAITMS(1500)
MOVE(550,139)
WAITMS(500)
LCLICK(550,139)
WAITMS(3700)
MOVE(700,160)
WAITMS(500)
LCLICK(700,160)
WAITMS(3700)
MOVE(688,39)
WAITMS(500)
LCLICK(688,39)
WAITMS(700)
end_if
WAITMS(700)
MOVE(555,660)
WAITMS(500)
LCLICK(555,660)
WAITMS(800)
GETSCREEN
if( (PXL(549,54)=$Col_1) & (PXL(549,52)=$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 = 400+($Target-1)*36
MOVE($x,660)
WAITMS(500)
LCLICK($x,660)
WAITMS(800)
GETSCREEN
if( (PXL(549,54)!$Col_1) | (PXL(549,52)!$Col_2))
GOTO(loop1)
end_if
ret1:
end_sub
// --------------------------------------------------------------
// SUB : SelectAttack - Определение режима атаки
// --------------------------------------------------------------
sub(SelectAttack)
$Attack = 0
GETSCREEN
if( (PXL(54,82)=$Col_3) & (PXL(54,84)=$Col_4))
$Attack = 1
end_if
end_sub
// --------------------------------------------------------------
// SUB: Attack - Выбор режима атаки и атака
// --------------------------------------------------------------
sub(Attack)
if (($Attack = 1) | ($Skil = 1))
$Attack = 0
MOVE(400,748)
WAITMS(200)
LCLICK(400,748)
WAITMS(300)
GOSUB(WaitAttack)
else
MOVE(664,748)
WAITMS(200)
LCLICK(664,748)
WAITMS(300)
end_if
if ($CastDelay > 0)
WAITMS(($CastDelay+1)*1000)
end_if
end_sub
// --------------------------------------------------------------
// SUB: AttackОк - Проверка первой атаки, прошла или нет
// --------------------------------------------------------------
sub(AttackOk)
$TargetOk = 0
$Cnt = $Run
GOSUB(Heal)
loop2:
if ($Cnt<1)
GOTO(ret2)
end_if
GETSCREEN
if( (PXL(691,54)!$Col_5) | (PXL(691,52)!$Col_6))
$TargetOk = 1
GOTO(ret2)
else
WAITMS(500)
$Cnt = $Cnt - 1
if ($Bow = 1)
if ($Cnt=5)
MOVE(436,704) // включили лук
WAITMS(500)
LCLICK(436,704)
WAITMS(500)
MOVE(664,748) // атаковали из лука
WAITMS(500)
LCLICK(664,748)
WAITMS(2000)
MOVE(400,704) // включили оружие
WAITMS(500)
LCLICK(400,704)
WAITMS(500)
MOVE(400,748) // атака1
WAITMS(500)
LCLICK(400,748)
WAITMS(500)
end_if
end_if
GOSUB(Attack)
GOTO(loop2)
end_if
ret2:
end_sub
// --------------------------------------------------------------
// SUB: DeathОк - Определяем убийство монстра + 1сек
// --------------------------------------------------------------
sub(DeathOk)
$CntDeath = 0
loop3:
GOSUB(Attack)
GETSCREEN
if( (PXL(549,54)!$Col_1) | (PXL(549,52)!$Col_2))
WAITMS(500)
GOSUB(Attack)
GOTO(ret3)
else
WAITMS(500)
INC($CntDeath)
if ($CntDeath>30)
GOTO(ret3)
end_if
GOTO(loop3)
end_if
ret3:
end_sub
// --------------------------------------------------------------
// SUB: SweepDrop - Свип и дроп с монстров
// --------------------------------------------------------------
sub(SweepDrop)
if ($Drop = 1)
MOVE(664,748)
WAITMS(500)
LCLICK(664,748)
WAITMS(3000)
end_if
if ($Sweep = 1)
MOVE(436,748)
WAITMS(500)
LCLICK(436,748)
WAITMS(500)
end_if
MOVE(711,748)
WAITMS(100)
LCLICK(711,748)
WAITMS(400)
LCLICK(711,748)
WAITMS(400)
LCLICK(711,748)
WAITMS(400)
LCLICK(711,748)
WAITMS(400)
WAITMS(400)
LCLICK(711,748)
WAITMS(400)
LCLICK(711,748)
WAITMS(400)
LCLICK(711,748)
WAITMS(400)
end_sub
sub(Heal)
GETSCREEN
if( (PXL(152,72)!$Col_7) | (PXL(152,74)!$Col_8))
if ($IsaHeal = 1)
MOVE(47,41)
WAITMS(500)
LCLICK(47,41)
WAITMS(500)
end_if
MOVE(750,750)
WAITMS(500)
LCLICK(750,750)
WAITMS(500)
if ($IsaHeal = 1)
MOVE(558,662)
WAITMS(500)
LCLICK(558,662)
WAITMS(500)
end_if
end_if
end_sub
sub(Buff)
$Flag = 0
if ($Buf1 > 0)
if (($_time_t - $LastBuff1) > $Buf1)
$LastBuff1 = $_time_t
MOVE(404,615)
WAITMS(100)
LCLICK(404,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf2 > 0)
if (($_time_t - $LastBuff2) > $Buf2)
$LastBuff2 = $_time_t
MOVE(440,615)
WAITMS(100)
LCLICK(440,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf3 > 0)
if (($_time_t - $LastBuff3) > $Buf3)
$LastBuff3 = $_time_t
MOVE(476,615)
WAITMS(100)
LCLICK(476,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf4 > 0)
if (($_time_t - $LastBuff4) > $Buf4)
$LastBuff4 = $_time_t
MOVE(512,615)
WAITMS(100)
LCLICK(512,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf5 > 0)
if (($_time_t - $LastBuff5) > $Buf5)
$LastBuff5 = $_time_t
MOVE(557,615)
WAITMS(100)
LCLICK(557,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf6 > 0)
if (($_time_t - $LastBuff6) > $Buf6)
$LastBuff6 = $_time_t
MOVE(592,615)
WAITMS(100)
LCLICK(592,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf7 > 0)
if (($_time_t - $LastBuff7) > $Buf7)
$LastBuff7 = $_time_t
MOVE(632,615)
WAITMS(100)
LCLICK(632,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf8 > 0)
if (($_time_t - $LastBuff8) > $Buf8)
$LastBuff8 = $_time_t
MOVE(670,615)
WAITMS(100)
LCLICK(670,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Buf9 > 0)
if (($_time_t - $LastBuff9) > $Buf9)
$LastBuff9 = $_time_t
MOVE(710,615)
WAITMS(100)
LCLICK(710,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($BufA > 0)
if (($_time_t - $LastBuffA) > $BufA)
$LastBuffA = $_time_t
MOVE(751,615)
WAITMS(100)
LCLICK(751,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($BufB > 0)
if (($_time_t - $LastBuffB) > $BufB)
$LastBuffB = $_time_t
MOVE(785,615)
WAITMS(100)
LCLICK(785,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($BufC > 0)
if (($_time_t - $LastBuffC) > $BufC)
$LastBuffC = $_time_t
MOVE(823,615)
WAITMS(100)
LCLICK(823,615)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Har11 > 0)
if (($_time_t - $LastHarm11) > $Har11)
$LastHarm11 = $_time_t
MOVE(670,658)
WAITMS(100)
LCLICK(670,658)
WAITMS(500)
MOVE(751,658)
WAITMS(100)
LCLICK(751,658)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Har12 > 0)
if (($_time_t - $LastHarm12) > $Har12)
$LastHarm12 = $_time_t
MOVE(670,658)
WAITMS(100)
LCLICK(670,658)
WAITMS(500)
MOVE(785,658)
WAITMS(100)
LCLICK(785,658)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Har13 > 0)
if (($_time_t - $LastHarm13) > $Har13)
$LastHarm13 = $_time_t
MOVE(670,658)
WAITMS(100)
LCLICK(670,658)
WAITMS(500)
MOVE(823,658)
WAITMS(100)
LCLICK(823,658)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Har21 > 0)
if (($_time_t - $LastHarm21) > $Har21)
$LastHarm21 = $_time_t
MOVE(710,658)
WAITMS(100)
LCLICK(710,658)
WAITMS(500)
MOVE(751,658)
WAITMS(100)
LCLICK(751,658)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Har22 > 0)
if (($_time_t - $LastHarm22) > $Har22)
$LastHarm22 = $_time_t
MOVE(710,658)
WAITMS(100)
LCLICK(710,658)
WAITMS(500)
MOVE(785,658)
WAITMS(100)
LCLICK(785,658)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Har23 > 0)
if (($_time_t - $LastHarm23) > $Har23)
$LastHarm23 = $_time_t
MOVE(710,658)
WAITMS(100)
LCLICK(710,658)
WAITMS(500)
MOVE(823,658)
WAITMS(100)
LCLICK(823,658)
WAITMS(700)
$Flag = 1
end_if
end_if
if ($Flag = 1)
WAITMS(700)
MOVE(555,660)
WAITMS(500)
LCLICK(555,660)
WAITMS(800)
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
Хорошо подходит для:
- Спойла
- Файтеров с бафами "наставника"
- Шаманчиков на дрэйнах
- Иса соло
В скрипте написал и тут повторюсь -
бесплатной техподдержки не оказываю. Прежде чем запускать, разберитесь с настройками и геометрией игрового окна, расположением панелей и индикаторов здоровья персонажа и таргета. Читайте скрипт и осознавайте что он делает, и будет вам Благодать Божыя
ЗЫ: За подпрограмму Buff ногами не бить - знаю что криво, но работает норм. Инфа 100%