Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Готовые скрипты для PtokaX _ Нормализатор Меню

Автор: Berkut 17.3.2009, 21:13

Название: Нормализатор Меню
Версия API: 2
Автор: Berkut
Описание: Простенький скрипт, который позволит привести ваше контекстное меню в божеский вид без перестановки скриптов.
Все комментарии внутри.
ВНИМАНИЕ!!! В скрипте приведён пример меню. Вы должны ручками прописать пункты меню на нужную вам глубину вложенности и распределить права доступа, если есть ограничения.

 NormMenu.rar ( 925 байт ) : 333
 

Автор: 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 скриптов. Не всегда наперёд знаю, какой пункт приспичит завтра наверх поставить, когда очередной скрипт запущу.