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

 
Ответить в эту темуОткрыть новую тему
> Цикл С Исключениями + Вопросы, Выполнение цикла с исключениями в определенных местах
m1sclick
сообщение 3.5.2011, 12:31
Сообщение #1


*

Registred
Сообщений: 6
Регистрация: 3.5.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.633



1. Как сделать что бы когда число в переменной было равно определенному числу, цикл переходил в конец. То есть:
У меня есть
Код
set #log 1 
for #log 1 46
set $login lol#log
send $login
move 1031, 103 abs
-/-/-/-
end_for

Сейчас не важно что я собираюсь делать внутри скрипта, суть в том что мне нужно что бы когда переменной log присваивалось значение 39, 40, 42, 43 цикл переходил сразу в конец, к end_for и продолжал работу уже со следующим числом. Например если log=40 выполняется переход и в следующий раз идет уже log=41. Желательно еще что бы это все занимало как можно меньше места, в одной if (или аналогах), а не писать новую лог. оп. для каждого числа.
2. Как работает?
Код
if координата цвет
else
end_if

Я когда прописываю например:
Код
if 265, 256 225
end_if
else
wait 15s
-/-/-/-/-/-/
end_if

Всегда сразу выполняется end_if что перед else даже если цвет не совпадает. Почему так?
А если там написать что то другое то всегда будет выполняться сразу то что после else.
3. С FAQ не понятно как заполнять масивы, может кто то подробнее объяснит что и как. И для чего они вобще нужны?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 3.5.2011, 12:36
Сообщение #2


*********

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



1) Оператор Continue переводит исполнение цикла на следующий шаг. Может быть использован в циклах repeat, for, while.
Код
for #log 1 46
   if #log = 39
      continue
   end_if
...
end_for


2)
Код
if 265, 256 225
   // end_if - лишний! нужно ставить только в конце!
else
   wait 15s
   -/-/-/-/-/-/
end_if // здесь расположен правильно


или так (если без else)
Код
if 265, 256 225
   wait 15s
   -/-/-/-/-/-/
end_if // здесь расположен правильно


3) массивы обычно в пилоте нужны для хранения/получения координат пикселей (например в команде findcolor) или для чтения/записи в файл/буфер обмена. Или использовать по собственному желанию. Почитай, то что у меня в подписи =)


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
m1sclick
сообщение 3.5.2011, 17:30
Сообщение #3


*

Registred
Сообщений: 6
Регистрация: 3.5.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.633



А так что бы в одной строке сразу три значения проверялось нельзя сделать?
Обязательно писать для каждого числа свой if?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 3.5.2011, 17:49
Сообщение #4


*********

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



Цитата(m1sclick @ 3.5.2011, 16:30) *

А так что бы в одной строке сразу три значения проверялось нельзя сделать?
Обязательно писать для каждого числа свой if?

можно через оператор ИЛИ
if #log = 39 OR #log = 41 OR #log = 47
В описании языка это есть вроде


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
m1sclick
сообщение 3.5.2011, 17:59
Сообщение #5


*

Registred
Сообщений: 6
Регистрация: 3.5.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.633



Спасибо большое. Про OR реально в FAQ есть. Не внимательно читал.
А сильно замедлит выполнение скрипта то что все написано в одном if? Или наоборот?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 3.5.2011, 18:53
Сообщение #6


*********

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



Всё зависит от конкретного случая. Считай, что в одной строке лучше )


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

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

 

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