Доброго времени суток. Есть метод позволяющий брать данные из других веток скрипта:
#i.2 - обращаемся к переменной #i из скрипта, находящегося в окне номер 2, при этом скрипт 2 должен работать или быть на паузе.
$i.5 - обращаемся к строковой переменной из 5 скрипта.
%arr.5 [1 3] - обращаемся к элементу массива из 5 скрипта.
когда делаю ссылку на масив:
1------- Это 1 скрипт где записываются данные вручную.
set $e 742, 523 //точка подтверждения перемещения
init_arr %fc1 (1) 690, 335 1783605 // координаты и цвет в одну строку для проверки на пустоту
set delimiter ' ' // установить разделитель между элементами 'пробел
//--------------Даные 1 сумка 1 ячеек -----------------
init_arr %b1c1 (1) 500, 245 725008 // координаты и цвет в одну строку для проверки на пустоту
set delimiter ' ' // установить разделитель между элементами 'пробел'
if %b1c1.1 [1] //Проверяем ячейку на пустоту [1]- значит пустая
else //если нет то выполняеться действия
move %b1c1.1 [1 1] %b1c1.1 [1 2] //переносим курсор на искомую ячейку
wait 300 //ждем 300 мс
left_down %b1c1.1 [1 1] %b1c1.1 [1 2] //зажимаем левую клавишу
move %fc [1 1] %fc [1 2] //Перетаскиваем предмет в хранилеще
wait 300 //ждем 300 мс
left_up %fc1.1 [1 1] %fc1.1 [1 2] //отпускаем левую клавишу
left $e.1 //закрываем окно подтвеждения
end_if
if %f1c.1 [1] //проверка на наличие окна подтверждения
left $e.1 //нажимаем в указаной точке чтоб закрыть окно
else
end_if
В первой же строке:
set delimiter ' '
if %b1c1.1 [1 1] %b1c1.1 [1 2] %b1c1.1 [1 3]
set delimiter ' '
if_not %b1c1.1 [1] //Проверяем ячейку на пустоту [1]- значит пустая
move %b1c1.1 [1 1] %b1c1.1 [1 2] //переносим курсор на искомую ячейку
wait 300 //ждем 300 мс
left_down %b1c1.1 [1 1] %b1c1.1 [1 2] //зажимаем левую клавишу
move %fc [1 1] %fc [1 2] //Перетаскиваем предмет в хранилеще
wait 300 //ждем 300 мс
left_up %fc1.1 [1 1] %fc1.1 [1 2] //отпускаем левую клавишу
left $e.1 //закрываем окно подтвеждения
end_if
DarkMaster
init_arr %fc1 (1) 690, 335 1783605 // координаты и цвет в одну строку для проверки на пустоту
set delimiter ' '
Все что выше советовали, переделал работает. Появилась новое препятствие.
Когда делаю релог в окне игры
set delimiter ' '
set $var setlayout (0409) // включили английскую раскладку
//set workwindow 197538 // сделать рабочим окно c указанным хендлом
move %h3.1 [1 1] %h3.1 [1 2]
left %h3.1 [1 1] %h3.1 [1 2] // выбераем строку ввода пароля
wait 2s
set SendExDelay 100 // задержка между вводами букв
sendex ~xxxxxxxx // ввод пароля
//send 1 // проверрка на ввод любой клавиши
wait 2s
end_script
А курсор ставит в строку ввода пароля? Кстати, без move тоже должно работать.
sendex работает только для активного окна, т. е. рабочее окно должно быть не переднем плане.
Или используйте send или send217, они работают для неактивного окна.
использовал "kleft "
оно и активизирует окно и становиться в нужное поле.
Начались проблемы с вводом, Sendex не работает
а Send водит только маленький регистр.
send_down ~ // зажатие "Shift" не срабатывает
Питался записать макрос ввода пароля, удаляю лишние движений мышкой , запускаю , и системе вылетает с синим экраном... =) первый раз было чуть с стула не упал.
Мимо ввода подскажите как правильно редактировать макрос чтоб таких казусов не было.
sendex ~ // зажать шифт
send q // нажать q, т. е. должно напечатать Q
sendex // отпустить все модификаторы
set clipboard qweRTy // копируем в буфер логин
wait 100
kleft 200 200 // выбираем строку ввода пароля
wait 200
sendex ^v //нажать Ctrl + V (вставить логин)
end_script
sendex_down ^v // зажать ctrl + V, работает только в активном окне
// возможно потребуется wait
sendex_up ^v // отпустить ctrl + V
end_script
sendex ^
sendex v
sendex
end_script
sendex ^
send v
sendex
end_script
танцы з буфером ни к чему не приводят. Думаю и нет смысла это делать. буфер просто руками тоже не работает если хочу вставить логин и пароль, значит дело не пилоте .
Остаеться вопрос , как ввести тогда большие символы? использовать Caps Lock. может и решит половину проблемы, но как тогда ввести "@" в строке логина?
send @
// или
set $a @
send $a
send @
// или
set $a @
send $a
не прокатывает. send $a подразумивает использование буфера. а может можна както через кода клавиш?
а как нажать Caps Lock ?
4Story_RU -игра =)
Я то понял что ручками , а какая команда отвечает за нажатие , для Shift - ~ ...
адля Caps Lock не нахожу как использовать.
попробуйте send217, а лучше say.
определил что комда " Sendex " в этом клиенте отказывается работать.
Не реагирует также на {CapsLock}, записывать данный из буфера обмена тоже отказывается.
Команды Say, присвоение строчной переменной $, тоже не дали результатов.
Уже больше 10 часов долбусь с этой проблемой подряд. Может у кого были похожие проблемы, не откажусь от вашего метода решения, или может светлых мыслей в эту сторону.
Возвращаюсь к вводу пароля с помощью макросов. Как их запускать правильно и редактировать сам файл макроса чтоб ошибки не выкидывало?
Для меня как не очень сильного кодера=) мягко говоря этого описание скрипта мало. я не понял что надо сделать.
А как определить есть ли GameGuard ? по всем признакам вроде как его робота, полистал форум у многих были проблемы с вводом " Shift , alt .." и есть ли решения как с ним бороться?
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)