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

> Оптимизация скрипта
crax
сообщение 26.9.2017, 20:27
Сообщение #1


**

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



Всем добрый день!

у меня есть несколько переменных - пары координат х и у, которые нужно вводить по очереди.
скрипт выглядит схематично так:

Код

set #uslovie 1
set #x1 234
set #y1 699
set #x2 676
set #y2 099
set #x3 222
set #y3 222
:begin

if #uslovie  = 1
send #x1
send {tab}
send #y1
set #uslovie #uslovie + 1
end_if

if #uslovie = 2
send #x2
send {tab}
send #y2
set #uslovie #uslovie + 1
end_if

if #uslovie = 3
send #x3
send {tab}
send #y3
set #uslovie #uslovie + 1
end_if
goto begin


возможно ли как-то избежать постоянного ввода однотипного участка
Код

if #uslovie = 3
send #x3
send {tab}
send #y3
set #uslovie #uslovie + 1
end_if
goto begin


а написать только кусок
Код


if #uslovie = 3
send #x #uslovie  - порядковый номер х совпадает с условием
send {tab}
send #y #uslovie  - порядковый номер y совпадает с условием
set #uslovie #uslovie + 1
end_if
goto begin



понимаю что именно так нельзя поэтому и нуждаюсь в помощи
заранее благодарен :-)





Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
DarkMaster
сообщение 26.9.2017, 23:25
Сообщение #2


***********

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



вообще можно сделать массив, а в варианте с луа можно даже "именно так", т.к. там в этот же массив можно запихать что угодно и даже функцию, которая вернет это "условие". Тут очень большой вопрос кстати что содержится в #uslovie. Если это просто некоторое число или строка, то вообще не вижу проблемы:
set arr[1 1] x1
set arr[1 2] y1
set arr[1 3] uslovie1
set arr[2 1] x2
set arr[2 2] y2
set arr[2 3] uslovie2
set arr[3 1] x3
set arr[3 2] y3
set arr[3 3] uslovie3


ну и получается универсальный блок:
Код
if arr[n 3] = 3
    send arr[n 1] arr[n 3] - порядковый номер х совпадает с условием
    send {tab}
    send arr[n 2] arr[n 3] - порядковый номер y совпадает с условием
    set #uslovie #uslovie + 1
end_if

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


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



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

 

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