Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Радар
genocide
сообщение 17.6.2013, 0:09
Сообщение #1


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Скрипт ищет на радаре розовую точку, если она не оказывается в области #r, то таргет сбрасывается и поиск ведётся по новой. В конце скрипта получается переменная #assist.3 значение которой 1 - это тот самый элемент с котором и будет работать основной фарм скрипт.
в фарм скрипте должно быть что-то вроде этого:
if #assist.3 = 1 // если ассист разрешён
send $TargetRadar // таргет на радарщика
send $assist // кнопка ассиста
end_if
Если рядом с радарщиком появится моб, то выделится именно он для этого и нужна кнопка некст таргета.
Есть некоторые косяки если использовать конструкцию stop_script start_script для этого скрипта, которые я пытался поправить, но до идеала так и не дошло. По этому в нём есть закоментированая конструкция для остановки.
З.Ы. Извиняюсь, что так долго выкладывал, думал, что доработаю.
Код

//RADAR
//Скрипт тыкает на макросы с таргетами мобов
// и если моб находится в квадрате  - + #r от центра
// создаёт переменную #assist.2 и присваивает ему значение 1
// это позволит фарм скрипту взять ассист  
//------------------------------------------------
//log commands  //Включить лог
set linedelay 5 //Для забывчивых

//ХП таргета 90%
set #xtargethp 321
set #ytargethp 30
set #colortargethp 1316719    

//ищем цель в заданных пределах радара
//центр радара
set #xcentr 406
set #ycentr 90

//искомый диапазон цвета(рекомендую оставить таким)
set #color1 15472108  
set #color2 7605370  

// радиус к которому должен принадлежать таргет
set #r 7
set #r2 #r * 2

//таргеты мобов
set #maxmob 4       //количество макросов с таргетами
set #nmob random(4) //начать со случайного тагрета моба
set %mob [1] f1     //кнопки с таргетами мобов
set %mob [2] f2
set %mob [3] f3
set %mob [4] f4
set $nt  2         //кнопка "next target"
/////////////////////////////////////////////////

:start
//лучше использовать именно такой способ временной приостановки скрипта
// if #radar.6 = 0 //Выключение радара
//       wait 3s
//        goto start
//         end_if

if #nmob = #maxmob
    set #nmob 0
end_if

send escape 500 // снимаем таргет
send escape 500
        
set #nmob #nmob + 1
    send %mob [#nmob]
     waitfortarget 800
    send $nt  //некст таргет
    wait 500

//Меняя #r на какоето значение можно изменять форму квадрата поиска     
set #x #xcentr - #r    //начальная координата Х
set #y #ycentr - #r    //начальная координата Y
set #xmax #xcentr + #r //конечная координата  x
set #ymax #ycentr + #r //конечная координата Y

if_not #xtargethp #ytargethp #colortargethp // есть ли таргет?
  goto start
end_if

//Поиск
set #a findcolor (#x, #y #xmax, #ymax 1 1 (#color1-#color2) %arr 2 )
    if #a > 0
      hint (15 (нашёл #a моба #nmob координаты %arr [1 1] %arr [1 2] ))
       goto ok
else
hint (15 ( не нашёл #a ))
  goto start
    end_if

//таргет найден
:ok
while #xtargethp #ytargethp #colortargethp //держать таргет пока не начнут его бить
   set #assist.6 1  //создаёт переменную для фарм скрипта, что можно брать ассисит
   wait 300
end_while
    set #assist.6 0
goto start
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 17.6.2013, 7:47
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Спасибо за скрипт. Востребованная вещь.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 23.6.2013, 23:26
Сообщение #3


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Добавил: радиус автоматически увеличивается на #shift если неудачных проходов равно #maxmob т.е. когда попробовал все таргеты. После удачного прохода радиус возвращается на исходную.
Код

//RADAR
//Скрипт тыкает на макросы с таргетами мобов
// и если моб находится в квадрате  - + #r от центра
// создаёт переменную #assist.2 и присваивает ему значение 1
// это позволит фарм скрипту взять ассист  
//------------------------------------------------
//log commands  //Включить лог
set linedelay 5 //Для забывчивых

:reg
//ХП таргета 90%
set #xtargethp 321
set #ytargethp 30
set #colortargethp 1316719    

//ищем цель в заданных пределах радара
//центр радара
set #xcentr 406
set #ycentr 90

//искомый диапазон цвета(рекомендую оставить таким)
set #color1 15472108  
set #color2 7605370  

// радиус к которому должен принадлежать таргет
set #r 7
set #r2 #r * 2

//configuration
set #fail 0
set #shift 1 //шаг увеличения радиуса

//таргеты мобов
set #maxmob 4       //количество макросов с таргетами
set #nmob random(4) //начать со случайного тагрета моба
set %mob [1] f1     //кнопки с таргетами мобов
set %mob [2] f2
set %mob [3] f3
set %mob [4] f4
set $nt  2         //кнопка "next target"
/////////////////////////////////////////////////

:start
//лучше использовать именно такой способ временной приостановки скрипта
// if #radar.6 = 0 //Выключение радара
//       wait 3s
//        goto start
//         end_if

if #nmob = #maxmob
    set #nmob 0
end_if

send escape 500 // снимаем таргет
send escape 500
        
set #nmob #nmob + 1
    send %mob [#nmob]
     waitfortarget 800
    send $nt  //некст таргет
    wait 500

//Меняя #r на какоето значение можно изменять форму квадрата поиска    
set #x #xcentr - #r    //начальная координата Х
set #y #ycentr - #r    //начальная координата Y
set #xmax #xcentr + #r //конечная координата  x
set #ymax #ycentr + #r //конечная координата Y

if_not #xtargethp #ytargethp #colortargethp // есть ли таргет?
goto start
end_if

//Поиск
set #a findcolor (#x, #y #xmax, #ymax 1 1 (#color1-#color2) %arr 2 )
    if #a > 0
      hint (15 (нашёл #a моба #nmob координаты %arr [1 1] %arr [1 2] ))
       goto ok
else
hint (15 ( не нашёл #a ))
set #fail #fail + 1
           if #maxmob = #fail   //если в диапазон не попал не один моб, увеличить  радиус
            set #r #r + #shift
            end_if
  goto start
    end_if

//таргет найден
:ok
while #xtargethp #ytargethp #colortargethp //держать таргет пока не начнут его бить
   set #assist.6 1  //создаёт переменную для фарм скрипта, что можно брать ассисит
   wait 300
end_while
    set #assist.6 0
goto reg
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
oleggarh
сообщение 7.10.2013, 19:17
Сообщение #4


*

Registred
Сообщений: 3
Регистрация: 15.3.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.566
Возраст: 22



Переделал скрипт под себя, вроде норм работает, но время от времени начинает бежать атаковать цель за пределами указаной области. В чем может быть проблема?
Код
           //RADAR
//Скрипт тыкает на макросы с таргетами мобов
// и если моб находится в квадрате  - + #r от центра
// создаёт переменную #assist.2 и присваивает ему значение 1
// это позволит фарм скрипту взять ассист  
//------------------------------------------------
log commands  //Включить лог
set linedelay 5 //Для забывчивых

//ХП таргета 90%
set #xtargethp 21
set #ytargethp 106
set #colortargethp 6316683      

//ищем цель в заданных пределах радара
//центр радара
set #xcentr 735
set #ycentr 89

//искомый диапазон цвета(рекомендую оставить таким)
set #color1 15472108  
set #color2 7605370  

// радиус к которому должен принадлежать таргет
set #r 15
set #r2 #r * 2

set %mob [1] f10
set %mob [2] f2    
set %mob [3] f3
set $nt  f11         //кнопка "next target"
/////////////////////////////////////////////////

set #mobSize size (%mob)
set #nMob 1

while 1
      send $nt
      wait 500
      if 20, 107 4408704
      while 21, 107 4474495
               if 337, 106 6316683
                      send f8
                      wait 300
               end_if
               send f12
               wait 300
               if #selfBuffTimer3 < timer
                  send f4  
                  wait 1s
                  set #selfBuffTimer3 timer + 70*1000
               end_if
               if_not 63, 52 9133376    
               if #selfBuffTimer4 < timer
                  send f6
                  wait 500
                  set #selfBuffTimer4 timer + 20*1000
               end_if
               end_if
      end_while
      else
      while_not 20, 107 4408704
                send %mob [#nMob]
                wait 1s
                if #nMob < #mobsize
                   set #nMob #nMob + 1
                else
                    set #nMob 1
                end_if
      end_while
      end_if              
      
      set #x #xcentr - #r    //начальная координата Х
      set #y #ycentr - #r    //начальная координата Y
      set #xmax #xcentr + #r //конечная координата  x
      set #ymax #ycentr + #r //конечная координата
        
      set #a findcolor (#x, #y #xmax, #ymax 1 1 (#color1-#color2) %arr 2 )
      
      if #a > 0
      wait 100
       set #a findcolor (#x, #y #xmax, #ymax 1 1 (#color1-#color2) %arr 2 )
               while 21, 107 4474495
               if 337, 106 6316683
                      send f8
                      wait 300
               end_if
               send f12
               wait 300
               set #nMob 1
         end_while
      else
      send escape 500
      send escape 500            
      hint (15 ( не нашёл #a ))
      end_if
      end_if
      end_if

end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 18.1.2015, 17:52
Сообщение #5


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



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

//CANCEL (window main)
// если хп не падает в течении времени #time тагрет снимается ////////////////////////////////////////////////////////////////
:reg
set %cheack [1] 989, 28 1316719 //90% хп таргета моба
set #time 400 //сколько будет ждайть таргета (сумма = #time * #number)
set #number 20 //количество попыток
///////////////////////////////////////////////////////////////
:head
repeat #number
if %cheack [1] //если хп > 90%
wait #time
else
goto head  //Хп упало
end_if
end_repeat
///////////////////////////////////////////////////////////////
:cancel
send {escape}
send {escape}
send {escape}
goto head
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 27.4.2024, 9:41
Designed by Nickostyle