fgntfg
Что-то типа (\s*)\b+(\s*)\b+(.*)
fgntfg
чот ппц ....
Регулярки - сила
Egor
Регулярки - сила
не, не в этом дело...
Egor
регулярки чет ваще не перловые ))
Egor
как-ьудто что-то уних там свое...
fgntfg
Я не помню, что там в луа, не писал уже несколько лет
Snusmumriken
Ммм. Главное отличие луёвых регулярок от перловых — использование % вместо \. И отсутствие некоторых опций. Тройные токены вроде .*? заменены двойными .-. А так то же самое.
Egor
Я не помню, что там в луа, не писал уже несколько лет
(\d{4}\-\d{2}-\d{2})\s(\d{2}\:\d{2}:\d{2})(\,\d{3})\s([\w|\.]+)\s+(\w+)\s+(.*) крч пздц.... и луа не схавала..либо что вероятнее я не умею его готовить
Egor
_,_, dt, t, p, x, lvl, msg = string.find(mystr, "(%d+%p%d+%p+%d+) (%d+%p%d+%p+%d+)(,%d+) ([%w|%p]+)%s+(%w+)%s+(.*)") print(dt, t,p,x, lvl, msg) победил!!! наверное
Александр
table.pack(s:match("(%S-)%s(%S-)%s(.+)"))
Snusmumriken
table.pack == {...}
Александр
Snusmumriken
А, блин, есть различия. table.pack добавляет ключ n на случай nil-дырок.
Александр
А, блин, есть различия. table.pack добавляет ключ n на случай nil-дырок.
Честно говоря пишу больше по привычке, сформированной по книжке и тоже помнилось, что у них есть разница. Плюс для pack есть обратный unpack и порой приходиться их чередовать.
Snusmumriken
Лол
Snusmumriken
Честно говоря пишу больше по привычке, сформированной по книжке и тоже помнилось, что у них есть разница. Плюс для pack есть обратный unpack и порой приходиться их чередовать.
unpack работает над любыми массивами. Надо кстати проверить как он работает с nil-дырками в случае наличия и отсутствия n.
Александр
Лол
Кстати это в книге есть
Snusmumriken
Я не помню наизусть книги которые читал восемь лет назад, только те разделы которые были особо интересными.
Александр
Я не помню наизусть книги которые читал восемь лет назад, только те разделы которые были особо интересными.
Я тоже, но просто у меня несколько вызывало недоумение то, что Роберту на дырках сделал акцент и меня сильно напрягало то, что n может сильно плавать, а длина если не ошибаюсь так вообще считается только для плотной части массива, другими словами с дырками массив можно сделать вроде только через pack
Snusmumriken
Ну в общем тут ситуация довольно простая: не делать массивы с дырками ))0
Snusmumriken
Придерживаюсь этой тактики восемь-девять лет, полёт нормальный.
Александр
Придерживаюсь этой тактики восемь-девять лет, полёт нормальный.
И это правильно, собственно если честно я так и не понял того, зачем вообще делать массив с дырками, т.к. по сути получается уже и не массив, но ещё и не хеш-таблица - очень сомнительная вещь как по мне. При том опять же Роберту объяснению того, что такое можно посвятил несколько страниц.
Snusmumriken
Не, это всё ещё массив, просто с дырками, и надёжно по нему пройтись можно только pairs'ом. У них есть несколько забавных применений. Например оптимизированное хранилище из которого нечто постоянно то удаляется то добавляется, чтобы не сдвигать, просто мотаешь курсор до первой дырки и вставляешь туда. Другое дело что хранить и обновлять n всё равно приходится, или гонять pairs, что не очень приятно если там ещё есть ключи.
Snusmumriken
Для массового же удаления элементов из массива, крайне не желательно использовать всякие table.remove и прочие ipairs'ы, и даже цикл for, по ряду причин — table.remove сдвигает все "будущие" элементы по индексу, поэтому при удалении, обычный прямой for или ipairs пропускает элемент после удалённого. Обойти можно обратным циклом for, но это дичайше тупо, потому что у тебя постоянно есть хвост который сдвигается на один шаг при каждом удалении. Поэтому я дёргаю что-то такое (см пик) — там пара курсоров — куда вставлять и откуда, и подчистить жопу под конец.
Александр
Не, это всё ещё массив, просто с дырками, и надёжно по нему пройтись можно только pairs'ом. У них есть несколько забавных применений. Например оптимизированное хранилище из которого нечто постоянно то удаляется то добавляется, чтобы не сдвигать, просто мотаешь курсор до первой дырки и вставляешь туда. Другое дело что хранить и обновлять n всё равно приходится, или гонять pairs, что не очень приятно если там ещё есть ключи.
А вроде не массив. Могу ошибаться, но вроде логика как раз такая, что в массиве храняться только плотная последовательность от 1 до n, а всё остальное хитро отправляется в хеш-таблицу. И в целом это логично если вспомнить, что можно писать так a[10000000] = 5 . Кстати это тоже из книги запомнилось
Snusmumriken
Насколько я знаю да.
Александр
Ну чисто с позиции производительности сильно может деграднуть ?
Александр
С другой стороны я редко пользую большие массивы, поэтому для них пожалуй вряд ли. Просто интересно что будет с массивами от десятков млн
Highly Likely
Но лень вчитываться в доку в этом месте
Highly Likely
У меня ощущение обратное, что массив никуда не съезжает, до тех пор пока он плотный
fgntfg
WorkerNFT
Всем привет, скажите пожалуйста, кто-небудь здесь занимается разработкой скриптов для серверов Гарис мода?
WorkerNFT
Нет. Это общий чат для решения общих проблем.
Просто если вдруг кто-то занимается, хотел бы задать пару организационных вопросов
Igor
Просто если вдруг кто-то занимается, хотел бы задать пару организационных вопросов
Можешь в принципе и задать. Если повезёт, найдутся люди, которые помогут с ответом. Я сам под гмод писал скрипты лет эдак 5 назад или около того.
Igor
Если вспомню что-то сам, то помогу, естественно
Hell
Приветствую вас господа, кто может подсказать кусочек по коду
Hell
Сам никогда не использовал луа, но есть опыт с++ и питоном. В общем, есть кусочек кода для игры (world of warcraft), и есть кнопка "Изменить Внешность". Можно ли как-то сделать чтобы появлялось уведомление при наведении курсора на данную кнопку
Hell
win
Hello, World! 🎄
На windows хз, но на linux можно через notify-send сделать
Hell
это полноценная игра
Hell
Hell
Просто интерфейс кастомный, изменили рассположение клавиш и задний фон
Hell
при нажатии на клавишу "цвет кожи" он выдает рандомные значения, но интуитивно не понятно зачем эта кнопка, поэтому хотел добавить описание
Snusmumriken
Блин, там где-то есть доступ к тултипу через поиск фреймов.
Hello, World! 🎄
Snusmumriken
Нет там доки с примерами, тут всё интереснее.
Hell
это даже не апи, весь исходный код по факту открыт
Hell
просто открыли файл игры и переписали интерфейс
Hello, World! 🎄
это даже не апи, весь исходный код по факту открыт
Ну вот и смотри) Или ищи модификации написанные другими пользователями и разбирайся.
Hello, World! 🎄
Hell
world of warcraft
Hell
C++
Hello, World! 🎄
C++
Часть игры на Lua?
Hell
интерфейс
Snusmumriken
Должна быть примерно такая фигня https://wowwiki-archive.fandom.com/wiki/UIOBJECT_GameTooltip
Hello, World! 🎄
интерфейс
Можно в коде поискать нужный UI элемент
Hell
Благодарю товарисчи, попробую разобраться
Hello, World! 🎄
Благодарю товарисчи, попробую разобраться
Тут возможно есть, то что нужно: https://www.curseforge.com/wow/addons/tooltip
Hell
в чате возможно есть прошаренные парни которые сталкивлись с вовкой, нужно реализовать пару патчей, за оплату ествественно
Snusmumriken
Можно в коде поискать нужный UI элемент
Карочи, объясняю. Есть игра вов. И в ней есть гуй. Гуй управляется луями. Он состоит из совершенно атомарных элементов, то есть тут не то чтобы "движок" для гуя а хуже и сложнее, и работа с ним довольно стрёмная. Так что народ уже наизобретал своих упрощалок (аддоны tellmewhen/wa) для того чтобы кто-нибудь мог накатать свой мини-аддон интерфейса, только они в основном расчитаны на бой и игровые события, а не на переделку чего либо или добавление чего-то к стандартному гую. Считай что это отдельный мир и в него надо погружаться, как с гмодом например. Инспектировать внутренности и смотреть что на что влияет, ибо доки по тому что там уже нагорожено — нема.
Hello, World! 🎄
Карочи, объясняю. Есть игра вов. И в ней есть гуй. Гуй управляется луями. Он состоит из совершенно атомарных элементов, то есть тут не то чтобы "движок" для гуя а хуже и сложнее, и работа с ним довольно стрёмная. Так что народ уже наизобретал своих упрощалок (аддоны tellmewhen/wa) для того чтобы кто-нибудь мог накатать свой мини-аддон интерфейса, только они в основном расчитаны на бой и игровые события, а не на переделку чего либо или добавление чего-то к стандартному гую. Считай что это отдельный мир и в него надо погружаться, как с гмодом например. Инспектировать внутренности и смотреть что на что влияет, ибо доки по тому что там уже нагорожено — нема.
Понятно. а не на переделку чего либо или добавление чего-то к стандартному гую Ну так если делать нечего можно взять их и посмотреть код и на основе этого уже свое написать (Или там что-то мешает это сделать?).
Snusmumriken
Лол ну попробуй )) https://github.com/WeakAuras/WeakAuras2
Hello, World! 🎄
Лол ну попробуй )) https://github.com/WeakAuras/WeakAuras2
У меня есть чем заняться (сессия, все дела)
Snusmumriken
Карочи, просто забей. Если ты не пилишь аддоны, разбираться слишком муторно.
Hell
Лол ну попробуй )) https://github.com/WeakAuras/WeakAuras2
Кстати как пример думаю может подойти атласлут
Hell
Hell
при наводе на шмотку он выдает инфу
Hell
впринципе схема та-же