Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
19.1.2009, 21:35
Сообщение
#221
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
зачем мы объявляем таблицы в начале скрипта(извиняюсь если не так выразился). Я это делаю лишь для того чтоб если нет файла в который сохраняется таблица не было ошибок. А какие ещё функции несёт на себе эта операция(если вообще несёт)
Если непонятно написал то я об этом: Код sBot = "Protector"
tUsers = {} tCfg = {} <=== я вот об этом function OnStartup() sPath = Core.GetPtokaXPath().."scripts/Protector/" |
|
|
19.1.2009, 21:52
Сообщение
#222
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Таблица - сложная структура. Объявление таблицы - это выделение под неё памяти. Под обычные переменные память выделяется автоматически, а под таблицу нужно ручное выделение, так как таблица может содержать поля.
Возможно не очень понятно объяснил |
|
|
19.1.2009, 22:01
Сообщение
#223
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
в общих чертах понятно. А можно ли это делать в функции OnStartup по средствам dofile из файла с таблицами? Точнее я пробовал можно, но нет ли каких нюансов?
|
|
|
19.1.2009, 22:12
Сообщение
#224
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
не понимаю что ты имеешь ввиду?
без разницы в каком файле объявлять, если таблица является глобальной - главное объявить)) |
|
|
19.1.2009, 22:27
Сообщение
#225
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ок спасибо всё понял)))))
и ещё у меня две просьбы: 1) Setuper, если можешь расскажи( или покажи) как у тебя в sBot`e реализована раздача команд 2) Опять же если можешь дай(вышли на почту) открытый код скрипта Regme.(думаю мне можно ибо скрипт чтения личек напишу с закрытыми глазами.) Просто не могу работать с командами из привата((( Очень надо посмотреть что то стоящее. Заранее спасибо!!! почта Wariner[тут_сабака]mail.ru
Причина редактирования: лучше не оставлять в открытом виде почтовые адреса, а то замучаешься фильтровать спам...
|
|
|
20.1.2009, 21:09
Сообщение
#226
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
если не можешь то ответь не могу)))))))))))
|
|
|
20.1.2009, 21:47
Сообщение
#227
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
1) Из бота вынуть очень сложно, тем более через бд всё.
2) Не понимаю, что тебя интересует? |
|
|
20.1.2009, 23:31
Сообщение
#228
|
|
Продвинутый участник Группа: Пользователи Сообщений: 177 Регистрация: 20.5.2008 Пользователь №: 5 Спасибо сказали: 26 раз |
не подскажете функцию для округления до нужного разряда
round (x, r) где x - само число, r - до какого разряда округлить например round(192.168, 2) = 192.17 |
|
|
21.1.2009, 0:23
Сообщение
#229
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код function round(x, r)
return tonumber(string.format("%."..r.."f", x)) end |
|
|
21.1.2009, 8:48
Сообщение
#230
|
|
Продвинутый участник Группа: Пользователи Сообщений: 177 Регистрация: 20.5.2008 Пользователь №: 5 Спасибо сказали: 26 раз |
Блогодарю. Так все просто )
|
|
|
21.1.2009, 17:00
Сообщение
#231
|
|
мяу =^.^= Группа: Пользователи Сообщений: 414 Регистрация: 20.5.2008 Пользователь №: 6 Спасибо сказали: 14 раз |
простите что сюда) но можите написать маленький скрипт под 0360 который будет на команды +regme pass и !regme pass идти в ptokax\text и показывать в приват файл reghelp.txt ?
|
|
|
21.1.2009, 19:12
Сообщение
#232
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
1) Из бота вынуть очень сложно, тем более через бд всё. 2) Не понимаю, что тебя интересует? 1)мне не нужен код как таковой, мне нужен так скажем алгоритм...Какая то наводящая на правильный ход мыслей подсказка))))) 2)все скрипты работающие в привате получаются кривыми. либо на одно слово реагируют кучей команд либо молчат, либо работают но получаются очень огромными!!! |
|
|
21.1.2009, 19:37
Сообщение
#233
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
1) Не знаю чем тебе это поможет...
Реализовано всё следующим образом: существует таблица с правами. Перечислять все столбы не буду, скажу только, что в этой таблице раздаются права на то или иное действие (раздача по ключу): будь это разрешение (или наоборот запрет) на использование той или иной команды, или на отсылку той или иной менюшки, или допустим настройки на рассылки массовых сообщений, или настройки входа, настройки отображения в списке и тд. и тп. Абсолютно все права раздаются через данную таблицу. Например, для проверки на право использовать ту или иную команду в бд отсылается запрос, и если в указанной таблице не найдено правила для данного пользователя, то действует правило по умолчанию (которое либо запрещает, либо разрешает использование). Правило по умолчанию находится в отдельной таблице всех правил по умолчанию. Правило для пользователя может искаться по разным параметрам. Вот некоторые параметры поиска правила: поиск по ip, поиск по нику, поиск по тегу, поиск по описанию, поиск по слотам, поиск по шаре и так далее... Не уверен, что ты понял всю мощь, и не уверен, что это тебе поможет))) Тем и интересны мультиботы, из-за того, что возможности очень широкие. 2) Команды в приват ничем не отличаются от команд в чат! |
|
|
21.1.2009, 19:43
Сообщение
#234
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Спасибо. Понимаю то я многое, но пока не знаю как это реализовать так чтоб и раздавалось всё правильно и профили сво можно было легко поставить.
|
|
|
21.1.2009, 20:04
Сообщение
#235
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
2*FoxMalder*:
Код function ChatArrival(tUser,sData) if sData:find"[!+/][Rr][Ee][Gg][Mm][Ee]%s+.*|" then local f=io.open((Core and Core.GetPtokaXPath() or frmHub:GetPtokaXLocation()).."texts/reghelp.txt") if f then if Core then Core.SendPmToUser(tUser,SetMan.GetString(21),f:read("*all")) else tUser:SendPM(frmHub:GetHubBotName(),f:read("*all")) end f:flush() f:close() return Core and true or 1 end end end Чем больше пытаешься сделать, тем больше понимаешь недостатки PtokaX. Поэтому уже пишу свой хаб, который будет поддерживать lua, и в котором я устраню те недостатки, которые есть в PtokaX)))) Очевидные недостатки: 1) Неверно работает функция MyINFOArrival. На мой взгляд она должна срабатывать до отсылки строки MyINFO, и в случае, если данная функция возвращает true, MyINFO строка не должна отсылаться, в противном случае строка должна отправляться ОДИН раз! 2) Неверно работает функция PasswordArrival. Функция должна срабатывать не только в случае ввода правильного пароля. Функция должна возвращать значение: true - пароль не проверяется, false - пароль проверяется. 3) Неверно работает частичная отсылка строки MyINFO. 4) Неверно отправляется пользователю информация о главном боте хаба. Информация должна отправляться в функции GetNickListArrival. 5) Неверное хранение базы пользователей в xml файле обусловлено тормозами при большой базе. |
|
|
21.1.2009, 20:14
Сообщение
#236
|
|
мяу =^.^= Группа: Пользователи Сообщений: 414 Регистрация: 20.5.2008 Пользователь №: 6 Спасибо сказали: 14 раз |
Setuper
lua:5: '=' expected near 'and' насчет "pass" я имел в виду любой пароль который вводит юзер) |
|
|
21.1.2009, 20:31
Сообщение
#237
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код sData:find"[!+/][Rr][Ee][Gg][Mm[Ee]%s+.*|" - интересно как в данном случае у тебя будут пользователи регаться если по данной команде будет выдаваться файл?это я просто универсальный скрипт пишу под оба API Код if Core then Core.SendToUser(tUser,f:read("*all")) else tUser:SendData(f:read("*all")) end Исправил недочёты. Смотри полный код. |
|
|
21.1.2009, 20:37
Сообщение
#238
|
|
мяу =^.^= Группа: Пользователи Сообщений: 414 Регистрация: 20.5.2008 Пользователь №: 6 Спасибо сказали: 14 раз |
команда к регистрации другая
и над чтоб это сообщение отсылалось в пм юзеру) |
|
|
21.1.2009, 20:46
Сообщение
#239
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Зачем регистрироваться другой командой, когда все уже привыкли юзать эту? Не понятен смысл
Обновил код для отправки в пм |
|
|
21.1.2009, 20:53
Сообщение
#240
|
|
мяу =^.^= Группа: Пользователи Сообщений: 414 Регистрация: 20.5.2008 Пользователь №: 6 Спасибо сказали: 14 раз |
потому что есть любители зарегить ник и смыться да и чтоб regme с паролем не светилось) спасиб =)
|
|
|
Похожие темы
|
Сейчас: 27.11.2024, 4:32 |