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

 
Ответить в эту темуОткрыть новую тему
> Помогите с решением, тяму не хватает :(, Сверить число с одной из переменных
фонарик
сообщение 23.10.2012, 21:24
Сообщение #1


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Ситуация такая: есть много числовых переменных с совсем разными названиями, например #vasya, #neboskreb, #lodka и так далее. Всего их штук 15-20. Далее, используя функцию "get color" определяется число цвета в переменную #goal. Что мне нужно, так чтобы при определенном числе цвета, если оно совпало с каким либо из значений переменных о которых я написал в начале (#vasya, #neboskreb, #lodka), скрипт посылался в метку :start.

Например:

set #vasya 765383
set #neboskreb 87643567
set #lodka 98653357
//(.. тут еще штук 15 таких переменных)
set #x1 762
set #y1 385

get color #goal #x1 #y1 abs

if #goal .. (а вот тут как раз нужно проверить совпадение с числом из какой-либо переменной)
goto start
else
goto end
end_if

Я понимаю, что можно написать
if #goal = #vasya or #neboskreb or #lodka
goto start
else
goto end
end_if

но чтото мне подсказывает, что обычно умные люди делают как-то проще для вычислений пилота (IMG:style_emoticons/default/smile.gif) К тому же, эти переменные в количестве не постоянные, какие-то могут со временем удалиться, какие-то добавиться. Посоветуйте пример какой-нибудь как это реализовать, сам я не справился (IMG:style_emoticons/default/sad.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.10.2012, 21:41
Сообщение #2


***********

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



Могу лишь порекомендовать уйти от переменных и использовать массивы. Тогда проверка будет выглядеть так:
Код

set $sizeArr size (%arr)
for #i 1 $sizeArr 1
    if %arr [ #i ] = #goal
        goto start
    end_if
end_for


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


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Я боялся что вы скажете про массивы (IMG:style_emoticons/default/sad.gif) Никак не могу понять принцип их работы. Может, есть где простой пример для пилота работы массива? Или может вы напишите простой пример, а я сам попробую дальше домозговать, если получится.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.10.2012, 22:36
Сообщение #4


***********

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



массивы это те же переменные, просто они имеют индекс.
Например у нас есть набор переменных:
#var1
#var2
#var3

#a 1
#b 2
#c 3

Беда в том, что несмотря на #a = 1 мы не можем написать #var#a и получить тем самым переменную #var1. А массив позволяет это сделать:
%arr [ 1 ] 123
%arr [ 2 ] 321
#a 1
мы можем использовать #a для указания элемента массива: %arr [ #a ] можно спокойно использовать.
Тут все примитивно. В морской бой в детстве играли? Помните вы чертили квадратики и называли их координаты? Массив это тоже самое. Единственная разница обе координаты задаются цифрами. Вы обращаетесь к массиву и говорите ему, например [ 2 5 ], тем самым вы "стреляете" в квадрат 2 5, где 2 номер строки, а 5 столбец. Массив просто позволяет задать эти координаты с помощью переменных.


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


***

Novice
Сообщений: 59
Регистрация: 12.2.2011
Группа: Пользователи
Наличность: 0
Из: Мариуполь
Пользователь №: 13.442
Возраст: 27



Цитата(фонарик @ 23.10.2012, 22:02) *

может вы напишите простой пример


Код

set %color[1] 765383       // Вася
set %color[2] 87643567   // небоскреб
set %color[3] 98653357   // лодка

set #size_color size (%color)   // определяем размер массива

set #x1 762
set #y1 385
get color #goal #x1 #y1 abs


for #i 1 #size_color 1
   if #goal = %color[#i]
      goto start
   end_if
end_for
goto end

end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 28.10.2012, 1:00
Сообщение #6


******

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



Цитата(DarkMaster @ 23.10.2012, 22:41) *

Код

set $sizeArr size (%arr)
for #i 1 $sizeArr 1



Цитата(REPA @ 28.10.2012, 1:26) *

Код

set #size_color size (%color)   // определяем размер массива
for #i 1 #size_color 1



Вот эти места не дают мне покоя. Только недавно сталкивался с такой частью кода и в цикле я использовал напрямую размер массива, т.е.:
Код

for #i 1 size(%color)

и всё прекрасно отрабатывало(много разных скриптов юзал так, ошибок не возникало)

Поэтому вопрос, так делать не желательно? и почему?
спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 28.10.2012, 1:50
Сообщение #7


***********

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



Ну по идее работает - можно) Никогда так не делал и чет даже в голову не приходило, что фор может это сожрать.
Ну и зачастую я использую результат несколько раз и не только в форе.


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


******

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



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


****

Apprentice
Сообщений: 145
Регистрация: 23.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.305



Большое спасибо за помощь, разобрался и все настроил как нужно (IMG:style_emoticons/default/cool.gif) Что бы я без вас делал (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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