|
|
|
Новая Версия Uopilot v.2.40 (05.11.2017), Официальный сайт. Скачать. Последняя версия. |
|
|
DarkMaster |
5.8.2018, 19:21
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27680
Пользователь №: 11.279
|
Цитата Чем больше вариантов, тем дольше работает парсер. Каких вариантов? Он что так один, что так. Насколько я понимаю там создается некоторая таблица и из нее дергаются указатели на функции, где сложность вроде как должна равняться N, ну и дополнительно нагрузку дает длина имени функции. Размер словаря вроде вообще ни на что влиять даже теоретически не может, т.к. даже если сравниваются ключи стрингами, то там идет строгое сравнение. Или ты не напрямую функции в машину луа передаешь? Нежели ты какие-то заглушки возвращающие название функции передаешь, а потмо парсишь результат? Цитата Так параметры у финдов вроде давно из луа нормально задаются, без преобразования в строку. Или где-то проскакивает старый вариант? Ну лично я смог завести только через : local a = findimage("весь набор параметров строкой") При этом создается глобальный массив, что сильно не есть хорошо, а параметры насколько я понимаю все так же конвертятся в стринг и после чего уходят в стандартный парсер пилота. Это кощунство.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
DarkMaster |
5.8.2018, 20:27
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27680
Пользователь №: 11.279
|
Цитата Ну вот как раз если бегать по словарю и сравнивать строки хоть как, то размер будет влиять. Только при поиске в середине строки и нечетком сравнении. Тут же по сути дела идет побитовое, т.к сравниваем мы с начала строки и ее содержимое и словарь вообще никак не интересуют. Либо точное побитовое совпадение, либо мимо. Тут скорее есть обратная проблема - при маленьком словаре выше вероятность одинакого начала имен, что будет приводить к более долгому сравнению. Цитата В православных плюсах есть unordered_map и куча его братьев с хешированием, вот там все что ты описал. Только луа на си написан, а реализации хешей не увидел. Насколько я понимаю Lua это один сплошной vector. Учитывая что по сути все данные в луа есть таблица, то видимо что-то нахимичили с хеш таблицами или над тем же вектором поиздевались. Слабо представляю себе реализацию языка полностью состоящего из древообразных таблиц без использования хеш таблиц. Сообщение отредактировал DarkMaster - 5.8.2018, 20:30
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
DarkMaster |
6.8.2018, 7:04
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27680
Пользователь №: 11.279
|
Цитата Ваське числа десятого мая писал об этом. Потестить просил Прохлопал где-то. Про nil уже и я писал и цирус пишет. Не нашло - должна вернуться не таблица, а nil. Очень большой вопрос для меня почему работает вот это: --lua local a = findimage("297, 1, 323, 30 (images\\test.bmp) %arr 2, 90, 1 , 3") log(a, arr) В качестве единственной причины могу лишь предположить, что параметры переданные через луа конвертятся в стринг и обратно. Очень хочу ошибиться. Может перегрузки какие-то? // Лог после отключения парсинга стал просто летать. Правда почему-то повяляются иногда паразитные переносы. Причину пока установить не удалось. Возможно мой косяк в дебаггере.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
DarkMaster |
23.8.2018, 13:30
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27680
Пользователь №: 11.279
|
Цитата Финдимидж и финдколор проверь в нестабильной ночнушке. table: 1 1 = "20" 2 = "56" 3 = "28" 4 = "66" 5 = "100" .\luaPlugins\\FindStringDev.lua:828: attempt to compare number with string Тоже самое local a = findcolor(377, 515, 379, 519, 1, 1, {16777215}, 2) ext.lg(a) >> table is "nil" data type. Value: nil local a = findcolor(377, 515, 379, 519, 1, 1, 16777215, 2) ext.lg(a) >>table is "number" data type. Value: 15 Итого: финдимидж возвращает так же стрингом. Финдколор не реализован синтаксис - работает в пилотовском виде.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
cirus |
25.8.2018, 2:27
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26702
Пользователь №: 16.971
Возраст: 29
|
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|