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

4 страниц V < 1 2 3 4 >  
Ответить в эту темуОткрыть новую тему
> Упростить скрипт
DarkMaster
сообщение 2.1.2013, 17:21
Сообщение #21


***********

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



Ну пока не ехала) А вот если делать через call, то беда очень вероятна.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 2.1.2013, 18:21) *

Ну пока не ехала) А вот если делать через call, то беда очень вероятна.


Надо попробовать как Вы делаете. А то, у меня повиснет на while, а я потом начинаю внутри что нибудь вставлять. Скажите, если в while во внутрь вставить еще 1 while, такая конструкция будет работать. Я попробовал у меня , что то не заработало.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.1.2013, 18:41
Сообщение #23


***********

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



Цитата
while во внутрь вставить еще 1 while,

сколько угодно


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 2.1.2013, 19:41) *

сколько угодно

Спасибо. Значит, я что то криво сделал((
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 2.1.2013, 19:24
Сообщение #25


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Код
 set #x %ars[1 1] 
set #y %ars[1 2]


Скажите, что обозначают и для чего нужны цифры в скобках.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.1.2013, 19:52
Сообщение #26


***********

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



номера строк и столбцов массива.
в морской бой играли? вот тоже самое, только в клеточках значение массивов.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 2.1.2013, 20:52) *

номера строк и столбцов массива.
в морской бой играли? вот тоже самое, только в клеточках значение массивов.


Это этим можно подвинуть к картинке объект. Вот у меня совпал цвет, а с лева или справа находится объект, котрый надо приблизить. Каким параметром это задается.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.1.2013, 20:37
Сообщение #28


***********

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



Это не о том. Это просто набор переменных.
То что ты писал тебе ручками делать надо.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 2.1.2013, 21:37) *

Это не о том. Это просто набор переменных.
То что ты писал тебе ручками делать надо.

Так я понимаю, что ручками. Так же понимаю, что надо найти и переместить к ним еще одну. я понять не могу как это начать. Допустим 2 вместе я Findimage найду, но как дать понять пилоту, что еще одну надо подставить, которая может быть с любой стороны от этих двух. Пробовал еще Findimage но с одной, так он одну находит и куда я задал, допустим в прово двинуть, он ее и двигает. А с другой стороны стоят нужных 2 и он не понимает, что ему туда надо переместить. Если пробовать перечислить все возможные комбинации перемещения, тогда неуложишься в 30 секунд боя.

Потому и прошу подсказать с помощью каких команд, пилот можно заставить это исполнить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 2.1.2013, 21:22
Сообщение #30


***********

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



Ответил в соседней теме, вопрос про "шарики", если я правильно догадался.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Скажите, что это за функция Proc, на вики к ней нет описания.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 0:48
Сообщение #32


*********

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



Цитата(veiron @ 9.1.2013, 20:18) *

Скажите, что это за функция Proc, на вики к ней нет описания.

в справке к пилоту есть


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


******

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



Цитата(Zeleax @ 10.1.2013, 1:48) *

в справке к пилоту есть


Пытался понять в каком случае такая штучка может пригодится и не смог.
gosub и if по-сути всё тоже самое делают....
может я что-то упустил?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 6:48
Сообщение #34


*********

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



Очень похоже на gosub, но можно легко передавать вовнутрь параметры и получать назад результат (если в качестве параметра передавать массив).
Можно сказать, что это позволяет создавать свои собственные "команды" (процедуры), выполняющие сразу несколько действий/вычислений и состоящие из целого набора других команд пилота.

Сообщение отредактировал Zeleax - 10.1.2013, 6:52


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.1.2013, 6:55
Сообщение #35


***********

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



Для меня есть некий смысл, т.к. есть некоторые функции, которые неплохо бы иметь унифицированными в каждом скрипте. Например: сложение времени, формирование времени в чч:мм:сс, преобразование массивов(выкидывание пустых, устаревших значений, копирование(в более ранних версиях), контроль статусов скриптов и т.д. Так же есть одна очень приятная деталь: область видимости переменных. При присвоении переменных внутри proc мы не рискуем затереть уже существующую в основном скрипте(когда он большой и с кучей схожих вычислений, то это становится очень актуально). С proc были проблемы со стабильностью. Вроде исправлены, но я по многолетней привычке сижу только на gosub.


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


******

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



В теории звучит красиво, но на практике я всё ещё не представляю как это выглядит.

Будьте добры, примерчиков дайте пожалуйста на пункты ниже, спасибо.

1.
Цитата
Очень похоже на gosub, но можно легко передавать вовнутрь параметры и получать назад результат (если в качестве параметра передавать массив).

Примерчик плиз. Я лично не понял как вернуть результат.

Парочка из моих попыток:
Код
set #s 5
set %q[1] #s
call test1 #s %q[1]
proc test1 #s1
   for #i 1 500
      set #s1 #s1 + 15
      set %q1[1] #s1
   end_for  
end_proc
msg #s #s1 %q[1] %q1[1] // получается 5 #s1 5
end_script


Код
set #s 5
set %q[1] #s
call test1 #s %q[1]
proc test1 #s1 %q1[1]  // здесь падает на попытке вернуть массив
   for #i 1 500
      set #s1 #s1 + 15
      set %q1[1] #s1
   end_for  
end_proc
msg #s #s1 %q[1] %q1[1] // получается 5 #s1 5
end_script


Цитата
Можно сказать, что это позволяет создавать свои собственные "команды" (процедуры), выполняющие сразу несколько действий/вычислений и состоящие из целого набора других команд пилота.

Если эту фразу я понял верно, то абсолютно тоже самое делает gosub.


2.
Цитата
Для меня есть некий смысл, т.к. есть некоторые функции, которые неплохо бы иметь унифицированными в каждом скрипте.
Например: сложение времени, формирование времени в чч:мм:сс, преобразование массивов(выкидывание пустых, устаревших значений.

Какой-нить примерчик на любой предложенный вами вариант, пожалуйста.

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

Проверил, это действительно так и это выглядит крутастенько, но пока не вижу способа применения выгоднее, чем gosub. Будьте добры, примерчик.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 19:32
Сообщение #37


*********

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



Код
set %a[1] 5
set %a[2] 4
set %a[3] обязательно резервируем для результата

call умножить %a

msg Если %a[1] помножить на %a[2], то получится %a[3]
end_script

proc умножить %b
  set %b[3] %b[1] * %b[2]
end_proc


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


******

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



Цитата(Zeleax @ 10.1.2013, 20:32) *

Код
set %a[1] 5
set %a[2] 4
set %a[3] обязательно резервируем для результата

call умножить %a

msg Если %a[1] помножить на %a[2], то получится %a[3]
end_script

proc умножить %b
  set %b[3] %b[1] * %b[2]
end_proc



Ага, понял. Спасибо. Я нумерацию зря указывал.

Так, с примером этим разобрались.
Но что-то все равно фактической полезности всё ещё не вижу((
Зато поэкспериментировав, словил красивую ошибку:
(IMG:http://www.pictureshack.ru/images/9375_super.GIF)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 20:00
Сообщение #39


*********

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



А если в процедуру передавать 10 параметров? Так сделаете 1 строкой, а через gosub придется выделять 10 переменных, чтоб передать данные внутрь процедуры


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


******

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



Цитата(Zeleax @ 10.1.2013, 21:00) *

А если в процедуру передавать 10 параметров? Так сделаете 1 строкой, а через gosub придется выделять 10 переменных, чтоб передать данные внутрь процедуры


Хм...
Ок. Вот ваша процедура:

Код
set %a[1] 5
set %a[2] 4
set %a[3] обязательно резервируем для результата

call умножить %a

msg Если %a[1] помножить на %a[2], то получится %a[3]
end_script

proc умножить %b
  set %b[3] %b[1] * %b[2]
end_proc



А вот через госап:

Код
set %a[1] 4
set %a[2] 5
gosub formula
set %a[3] #s
msg Если %a[1] помножить на %a[2], то получится %a[3]
end_script

:formula
set #s %a[1] * %a[2]
return


Те же самые 7 строчек(без мсг и енд скрипта)

Теперь как понять передать 10 переменных? Вернее для чего?
Пожалуйста, для процедуры примерчик напишите с несколькими переменными, так же как написали выше отличный пример. Спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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