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

 
Ответить в эту темуОткрыть новую тему
> Помогите, пожалуйста.
DoomAngelBlade
сообщение 7.4.2017, 11:18
Сообщение #1


**

Neophyte
Сообщений: 14
Регистрация: 7.4.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.425



Есть данный скрипт:
get color #1 180, 257 abs
if (180,257 != #1) abs
set #Changed 1
end_if
Оно жалуется на строку

if (180,257 != #1) abs

Ошибка! Проверьте правильность скрипта! EConvertError '!=' is not a valid integer value
if (180,257 != #1) abs

Смысл в том, Что как только цвет пикселя изменится - делать чтолибо(У меня - поставить флаг, и перейти на другую метку)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.4.2017, 11:28
Сообщение #2


**********

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



Неправильный синтаксис. Должно быть if X Y Color. Или if_not X Y Color
Код
if 180,257 #1 abs

Цитата
Смысл в том, Что как только цвет пикселя изменится - делать чтолибо(У меня - поставить флаг, и перейти на другую метку)

Тогда уж так:
Код
get color #1 180, 257 abs    // получить цвет
while 180,257 #1 abs          // ждать пока не изменится
    wait 10
end_while
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DoomAngelBlade
сообщение 7.4.2017, 11:44
Сообщение #3


**

Neophyte
Сообщений: 14
Регистрация: 7.4.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.425



Цитата(cirus @ 7.4.2017, 11:28) *

Неправильный синтаксис. Должно быть if X Y Color. Или if_not X Y Color
Код
if 180,257 #1 abs


Тогда уж так:
Код
get color #1 180, 257 abs    // получить цвет
while 180,257 #1 abs          // ждать пока не изменится
    wait 10
end_while





Я лишь часть кода скопировал, и та другая часть, верна, но не для моего случая.

if_not работает.

Как делать вещи с ДРОБНЫМИ числами?

Я хочу сравнить к примеру 3.12 и 2.22
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.4.2017, 12:19
Сообщение #4


**********

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



Цитата
Как делать вещи с ДРОБНЫМИ числами?

Функции для работы с числами
Вообще пилот работает только с целыми числами.
Цитата
Я хочу сравнить к примеру 3.12 и 2.22

код
Код
// Пример 1
call frac 3.12 2.22       // пишем 2 числа
if  $frac = 1             // Переменная $frac содержит 1, если первое число больше второго, иначе 0
    log Первое число больше второго
else
    log Первое число меньше второго
end_if

// Пример 2
set $a 2.22            // число 1
set $b 3.12            // число 2
call frac $a $b        // можно указывать переменные
if  $frac = 1
    log Первое число больше второго
else
    log Первое число меньше второго
end_if
end_script


// процедуру в конец скрипта
proc frac $a $b
    set $a string_replace($a "." ",")
    set $b string_replace($b "." ",")
    if  trunc($a) > trunc($b)
        set $result 1
    else
        if  trunc($a) = trunc($b)
            set #z 0
            set #a copy(frac($a) 1 1)
            set #b copy(frac($b) 1 1)
            while #a = #b
                set #z #z + 1
                set #a copy(frac($a) #z 1)
                set #b copy(frac($b) #z 1)
            end_while
            if  #a > #b
                set $result 1
            else
                set $result 0
            end_if
        else
            set $result 0
        end_if
    end_if
end_proc
end_script

Проверки что числа равны нет. Если надо можно просто через if дописать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DoomAngelBlade
сообщение 7.4.2017, 20:48
Сообщение #5


**

Neophyte
Сообщений: 14
Регистрация: 7.4.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.425



set $Buff = Clipboard
:Change_Check
double_kleft 230, 253 abs
sendex ^c
if $Buff = Clipboard
goto Change_Check
end_if
#Changed = 1
goto Something_Changed_script

Через СЛУЧАЙНОЕ количество времени Clipboard поменяет свое значение(появится новое значение и его скопирует)

Но вот сравнение даже при измененном Clipboard не проходит.

Почему? Как реализовать?

Идея с пикселями не прошла - они меняют свой цвет без истинного изменения(Т.е значение и вообще все то же самое, но вот цвет пикселя поменялся)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.4.2017, 21:13
Сообщение #6


**********

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



Цитата
Идея с пикселями не прошла

Потому что логика скрипта неправильная.
Код
get color #1 180, 257 abs
if 180,257 #1 abs

В чём смысл определить цвет в указанных координатах и тут же его проверить снова?
Цитата
они меняют свой цвет без истинного изменения

Это как так (IMG:style_emoticons/default/smile.gif)
Цитата
Как реализовать?

Что реализовать?
Цитата
set $Buff = Clipboard

Если это присваивание, то знак равно лишний. Если получение значения из буфера, то это делается не так. Буфер
Цитата
#Changed = 1

Код
set #Changed 1

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


**

Neophyte
Сообщений: 14
Регистрация: 7.4.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.425



они меняют свой цвет без истинного изменения
Это как так

Значение , к примеру, 3.33 или к примеру СТРОКА вапролд
ПО идее должно быть статичным, но почему-то текст меняет свое положение(Сдвигается туда и обратно)
Соответсвенно чекать Пиксели на изменение не могу, так как они меняются без изменения значения


Ошибка таки в Get/Set Clipboard.

Сейчас попытка идет сделать сравнение дробных чисел.

Благодарю за помощь!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DoomAngelBlade
сообщение 8.4.2017, 20:21
Сообщение #8


**

Neophyte
Сообщений: 14
Регистрация: 7.4.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.425



Следующий скрипт:
if #FlagOfMultiplier = 2
set $RequiredMultiplier "2.22"
end_if
if #FlagOfMultiplier = 3
set $RequiredMultiplier "3.33"
end_if
if #FlagOfMultiplier = 4
set $RequiredMultiplier "4.44"
end_if
if #FlagOfMultiplier = 5
set $RequiredMultiplier "5.55"
end_if
if #FlagOfMultiplier = 6
set $RequiredMultiplier "6.66"
end_if
if #FlagOfMultiplier = 7
set $RequiredMultiplier "7.77"
end_if
if #FlagOfMultiplier = 8
set $RequiredMultiplier "8.88"
end_if
if #FlagOfMultiplier = 9
set $RequiredMultiplier "9.99"

set clipboard $RequiredMultiplier
kleft 783, 798 abs
sendex ^v

на выводе лишь какое-то
еее


Весь Скрипт:



set $ReplaceX "x"
set $ReplaceDot "."
Set $ReplaceNull ""
Set #RequiredMultiplierNumber 222
Set #FlagOfMultiplier 2
Set #FlagOFBetMultiplier 1
Set #StartingBet 10
:Something_Changed_script
double_kleft 230, 253 abs
sendex ^c
get Clipboard $Buff1
if (#Changed = 1)
set #Changed 0
goto CopyTheResult
end_if
:Change_Check
double_kleft 230, 253 abs
sendex ^c
get Clipboard $Buff
if $Buff = $Buff1
goto Change_Check
end_if
set #Changed 1
goto Something_Changed_script
end_if
goto Change_Check
:CopyTheResult
double_kleft 63, 259 abs
sendex ^c
get Clipboard $CurrentMultiplier
set $CurrentMultiplier String_replace($CurrentMultiplier $ReplaceX $ReplaceNull)
set $CurrentMultiplier String_replace($CurrentMultiplier $ReplaceDot $ReplaceNull)
set #CurrentMultiplierNumber $CurrentMultiplier
:RequiredMultiplier
if #FlagOfMultiplier = 2
set #RequiredMultiplierNumber 222
end_if
if #FlagOfMultiplier = 3
set #RequiredMultiplierNumber 333
end_if
if #FlagOfMultiplier = 4
set #RequiredMultiplierNumber 444
end_if
if #FlagOfMultiplier = 5
set #RequiredMultiplierNumber 555
end_if
if #FlagOfMultiplier = 6
set #RequiredMultiplierNumber 666
end_if
if #FlagOfMultiplier = 7
set #RequiredMultiplierNumber 777
end_if
if #FlagOfMultiplier = 8
set #RequiredMultiplierNumber 888
end_if
if #FlagOfMultiplier = 9
set #RequiredMultiplierNumber 999
end_if
if #CurrentMultiplierNumber < #RequiredMultiplierNumber
set #FlagOfMultiplier #FlagOfMultiplier + 1
if #FlagOfMultiplier = 2
set $RequiredMultiplier "2.22"
end_if
if #FlagOfMultiplier = 3
set $RequiredMultiplier "3.33"
end_if
if #FlagOfMultiplier = 4
set $RequiredMultiplier "4.44"
end_if
if #FlagOfMultiplier = 5
set $RequiredMultiplier "5.55"
end_if
if #FlagOfMultiplier = 6
set $RequiredMultiplier "6.66"
end_if
if #FlagOfMultiplier = 7
set $RequiredMultiplier "7.77"
end_if
if #FlagOfMultiplier = 8
set $RequiredMultiplier "8.88"
end_if
if #FlagOfMultiplier = 9
set $RequiredMultiplier "9.99"
end_if
if #FlagOfMultiplier = 10
set #FlagOfMultiplier 5
set #FlagOfBetMultiplier #FlagOfBetMultiplier + 1
end_if
else
set #FlagOfMultiplier 2
set #FlagOfBetMultiplier 1
end_if
:CountCurrentBet
set #Begunok 1
set #CurrentBet #StartingBet
While #Begunok < #FlagOfBetMultiplier
set #CurrentBet #CurrentBet * 222
set #CurrentBet #CurrentBet / 100
set #Begunok #Begunok + 1
End_While
:MakeBet
set clipboard $RequiredMultiplier
kleft 783, 798 abs
sendex ^v
set clipboard #CurrentBet
double_kleft 536, 800 abs
sendex ^v
kleft 757, 889 abs
goto Something_Changed_Script
end_script

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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