Автор: Berkut 17.3.2009, 21:13
Название: Нормализатор Меню
Версия API: 2
Автор: Berkut
Описание: Простенький скрипт, который позволит привести ваше контекстное меню в божеский вид без перестановки скриптов.
Все комментарии внутри.
ВНИМАНИЕ!!! В скрипте приведён пример меню. Вы должны ручками прописать пункты меню на нужную вам глубину вложенности и распределить права доступа, если есть ограничения.
Автор: Setuper 17.3.2009, 22:13
Не совсем понятно действие:
Код
local _,_,script=string.find(debug.getinfo(1).source,"@(.*)")
while ScriptMan.MoveUp(script) do
ScriptMan.MoveUp(script)
end
ведь не работает.
Если смысл был поставить скрипт самым первым, то я думаю надо было написать так:
Код
local _,_,script=string.find(debug.getinfo(1).source,"@.+\\(.*)")
while ScriptMan.MoveUp(script) do
ScriptMan.MoveUp(script)
end
Строка Nick=user.sNick тоже не понятно зачем написана.
Использовать дебагер луа вооще говоря не рекомендуется)))
Автор: Berkut 17.3.2009, 22:34
Проверю...
Кстати, дебагер мне порекомендовали на lua.ru - не авторитет?
ЗЫ. При тупой прописи пути работало прекрасно. Дебагер тестил из папки с lua, но полагал, что не принципиален .+, т.к. в мануале указано именно имя файла, а не путь до файла.
Кстати, а почему бы и не использовать его? Что мешает?
Автор: Setuper 18.3.2009, 0:41
lua.ru конечно же авторитет, но я когда-то давно (тогда ещё не было lua.ru) читал статейку в инете о том, что у дебагера огромный потенциал, но его использовать не рекомендуется. Хотя данный пример использования не представляет опасности, однако с помощью дебагера можно полностью нарушить все принципы языка lua.
Вот именно, что в функцию MoveUp в агрумент надо подставлять имя файла скрипта, а поле source содержит имя вместе с путём. По крайней мере у меня именно так.
Автор: King 18.3.2009, 15:04
можете выложить "нормальное" меню? У меня оно больно громоздкое и грузит хаб, т.к. для каждого профиля приходится писать все команды отдельно. А их куча.
Спасибо заранее.
Автор: Berkut 18.3.2009, 20:05
Цитата(Setuper)
Если смысл был поставить скрипт самым первым, то я думаю надо было написать так:
Спасибо. Был не прав. Исправлюсь.
Цитата(Setuper)
Строка Nick=user.sNick тоже не понятно зачем написана.
Уменьшил физический объём файла. За счёт сборки мусора нагрузка такая же с точностью до КБ.
Цитата(Setuper)
читал статейку в инете о том, что у дебагера огромный потенциал, но его использовать не рекомендуется
Или эту же, или подобную тоже читал. Не нужно пугаться дебагера =) В действительности он розовый и пушистый, особенно если в область debug.set***** не лезть. Да и чего там.., если в lua есть такая зверюга, как os.execute
Цитата(Setuper)
По крайней мере у меня именно так.
Да-да-да. Всё правильно. Просто на работе нет физической возможности Птоку поднять, первичную отладку провожу в самом lua, а он, если специально не проверять сходимость путей, покажет только имя.
Кстати, Илья, там одно неудобство маленькое в скрипте. Я инициирую пункт меню с помощью пустого элемента. Не знаешь ли, как добиться идентичного визуального эффекта, но без пустого пункта?
ЗЫ. Скрипт пофиксил и перезалил
Автор: Setuper 18.3.2009, 21:31
Думаю лучше было бы если пользователи сами вместо этого пробела писали название первой менюшки в данном разделе.
Автор: Berkut 18.3.2009, 22:31
Цитата(Setuper @ 18.3.2009, 21:31)
Думаю лучше было бы если пользователи сами вместо этого пробела писали название первой менюшки в данном разделе.
Не знаю как остальным, но мне неудобно. У меня меню собирается иногда из 3-4 скриптов. Не всегда наперёд знаю, какой пункт приспичит завтра наверх поставить, когда очередной скрипт запущу.