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

17 страниц V « < 9 10 11 12 13 > »   
Тема закрытаОткрыть новую тему
> Где ошибка? Пишите у кого мелкие вопросы, сюда!
Anwalt
сообщение 15.12.2012, 10:19
Сообщение #201


***

Novice
Сообщений: 53
Регистрация: 2.8.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.161
Возраст: 31



ребят, если бы я все знал, я бы не задавал глупых на ваш взгляд вопросов, для меня они поверьте пока не понятные, но так как я их задаю, следовательно я хочу научиться, что бы не задавать их, поэтому и прошу поправить и направить, думаю каждый через это проходил в самом начале и примерно понимаю как это выглядет, так как сам проффесионально много отвечаю порой для МЕНЯ глупые и по жизне логические вопросы... но понимаю что не спросив, не попробовав не научишься, поэтому охотно помогаю... и не выпрашиваю что бы мне написали скрипт, я докапываюсь до механики, сижу часами эксперементирую и читаю эту тематику, но когда захожу в тупик, спращиваю, ведь для этого существуют форумы, это тема судя по ее названию? ... поэтому просьба относиться с пониманием, спасибо. Все мы когда то что то начинаем!

перейду к делу...

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

set $a 0
set $a1 0
set $a2 0
while $a > 0 or $a1 > 0 or $a2 > 0

но судя по намекам понимаю, что ощибочное понимание, если я ставлю 1 вместо 0, переходит на поиск, если находит и больше 1, можете мне пояснить значение первых 3 строчек.





Цитата(xolost @ 15.12.2012, 7:56) *

))))))))))))))
отличное условие с переменными для "логичного зацикленного поиска"
И ещё, почему у тебя в ифах условие искать второй и третий цвет только если нашли первый?
Более того, если нашли первый, то сразу уходим в метку А. И когда же тогда мы будем проверять 2 и 3 цвет, если до него дойти нереально?



хммм, задумка была конечно другая, в метку он уходит, делает действие, действие заканчивается и переходит на метку поиск, заново искать цвета...

а как будет выглядить что бы искал 2 и 3 цвета минуя 1? замыкать каждый поиск енд ифом, то есть раздельно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 15.12.2012, 10:26
Сообщение #202


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Anwalt @ 15.12.2012, 11:14) *

ребят, если бы я все знал, я бы не задавал глупых на ваш взгляд вопросов, для меня они поверьте пока не понятные, но так как я их задаю, следовательно я хочу научиться, что бы не задавать их, поэтому и прошу поправить и направить, думаю каждый через это проходил в самом начале и примерно понимаю как это выглядет, так как сам проффесионально много отвечаю порой для МЕНЯ глупые и по жизне логические вопросы... но понимаю что не спросив, не попробовав не научишься...

перейду к делу...

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

set $a 0
set $a1 0
set $a2 0
while $a > 0 or $a1 > 0 or $a2 > 0

но судя по намекам понимаю, что ощибочное понимание, если я ставлю 1 вместо 0, переходит на поиск, если находит и больше 1, можете мне пояснить значение первых 3 строчек.


Хочешь получить ответы?
Получай.

Код

set $a 0
set $a1 0
set $a2 0

Здесь ты говоришь, что твои 3 цвета равны 0.

Код
while  $a > 0 or $a1 > 0 or $a2 > 0

Здесь ты говоришь, что уходим в цикл, если хоть 1 из цветов найден.
Но перед этим ты сказал что ничего не найдено.

Значит, тебе нужно сделать наоборот, уходим в условие, если никакой цвет не найден.
Т.е.
Код
while  $a < 1 and $a1 < 1 and $a2 < 1

Иными словами, если все три цвета равны 0 или меньше

теперь внутри.
Код

set $a findcolor (800, 65 1144, 437   1 1 (5026082 ) %arr 2)  
if  $a > 0
goto A
wait 1s

set $a1 findcolor (800, 65 1144, 437   1 1 (2366701  ) %arr 2)


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

Поэтому, тебе нужно проверять каждый цвет.
т.е., например вот так:
Код

set $a findcolor (800, 65 1144, 437   1 1 (5026082 ) %arr 2)  
if  $a > 0
   wait 1s
   goto A
end_if

set $a1 findcolor (800, 65 1144, 437   1 1 (2366701  ) %arr 2)
if  $a1 > 0
   goto B
end_if

set $a2 findcolor (800, 65 1144, 437   1 1 (7326501  ) %arr 2)
if  $a2 > 0
   goto B
end_if


Или например вот так:

Код

set $a findcolor (800, 65 1144, 437   1 1 (5026082 ) %arr 2)  
set $a1 findcolor (800, 65 1144, 437   1 1 (2366701  ) %arr 2)
set $a2 findcolor (800, 65 1144, 437   1 1 (7326501  ) %arr 2)
if  $a > 0
   wait 1s
   goto A
end_if
if  $a1 > 0 or $a2 > 0
   goto B
end_if


Т.е. мы ищем все 3 цвета, и если найден первый, то уходим в метку А, если он не найден, но найден второй или третий, то уходим в Б
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Anwalt
сообщение 15.12.2012, 10:42
Сообщение #203


***

Novice
Сообщений: 53
Регистрация: 2.8.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.161
Возраст: 31



Супер, ответ разложен по полачкам, разьеснено на 5, все четко и ясно (IMG:style_emoticons/default/smile.gif) многое прояснил, многое встало в цепочку, пойду эксперементировать, благадарю за ответ (IMG:style_emoticons/default/smile.gif)

На счет метки, она выглядет так

находим цвет, посылаем в Метку где к примеру

зенд
лефт
зенд
гото поиск

поиск стоит в начале... Просто появление цветов не константное поэтому задумка была на любой из найденых, но важно что бы на определенный цвет, определенная реакция была, поэтому 1 цвет нашли, ушли в метку, все там сделали нас от туда вернули опять на поиск, нашли еще цвет опять в метку и тд, может и не правельно, но сейчас многое встало на свои места, было ошибочное понимание пойду практиковаться, но за то теперь знаю как сделать так что бы 2 и 3 цвет искал только если 1 нашел, уже на один глупый вопрос в будущем меньше, одним постом двух зайцев)) спасибо за разложенный по полкам ответ) смогу во многом применить
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 15.12.2012, 10:46
Сообщение #204


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Но, судя по такому коду:
Код

set $a 0
set $a1 0
set $a2 0
while

Ты желаешь всегда уходить в цикл, т.е. перепроверять их.
По скольку обнуляешь их.

И раз так, то лучше тогда юзать так:

Код
while 1 = 1

тогда обнулять цвета тебе не нужно уже, в цикл всегда будешь уходить.
т.е. вот эти 3
Код

set $a 0
set $a1 0
set $a2 0

уже не нужны

Цитата(Anwalt @ 15.12.2012, 11:42) *

Супер, ответ разложен по полачкам, разьеснено на 5 (IMG:style_emoticons/default/smile.gif) многое прояснил, многое встало в цепочку, пойду эксперементировать, благадарю за ответ (IMG:style_emoticons/default/smile.gif)

На счет метки, она выглядет так

находим цвет, посылаем в Метку где к примеру

зенд
лефт
зенд
гото поиск

поиск стоит в начале...

лан пойду эксперементировать, спасибо за разложенный по полкам ответ)


На здоровье, удачи)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 16.12.2012, 9:51
Сообщение #205


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



У меня вопрос.
Иногда findimage выдает -1
Какая конкретно причина?

Т.е. картинка есть, выдает -1, делаю её меньше, -1, ещё меньше, -1, ещё меньше - оп, 100... Притом, бывает что цвета всего 2 + 1 фон, и размер где-нить 60 на 30 и -1 до упора.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 16.12.2012, 10:32
Сообщение #206


***********

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



-1 - это код ошибки. Натыкался уже, вспомнить не могу из-за чего. Можете строку привести с ошибкой?
Цитата
60 на 30

Это много. Страшного скорее всего ничего не будет, просто медленно работает, а смысла не много.


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


**

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



Заранее извеняюсь за тупой вопрос.)

Почему это не работает?

Код

move 0, 0 abs // обозначаю верхний угол квадрата для поиска( это для наглядности)
wait 2s
move 100, 100 abs // обозначаю нижний угол квадрата для поиска цвета
wait 2s
move 50, 50 abs // обозначаю точку которую буду искать
wait 2s
set $b color (50 50 abs) // беру в переменную цвет точки для поиска
while $a < 1
set $a findcolor (0, 0 abs 100, 100 abs 1 1 $b %arr 2) // пытаюсь найти такой цвет в статичном квадрате
end_while


Код зацикливается на while хоть ты тресни. Я так понял не пашет findcolor. Код не относится к какой либо программе, тупо запускаю на пустом рабочем столе, да хоть и в открытом окошке браузера.
Вообще пытаюсь написать скрипт для отловли выскакивающей менюшки в флешь игре. Там кнопочка не всегда появляется там где ей положено. Может я где то в синтаксисе ошибся? Помогите!) Уже 3 часа мучаюсь. UoPilot v2.32 и Win7 x64
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 16.12.2012, 11:36
Сообщение #208


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



в findcolor abs пишется в конце. См.примеры на UOWiki


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 16.12.2012, 11:50
Сообщение #209


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата

-1 - это код ошибки. Натыкался уже, вспомнить не могу из-за чего. Можете строку привести с ошибкой?

строку чего? самой строчк в скрипте?
set $login findimage (#startX #startY #endX #endY (C:\images\авторизация\логин.bmp) %crds61 2 100 -1)

Ну вот они у меня все с такими настройками, только меняется имя массива, имя строковой переменной, и путь(иногда через переменные), но если картинка сама по себе не нравится пилоту почему-то, то $login(в данном случае) всегда будет выдавать минус 1.
И как только картинку нарежу так что бы она понравилась пилоту, то всегда будет находить корректно на 100.


Цитата
Это много. Страшного скорее всего ничего не будет, просто медленно работает, а смысла не много.


К сожалению, смысл самый прямой, потому что в определенной игре, что б не спутать картинку с другой похожей, приходится её делать больше.
60 на 30 - это ещё мало, у меня и 200 на 50 успешно находится(особенно если 2 цвета всего фон + основа). Но почему-то иногда пилоту не нравятся они.

вот -1 должно означать что-то конкретное. (понятно что это код ошибки, но какой именно).
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shefon
сообщение 16.12.2012, 11:52
Сообщение #210


**

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



Цитата(Zeleax @ 16.12.2012, 10:36) *

в findcolor abs пишется в конце.


Как и думал вопрос тупой. Спасибо большое за понимание.)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 16.12.2012, 13:24
Сообщение #211


***********

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



Цитата
set $b color (50 50 abs) // беру в переменную цвет точки для поиска

Это что такое? О.о
Цитата
картинка сама по себе не нравится пилоту

Обе картинки на форум залейте в неизменном состоянии. Вы точно не jpg подсовывали?


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


**

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



Цитата(DarkMaster @ 16.12.2012, 12:24) *

Это что такое? О.о

Обе картинки на форум залейте в неизменном состоянии. Вы точно не jpg подсовывали?


Да разобрался я уже. Дело было в abs в findcolor.

Я такую прогу составил что бы понять почему он ( findcolor ) не работает. Грубо говоря сам взял цвет из точки , а потом сам же её и найди, и она там есть по любому так как сам же её цвет взял.) как то так. А картинки никакой небыло. Чистый рабочий стол, я даже обои отключил для чистаты эксперимента.)

Или вы стебётесь? =) (IMG:style_emoticons/default/blink.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 16.12.2012, 14:18
Сообщение #213


***********

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



Я вообще не понял откуда взялась данная конструкция с таким синтаксисом, если честно. Я знаю get color, а то, что вы написали, не могу вспомнить что-бы как-то было освещено в манах. Откуда взяли? Работает?


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


**

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



Цитата(DarkMaster @ 16.12.2012, 13:18) *

Я вообще не понял откуда взялась данная конструкция с таким синтаксисом, если честно. Я знаю get color, а то, что вы написали, не могу вспомнить что-бы как-то было освещено в манах. Откуда взяли? Работает?

Да работает. Почитайте список изменений в версии 2.32
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 16.12.2012, 14:46
Сообщение #215


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата

Обе картинки на форум залейте в неизменном состоянии. Вы точно не jpg подсовывали?

офигеть. Сейчас конкретно потестил эту ошибку. Результаты шокирующие.

Во-первых, вот сами картинки:
архив с картинками

Тестируем на первом мониторе:
Тестируем на мониторе с разрешением рабочего стола
1920 1080

-Открываем в пейнте test.bmp
-разворачиваем на весь экран
-ищем там тест1.bmp следующим скриптом:
Код

set #startX 0
set #startY 0
set #endX 1280
set #endY 1045
  set $test findimage (#startX #startY #endX #endY (c:\images\тест1.bmp) %crds27 2 100 -1)
  msg $test
end_script


Результат = -1

-ищем тест2.bmp
меняем в скрипте выше на тест2.bmp

Результат = 100

Теперь, меняем конечный Y для поиска(#endY) с 1045 на 1046
и
В обоих случаях картинка находится.

Указываем 1024 и снова обе картинки находим.
Указываем 1025 и теперь обе картинки не находим.

Итог:
с 1025 по 1045 конечного игрика, картинка более высокого размера (тест1.bmp) выдает результат поиска -1
А с 1025 по 1043 конечного игрика, картинка более низкого размера (тест2.bmp) выдает результат поиска -1


[b]Тестируем на втором мониторе:
Тестируем на мониторе с разрешением рабочего стола
1280 1024

Задаем все те же настройки скрипта, что и в первом мониторе
Результат: Всегда найдены обе картинки


Почему такой беспредел на мониторе с большим разрешением?
На вопрос отвечает Господин Wknight
Составит свою теорию и выдаст Господин DarkMaster
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 16.12.2012, 14:57
Сообщение #216


***********

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



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


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


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(DarkMaster @ 16.12.2012, 15:57) *

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


И всё же, ваши версии мне понравились, спасибо (IMG:style_emoticons/default/smile.gif)
Ждем официального ответа Господина Wknightа (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shefon
сообщение 17.12.2012, 0:13
Сообщение #218


**

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



Промучался я весь день, но всё таки написал то что мне было нужно. Но походу написания возник один вопрос.
Я изначально везде ставил значения в абсолютных координатах. Написл скрипт, всё заработало.. и тут я случайно сдвинул окно с программой, и вся моя писанина перестала работать, так как сместились все контрольные точки.. Поставить окно на место так как оно было оказалось нереально, вбивать же заново все точки в программу жутко геморно.. И тогда я решил переделать всё на относительные координаты с привязкой к окну. Так и сделал, поубирал все abs, понатыкал новых значений взятых из относительной ячейки. Привязал нужное окно к пилоту. Врубаю скрипт и вижу как он начинает работать.. Доходит где то до середины и дальше застряёт.. Что бы понять в чём дело вбиваю в контрольных точках перемещение и задержку курсора на ключевых местах.. И что я вижу.. Половина проги работает по относительным координатам, а гдето с середины её переклинивает и пилот начинает бить по абсалютным координатам, хотя все abs я убрал.. Кароче сколько я не старался, но заставить вторую половину программы пахать по относительным координатам не смог. (IMG:style_emoticons/default/sad.gif)
После этого я плюнул. Развернул подопытную прогу на весь экран и забил абсолютные адреса контрольных точек. Так как прога развёрнута на весь экран, то сместится она не сможет.. Такое вот идиотское решение.
Мне оно не нравится. Топорная работа. Я люблю изящество в коде.
Есть у меня мысль всё переделать привязав все абсолютные адреса к координатам окна, типа задавать точки смещеним, и делать это програмно. Вроде бы я где то видил функцию для получения координат окна..
Так вот, хотелось бы получить совет, или наставление что ли.. Как правильно писать скрипт с привязкой к окну?
Вот мой скрипт

Исходный код
set #xl 581 //координаты стрелочек для прокрутки друзей
set #ylr 784
set #xr 1327

set #y1 815 //координаты выбора островов друзей
set #x1 1149

set #x2 1055

set #x3 953

set #x4 855

set #x5 762

set #x6 663

call vynoven #x1 #y1
call vynoven #x2 #y1
call vynoven #x3 #y1
call vynoven #x4 #y1
call vynoven #x5 #y1
call vynoven #x6 #y1

move #xl, #ylr abs
wait 100
left #xl, #ylr abs
wait 1s

call vynoven #x1 #y1
call vynoven #x2 #y1
call vynoven #x3 #y1
call vynoven #x4 #y1
call vynoven #x5 #y1
call vynoven #x6 #y1

move #xr, #ylr abs
wait 100
left #xr, #ylr abs
wait 1s



proc vynoven #x1 #y1

set #m 8960987 //цвет фона под монстром

set #xp1 740 //координаты точки победы
set #yp1 564
set #ap 82224 //цвет победы <----------------------------

set #xpr 949 //координаты точки выхода из поражения
set #ypr 584
set #apr 70768 //цвет поражения <---------------------------

move #x1, #y1 abs //выбор острова
left #x1, #y1 abs
wait 1s
:monstr

set #x1 624//координаты монстра
set #y1 626

set #ms color(#x1, #y1 abs) //проверяем есть ли монстр
if #m = #ms
goto end //если нет то идём к следующему
end_if

move #x1, #y1 abs //выбор монстра
left #x1, #y1 abs
wait 1s
set #b 458869 //поиск кнопочки НАПАСТЬ

set $a 0
set $a findcolor(989, 575 1094, 683 1 1 #b %arr 2 abs)
if $a < 0
goto monstr
end_if

move %arr[1 1], %arr[1 2] abs //кликаем по кнопочке НАПАСТЬ
left %arr[1 1], %arr[1 2] abs
wait 15
:boi //Бой с монстром

set #x1 1010 //координаты фиала маны
set #y1 719
move #x1, #y1 abs //собственно примерно с этого места скрипт почемуто переключался на абсолютные координаты.. Хотя никаких abs тут небыло.
wait 1s
set #a 8007680 //цвет активного фиала <--------------------------------------

:fialc
set #a1 color(#x1, #y1 abs)

if #a1 = #a //проверяем активен ли фиал.
goto pitb
end_if

set #ap1 color(#xp1, #yp1 abs)
if #ap = #ap1 //на всякий случай проверим не победили ли мы))
goto pobeda //если победили уходим
end_if

set #apr1 color(#xp1, #yp1 abs)
if #apr = #apr1 //на всякий случай проверим не проиграли ли мы
move #xpr, #ypr abs
wait 150
left #xpr, #ypr abs
wait 2s
goto end //если проиграли уходим
end_if

wait 100

goto fialc

:pitb

left #x1, #y1 abs //кликаем по фиалу
wait 1s

//магический крест
set #x1 776 //координаты крест
set #y1 702
set #a 10779084 //цвет активного креста
move #x1, #y1 abs//перемещаем курсор на заклинание
set #a1 color(#x1, #y1 abs)
while #a1 <> #a //ждём когда оно станет активным
wait 100
set #a1 color(#x1, #y1 abs)
end_while
left #x1, #y1 abs //применяем крест
wait 1s
set #x1 934 //координаты на поле для креста
set #y1 477
move #x1, #y1 abs //перемещаем курсор на поле
wait 200
left #x1, #y1 abs//применяем крест на поле

//set #x1 181 //координаты заклинания молния
//set #x2 729
//set #a 792362 //цвет активного заклинания молния
//move #x1, #y1 //перемещаем курсор на заклинание
//set #a1 color(#x1, #y1 abs)
//while #a1 <> #a //ждём когда оно станет активным
//wait 100
//set #a1 color(#x1, #y1 abs)
//end_while
//left #x1, #y1 //применяем молнию
wait 500 //ЗАДЕРЖКА перед проверкой победы
goto boi

:pobeda

set #x1 907 //выкидываем хлам
set #y1 613
move #x1, #y1 abs
wait 100
left #x1, #y1 abs
wait 150
set #x1 1038
set #y1 607
move #x1, #y1 abs
wait 100
left #x1, #y1 abs
wait 150
set #x1 1020
set #y1 613
move #x1, #y1 abs
wait 100
left #x1, #y1 abs
:end
wait 150
end_proc

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


***********

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



Процедуры - это отдельные скрипты по своей сути. Их работа полностью идентична запуску в соседней вкладке. Учитывая, что я не обнаружил ни одной привязки в процедурах, то все становится очевидно. Варианта решения вижу два:
1) Передавать хендл окна в процедуру и внутри процедуры каждый раз пивязывать окно.
2) Заменить все процедуры подпрограммами. Смысл тот же, только переменные общие с остальным скриптом. workwindow - зарезервированная переменная с хендом окна, к которому осуществлена привязка.

Сообщение отредактировал DarkMaster - 17.12.2012, 0:41


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


**

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



Цитата(DarkMaster @ 16.12.2012, 23:40) *

Процедуры - это отдельные скрипты по своей сути. Их работа полностью идентична запуску в соседней вкладке. Учитывая, что я не обнаружил ни одной привязки в процедурах, то все становится очевидно. Варианта решения вижу два:
1) Передавать хендл окна в процедуру и внутри процедуры каждый раз пивязывать окно.
2) Заменить все процедуры подпрограммами. Смысл тот же, только переменные общие с остальным скриптом. workwindow - зарезервированная переменная с хендом окна, к которому осуществлена привязка.


Ок. Спасибо за ценный совет. Завтра попробую заюзать gosub или как тут подпрограммы вызываются..) Мануала толкового не нашёл. Везде какието обрывки. Завтра же ещё поищу какой функцией привязку делают.. В принципе обои ваши варианты легко заюзать в моей проге. Ещё раз спасибо.)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

17 страниц V « < 9 10 11 12 13 > » 
Тема закрытаОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

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