Как упорядочить пункты меню хаба? |
Здравствуйте, гость ( Вход | Регистрация )
Как упорядочить пункты меню хаба? |
4.7.2009, 16:17
Сообщение
#1
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 4.7.2009 Пользователь №: 3 777 Спасибо сказали: 0 раз |
Есть список команд с скрипте:
RegCmds = { cmd1 = function() end, cmd2 = function() end, ... } Согласно ему создается меню пользователя: for i,v in pairs(RegCmds) do local desc,arg1,arg2 = RegCmds[i]() Core.SendToNick(user.sNick,"$UserCommand 1 1 "..SubMenu.."\\"..desc.."$<%[mynick]> "..Pfx..i..arg1.."|") end Проблема в том, что я не могу понять по какому принципу упорядочивается конечное меню хаба. В итоге пользователь видит пунты меню в какой угодно последовательности, кроме как попорядку cmd1, cmd2, cmd3 ... Как вообще такая проблема реашается? Не откажите новичку в помощи. |
|
|
4.7.2009, 17:05
Сообщение
#2
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код RegCmds = {
function() return cmd, desc, arg1, arg2 end, function() end, ... } for _, v in ipairs(RegCmds) do local cmd, desc, arg1, arg2 = v() Core.SendToNick(user.sNick, "$UserCommand 1 1 "..SubMenu.."\\"..desc.."$<%[mynick]> "..Pfx..cmd..arg1.."|") end |
|
|
4.7.2009, 17:12
Сообщение
#3
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Порядок следования индексов неопределен для функции pairs не определён, поэтому можно таблицу делать так:
Код RegCmds = { [1] = { [1] = "Команда", [2] = function() end,}, [2] = { [1] = "Команда", [2] = function() end,}, ... } и использовать функцию ipairs |
|
|
5.7.2009, 12:44
Сообщение
#4
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 4.7.2009 Пользователь №: 3 777 Спасибо сказали: 0 раз |
Спасибо Вам.
Setuper - по твоему методу меню встали по порядку, но перестали работать команды. Буду думать. Wariner - твой метод я не совсем понял. Может позже дойдет. |
|
|
5.7.2009, 12:52
Сообщение
#5
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Обрати внимание, что каждая функция теперь должна возвращать не 3 значения, а четыре
Код return cmd, desc, arg1, arg2 первым из этих значений является команда. И, соответственно, в конце функции SendToNick присутствует эта самая переменная cmd. |
|
|
Похожие темы
|
Сейчас: 27.11.2024, 4:56 |