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

Pages: [1]
1
Предложения / Re: Скриптовый менеджер
« on: April 25, 2017, 07:06:31 PM »
Если я правильно понял,то эта идея уже реализована на другом кликере UOpilot. там каждый скрипт в своей вкладке и каждая вкладка может привязывается к своему окну. но есть и минусы у такого кликера считывает данные только напрямую открытого (не перекрытого) окна, а отправлять нажатия клавиш,  и клики мыши к привязанному свернутому окну.
как я не старался я не смог наладить правильную работу этого кликера.
если возможно это сделать в clickermann, то я двумя руками ЗА. соответственно с сохранением текущего функционала.

2
Вы в самом начале пути,  можно сделать так, что при старте скрипта просто кликать по нужным координатам или цветам и все они будут сохраняться в нужных переменных для дальнейшей  работы.
Одна переменная - одно значение.
соответственно для запоминания одной координаты, вам нужно две переменных.
А можно поподробнее и с примерами.

3
неверно
Code: (clickermann) [Select]
if((PXL($pix_1)=$Col_1)&(PXL($pix_2)!$Col_2))верно
Code: (clickermann) [Select]
if((PXL($pix_1x,$pix_1y)=$Col_1)&(PXL($pix_2x,$pix_2y)!$Col_2))
я правильно вас понял?

4
ДД!
чем больше начинаешь писать код, тем больше в него втягиваешься и все больше возникает вопросов.
вот возник очередной.
будьте так добры подскажите пожалуйста возможно ли  координаты на экране загнать в переменную. в справке что то такого не нашел. мб я конечно, что не туда смотрел.

вот пример кода
Code: [Select]
GETSCREEN
$Col_1 = 1251183   //(532,58) 
$Col_2 = 8535813   //(532,66)


$pix_1=(532,58)   // 1251183
$pix_2=(532,66) // 8535813
для чего это было бы полезным
чтобы в коде постоянно не менять координаты желаемого пикселя. а лишь поменять в переменной.

5
если не слишком поздно я привязываюсь к окнам таким образом
Code: [Select]
$h=WNDFIND("Lineage II") // поис окна с именем "Lineage II"
//WNDSTATE($h, 1)
HSET($h,1) // окный режим
WAITMS(100)
WNDPOS($h,0,0) // перемещает окно на заданые координаты
WAITMS(300)
WNDSIZE($h,1365,738) // задает размеры окну
WAITMS(300)
WNDBUMP($h)  // на передний план
WAITMS(500)
halt

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

7
Доброго времени суток!
столкнулся с проблемой скрипт работает, но есть незначительные траблы.  за основу взять код http://crapware.aidf.org/forum/index.php?topic=82.msg897#msg897, переделанный на более свежие версии кликера+ вместо мыши используется клава.
моя версия кода
Code: [Select]
$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)
на описания и сноски не обращаем внимания.
буду рад любой помощи.

Pages: [1]