Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
15.5.2012, 10:10
Сообщение
#961
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Подскажите, пожалуйста как сделать так, чтобы скрипт, остановившийся из-за ошибки, вновь стал активным, т. е. произошел автоматический рестарта скрипта? PtokaX API2.
|
|
|
15.5.2012, 12:24
Сообщение
#962
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Просто не останавливай скрипты при ошибке (Настройки - Дополнительно - Скрипты).
|
|
|
15.5.2012, 14:00
Сообщение
#963
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Я бы с удовольствием. Но в PtokaX v0.4.0.0 (API2) такого не нашёл.)
P. S.: быть может при событи OnError() что-то надо дописать для авторестарта скрипта? |
|
|
15.5.2012, 15:03
Сообщение
#964
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Что там в ископаемых версиях я не сильно в курсе. Что мешает обновить (тем более, что там тоже API2)? |
|
|
15.5.2012, 17:19
Сообщение
#965
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Alexey, простите меня за невнимательность
|
|
|
4.8.2012, 14:17
Сообщение
#966
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
1) Хотел бы уточнить такой момент. В Луа возможен поиск/сравнение данных в строке без учёта регистра одним лишь оператором (например, equali, как в AMX Mod X)?
2) В одном скрипте увидел следующее: Код OnExit = function() TmrMan.RemoveTimer(Tmr) Tmr = nil end Сразу напрашивается вопрос: это действительно надо делать? Неужели при выключении скрипта, его таймеры не удаляются? Да и как, собственно, можно просмотреть все активные таймеры? |
|
|
19.10.2012, 14:51
Сообщение
#967
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
1) Нет, для этого нужно предварительно преобразовать строку в нужный регистр.
2) Видимо, автор того скрипта решил перестраховаться . Все таймеры скрипта удаляются при его остановке. PS. Возможно в ранних версиях птоки был баг с удалением таймеров при остановке скриптов, и автор скрипта "исправил" его таким нехитрым способом. Если не лень, можете пересмотреть чейнджлог птоки, особенно версий с припиской "RC". |
|
|
30.12.2012, 3:21
Сообщение
#968
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Предположим, так случилось, что одновременно на хабе порядка 100 человек использовали одну и ту же команду.
Вопрос: возможно ли как-то ограничить скриптом количество этих одновременных запросов на обработку команды? И в данном случае очередному пользователю будет выдано сообщение, чтобы повторил попытку чуть позже. |
|
|
30.12.2012, 4:16
Сообщение
#969
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Код local tCfg = {
nMaxCmds = 3, -- команд за интервал времени nInterval = 60, -- собственно, сам интервал времени, в секундах } local tLast = {} function ChatArrival(tUser, sData) if sData:find"^%b<> !pew" then local iNow = os.time() while tLast[1] and iNow - tLast[1] >= tCfg.nInterval do table.remove(tLast, 1) end if #tLast < tCfg.nMaxCmds then table.insert(tLast, iNow) Core.SendToAll("<ololo> "..tUser.sNick.." молодец!") else Core.SendToAll("<ololo> "..tUser.sNick.." неудачник!") end return true end end |
|
|
21.1.2013, 18:24
Сообщение
#970
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Уважаемые разработчики, существет ли в природе проверенный временем lua-скрипт, который будет выполнять аналогичную роль как широко известный Dynamic Update Client (DUC) для No-IP, DynDNS и тому подобных DNS-серверов, т.е. обновлять/привязывать/ставить в соответствие свой текущий динамический IP-адрес к выбранному доменному имени? Ибо что-то как-то скудно я нарыл...
Есть, правда, альтернативные бесплатные программы (JIP, JIPXt) для работы с многими DNS, но хотелось бы иметь более простой и быстрый скрипт вместо них. Хотелось бы услышать ваше мнение по этому поводу. Буду очень признателен за любую информацию. |
|
|
21.1.2013, 23:01
Сообщение
#971
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
MIKHAIL, чем вас не устраивают штатные средства от этих самых ресурсов?
С другой стороны, вот у меня в веб-панели управления роутером среди настроек есть и поддержка динамических айпи. Ставишь, галочку, прописываешь днс-адрес (типа ДинДНС и т.д.), логин, пароль и вперёд, всегда будешь в правильном курсе идти, роутер сам будет всё делать. Правда, мне без надобности это. Но, может, у вас тоже есть такое? |
|
|
21.1.2013, 23:23
Сообщение
#972
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Ksan, к сожалению у меня в роутере только DynDNS.
Хотелось бы разобраться как происходит отправка данных, ну, и желательно, посредством Lua. С чего начать только не знаю. Был бы под рукой хоть какой образец.) |
|
|
21.1.2013, 23:25
Сообщение
#973
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
хм... а мой роутер работает с no-ip и ещё парочкой регистраторов)))
345345.JPG ( 37.83 килобайт ) Кол-во скачиваний: 283 |
|
|
29.1.2013, 22:09
Сообщение
#974
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Код $UserCommand 2 6 Кик$$To: %[nick] From: %[mynick] $<%[mynick]> You are being kicked====|$Kick %[nick]|| Прошу помощи по замене в данной контекстной команде ника отправителя %[mynick] на иной, например, переменную sBot, т.е. чтобы конечному пользователю сообщение было отправлено от другого имени. Поскольку возникли трудности по замене, предположу, что в данном случае допускается только строгое совпадение и подмена невозможна. Так ли это? |
|
|
30.1.2013, 2:52
Сообщение
#975
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Так. Прочитай ещё и
|
|
|
6.2.2013, 0:30
Сообщение
#976
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Например, из поста выше:
Код .. if sData:find"^%b<> !pew" then .. Вопрос: для одного лишь символа пробела всегда ли будет корректно обработана такая запись, когда указан не Код "^%b<>%s!pew" , аКод "^%b<> !pew" ?Т.е. я имею в виду не будет ли это проблемой в других операционных системах, может быть что-то связанное с кодировками символов? Особо в этом не секу. Надеюсь на понимание.) |
|
|
6.2.2013, 8:52
Сообщение
#977
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
%s равносильно следующему регулярному выражению:
Код [ \f\n\r\t\v] Другими словами, %s это набор символов, который кроме пробела включает ещё и другие символы. Конечно, если ожидается, что там всегда будет пробел, то нет смысла писать %s, так как, во-первых, это незначительная, но все же оптимизация, во-вторых, с пробелом более наглядно и понятно. |
|
|
16.5.2013, 1:47
Сообщение
#978
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Имеем, например, таблицу с данными:
Код tDate = { ["month"] = "12", ["day"] = "31", ["year"] = "2013" } Вопрос: можно ли сократить (здесь 3 раза фигурирует "tDate") следующую запись формирования даты (дд.мм.гггг) в формате строки: Код sDate = tDate.day.."."..tDate.month.."."..tDate.year во что-то наподобие этого (взято с потолка): Код sDate = tDate[day.."."..month.."."..year] Т. е. упомянуть лишь один раз название таблицы "tDate". |
|
|
16.5.2013, 2:16
Сообщение
#979
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
MIKHAIL, ну разве что сразу в таблицу будете записывать целиком полную дату одной строкой (в смысле - одним значением).. ну и забирать так же. Ну я не знаю, как образована ваша таблица, это я как пример говорю.
Только вопрос - а для чего вам такая головная боль на пустом месте? (я про ваши попытки сократить строку вывода даты за счёт сокращения количества упоминаний хедера таблицы) Забейте, ваша экономия выеденного яйца не стоит.. |
|
|
16.5.2013, 9:21
Сообщение
#980
|
|
KEEP CLEAR AT ALL TIMES Группа: Пользователи Сообщений: 141 Регистрация: 4.9.2011 Из: Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 3 раза |
Ksan, я предположил, что есть и такой вариант (как говорите, с минимальным упоминанием хедера, т. е. заголовка таблицы). Вывод даты я к примеру взял, меня интересует возможность конкатенации ключей таблицы (если я правильно выражаюсь) при упоминании таблицы всего один раз – указал таблицу и слепил её ключи.
|
|
|
Похожие темы
|
Сейчас: 23.12.2024, 20:21 |