fgntfg
Что-то типа
(\s*)\b+(\s*)\b+(.*)
Snusmumriken
Приветы, подскажите, а как на луа разделить через пробел строку, НО!!
например:
сегодня хороший, теплый день. Куча всяких сообщений
Должно выйти такое:
a='сегодня'
b='хороший,'
c='теплый день. Куча всяких сообщений'
то есть по пробелу делим только первые N слов, а остаток в какую-то переменную запихать
конечно в лоб можно решить через циклы, типа первый второй N-ый шаг пропихать по переменным а все остальное пихаем в переменную какую-то, но вдруг есть покрасивее подход
Например сначала сделать split, извлечь те слова которые тебя интересуют, а потом конкат жёпы. Медленнее регулярок но проще для понимания.
Egor
Egor
регулярки чет ваще не перловые ))
Egor
как-ьудто что-то уних там свое...
fgntfg
Я не помню, что там в луа, не писал уже несколько лет
Snusmumriken
Ммм. Главное отличие луёвых регулярок от перловых — использование % вместо \. И отсутствие некоторых опций. Тройные токены вроде .*? заменены двойными .-. А так то же самое.
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-дырок.
Snusmumriken
Snusmumriken
Александр
Snusmumriken
Я не помню наизусть книги которые читал восемь лет назад, только те разделы которые были особо интересными.
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
Александр
Snusmumriken
Насколько я знаю да.
Александр
Ну чисто с позиции производительности сильно может деграднуть ?
Александр
С другой стороны я редко пользую большие массивы, поэтому для них пожалуй вряд ли. Просто интересно что будет с массивами от десятков млн
Highly Likely
Highly Likely
Но лень вчитываться в доку в этом месте
Highly Likely
У меня ощущение обратное, что массив никуда не съезжает, до тех пор пока он плотный
mva
fgntfg
WorkerNFT
Всем привет, скажите пожалуйста, кто-небудь здесь занимается разработкой скриптов для серверов Гарис мода?
Igor
Igor
Если вспомню что-то сам, то помогу, естественно
Hell
Приветствую вас господа, кто может подсказать кусочек по коду
Hell
Сам никогда не использовал луа, но есть опыт с++ и питоном. В общем, есть кусочек кода для игры (world of warcraft), и есть кнопка "Изменить Внешность". Можно ли как-то сделать чтобы появлялось уведомление при наведении курсора на данную кнопку
Hello, World! 🎄
Hell
win
Hello, World! 🎄
На windows хз, но на linux можно через notify-send сделать
Hello, World! 🎄
Hell
это полноценная игра
Hell
Hell
Просто интерфейс кастомный, изменили рассположение клавиш и задний фон
Hell
при нажатии на клавишу "цвет кожи" он выдает рандомные значения, но интуитивно не понятно зачем эта кнопка, поэтому хотел добавить описание
Snusmumriken
Блин, там где-то есть доступ к тултипу через поиск фреймов.
Hello, World! 🎄
Snusmumriken
Нет там доки с примерами, тут всё интереснее.
Hell
это даже не апи, весь исходный код по факту открыт
Hell
просто открыли файл игры и переписали интерфейс
Hello, World! 🎄
Hell
world of warcraft
Hell
C++
Hello, World! 🎄
Hell
интерфейс
Snusmumriken
Должна быть примерно такая фигня
https://wowwiki-archive.fandom.com/wiki/UIOBJECT_GameTooltip
Hell
Hello, World! 🎄
интерфейс
Можно в коде поискать нужный UI элемент
Hell
Благодарю товарисчи, попробую разобраться
Hell
в чате возможно есть прошаренные парни которые сталкивлись с вовкой, нужно реализовать пару патчей, за оплату ествественно
Snusmumriken
Можно в коде поискать нужный UI элемент
Карочи, объясняю.
Есть игра вов. И в ней есть гуй.
Гуй управляется луями.
Он состоит из совершенно атомарных элементов, то есть тут не то чтобы "движок" для гуя а хуже и сложнее, и работа с ним довольно стрёмная.
Так что народ уже наизобретал своих упрощалок (аддоны tellmewhen/wa) для того чтобы кто-нибудь мог накатать свой мини-аддон интерфейса, только они в основном расчитаны на бой и игровые события, а не на переделку чего либо или добавление чего-то к стандартному гую.
Считай что это отдельный мир и в него надо погружаться, как с гмодом например. Инспектировать внутренности и смотреть что на что влияет, ибо доки по тому что там уже нагорожено — нема.
Hell
Hello, World! 🎄
Snusmumriken
Лол ну попробуй ))
https://github.com/WeakAuras/WeakAuras2
Hello, World! 🎄
Snusmumriken
Карочи, просто забей. Если ты не пилишь аддоны, разбираться слишком муторно.
Hell
Hell
Hell
при наводе на шмотку он выдает инфу
Hell
впринципе схема та-же