меню |
Здравствуйте, гость ( Вход | Регистрация )
меню |
8.2.2010, 2:35
Сообщение
#1
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Видел на хабе озерки такое меню захотел к себе прикрутить. Скажите пожалуйста как сделать его.
пример Меню хаба\\Информация для "..user.sNick.."\\Прислать меню Нажимаешь - приходит сообщение "Меню было выслано" И потом без переподключения на хаб уже это меню Меню хаба\\Информация для "..user.sNick.."\\Партнёры Меню хаба\\Информация для "..user.sNick.."\\FAQ И тд.. |
|
|
8.2.2010, 6:56
Сообщение
#2
|
|
Участник Группа: Пользователи Сообщений: 33 Регистрация: 18.8.2008 Пользователь №: 397 Спасибо сказали: 13 раз |
поидее при нажатии на "Прислать меню" выполняется команда
Цитата Core.SendToNick(user.sNick, "$UserCommand 1 3 Меню хаба\\Информация для "..user.sNick.."\\Партнёры"||")) и так далее.За правильность не отвечаю, не проверял |
|
|
8.2.2010, 12:43
Сообщение
#3
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Да. Всё верно именно так и сделано. Очень грамотно сделано - отсылка меню по востребованию, а не каждый раз при входе.
|
|
|
8.2.2010, 13:19
Сообщение
#4
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Попробовал не получилось
Парни обьясните плиз как к этому прикрутить Раскрывающийся текст Код sBot = SetMan.GetString(21) HubName = SetMan.GetString(0) tProfile = { [-1] = 1, [0] = 1, [1] = 1, [2] = 1, [3] = 1, [4] = 1, } function UserConnected(user) Core.GetUserAllData(user) if tProfile[user.iProfile] == 1 then Core.SendToNick(user.sNick,"$UserCommand 0 3|") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\Поддержи наш проект\\Спонсоры$<%[mynick]> !спонсоры||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\Поддержи наш проект\\Реквизиты$<%[mynick]> !реквизиты||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\Администрация хаба$<%[mynick]> !admins||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\Благодарности юзерам$<%[mynick]> !благодарности||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\О хабе$<%[mynick]> !хабинфо||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\Сообщение от хаба$<%[mynick]> !meshub||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\Правая оговорка$<%[mynick]> !pog||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\Правила хаба$<%[mynick]> !правила||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\История чата хаба$<%[mynick]> !weblog||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\Статистика хаба$<%[mynick]> !webstat||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\"..HubName.."\\Сайт хаба$<%[mynick]> !сайт хаба||") Core.SendToNick(user.sNick,"$UserCommand 1 3 Информация для "..user.sNick.."\\Партнёры / Друзья$<%[mynick]> !партнёры||") end end OpConnected = UserConnected RegConnected = UserConnected |
|
|
8.2.2010, 13:42
Сообщение
#5
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
1. Прикладывайте код в виде файла, так он не искажается
2. Я так понимаю меню удаляется и отправлется новое, подумайте над этим 3. Банальное логическое задание 4. Нужен обработчик команды отсылки меню 5. И простая функция работающая по получению команды от юзеру, аналогичная отправке меню при входе 6. Все просто, попробуйте сами сделать, давно уже в этом деле, надо лишь подумать как сделать |
|
|
8.2.2010, 16:12
Сообщение
#6
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Nickolya, Не ругайся
Повозился и вот что вышло menu.lua ( 7.18 килобайт ) Кол-во скачиваний: 41 Вроде как работает К сожелению в каждом из нас есть такая зараза - лень. |
|
|
8.2.2010, 16:37
Сообщение
#7
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
Saymon всё бы хорошо, но если ещё пару раз отослать менюшку то получается матрёшка, а нужно чтоб только один раз отсылало, а во второй раз "Вы уже получили меню"
|
|
|
8.2.2010, 16:45
Сообщение
#8
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
оу.. а вот с этим... я честно говоря не знаю
С матрёшкой ты к сожелению прав. Не заметил но после нескольких отсылок белеберда Раскрывающийся текст Вот как бы теперь сделать чтобы нельзя было несколько раз тыкать или на последующие разы выходило типа "Ошибка, Меню уже было вам выслано." Что бы снова можно было воспользоватся командой получить меню нужно переподключится на хаб. И странно заметил что меню то высылается то нет. |
|
|
8.2.2010, 20:24
Сообщение
#9
|
|
Продвинутый участник Группа: Пользователи Сообщений: 177 Регистрация: 20.5.2008 Пользователь №: 5 Спасибо сказали: 26 раз |
|
|
|
8.2.2010, 20:36
Сообщение
#10
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Спасибо но это тоже самое что и пару постами выше.
Код Core.SendToUser(user, "<"..sBot.."> Меню уже было отправлено.") это сообщение не выводится И меню несколько раз отправляется |
|
|
8.2.2010, 22:01
Сообщение
#11
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
|
|
|
8.2.2010, 22:24
Сообщение
#12
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Wariner
на птоке 0412 ошибка [22:21] Синтаксис C:\SERVER\trance\scripts\menu.lua:12: attempt to index global 'user' (a nil value) |
|
|
8.2.2010, 23:47
Сообщение
#13
|
|
Активный участник Группа: Пользователи Сообщений: 73 Регистрация: 5.10.2008 Из: Москва Пользователь №: 736 Спасибо сказали: 6 раз |
|
|
|
9.2.2010, 0:15
Сообщение
#14
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Это я изначально пробовал
[00:15] Синтаксис C:\SERVER\trance\scripts\menu.lua:12: attempt to index global 'tUser' (a nil value) |
|
|
9.2.2010, 0:43
Сообщение
#15
|
|
Активный участник Группа: Пользователи Сообщений: 73 Регистрация: 5.10.2008 Из: Москва Пользователь №: 736 Спасибо сказали: 6 раз |
Я убрал tUser.sNick из меню, скрипт заработал, меню присылается, но после переподключения к хабу меню не присылается, пишет мол уже выслано)
думаю к нему нужно прикрепить функцию OnExit |
|
|
9.2.2010, 0:47
Сообщение
#16
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Странно, я сразу изменил и ошибка!
|
|
|
9.2.2010, 9:41
Сообщение
#17
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
|
|
|
9.2.2010, 12:35
Сообщение
#18
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
и второй дубль не удачный , команду в чат пропускает, а ошибок нет.
|
|
|
9.2.2010, 12:54
Сообщение
#19
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
1. Спецсимволы в регулярках надо экранировать:
Код local sCmd = sData:match"^%b<>%s+[!+-/*](%S+)" потом действиеКод local sData = sData:sub(1,-2) немного лишнее если все учесть в регулярке, а вообще надо бы написать проще:Код function ChatArrival(tUser, sData) local sCmd = sData:match"^%b<>%s+%p(%S+).*|" if sCmd == "usermenu" then Мое замечание о команде удаления меню было проигнорировано, а зря На сколько я помню это команда Код $UserCommand 255 15 Единственное, это снесет все меню, но на озерках это грамотно учтено т.к. меню не разбросано по скриптам а все в 1 боте Можно попробовать указать меню как аргумент, но не знаю получится ли, протестируйте, потом отпишите как, к примеру Код $UserCommand 255 15 Информация для "..tUser.sNick.."\\$|" илиКод $UserCommand 255 15 Информация для "..tUser.sNick.."$|"
|
|
|
9.2.2010, 21:28
Сообщение
#20
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
насчёт регулярок, просто когда на скорую руку пишешь не углубляешься так))))
а по поводу команды очистки так это надо все скрипты перерывать..... не знаю почему у вас не работает... у меня всё пашет. подправил вывод ника в меню и проверил работу. двигайте в списке скриптов)))
Прикрепленные файлы
|
|
|
Похожие темы
|
Сейчас: 27.11.2024, 5:03 |