Автор: Uncle_Dif 3.6.2009, 13:48
Стесняюсь спросить2: существуют ли такие скрипты, которые выдавали бы "ratio: 198,13 (Uploaded: 14,81 ГБ | Downloaded: 76,55 MБ)" и "+me %[state]: %[magnet] <Media Player Classic>" не в гл.чат а сообщение от [Bot]PtokaX в отдельном окне или показывали бы только юзеру? И при этом сообщения "+me %[state]:<Media Player Classic> с магнет ссылкой пропускало бы в чат. Все-таки магнет-ссылка соответствует идее файлообмена.
Автор: Jaska 3.6.2009, 15:14
Теоритически мне кажется это можно но .. по-моему бессмысленная вещь.
Автор: Uncle_Dif 3.6.2009, 16:55
Цитата(Jaska @ 3.6.2009, 16:14)
Теоритически мне кажется это можно но .. по-моему бессмысленная вещь.
Ну почему бессмыленная?: сидит юзер, ничё не пишит, тока /r & /w выдает, кому интересно? только ему. Ну пусть наслаждается сам себе в одиночку. По моему соль в этом есть....
Автор: Jaska 3.6.2009, 20:13
Быстренько накатал, посмотри. Если будет востребовано оформлю и допишу - все как полагается. А пока по тесть. Единственная особенность скрипта в том что проверка идет на все сообщения /me. Однозначно идентифицировать /r и /w невозможно!
CODE
tUsers = { -- таблица ников-исключений
["Jaska"] = 1,
}
tProfiles = { -- таблица профилей-исключений
[0] = 1,
}
tIps = { -- таблица ip-исключений
["192.168.1.2"] = 1,
}
sPunishMode = 1 -- (1 - не пропускает сообщение, 2 - видно только пользователю, 3 - в чат не отправляется а отправляется пользователю в личку)
sMeMessages = 10 -- предел /me сообщений в чат подряд.
tSummMess = {}
sBot = SetMan.GetString(21)
function ChatArrival(tUser,sData)
local _,_,sMsg = sData:find"%b<>%s+(.*)"
if sMsg:find"/me" then
if tUsers[tUser.sNick] and tUsers[tUser.sNick] == 1 or tProfiles[tUser.iProfile] and tProfiles[tUser.iProfile] == 1 or tIps[tUser.sIP] and tIps[tUser.sIP]== 1 then
return false
else
if not tSummMess[tUser.sNick] then
tSummMess[tUser.sNick] = 1
else
if tSummMess[tUser.sNick] > sMeMessages then
if not sMsg:find"magnet:" then
tSummMess[tUser.sNick] = nil
if sPunishMode == 1 then
return true
elseif sPunishMode == 2 then
Core.SendToUser(tUser,"<"..sBot..">"..sMsg)
return true
elseif sPunishMode == 3 then
Core.SendPmToUser(tUser,sBot,sMsg)
return true
end
end
else
tSummMess[tUser.sNick] = tSummMess[tUser.sNick] + 1
end
end
end
else
if tSummMess[tUser.sNick] then
tSummMess[tUser.sNick] = nil
end
end
end
Автор: Uncle_Dif 5.6.2009, 16:56
Я этот скрипт загрузил. Он не запускается. Пишет:[19:28] Синтакс ...б и архив,нетрогать!\хаб\scripts\антивинампратио.lua:18: attempt to index global 'SetMan' (a nil value) кажется на эту строку:" sBot = SetMan.GetString(21)". У меня птока 0360. Подозреваю у меня API1, а надо API2... да? Чето я не понял "индексировать", "нулевое значение"...
Поможешь?
Автор: Wariner 5.6.2009, 17:14
То что написано это API 2 а тебе нужно API 1
Автор: Uncle_Dif 6.6.2009, 18:30
Цитата(Wariner @ 5.6.2009, 18:14)
То что написано это API 2 а тебе нужно API 1
Это летал? или что сделать, чтоб стало API 1?