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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Набор случайного числа
31ost
сообщение 9.2.2018, 2:37
Сообщение #1


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Здравствуйте.
Мои познание в написании скриптов - 0
Скрипт для игры написан на аукцион в который выставляет товар по заданному числу в скрипте, часто нужно менять эту цену для разных целей и приходится постоянно редактировать цифру.
Не могу понять как сделать, чтобы скрипт сам менял цифру.
Пример:
От 5000 до 5200
000-200 случайное число на каждый новый выставленный товар
или
От 5100 до 5199
100-199 случайное число на каждый новый выставленный товар
или
От 5190 до 5199
0-9 случайное число на каждый новый выставленный товар

Подскажите пожалуйста, как и что и куда (IMG:style_emoticons/default/smile.gif)

Код
sendex ^                     // зажать шифт
kright_down 1679, 710 abs    // 5тый слот вниз
kright_up 1513, 756 abs
sendex {End}                       // отжать шифт
send 2                                 // количество
send Enter                           // Ok
kleft 968, 864 abs                //  клик в цену
send 9556                           // ЦЕНА
wait 1
set MouseClickDelay 120
left 972, 944 abs                  // создать
wait 1
kleft 1187, 776 abs              // Ok
wait 320
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 9.2.2018, 2:55
Сообщение #2


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Прошу удалить тему, до меня дошло как нужно работать с set (IMG:style_emoticons/default/smile.gif)

Код
sendex ^                     // зажать шифт
kright_down 1679, 710 abs    // 5тый слот вниз
kright_up 1513, 756 abs
sendex {End}                       // отжать шифт
send 2                                 // количество
send Enter                           // Ok
kleft 968, 864 abs                //  клик в цену
set #b 9000 + random (10)
send #b
wait 1
set MouseClickDelay 120
left 972, 944 abs                  // создать
wait 1
kleft 1187, 776 abs              // Ok
wait 320
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 2.5.2018, 14:29
Сообщение #3


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Здравствуйте.
Вопрос 1:
Не могу сообразить, как добавить рандомность чисел к prompt
Было так //set #cena 90+ random (10)

Скрипт
Код
set promptpos_x 1168
set promptpos_y 284
set $cena prompt (Цена)
set #Game FindWindow (Game)
set workwindow #Game
kleft 672, 321
wait 11
//set #cena 90 + random (10)     //  До prompt
repeat 28
         kleft_down 1057, 264
         move 885, 216
         kleft_up 885, 217
         send 1                       // количество
         send Enter                  
         kleft 408, 379            
         send $cena                // цена
         wait 280
         :1
         kleft 410, 450          
         set #a findcolor (633, 240 633, 240 (4556320) %arr)
         if #a > 0
          kleft 619, 230
          send esc
          send b
          goto 1
         end_if
         set #1 findcolor (561, 327 561, 327 (3376641) %arr)
         set #2 findcolor (248, 459 248, 459 (2891275) %arr)
         if #1 or #2 > 0
           send esc
           send esc
           send b
           send v
           wait 110
           kleft 391, 85
         end_if
         wait 150
end_repeat


Вопрос 2:
Как с помощью prompt сделать три варианта выбора в Количество 1 5 10 и чтобы он его запомнил и использовал в скрипте.
До меня до сих пор не доходит как работать с массивами и сохранять и загружать из .txt (IMG:style_emoticons/default/biggrin.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 2.5.2018, 14:47
Сообщение #4


**********

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



Цитата
как добавить рандомность чисел к prompt

Код
set $cena prompt (Цена)
if  is_real($cena) = 1   // если введено число
    set #cena $cena + random (10)
    log #cena
end_if
end_script

Цитата
Как с помощью prompt сделать три варианта выбора в Количество 1 5 10

Код
init_arr %arr 1 5 10
set $str "Выбрать количество"
set #a prompt(!$str 1 5 10)  // в #a запишется номер выбора
log %arr[#a]   // по этому номеру обращаемся к соответствующему элементу массива
end_script

Цитата
не доходит как работать с массивами и сохранять и загружать из .txt

Примеры есть тут: http://uopilot.tati.pro/index.php?title=Load_array, http://uopilot.tati.pro/index.php?title=Save_array
Что нужно сделать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 2.5.2018, 15:31
Сообщение #5


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Код
set $cena prompt (Цена)
if  is_real($cena) = 1   // если введено число
    set #cena $cena + random (10)
    log #cena
end_if
end_script


Спасибо. Только вот рандомит и запоминает 1 раз, а нужно допустим 18 раз при этом не высвечивать эту табличку с повторным вводом числа (IMG:style_emoticons/default/smile.gif)
А я неправильно написал скрипт, было по другому - не было Повтора т.е. set #cena 90 + random (10) был в повторе
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.5.2018, 15:39
Сообщение #6


***********

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



Цитата
Спасибо. Только вот рандомит и запоминает 1 раз, а нужно допустим 18 раз при этом не высвечивать эту табличку с повторным вводом числа smile.gif
А я неправильно написал скрипт, было по другому - не было Повтора т.е. set #cena 90 + random (10) был в повторе

Вы сами поняли, что написали?


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


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Цитата(DarkMaster @ 2.5.2018, 15:39) *

Вы сами поняли, что написали?


Скрипт выполняется 18-30 раз и каждый раз рандомит от 293 до 295
Мой первый пример показывает, что он не выполняет Повтор рандома.
Ниже скрипт хотел переделать под Prompt и сразу его написал выше.
Скрипт
Код
set workwindow windowfromcursor 
set #b 293 + random (3)  
kleft_down 1106, 217
move 885, 218
kleft_up 884, 219
send 1                    // количество
send Enter            
kleft 409, 379        
send #b
wait 280
:1
kleft 410, 457        
set #a findcolor (633, 240 633, 240 (4556320) %arr)
if #a > 0
  kleft 619, 230
  send esc
  send b
  goto 1
end_if
set #1 findcolor (561, 327 561, 327 (3376641) %arr)
set #2 findcolor (248, 459 248, 459 (2891275) %arr)
if #1 or #2 > 0
  send esc
  send esc
  send b
  send v
  wait 110
  kleft 391, 85
end_if
wait 150
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 2.5.2018, 16:00
Сообщение #8


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Всё разобрался (IMG:style_emoticons/default/smile.gif) долго доходит (IMG:style_emoticons/default/biggrin.gif)
Благодарю за помощь. О массивах потом напишу (IMG:style_emoticons/default/smile.gif)
Скрипт
Код
set promptpos_x 1047
set promptpos_y 334
set $cena prompt (Цена)
set #Game FindWindow (Game)
set workwindow #Game
kleft 672, 321
wait 11
repeat 28
         kleft_down 1057, 264
         move 885, 216
         kleft_up 885, 217
         send 1                   // количество
         send Enter                  
         kleft 408, 379            
         if  is_real($cena) = 1
             set #cena $cena + random (3)
             send #cena        // цена
         end_if
         wait 280
         :1
         kleft 410, 450          
         set #a findcolor (633, 240 633, 240 (4556320) %arr)
         if #a > 0
          kleft 619, 230
          send esc
          send b
          goto 1
         end_if
         set #1 findcolor (561, 327 561, 327 (3376641) %arr)
         set #2 findcolor (248, 459 248, 459 (2891275) %arr)
         if #1 or #2 > 0
           send esc
           send esc
           send b
           send v
           wait 110
           kleft 391, 85
         end_if
         wait 150
end_repeat
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 2.5.2018, 16:02
Сообщение #9


**********

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



Цитата
Только вот рандомит и запоминает 1 раз, а нужно допустим 18 раз при этом не высвечивать эту табличку с повторным вводом числа

Код
log clear
log mode compact
set $cena prompt (Цена)
if  is_real($cena) = 1   // если введено число
    for #i 1 18  // повторить 18 раз
        set #cena $cena + random (10)
        log #i    #cena
    end_for
end_if
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 2.5.2018, 17:06
Сообщение #10


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Классно - спасибо большое.
Вот ещё такой вариант:
Число которое пишу в Prompt, когда появляется табличка, чтобы это число сохранилось в цена.txt и чтобы при активации скрипта такого вида(ниже) это число загрузилось из цена.txt с рандомом (IMG:style_emoticons/default/smile.gif)

Скрипт
Код
set workwindow windowfromcursor 
set #b 293 + random (3)   // цена

kleft_down 1106, 217
move 885, 218
kleft_up 884, 219
send 1                    // количество
send Enter            
kleft 409, 379
        
send #b               // цена

wait 280
:1
kleft 410, 457        
set #a findcolor (633, 240 633, 240 (4556320) %arr)
if #a > 0
  kleft 619, 230
  send esc
  send b
  goto 1
end_if
set #1 findcolor (561, 327 561, 327 (3376641) %arr)
set #2 findcolor (248, 459 248, 459 (2891275) %arr)
if #1 or #2 > 0
  send esc
  send esc
  send b
  send v
  wait 110
  kleft 391, 85
end_if
wait 150


Жаль нету встроенного распознания текста, а вырезание картинок цифр результата не дают(слишком мелкие цифры) и в другой теме так и не понял как работать с другой программой.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 2.5.2018, 17:21
Сообщение #11


**********

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



Цитата
Число которое пишу в Prompt, когда появляется табличка, чтобы это число сохранилось в цена.txt и чтобы при активации скрипта такого вида(ниже) это число загрузилось из цена.txt с рандомом

Код
set $cena prompt (Цена)
if  is_real($cena) = 1   // если введено число
    set %arr [1] $cena  // присваиваем значение переменной элементу массива
    save_array %arr "C:\цена.txt"  // сохраняем массив
end_if
end_script

Код
load_array %arr "C:\цена.txt"  // загружаем
set #b %arr [1] + random (10)
log #b
end_script

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


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Цитата(cirus @ 2.5.2018, 17:21) *

Код
set $cena prompt (Цена)
if  is_real($cena) = 1   // если введено число
    set %arr [1] $cena  // присваиваем значение переменной элементу массива
    save_array %arr "C:\цена.txt"  // сохраняем массив
end_if
end_script

Код
load_array %arr "C:\цена.txt"  // загружаем
set #b %arr [1] + random (10)
log #b
end_script



Спасибо - апгрейдил скрипты и немного понял на живом примере как это всё работает (IMG:style_emoticons/default/smile.gif) ещё и разобрался как запускать другую программу и записывать в файл полученные цифры.
Теперь новая проблема. В файл.тхт записывается цифра+буква+символ, есть ли способ игнорировать буквы и символы?
В игру будет вписаны только цифры и это не мешает, но скрипт выдает ошибку
Ошибка: Символ не распознан (pos:2 '3.46 + 2')
Возможно, когда начну пробовать полноценно писать скрипт, где нужно будет в If вписать выполнить действие где должно посмотреть цифры и если 1-100 выполнить действие, но там будут символы и буквы и это скорее всего будет проблемой или пока так думаю (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.5.2018, 20:46
Сообщение #13


***********

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



Цитата
Ошибка: Символ не распознан (pos:2 '3.46 + 2')

Пилот работает только с целыми.


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


**********

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



Код
load_array %arr "C:\Users\abc\Desktop\111.txt"
get number $b #pos %arr[1]  // получить первое число из строки
log $b
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
31ost
сообщение 2.5.2018, 21:46
Сообщение #15


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Спасибо за помощь.
Идея с распознанием текста убита конечно (IMG:style_emoticons/default/smile.gif) может подскажете какую программу в которой можно нормально это всё сделать? или другую программу вместо Пилота (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.5.2018, 22:20
Сообщение #16


***********

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



https://forum.uokit.com/index.php?showtopic=30000
переписать все на lua, радоваться жизни.
То, что вы писали "цифры слишком мелкие" ну никак не может препятствовать распознаванию. Это либо некорректные скрины и/или настройки (именно настройки) скрипта по распознаванию либо есть дополнительные проблемы вроде сглаживания. Правда даже сглаживание, как правило, можно даже не выключать, просто приходится в таком случае производить более тонкие настройки параметров распознавания.


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


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Цитата(DarkMaster @ 2.5.2018, 22:20) *

https://forum.uokit.com/index.php?showtopic=30000
переписать все на lua, радоваться жизни.
То, что вы писали "цифры слишком мелкие" ну никак не может препятствовать распознаванию. Это либо некорректные скрины и/или настройки (именно настройки) скрипта по распознаванию либо есть дополнительные проблемы вроде сглаживания. Правда даже сглаживание, как правило, можно даже не выключать, просто приходится в таком случае производить более тонкие настройки параметров распознавания.


Пробовал в другой программе с встроенным распознанием и возможностью настраивать, даже там приходилось делать игру на весь экран и в игре включать максимальное масштабирование (что мне не нужно), чтобы нормально начало распознавать и посоветовали делать свою базу символов/букв и цифр, чтобы то что определяется неправильно заменить к примеру всё на символ - точка и под это делать скрипт.
Скорее всего и вправду - яж не шарю (IMG:style_emoticons/default/smile.gif) и что-то делаю не так.
Lua где-то здесь можно или это отдельно скачивать?

Почитал комменты в теме по ссылке и так понял, что у меня так же как у Дрона, нужно вырезать кучу картинок с одной цифрой и тестить всё.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.5.2018, 13:42
Сообщение #18


***********

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



Цитата
Lua где-то здесь можно или это отдельно скачивать?

Луа поддерживается пилотом. Правда скрипт был адаптирован под некторые баги пилота. Рекомендую использовать старую ночную версию либо могут возникнуть некторые сложности. В частности может понадобиться в передаваемых параметрах передавать дополнительно параметр nil в начале списка параметров.

Согласитесь проще нарезать десяток цифр, чем заниматься какой-то ерундой с масштабированием.


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


**

Neophyte
Сообщений: 24
Регистрация: 26.10.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.658
Возраст: 30



Цитата(DarkMaster @ 3.5.2018, 13:42) *

Луа поддерживается пилотом. Правда скрипт был адаптирован под некторые баги пилота. Рекомендую использовать старую ночную версию либо могут возникнуть некторые сложности. В частности может понадобиться в передаваемых параметрах передавать дополнительно параметр nil в начале списка параметров.

Согласитесь проще нарезать десяток цифр, чем заниматься какой-то ерундой с масштабированием.


Там решающую роль играет - скорость. Выставляется товар на аукционе по цене допустим 100, а минимальная цена 1000. Такие товары мониторят вручную обычно и купить вручную быстрее, чем с ботом, кроме случаев, когда бот запущен на нескольких компьютерах (IMG:style_emoticons/default/smile.gif)
Попробую повырезать несколько цифр. Там ещё проблема, что в зависимости от длины цифр двигаются последние две буквы и вот надеюсь картинка их будет игнорировать.

Ещё вот меня очень интересует такая вещь, как нажатие какой-нибудь кнопки в самой игре без курсора допустим есть кнопка Ок и она нажмётся. Пытался искать инфу и наткнулся на такое, что нужна программа типа InqSoft Window Scanner, Window Detective, где можно отследить какие-то действия и отправить сообщение(точно не знаю как правильно называется), но мне это очень трудно дается и не понимаю, как в пилоте отправить, если найду.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 4.5.2018, 21:02
Сообщение #20


***********

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



Цитата
Там решающую роль играет - скорость. Выставляется товар на аукционе по цене допустим 100, а минимальная цена 1000. Такие товары мониторят вручную обычно и купить вручную быстрее, чем с ботом, кроме случаев, когда бот запущен на нескольких компьютерах

Если скрипт написан правильно, то у вас ни одно приложение никогда за ним не успеет и вы будете его (скрипт) искуственно тормозить, чтобы приложение успевало прогружать свои менюшки.
Цитата
Попробую повырезать несколько цифр. Там ещё проблема, что в зависимости от длины цифр двигаются последние две буквы и вот надеюсь картинка их будет игнорировать.

Если цифры вырезаны корректно и точность установлена тоже корректно, то наличие каких-либо букв вообще никак не помешает.
Цитата
Ещё вот меня очень интересует такая вещь, как нажатие какой-нибудь кнопки в самой игре без курсора допустим есть кнопка Ок и она нажмётся. Пытался искать инфу и наткнулся на такое, что нужна программа типа InqSoft Window Scanner, Window Detective, где можно отследить какие-то действия и отправить сообщение(точно не знаю как правильно называется), но мне это очень трудно дается и не понимаю, как в пилоте отправить, если найду.

Скорее всего это будет тоже самое, что и клики мышкой/клавитурой.


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

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

 

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