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

7 страниц V < 1 2 3 4 > »   
Ответить в эту темуОткрыть новую тему
> Создал Бот для Русской рыбалки, Игра Русская рыбалка. Ловля карпа.
Strannik
сообщение 10.8.2015, 23:35
Сообщение #21


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Цитата(DarkMaster @ 10.8.2015, 17:22) *

Обошел немного другим способом. Просто проверил на месте заброса какое окно под мышкой, соответственно если не окно где рыба ловится, значит это как раз то окно которое выскакивает, а оно в отличае от других имеет свое текстовое название. с помощью findwindow () сделал.
Практически все готово к выпуску версии 2.0 так сказать, для любого пользователся. Есть один момент. Хочу начало работы немного упростить. Для работы бота надо чтобы в юпилот загрузил пользователь 4 скрипта. Их нельзя как то все вместе сразу загрузить с присвоенными им номерами? или надо вручную по отдельности каждый?.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.8.2015, 23:59
Сообщение #22


***********

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



https://forum.uokit.com/index.php?showtopic=20548
там есть про запуск пилота с ключами. Так же есть команда load_script.
От себя хотелось бы порекомендовать по возможности не использовать кучу вкладок, если их работа пересекается либо используются старт/стопы скриптов.


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


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Цитата(DarkMaster @ 10.8.2015, 23:59) *

https://forum.uokit.com/index.php?showtopic=20548
там есть про запуск пилота с ключами. Так же есть команда load_script.
От себя хотелось бы порекомендовать по возможности не использовать кучу вкладок, если их работа пересекается либо используются старт/стопы скриптов.

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

пока так делаю
задаем параметры

Код

// этот раздел посвящен заданию начальных параметров
set #handlePilot findwindow ()
log #handlePilot
log close
log clear
log open
set #logSizeX 300
set #logSizeY 200  
set #handleLog 0
while #handleLog = 0
      set #handleLog findwindow (Log Window)
end_while
set #x (screenwidth  - #logSizeX) / 2
set #y screenheight / 4
set windowpos 1 1 #logSizeX #logSizeY #handleLog
log mode compact
// 1 ищем необходимые окна -   место заброса
set workwindow 0
showwindow #handlePilot
log Укажите точку заброса (Ctrl+A)
while workwindow = 0
         wait 100
     showwindow #handlePilot
end_while

set #zabrosX defX
set #zabrosY defY
set #zabrosAX defxabs
set #zabrosAY defyabs
set #fiderX  #zabrosX - 32
set #fiderY  #zabrosY - 37

set #zabros workwindow


// 3 ищем необходимые окна -  полоса еды    
set workwindow 0
showwindow #handlePilot
log Укажите на полоску еды в ее середину (Ctrl+A)
while workwindow = 0
      wait 200
      showwindow #handlePilot
end_while
set #edaX   defX
set #edaY   defY
set #eda workwindow
// 4 ищем необходимые окна  -  котелок
set workwindow 0          
showwindow #handlePilot
log Укажите на котелок(Ctrl+A)
while workwindow = 0
      wait 100
      showwindow  #handlePilot
end_while  
set #cotelX defX
set #cotelY  defY
set #cotel workwindow
set   workwindow  #cotel
move  #cotelX #cotelY
left  #cotelX #cotelY
wait 400
// 5 ищем необходимые окна    употребить
set workwindow 0
showwindow #handlePilot
log Укажите на кнопку употребить (Ctrl+A)
while workwindow = 0
      wait 100
      showwindow #handlePilot
end_while
set #upotrebitX defX
set #upotrebitY defY
set #upotrebit workwindow
send {Space}
  

// конец раздела начальных параметров

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Strannik
сообщение 11.8.2015, 15:49
Сообщение #24


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Готова версия 1.0 кодовое название КАРП

Вот собственно версия которая будет работать у всех.

Бот запрашивает место ловли, затем сам ловит рыбу, сам кушает, сам достает сачек. Ведет посчет количества выловленной рыбы. Делает перезабросы и т.д.

Пользователю остается следить чтобы была наживка и еда в наличии, ну и своевременно продавать рыбу.
Локация, пока только рыбхоз - карповая заводь.

Планирую дальше: минимизировать запросы от пользователя, сделать возможность боту самому пополнять запасы наживки и еды, а так же продавать выловленную рыбу. Плюс расширить места ловли (или сделать их универсальными)
script 0

Код

// включение и настройка бота
// необходимо достать удочку и забросить в место ловли
// затем запускаем бот и следуем указаниям
// раздел проверки нужны ли начальные параметры
if #zabros > 0 and #eda > 0 and #cotel > 0 and #upotrebit > 0
goto eda
else
end_if
// этот раздел посвящен заданию начальных параметров
set #handlePilot findwindow ()
log #handlePilot
log close
log clear
log open
set #logSizeX 300
set #logSizeY 200  
set #handleLog 0
while #handleLog = 0
      set #handleLog findwindow (Log Window)
end_while
set #x (screenwidth  - #logSizeX) / 2
set #y screenheight / 4
set windowpos 1 1 #logSizeX #logSizeY #handleLog
log mode compact
// 1 ищем необходимые окна -   место заброса   // карп 562, 329
set workwindow 0
showwindow #handlePilot
log Укажите точку заброса (Ctrl+A)
while workwindow = 0
         wait 100
     showwindow #handlePilot
end_while

set #zabrosX defX
set #zabrosY defY
set #zabrosAX defxabs
set #zabrosAY defyabs
set #carpX 562
set #carpY 329
set #fiderX  #carpX - 32 //дельта места заброса и конца фидера на карпа
set #fiderY  #carpY - 44
set #zabros workwindow
// 2 ищем необходимые окна -  окно игры и пилота в строке пуск
set workwindow 0
showwindow #handlePilot
log Укажите положение окна игры в строке пуск (Ctrl+A)
while workwindow = 0
         wait 100
     showwindow #handlePilot
end_while  
set #igraX defxabs
set #igraY defyabs
set workwindow 0
showwindow #handlePilot
log Укажите положение окна UoPilot в строке пуск(Ctrl+A)
while workwindow = 0
         wait 100
     showwindow #handlePilot
end_while  
set #pilotX defxabs
set #pilotY defyabs
// 3 ищем необходимые окна -  полоса еды    
set workwindow 0
showwindow #handlePilot
log Укажите на полоску еды в ее середину (Ctrl+A)
while workwindow = 0
      wait 200
      showwindow #handlePilot
end_while
set #edaX   defX
set #edaY   defY
set #eda workwindow
move 416, 31  //относительные коорд рядом с бегунком лески
get mouse_pos #leskaRX #leskaY abs//считываем абсолютные координаты окна рядом с леской
set #leskaX #leskaRX + 1
move #leskaX  #leskaY  abs
set #LeskaW windowfromcursor  
move 416, 12 //относительные коорд рядом с бегунком удочки
get mouse_pos #udaRX #udaY abs//считываем абсолютные координаты окна рядом с леской
set #udaX #udaRX + 1
move #udaX  #udaY  abs
set #udaW windowfromcursor
// 4 ищем необходимые окна  -  котелок
set workwindow 0          
showwindow #handlePilot
log Укажите на котелок(Ctrl+A)
while workwindow = 0
      wait 100
      showwindow  #handlePilot
end_while  
set #cotelX defX
set #cotelY  defY
set #cotel workwindow
set   workwindow  #cotel
move  #cotelX #cotelY
left  #cotelX #cotelY
wait 400
// 5 ищем необходимые окна    употребить
set workwindow 0
showwindow #handlePilot
log Укажите на кнопку употребить (Ctrl+A)
while workwindow = 0
      wait 100
      showwindow #handlePilot
end_while
set #upotrebitX defX
set #upotrebitY defY
set #upotrebit workwindow
send {Space}
  

// конец раздела начальных параметров
//хотим ли есть?

:eda    
  set workwindow #eda //окно полосок с едой
get color #edacolor 27, 53  //координаты голода
    if #edacolor = 13032663  // цвет голода    
      log Кушаю
      set #handleWin findwindow (Продукты)
      showwindow #handleWin
      wait random (1000) + 300
      set workwindow #upotrebit
       left 10 10
       send {space}        
       goto eda
     else      
    end_if        
// Начало заброса
:zabros
wait random (1000) + 500
log Забрасываю Удочку
set workwindow #zabros
//проверяем первый ли заброс
set #a #a + 1        
if #a = 1
move #carpX #carpY
left #carpX #carpY
goto klev
end_if
set #z random (2)
    if #z = 1
      log забросил мышкой
       move #carpX #carpY
       left #carpX #carpY
    else
       send t
       log забросил кнопкой
    end_if
:klev // цикл клева
   set #j #j + 1        
if #j > 30
log возвращаюсь в начало (возможно есть проблемы)
set #j 0    
goto nachalo
end_if
wait random (1000) + 1500
     get color #uda #fiderX, #fiderY// надо всегда проверять место заброса
     if #uda = 255 // цвет удочки
      goto klev  
     else      
        log Клюнуло, ВЫВАЖИВАЕМ!
     end_if

//вываживаем
start_script 1
start_script 2

// проверка улова
:ulov
set #b #b + 1                //увеличение счетчика
if #b > 150

Log не вываживается, либо сорвалась
goto nachalo //сачек    
end_if
set #a #a + 1                //увеличение счетчика
if #a > 10

send f        //сачек    
set #a  1
end_if
move #zabrosAX #zabrosAY abs
set #w windowfromcursor
set workwindow #w
  if #w = #zabros// хендл окна заброса      
goto ulov
else
set #riba #riba + 1
log поймалась #riba рыбка
stop_script 1
stop_script 2
wait random (1000) + 400
set #var findwindow (Садок)
set workwindow #var
send {Space}
wait random (1000) + 400
end_if          
:nachalo
stop_script 1
stop_script 2
log начинаем все поновой
set #j 0
set #b 0
move #igraX, #igraY abs
set #w windowfromcursor
set workwindow #w
left #igraX, #igraY abs
wait random (300)
move #pilotX, #pilotY abs
left  #pilotX, #pilotY abs
   wait random (300)


script 1

Код

set workwindow #LeskaW.0  
         send_down g
:leska
get color #leska 21, 7       // цвет полосы лески
        if #leska = 4488494          // цвет без нагрузки
           send_up g
            
        else
           goto leska
        end_if


script 2

Код

set workwindow #udaW.0
         send_down h
:palka
get color #palka 18, 7       // цвет полосы лески
        if #palka = 4488494          // цвет без нагрузки
           send_up h  
                      
        else
           goto palka
        end_if



Надо открыть все 3 скрипта в пилоте, чтобы они так и назывались (0, 1, 2)

Далее так же планирую привязать их к окну пилота, чтобы при запуске пилота сразу подгружались эти скрипты.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.8.2015, 2:16
Сообщение #25


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
get color #palka 18, 7       // цвет полосы лески
        if #palka = 4488494          // цвет без нагрузки

get color тут по сути не нужен, можно заменить на:
Код
if 18, 7 4488494

В начало скриптов лучше сразу добавить нужную задержку между строк.
Код
set linedelay 1  //установить задержку в 1 мсек.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Strannik
сообщение 12.8.2015, 20:20
Сообщение #26


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Цитата(cirus @ 12.8.2015, 2:16) *

Код
get color #palka 18, 7       // цвет полосы лески
        if #palka = 4488494          // цвет без нагрузки

get color тут по сути не нужен, можно заменить на:
Код
if 18, 7 4488494

В начало скриптов лучше сразу добавить нужную задержку между строк.
Код
set linedelay 1  //установить задержку в 1 мсек.


Спасибо. Обязательно учту. Понял как привязывать окна к родительскому. Буду оптимизировать скрипт... видимо этот процесс бесконечный)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Strannik
сообщение 12.8.2015, 21:07
Сообщение #27


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Версия 2.0 Карп что добавлено: теперь пользовтелю ненадо НИЧЕГО настраивать в боте. Ему надо только зайти на локацию и достать удочку, проверить есть ли наживка и еда... Включаем бот и все) Функциональность пока без изменений (ловит, перезабрасывает, ест)
Планируется: продажа рыбы, закупка еды и наживки, расширение мест ловли

КАРП 2.0

Код

set linedelay 1  //установить задержку в 1 мсек.
// включение и настройка бота
// необходимо достать удочку и забросить в место ловли
// затем запускаем бот и следуем указаниям
// раздел проверки нужны ли начальные параметры
if #zabros > 0 and #eda > 0 and #cotel > 0 and #upotrebit > 0
goto eda
else
end_if
// этот раздел посвящен заданию начальных параметров
set #handlePilot findwindow ()
log #handlePilot
log close
log clear
log open
set #logSizeX 300
set #logSizeY 200  
set #handleLog 0
while #handleLog = 0
      set #handleLog findwindow (Log Window)
end_while
set #x (screenwidth  - #logSizeX) / 2
set #y screenheight / 4
set windowpos 1 1 #logSizeX #logSizeY #handleLog
log mode compact  
// окно  заброса   // карп 562, 329
set #ownerHandle findwindow (Рыбхоз: Карповая заводь)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #zabros getwindow (#tmp next)
set #carpX 562
set #carpY 329
set #fiderX  #carpX - 32 //дельта места заброса и конца фидера на карпа
set #fiderY  #carpY - 44
// окно -  полоса еды  
set #ownerHandle findwindow (Рыбхоз: Карповая заводь)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp next)
set #eda getwindow (#tmp next)
// окно -  бегунок лески
set #ownerHandle findwindow (Рыбхоз: Карповая заводь)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #LeskaW getwindow (#tmp next)  
// окно -  бегунок удочки
set #ownerHandle findwindow (Рыбхоз: Карповая заводь)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #udaW getwindow (#tmp next)  
//  окно  -  котелок
set #ownerHandle findwindow (Рыбхоз: Карповая заводь)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #cotel getwindow (#tmp child)
// окно употребить
set #ownerHandle findwindow (Продукты)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #upotrebit getwindow (#tmp next)
// конец поисков окон
//хотим ли есть?
:eda    
  set workwindow #eda //окно полосок с едой
     get color #edacolor 27, 53  //координаты голода
    if #edacolor = 13032663  // цвет голода    
      log Кушаю
      set #handleWin findwindow (Продукты)
      showwindow #handleWin
      wait random (1000) + 300
      set workwindow #upotrebit
       left 10 10
       send {space}        
       goto eda
     else      
    end_if        
// Начало заброса
:zabros
wait random (1000) + 500
log Забрасываю Удочку
set workwindow #zabros
//проверяем первый ли заброс
set #a #a + 1        
if #a = 1
move #carpX #carpY
left #carpX #carpY
goto klev
end_if
set #z random (2)
    if #z = 1
      log забросил мышкой
       move #carpX #carpY
       left #carpX #carpY
    else
       send t
       log забросил кнопкой
    end_if
:klev // цикл клева
   set #j #j + 1        
if #j > 300
log возвращаюсь в начало (возможно есть проблемы)
set #j 0    
goto nachalo
end_if
wait random (1000) + 1500
     get color #uda #fiderX, #fiderY// надо всегда проверять место заброса
     if #uda = 255 // цвет удочки
      goto klev  
     else      
        log Клюнуло, ВЫВАЖИВАЕМ!
     end_if
//вываживаем
start_script 1
start_script 2

// проверка улова
:ulov
set #b #b + 1                //увеличение счетчика
if #b > 1500

Log не вываживается, либо сорвалась
goto nachalo //сачек    
end_if
set #a #a + 1                //увеличение счетчика
if #a > 50

send f        //сачек    
set #a  1
end_if
set #zabros workwindow
move #fiderX #fiderY
set #w windowfromcursor
set workwindow #w
  if #w = #zabros// хендл окна заброса      
goto ulov
else
set #riba #riba + 1
log поймалась #riba рыбка
stop_script 1
stop_script 2
wait random (1000) + 400
set #var findwindow (Садок)
set workwindow #var
send {Space}
wait random (1000) + 400
end_if          
:nachalo
stop_script 1
stop_script 2
log начинаем все поновой
set #j 0
set #b 0


script 1

Код

set linedelay 1  //установить задержку в 1 мсек.
set workwindow #LeskaW.4  
         send_down g
:leska
get color #leska 21, 7       // цвет полосы лески
        if #leska = 4488494          // цвет без нагрузки
           send_up g
            
        else
           goto leska
        end_if


script 2

Код

set linedelay 1  //установить задержку в 1 мсек.
set workwindow #udaW.4
         send_down h
:palka
get color #palka 18, 7       // цвет полосы лески
        if #palka = 4488494          // цвет без нагрузки
           send_up h  
                      
        else
           goto palka
        end_if

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Strannik
сообщение 13.8.2015, 10:47
Сообщение #28


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



ребят подскажите как лучше выдергивать цифры из текста в окне. например в окне есть текст состоящий из 2х строк:
Рыб в садке: 27 / 300
Общий вес: 176,397 кг

Надо 27 выдернуть.

Наверняка у ког-то быстрые наработки есть.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2015, 10:51
Сообщение #29


***********

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



Текст картинка или можно выделить мышкой?


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


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Цитата(DarkMaster @ 13.8.2015, 10:51) *

Текст картинка или можно выделить мышкой?

текст как название окна я так понимаю
я сделал так:
выдергиваем цифры

Код

set #ownerHandle findwindow (Садок)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #kolvo getwindow (#tmp next)
  set $kolvo getwindowtext (#kolvo) // в этой переменной нужный нам текст :
//Рыб в садке: 27 / 300
//Общий вес: 176,397 кг
set $ws садке:  // левое от числа слово
set #wlen size ( $ws ) // длина левого_слова
set $w2  / // правое от числа слово
set #n1 posex($ws $kolvo) // позиция в строке с которой начинается левое_слово
set #n2 posex($w2 $kolvo) // позиция в строке с которой начинается правое_слово
msg  #n1 #n2
if ( #n1 > 0) and ( #n2 > 0 ) // если оба слова были найдены, то будем доставать число...
    set #pos #n1 + #wlen // позиция в строке с которой начинается число
    set #len #n2 - #pos // длина числа в символах
    set $res copy($kolvo #pos #len) // получаем из строки нужную нам подстроку с числом
    set #всего_рыбы $res // считаем сколько всего рыбы  
    msg Вы наловили уже #всего_рыбы рыбы! // Получили наше число
else
    msg Вы вообще чтото ловили?! // неправильные исходные данные
end_if
end_script



вроде норм работает)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2015, 11:30
Сообщение #31


***********

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



такой вариант я вижу первый раз (IMG:style_emoticons/default/smile.gif)


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


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Можно всё упростить:
Код
set $kolvo Рыб в садке: 27 / 300
init_arr %a (1) $kolvo
log Вы наловили уже %a [1 4] рыбы!
stop_script
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Strannik
сообщение 13.8.2015, 12:29
Сообщение #33


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Цитата(cirus @ 13.8.2015, 12:09) *

Можно всё упростить:
Код
set $kolvo Рыб в садке: 27 / 300
init_arr %a (1) $kolvo
log Вы наловили уже %a [1 4] рыбы!
stop_script



во блин) надо массивы поизуачать))) это он показывает 4е слово в строке? соответственно можно потом присвоить это в числовую переменную

Код
set $kolvo Рыб в садке: 27 / 300
init_arr %a (1) $kolvo
log Вы наловили уже %a [1 4] рыбы!
set #fish %a [1 4]
stop_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Strannik
сообщение 13.8.2015, 12:47
Сообщение #34


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Блин, дерево окон тоже как и хендлы обновляется после перезапуска клиента. Получется способ который я применил не подходит( (а он был так хорош). Придется видимо возвращатся к кликам мышкой, и запросам от пользователя...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2015, 16:01
Сообщение #35


***********

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



можно проходится по дереву окон и искать какой-то общий признак. Например, если в заголовке окна есть "/", значит - это наше окно. Так же можно под поиск использовать регекспы, что очень сильно облегчит создание шаблона с которым надо сравнивать окна.


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


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Цитата(DarkMaster @ 13.8.2015, 16:01) *

использовать регекспы

что за регекспы?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Strannik
сообщение 13.8.2015, 16:59
Сообщение #37


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



придумал такой вариант. с помощью готового скрипта нахожу положение в дереве и хендл нужного окна на данные момент.
Код

set #ownerHandle findwindow (Рыболовная база Озеро)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp child)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #tmp getwindow (#tmp next)
set #childHandle getwindow (#tmp next)

далее, т.к. окно меняет положение в дереве (по моим проверкам оно меняет положение только "по горизонтали"), но я знаю его размер (он уникальный). я сокращаю нексты до минимума и вставляю условие проверки каждого окна по размеру. Получилось примерно так:
Код

set #ownerHandle findwindow (Рыболовная база Озеро)
set #tmp getwindow (#ownerHandle child)
set #tmp getwindow (#tmp child)
:proverka
set #tmp getwindow (#tmp next)
set #childHandle getwindow (#tmp next)
set  #a 80  // нужная нам длина
set  #b 88 // нужная нам ширина

   get windowpos  #childHandle #x #y #ves #shirina
   if  #ves = #a and #shirina = #b
  msg  #childHandle нужное нам окно
    else
    goto proverka
    end_if
end_script


upd Блин, по вертикали тоже положение меняет. Видимо надо 2 условия вводить. и автоматизировать... задачка.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2015, 17:23
Сообщение #38


***********

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



ищи не по размеру, а по тексту. Есть же какой-то шаблон, например, 1-3 цифры, потом "/", еще сколько-то цифр, пробел и слово "тапок". По такому шаблону можно достаточно уверенно определить окно.
Регекспы: http://www.shtogrin.com/library/web/pcre/doc/pcre/


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


**

Neophyte
Сообщений: 33
Регистрация: 4.8.2015
Группа: Пользователи
Наличность: 0
Пользователь №: 17.574
Возраст: 28



Цитата(DarkMaster @ 13.8.2015, 17:23) *

ищи не по размеру, а по тексту. Есть же какой-то шаблон, например, 1-3 цифры, потом "/", еще сколько-то цифр, пробел и слово "тапок". По такому шаблону можно достаточно уверенно определить окно.
Регекспы: http://www.shtogrin.com/library/web/pcre/doc/pcre/

там окно с названием только родительское, остальные являются только кнопками без названий окна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 13.8.2015, 22:04
Сообщение #40


***********

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



тогда ничего не понял.
Цитата
set $kolvo getwindowtext (#kolvo) // в этой переменной нужный нам текст :

Это же выдергивает именно название окна. И в нем вроде как раз нужное содержится. Почему не сделать перебор по названиям? Ну пустые другие - пропустить.


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

7 страниц V < 1 2 3 4 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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