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

 
Ответить в эту темуОткрыть новую тему
> Скрипт пилота, передать ему данные из lua, lua вставка в скрипте пилота. Так бывает?
фонарик
сообщение 22.10.2026, 20:43
Сообщение #1


****

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



Здравствуйте. Подскажите пожалуйста, можно ли как-то передать простому пилотскому скрипту данные из lua? Просто на луа есть очень удобная функция, которая пошаманит и получит число в переменную. А сам скрипт пилотский, очень большой. Вот вопрос, можно ли както эту переменную из луа передать в переменную пилоту?

Код
set #a 0

gosub LuLua

:LuLua
--lua
a = 99
--endlua

msg #a
return
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 22.10.2026, 22:31
Сообщение #2


********

Master
Сообщений: 1.409
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 23228
Пользователь №: 16.156



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


***********

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



Как вариант можно один раз передать значение адреса памяти, потом читать напрямую. НО это сработает, если только пилот не закрывает lua_state. Я не знаю, как реализована приостановка и переключение между синтаксисами. Иначе память будет очищаться и читать будет нечего.
Код

local var = ffi.new("int[1]")
var[0] = 123    -- ВАШЕ ЗНАЧЕНИЕ
print(var[0])

local addr = tonumber(ffi.cast("unsigned int", var))
print(addr)


Сообщение отредактировал DarkMaster - 23.10.2026, 3:14


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.10.2026, 6:33
Сообщение #4


***********

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



Код
--lua
a = 99
--endlua

log 123

--lua
log(a)
--endlua

end_script ()

переменную не забывает, через память должно шуршать. Но, если объявить local a, то забывает. Там походу через dostring какой-нибудь куски выполняются, поэтому локал забывает. Глобальная переменная работает. Объявить заранее, один раз. Дальше потом просто a[0] = 123, на стороне пилота readmem по адресу. Первая передача через файл.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

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


****

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



Спасибо вам большое, ребята. Получилось так, что луа по итогу выполнения функции пишет значения в текстовый файл, а пилот следом берет их через load_array. Не знаю что это за автомобиль получился, но ездиет (IMG:style_emoticons/default/biggrin.gif)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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