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

 
Ответить в эту темуОткрыть новую тему
> Использование переменных массива в другом скрипте, Так и должно быть?
BydloScripter
сообщение 19.1.2013, 4:30
Сообщение #1


**

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



Столкнулся с такой проблемой (а может так и должно быть):
Пытаюсь использовать переменные массива из одного скрипта в другом
переменные в массиве задаются таким образом:
Код
for #a 1 #n
set %x[#a] #y * #z / #b + #d, #c #f
end_for


дело в том что при записи значения в массив не выполняются математические действия, но подставляются значения переменных #c и #f, с которыми никаких мат. действий не производится и выглядит %x[#a] как "#y * #z / #b + #d, 100500 100500"
При использовании %x[#a] в этом же скрипте проблем не возникнет, но если нужно её использовать в другом скрипте, где переменные #y, #z, #b и #d не определены то скорей всего мы получим ошибку.
В итоге нужно либо записывать %x[#a] как #y.1 * #z.1 / #b.1 + #d.1, #c #f
но мы же не всегда уверены в том что скрипт будет именно в первой вкладке
либо добавлять ещё одну строку
Код
for #a 1 #n
set #temp #y * #z / #b + #d
set %x[#a] #temp, #c #f
end_for

что тоже не слишком по феншую

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


***********

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



Во 1 есть область видимости. Она ограничена текущим скриптом. К другим скриптам вы правильно обращаетесь через #name.номер_скрипта. Это касается не только переменных, но и массивов.
Цитата
#y.1 * #z.1 / #b.1 + #d.1, #c #f

Это вообще дико не корректная запись. ", #c #f" это вообще что? Это что за математическая операция такая?


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


**

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



Цитата(DarkMaster @ 19.1.2013, 7:44) *

Это вообще дико не корректная запись. ", #c #f" это вообще что? Это что за математическая операция такая?

Цитата(BydloScripter @ 19.1.2013, 4:30) *

подставляются значения переменных #c и #f, с которыми никаких мат. действий не производится


Всё в конечном итоге должно было хаиметь вид x, c f где
x - первая координата точки
c - сторая координата точки
f - цвет точки
Для дальнейшего использования в if и т.д. типа
Код
if %x[#a]
else
end_if


Меня больше волнуют не #c и #f, с ними всё впорядке, значения подставляются нормально а вот выражение "#y * #z / #b + #d" вставляется как строка, без прощёта
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 19.1.2013, 11:46
Сообщение #4


*********

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



см. команду init_arr


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


**

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



Цитата(Zeleax @ 19.1.2013, 11:46) *

см. команду init_arr

Как я понял эта команда разобьёт "#y * #z / #b + #d, #c #f" на несколько ячеек (3?)
и если выражение "#y * #z / #b + #d" будет в отдельной ячейке то оно будет прощитано до записи? и в итоге я получу число а не строку?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.1.2013, 12:09
Сообщение #6


***********

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



Цитата
Меня больше волнуют не #c и #f, с ними всё впорядке, значения подставляются нормально а вот выражение "#y * #z / #b + #d" вставляется как строка, без прощёта

Дык оно поэтому и не считается.


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


**

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



Цитата(DarkMaster @ 19.1.2013, 12:09) *

Дык оно поэтому и не считается.

Вот ано чё, тогда в моём случае легче сделать
Код
for #a 1 #n
set #temp #y * #z / #b + #d
set %x[#a] #temp, #c #f
end_for

А то мало ли что там с пробелами накосячится при init_arr и последующем if %x[#a] двумерного массива
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.1.2013, 12:22
Сообщение #8


***********

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



set #temp #y * #z / #b + #d
set %x[#a] #temp, #c #f

либо
set %x[#a] #y * #z / #b + #d
set %x[#a] %x[#a], #c #f


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

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

 

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