|
Вопросы по разработке. |
|
|
DarkMaster |
27.5.2016, 13:29
|
Модератор UOPilot
Сообщений: 9.486
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27971
Пользователь №: 11.279
|
Cockney, ты использовал новый интерфейс плагинов с передачей результата по указателю? У меня пустоту возвращает хоть убей. Причем структуру создаю, все назначаю, старый вариант по всей цепочке указателей значение считывает нормально: Код sprintf_s(ParamStruct->Result, "%u " "%u " "%s", &ResultStruct.RArray, ParamStruct->pResultStruct, ParamStruct->pResultStruct->RArray ); Но как только я ствалю: Код ResultStruct.used = true; пустота приходит. Сообщение отредактировал DarkMaster - 27.5.2016, 20:03
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Ответов(40 - 56)
Kortez |
16.9.2017, 21:12
|
Registred
Сообщений: 4
Регистрация: 21.7.2015 Группа: Пользователи Наличность: 0
Пользователь №: 17.548
|
Приветствую, есть некоторые вопросы по плагинам: - как передать в плагин массив?пример скрипта: Код set #n 20 set $s "foo bar" init_arr %arr 10 20 30
log UOPilotPlugin.Function1(#n, $s, %arr) stop_script
результат: (плаг сделан на основе из справки) 21:04:02 2 (autosaved_2.txt, 6): (Handle 0; PID 0; Parameter string (20, foo bar, %arr); Parameter string original (20, foo bar, %arr) как видим, содержимое массива не парсится - откуда взялась первая открывающая скобка "(" в выводе плага, если в шаблоне ее нет?код функции: Код void UOPILOT_CALL Function1(tParamStruct* ParamStruct) { sprintf_s(ParamStruct->Result, "%s" "%u" "%s" "%u" "%s" "%s" "%s" "%s", "Handle ", (size_t) ParamStruct->WindowHandle, "; PID ", (size_t) ParamStruct->WindowPID, "; Parameter string ", ParamStruct->ParamString, "; Parameter string original ", ParamStruct->ParamStringOrig ); }
- как вызывать плагин из lua?переписанный скрипт: Код --lua log("clear")
local n = 20 local s = "foo bar" local arr = {10,20,30}
log(UOPilotPlugin.Function1(n, s, arr)) stop_script() лог: 21:08:20 1 (autosaved_1.txt, 0): (-1): Ошибка! Проверьте правильность скрипта! ELuaScript unit "GLOBAL_NAME_SPACE", line 7. Global variable "UOPilotPlugin" not found --lua log("clear") local n = 20 local s = "foo bar" local arr = {10,20,30} log(UOPilotPlugin.Function1(n, s, arr
|
|
|
|
Kortez |
23.9.2017, 17:59
|
Registred
Сообщений: 4
Регистрация: 21.7.2015 Группа: Пользователи Наличность: 0
Пользователь №: 17.548
|
Цитата(Cockney @ 16.9.2017, 21:21) Массив вроде можно передать как %a[1]
так можно, но при этом передается только первый элемент из скрипта пилота можно передавать в плагин параметры по ссылки (или адрес) чтобы плаг мог изменять переданное значение? Вопрос уже более риторический, ибо с появлением луа я все больше подумываю перейти на него пока это затруднительно ввиду различного рода багов при вызове функций пилота из недавнего: set #h1 GetWindow (#h, Child) по данным Spy++, аналогичный вызов в lua возвращает левый хэндл: local w = tonumber(findwindow("BlueStacks")[1][1]) w = getwindow(w, "Child") -- вызов скрипта get windowpos 0 #x #y #w #h как оно будет в lua? вариант local x, y, w, h local r = windowpos(0, x, y, w, h) не прокатывает
|
|
|
|
DarkMaster |
23.9.2017, 22:16
|
Модератор UOPilot
Сообщений: 9.486
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27971
Пользователь №: 11.279
|
Цитата get windowpos 0 #x #y #w #h
как оно будет в lua? вариант local x, y, w, h local r = windowpos(0, x, y, w, h)
не прокатывает Цитата Не работает пока Кнайт не поправит. Главное чтобы на костре не сожгли: Код get ("windowpos workwindow #x #y #w #h") x, y, w, h = "#x", "#y", "#w", "#h" log (x, y, w, h)
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|