myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> невыполненные команды в чате, как избежать вывода в чат невыполняемых скриптом команд

Теги
Нет тегов для показа
степашка
сообщение 13.3.2010, 11:53
Сообщение #1


Продвинутый участник
****

Группа: Пользователи
Сообщений: 133
Регистрация: 18.9.2008
Из: Москва
Пользователь №: 555
Спасибо сказали: 5 раз




здравствуйте. есть скрипт (какой говорить не буду и не знаю как его тут прикрепить, ибо он запрещён правилами, могу только отправить в мыло или скайп, пусть администраторы сами решат судьбу его размещения на данном сайте, мною уважаемом). используется часто для вылова рекламы из ЛС, ибо множество других скриптов всё же не в состоянии справиться с изобретательностью спамеров, нужно человеческое участие в массе случаев, все фильтры предусмотреть нереально. скрипт работает замечательно, однако при запросе несуществующего лога (то есть при выполнении инвалидной команды) пропускает её в чат на всеобщее обозрение. как этого избежать и что там нужно дописать? пытался сделать по аналогии с другими скриптами, в лучшем случае сыпет кучу ошибок или же просто перестаёт работать. сам не справлюсь. спасибо за ответ и за помощь
Go to the top of the page
+Quote Post
Wariner
сообщение 13.3.2010, 12:33
Сообщение #2


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




ну тут естественно надо сказать ай-ай-ай типа нехорошо это xDDD

скрипт в самый конец списка
Код
local tExCmd = {   -- команды исключения
    ["help"] = 1,
}

function ChatArrival(tUser, sData)
    local sData = sData:sub(1,-2)
    local sCmd = sData:match"%b<>%s+[%!%+%-%/%*](%S+)"
    if sCmd and not tExCmd[sCmd] then
        Core.SendToOps("в чат поступила неизвестная (невыполненая) команда!") -- оповещение убирается этой строчкой
        return true
    end
end

PS: всё таки пользовать такие скрипты не хорошо
PPS: не забудь команды исключения прописать, все системные имеется в виду!
Go to the top of the page
+Quote Post
степашка
сообщение 13.3.2010, 13:55
Сообщение #3


Продвинутый участник
****

Группа: Пользователи
Сообщений: 133
Регистрация: 18.9.2008
Из: Москва
Пользователь №: 555
Спасибо сказали: 5 раз




спасибо за ответ, но я немного не об этом. сейчас я приведу команду, которая проходит в чат, не выполняясь по причине отсутствия самого вызываемого ею лога, и всё станет понятно что это за скрипт )))

пример: [12:44:17] <Cmenawka> !pmlog 2009_10_10

птока пишет такую ошибку: [12:44] Синтакс C:\Program Files\-=ХАБ=-\scripts\Pm-viewer.lua:35: attempt to concatenate a nil value
я так понимаю скрипт не может выполнить операцию ввиду отсутствия запрашиваемого лога.
однако в самом скрипте есть функция сброса невыполненной и прошедешей в чат команды всвязи с неправильным указанием формата времени:

Код
function getFullPMLog(sUser,arg)
    local fdate = GetArg(arg);
    if fdate == nil then
    sUser:SendPM(BotName, "*** Ошибка! Неправильный формат даты! Правильно: гггг_мм_дд")
    return 1
    end
    local msg ="\r\n"..string.rep("«»",25).."\r\n"
    msg = msg .. "\tЛог приватов за число: "..fdate
    msg = msg .."\r\n"..string.rep("«»",25).."\r\n\r\n"
    msg = msg .. loadtext(PM_FOLDER..fdate..".log")
    msg = msg .. "\r\n"..string.rep("«»",25).."\r\n\tКонец лога\r\n"..string.rep("«»",25)
    sUser:SendPM(BotName,msg)
    CollectTrash();    
    return 1    
end

function SendCmdErr(sUser)
    sUser:SendPM(BotName, "*** Ошибка: У Вас нет доступа к данной команде!");
end


вот эту-то функцию я и пытался довольно долго, но безуспешно прикрутить применительно к тому случаю, что я описывал вначале,
хотел сделать чтобы вместо прохождения в чат невыполненой команды поиска лога, запрашивающему (в данном случае это Cmenawka) этот лог высвечивалось бы типа "Лог не найден", а не "<Cmenawka> !pmlog 2009_10_10" в чат

PS апи1 /// PPS насчёт ай-я-яй я понимаю, но к сожалению нереально никакими фильтрами убрать спамеров из привата. они всё более изощрёныеуыееуыееуые
Go to the top of the page
+Quote Post
Nickolya
сообщение 13.3.2010, 18:20
Сообщение #4


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Надо было указать строку в которой вылетает ошибка, а то так не очень ясно. А 35 строка тут явно не при чем. Если это строка
Код
    msg = msg .. loadtext(PM_FOLDER..fdate..".log")
то попробуй заменить ее на
Код
    msg = msg .. (loadtext(PM_FOLDER..fdate..".log") or "*** Лог отсутствует ***")
Go to the top of the page
+Quote Post
степашка
сообщение 13.3.2010, 23:20
Сообщение #5


Продвинутый участник
****

Группа: Пользователи
Сообщений: 133
Регистрация: 18.9.2008
Из: Москва
Пользователь №: 555
Спасибо сказали: 5 раз




о май гат! неужели всё так просто? просто надо было дописать что лог отсутствует в скобках! я в полном а__е. а я несколько часов пытался присунуть функции аргументов и прочие захваты всякой хрени... огромное спасибо, теперь всё работате исправно. вот что значит когда профи берутся за дело
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsИнфомер в чате
Помогите
1 BADam 5 702 5.6.2014, 22:20 Посл. сообщение: Артём
No New Posts Команды модератора
Бан, кик, кляп и тд
3 Steklowata 9 258 30.3.2012, 22:37 Посл. сообщение: Steklowata
Closed дайте все команды для птоки плиззз
3 Artem26 7 030 19.11.2010, 10:07 Посл. сообщение: Ferb
No New Posts Команды хаба
DBHUB
0 Артём 9 687 20.10.2010, 20:37 Посл. сообщение: Артём
No New Posts Фильтр команды
Помогите дописать скрипт
11 foXDEvil 13 596 7.10.2010, 6:00 Посл. сообщение: foXDEvil
Moved Фильтр команды
Помогите дописать скрипт
0 foXDEvil 0 5.10.2010, 12:05 Посл. сообщение: foXDEvil
No New Posts Есть ли такая команда чтобы немогли писать в чате без регистрации?
2 GaZz-BenziNa 8 621 30.9.2010, 22:51 Посл. сообщение: переподвыподверт
No New Posts От: Есть ли такая команда чтобы немогли писать в чате без регистрации?
От темы с ID: 3903
6 infection 8 759 27.9.2010, 6:46 Посл. сообщение: Invisible
No New Posts От: Скрипт, скрывающий ник в чате
От темы с ID: 3257
0 _Deagle_Factory_ 4 450 10.4.2010, 11:33 Посл. сообщение: _Deagle_Factory_
No New Posts Скрипт, скрывающий ник в чате
2 SAG 8 534 22.3.2010, 17:15 Посл. сообщение: SAG
No New Posts Topic has attachmentsот "Как сделать контекстное меню для команды?"
Консультация
7 Uncle_Dif 10 804 20.12.2009, 22:47 Посл. сообщение: Nickolya
No New Posts Topic has attachmentsИнтервал использования команды
Скрипт смены топика
0 X-Sky 4 887 10.11.2009, 15:06 Посл. сообщение: X-Sky
Closed Требуется скрипт показа банов в чате
1 Gate001 6 195 16.10.2009, 14:24 Посл. сообщение: Wariner
No New Posts Topic has attachmentsКонтекстное меню для команды в ЛС.
7 pashtet 10 057 15.10.2009, 19:43 Посл. сообщение: Ksan
No new Реализация NMDC команды $MCTo
дабы не затерялось
15 Setuper 22 536 28.8.2009, 16:59 Посл. сообщение: Delion

 



RSS Сейчас: 23.12.2024, 8:34