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

6 страниц V « < 2 3 4 5 6 >  
Ответить в эту темуОткрыть новую тему
> Вопрос по луа
Cockney
сообщение 8.3.2018, 19:48
Сообщение #61


********

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



Цитата(DarkMaster @ 8.3.2018, 0:57) *

А в делфи, насколько мне известно, нет. Имхо проще написать обертку на луа, если так нужно. 5 строчек радости.



Делфи это делфи. Функция же работает с луа стеком, а не делфи параметрами.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.3.2018, 19:51
Сообщение #62


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26760
Пользователь №: 16.971
Возраст: 29



Цитата
А чему в пилоте равна переменная wait?

wait - это функция пилота, а не переменная, такая же как left, move, findimage и другие.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.3.2018, 20:31
Сообщение #63


***********

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



Цитата
Делфи это делфи. Функция же работает с луа стеком, а не делфи параметрами.

Дык лог то это функция делфи и с каким стеком она не начни работать ограничения делфи никуда не денутся. Ну можно переделать ее под принятие динамического массива, создавать, удалять, перебирать. Я вот просто убей не вижу в этом _актуальности_. Я не против, можно все это прикрутить, реализовать. Но это действительно так актуально, что мы развели столько демогогии? За все годы общения с пилотом я не могу вспомнить, когда мне было необходимо передать столько параметров в лог. При этом полноценная замена реализуется в пять строк на луа без каких-либо потерь. Такое количество параметров предполагает некоторое форматирование ибо иначе просто будет ничего не понятно, а в таком случае оператор две точки становится намного удобнее, чтобы не думать о том куда там влепит пилот свои делиметры.
Код
--lua
function _log (...)
    local s
    if  arg[1] then
        s = arg[1]
    else
        s = "nil"
    end
    for i = 2, arg.n do
        if  arg[i] then
            s = s .. " " .. arg[i]
        else
            s = s .. " " .. "nil"
        end
    end
    log(s)
end

_log(1,2,3,4,5,6,7,8,9,0,"Y","W","F","P","V","r","s","t","d","e",1,2,3,4,5,6,7,8,9,0,"Y","W","F","P","V","r","s","t","d","e")

Ирония в том, что стандартный лог это тоже сожрал)

Сообщение отредактировал DarkMaster - 8.3.2018, 20:33


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


********

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



Посмотри пример плагина который я выкладывал. Там нет фич, зависящих от языка. Вся работа на стеке и только на нем. Нет, это не актуально, по крайней мере для меня. Просто я пытаюсь донести мысль, что нельзя оставлять пилот-код в таком же состоянии, каким он был до луа и пытаться стянуть две технологии для совместимости. Вот смотри :

Код
log "clear" log "mode compact"


Это вкусовщина, но по-моему лучше сделать так :

Код
log(clear) 
log(mode.compact)


Это как минимум. Можно еще лучше, вынеся настройки лога за функцию :

Код
log(clear)
log.mode.compact = true


Да вариантов несколько, не суть. Почему настройки-параметры передаются как строки, хотя они никак не связаны с ними ? Бред же.

Что касается лога с 10 параметрами. Тут смотри, луа может возвращать сколь угодно значений из функции и столько же принимать. Как луа-юзеру(именно луа) нужно догадаться, что ограничение 10 ? Почему 10 ? Это не естественные ограничения, а все эти обертки над логом адский костыль. Ты предлагаешь допиливать дефолтный лог при нужде ? Причем по совершенно глупой.


Это только вершина айсберга. Больше чем уверен есть еще много мест с такими нелепицами.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.3.2018, 21:48
Сообщение #65


***********

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



Цитата
log(clear)
log(mode.compact)

Подобная запись предполагает наличие константных переменных clear и mode.compact, причем еще и глобального массива mode. Имхо крайне плохая идея.
Цитата
log.mode.compact = true

Похоже направду. Ну либо функцией - не суть. Но при этом подходе невозможно будет сделать:
log(some_text)
т.к. log больше не функция, а массив.
Цитата
Больше чем уверен есть еще много мест с такими нелепицами.

Есть. Причем гораздо более страшными, поэтому я и говорил, что не на том фокусируемся, есть неработающие под луа функции, и жесткий косяк с параметрами заданными строкой, о чем ты как раз написал. Приоритеты...


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


********

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



Код
settings.log.mode = compact
settings.log.size = 0
settings.log.autoopen = true

etc



Что плохого в глобальных переменных ? Так-то workwindow() тоже глобальный. И я его непринужденным методом ломаю.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.3.2018, 3:09
Сообщение #67


***********

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



Цитата
Что плохого в глобальных переменных ?

типа clear? или settings? огромный шанс конфликта имен из-за незнания зарезервированных переменных.
Ну и глобальные переменные очень тормозные.


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


********

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



Ну так справочка есть. А то так можно от всего открещиваться.
Да ладно, в чем они тормознутые ? Медленней того же workwindow() что-ли ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.3.2018, 13:24
Сообщение #69


***********

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



Цитата
чем они тормознутые

Едва ли медленнее, но они правда тормознутые. Особенность релизации луа.


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


********

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



Я что-то не вижу проблемы. Если это особенность луа.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 9.3.2018, 19:38
Сообщение #71


****

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



Код
set %adres[1] "C:\Users\Andrey\Desktop"
set #a findimage(0 0 1920 1080 (%adres[1]\b.bmp) %arr 2 80 1 10)

на пилоте так можно, а на луа как так делается?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2018, 19:55
Сообщение #72


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26760
Пользователь №: 16.971
Возраст: 29



Код
--lua
adres = [[C:\Users\Andrey\Desktop]]   -- квадратные скобки для того чтобы не писать \ по 2 раза
image = [[\b.bmp]]
a = findimage(0, 0, 1920, 1080, "(", adres .. image,  ")", "%arr", 2, 80, 1, 10)
hint (a)

Вообще это всё надо переделывать под синтаксис луа.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 9.3.2018, 20:07
Сообщение #73


****

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



Цитата(cirus @ 9.3.2018, 19:55) *

Код
--lua
adres = [[C:\Users\Andrey\Desktop]]   -- квадратные скобки для того чтобы не писать \ по 2 раза
image = [[\b.bmp]]
a = findimage(0, 0, 1920, 1080, "(", adres .. image,  ")", "%arr", 2, 80, 1, 10)
hint (a)

Вообще это всё надо переделывать под синтаксис луа.

Пилотовским языком культурнее смотрится)

А если без задания переменной картинке? Чет не работает так
Код
--lua
adres = [[C:\Users\Andrey\Desktop\]]   -- квадратные скобки для того чтобы не писать \ по 2 раза
--image = [[\b.bmp]]
a = findimage(0, 0, 1920, 1080, "(", adres .."\b.bmp",  ")", "%arr", 2, 100, 1, 0)
hint (a)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.3.2018, 20:30
Сообщение #74


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26760
Пользователь №: 16.971
Возраст: 29



Код
--lua
adres = [[C:\Users\Andrey\Desktop\]]   -- квадратные скобки для того чтобы не писать \ по 2 раза
a = findimage(0, 0, 1920, 1080, "(", adres .."b.bmp",  ")", "%arr", 2, 100, 1, 0)
hint (a)

\ в имени картинки не нужен, он же в пути указан.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 9.3.2018, 20:40
Сообщение #75


****

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



Цитата(cirus @ 9.3.2018, 20:30) *

Код
--lua
adres = [[C:\Users\Andrey\Desktop\]]   -- квадратные скобки для того чтобы не писать \ по 2 раза
a = findimage(0, 0, 1920, 1080, "(", adres .."b.bmp",  ")", "%arr", 2, 100, 1, 0)
hint (a)

\ в имени картинки не нужен, он же в пути указан.

Так тоже не работает)


Так работает:
Код
--lua
adres = [[C:\Users\Andrey\Desktop\]]   -- квадратные скобки для того чтобы не писать \ по 2 раза
image = [[b.bmp]]
a = findimage(0, 0, 1920, 1080, "("..adres..image,")", "%arr", 2, 100, 1, 0)
hint (a)


Так нет:
Код
--lua
adres = [[C:\Users\Andrey\Desktop\]]   -- квадратные скобки для того чтобы не писать \ по 2 раза
a = findimage(0, 0, 1920, 1080, "("..adres.."b.bmp", ")", "%arr", 2, 100, 1, 0)
hint (a)


Тест картинка:
(IMG:http://i.yapx.ru/BEHK6.png)
Ааа заработало хд


Прикрепленные файлы
Прикрепленный файл  b.bmp ( 4,25 килобайт ) Кол-во скачиваний: 96
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 9.3.2018, 22:08
Сообщение #76


****

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



Можно ли задать переменной какое то действие?
Например:
Код
--lua
bb = "wait(1000+math.random(1000))"
log (bb)
--bb


но вызов переменной bb выдает ошибку
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.3.2018, 22:48
Сообщение #77


***********

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



Цитата
Можно ли задать переменной какое то действие?

Это назвывается функция =)
Код

function bb (var)
    wait(var + math.random(var))
    return
end
-- вызываем:
bb(1000)

кстати bb в луа является ссылкой и по своей природе настоящей переменной. Даже объявление на самом деле просходит, как:
Код
bb = function(var)

а запись:
Код
function bb (var)

является не более, чем "синтаксическим сахором", т.е. просто в угоду удобству и привычке программистов.


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


****

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



function bb (var)
wait(var + math.random(var))
return
end
-- вызываем:
bb(1000)

(var) - это чего означает?)
ааа понял) var это то что вызываем в скобках)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.3.2018, 23:03
Сообщение #79


***********

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



Цитата
(var) - это чего означает?)

это значение, которое мы передаем в функцию.


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


****

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



Цитата(DarkMaster @ 9.3.2018, 23:03) *

это значение, которое мы передаем в функцию.

функция, это выходит тоже самое, что на пилоте gosub?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

6 страниц V « < 2 3 4 5 6 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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