Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
22.2.2011, 20:39
Сообщение
#821
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Alexey же написал тебе, что это сообщение об ошибке. Неужели не понятно?
Код local f,e = io.open("file.txt", "r") if f then local data = f:read("*a") else print(e) end про компиляцию забудь! |
|
|
22.2.2011, 20:41
Сообщение
#822
|
|
Активный участник Группа: Пользователи Сообщений: 94 Регистрация: 2.10.2010 Из: Якутия, г.Нерюнгри Пользователь №: 7 820 Спасибо сказали: 21 раз |
Цитата про компиляцию забудь! у меня есть скрипт БД справочника его раздадут на право и налево! мне необходимо сделать пароль.. и закомпилировать пароль соответственно будет меняться.. после рестарта пока я не введу командой пароль скрипт не запустится (а просто так распростронять БД не защитив я не могу) скрипт не на моей машине ... |
|
|
22.2.2011, 20:48
Сообщение
#823
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
А скомпилировав, ты думаешь что-то защитишь?
Что бы что-то защитить нужно юзать язык программирования. Луа компиляция очень просто декомпилируеся. Поэтому вопрос о компиляции закрыть. Не нужно ничего компилировать, так как скомпилированные скрипты - это лишнее время на их декомпиляцию и ничего больше. Если такой жадина, то лучше вообще не распространяй |
|
|
22.2.2011, 20:50
Сообщение
#824
|
|
Активный участник Группа: Пользователи Сообщений: 94 Регистрация: 2.10.2010 Из: Якутия, г.Нерюнгри Пользователь №: 7 820 Спасибо сказали: 21 раз |
А скомпилировав, ты думаешь что-то защитишь? Что бы что-то защитить нужно юзать язык программирования. Луа компиляция очень просто декомпилируеся. Поэтому вопрос о компиляции закрыть. Не нужно ничего компилировать, так как скомпилированные скрипты - это лишнее время на их декомпиляцию и ничего больше. Если такой жадина, то лучше вообще не распространяй в том то всё и дело что даже искать как декомпилировать не станут.. привыкли блокнотом открывать.. а тут им сюрприз.. Но всё понял не тут по этой части помощь искать Жадина? да (остальные) скрипты пожалуйста, а если у тебя разрешение только для тебя (определённого ХАБа) а тиражирование и копирование запрещено.. тут уж другое дело |
|
|
22.2.2011, 20:59
Сообщение
#825
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
AirKobra45
Загугли на тему "luac". |
|
|
6.3.2011, 20:11
Сообщение
#826
|
|
Активный участник Группа: Пользователи Сообщений: 94 Регистрация: 2.10.2010 Из: Якутия, г.Нерюнгри Пользователь №: 7 820 Спасибо сказали: 21 раз |
1* А можно ли скриптом доменное имя пингануть ? т.е. из скрипта запрос сделать (как в CMD.exe) и вернуть IP, как переменную в скрипт? А то сделал что по IP всё определяет скрипт.. а по доменному нет.. скрипт прикрепил.
Если что не так критикуйте. Единственное пришлось разделить таблицу IP на 2 части, одной не грузило не знаю даже почему.. может 137 тыс строк это много... 2* И что нужно чтобы функция "IP2Country.GetCountryName(sIP)" работала? а то пишет -Unknown (может файла какого не хватает?) P.S: Вот ещё такой вопрос а на PtokaX тоже можно так же модули сделать? Смотрим здесь
Прикрепленные файлы
|
|
|
7.3.2011, 5:38
Сообщение
#827
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
1. Для этого можно и не пинговать — используй библиотеку сокетов.
Цитата socket.dns.toip(address) Converts from host name to IP address. Address can be an IP address or host name. Returns a string with the first IP address found for address, followed by a table with all information returned by the resolver. In case of error, the function returns nil followed by an error message. 2. Нужно положить в папку cfg файл ip-to-country.csv с заданными диапазонами стран (например, PS: Что-то можно, что-то нет. Смотрим здесь. PPS: А скрипт страшноватый. |
|
|
7.3.2011, 9:42
Сообщение
#828
|
|
Активный участник Группа: Пользователи Сообщений: 94 Регистрация: 2.10.2010 Из: Якутия, г.Нерюнгри Пользователь №: 7 820 Спасибо сказали: 21 раз |
2. Нужно положить в папку cfg файл ip-to-country.csv с заданными диапазонами стран (например, Так я на этом файле скрипт сделал.. и локальные адреса и прочее вбил.. Библиотеку добавил в папку но пишет "attempt to index global 'socket' (a nil value)" А что в скрипте не так? (надо же описать..) может он щас не полный.. щас прикреплю крайнюю версию...
Прикрепленные файлы
|
|
|
7.3.2011, 11:44
Сообщение
#829
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Для того, чтобы использовать библиотеку сотеков, мало просто положить её в папку libs, нужно подключить её в скрипте:
Код require "socket"
|
|
|
21.3.2011, 12:05
Сообщение
#830
|
|
Освоившийся участник Группа: Пользователи Сообщений: 260 Регистрация: 1.6.2010 Пользователь №: 6 968 Спасибо сказали: 83 раза |
Необходима функция определения количества символов в захваченном сообщении, вместе со знаками перпинания и пробелами. После захвата сообщение проверяется на соответствие заданной длине, если оно длинее, то далее идёт обработка другими функциями. Главное, чтобы был выигрыш в производительности от проверки коротких фраз. Есть ли какая нетяжёлая функция?
|
|
|
21.3.2011, 12:56
Сообщение
#831
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Попробуй
Код #Message Пример для теста: Код local sMess = "<-Bot> В меню хаба добавлены \"Полезные ссылки\" - ограниченное количество хабов и много других полезных ресурсов широкого диапазона интересов (Тонет). Если у вас есть интересная ссылка, отсутствующая в этих списках, вы можете предложить это админам хаба для внесения." Core.SendToNick("Ksan", tostring(#sMess)) Сохрани как скрипт и запусти. Только перед этим в скрипте в команде отправки сообщения впиши свой ник. Результат будет Код [16:00:50] 267 длина сообщения.А как дальше применить для своего скрипта, думаю, тебя учить не надо. |
|
|
21.3.2011, 14:47
Сообщение
#832
|
|
Продвинутый участник Группа: Пользователи Сообщений: 153 Регистрация: 21.9.2008 Из: Челябинск Пользователь №: 574 Спасибо сказали: 54 раза |
Цитата string.len (s) - Возвращает длину строки, переданной в качестве параметра. можно пользоваться и так: sMessage:len() |
|
|
21.3.2011, 17:13
Сообщение
#833
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
А я что показал выше? И короче:
Цитата #Message
|
|
|
21.3.2011, 17:28
Сообщение
#834
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Оператор обычно работает быстрее методов, так что лучше использовать оператор #, чем метод len
|
|
|
28.12.2011, 4:04
Сообщение
#835
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Подскажите, пожалуйста, как перевести число в строку?..
|
|
|
28.12.2011, 4:56
Сообщение
#836
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Подскажите, пожалуйста, как перевести число в строку?.. Явно: Код sMsg = tostring(Number) Неявно: Код sMsg = ""..Number
|
|
|
28.12.2011, 22:30
Сообщение
#837
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Подскажите, пожалуйста, как округлить число не просто до целого ("вверх" или "вниз"), а округлить до нужного мне количества знаков после запятой?..
|
|
|
28.12.2011, 22:33
Сообщение
#838
|
|
Освоившийся участник Группа: Пользователи Сообщений: 391 Регистрация: 4.11.2009 Из: Дом Пользователь №: 4 923 Спасибо сказали: 239 раз |
Навскидку: умножить на нужное число, потом округлить и поделить обратно. Например, для трех знаков это будет: round(3,141592654 * 1000) / 1000
|
|
|
28.12.2011, 23:43
Сообщение
#839
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
MIKHAIL, а ещё есть это:
Код local Pi = 3.141592654 -- твоё обрабатываемое число local sUnit = "" -- единица измерения, в данном случае пусто (а может быть и метр, и процент и что угодно) Core.SendToAll(string.format("%0.2f %s", Pi, sUnit)) -- где 2f - нужное число знаков после запятой, то есть, 2 в данном случае PS: в числе Пи надо было точку вместо запятой. А ещё можно так: Код local Pi = 3.141592654 local M, N = math.modf(Pi) -- получение целой части числа и дробной части Core.SendToAll(M.."."..tostring(N):sub(3,4)) -- получаем 3.14 Это для представления. А для выполнения матем. операций в дальнейшем нужно применить команду Код tonumber(вышеполученное строчное выражение) Например, продолжая предыдущий код (который с выводом числа в чат) - заменяем вывод в чат на эту строку: Код Core.SendToAll(tostring(tonumber(M.."."..tostring(N):sub(3,4))*10)) -- получаем 31.4 Тут происходит вот что - сначала соединяем и получаем в строковом виде 2 части (вторая часть только с двумя значащими цифрами после запятой) числа вновь, превращаем это полученное в числовой вид и умножаем на 10 и выводим результат в чат, превратив снова в строковый вид (чтоб убедиться в правильности метода). |
|
|
29.12.2011, 0:59
Сообщение
#840
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
К сожалению, не имею возможности проверить, что произойдёт, и как будет вести себя хаб, если, практически одновременно, к нему будет запрос огромного количества пользователей по работе с каким-либо одним и тем же скриптом (да взять простую операцию по выводу в главном чате персонально для каждого пользователя той информации, которую он запросит). Хаб, а в частности скрипт, по умолчанию (не оговорено в самом скрипте) как-то запоминает последовательность всех запросов и потом по очереди их обрабатывает? Или и вовсе может повиснуть?..
Я, предполагаю, эти моменты надо учитывать при написании скрипта. Но как – пока это для меня вопрос. Поправьте, если что... |
|
|
Похожие темы
|
Сейчас: 23.11.2024, 1:05 |