1. Плагин BASIC (версия 10): Добавлена функция запрета отправки приватных сообщений большему числу пользователей в минуту, чем разрешено. Файл Vars.lua: Добавлена строка (4): PM_antispam_OP_Notoces = 1 --уведомлять операторов о превышении лимита получателей PM-сообщений (1-да,0-нет) --notice OPs about exceeded allowed PM recipients amount (1-yes,0-no) В таблицу BASIC_commands добавлена строка (27): ["pm_count"]= "pm_count", Добавлена строка (44): PM_antispam_cache={} Файл Killer.lua: Добавлен код: PM_antispam_OP_Notoces=nil PM_antispam_cache=nil Файл OnPlugTimer.lua: Добавлена строка (4): PM_antispam_cache={} Файл Config.lua: Добавлена строка (11): ["AllowedPMRecipients"] = 0, -- разрешённое число получателей PM-сообщений в минуту (0-выкл) -- allowed PM recipients amount per minutes (0-off) Файл языковой локализации Text_[lang].lua: Добавлен индекс 44 (45 в локализации verlihub). Файл OnMsgAny.lua: Добавлен код (строки 54-80): Локализация verlihub: if MySettings["AllowedPMRecipients"]>0 then if isOp(curUser)==false then local sTmp=GetIP(curUser) or "" if PM_antispam_cache[sTmp] then if PM_antispam_cache[sTmp][2]>MySettings["AllowedPMRecipients"] then PMToUser(To, curUser, To, gl("Bot_61",curUser)..gl(CurPlugName.."_45",curUser)) if PM_antispam_OP_Notoces==1 then PMToOPs(MySettings["BotName"], OpChat, "*** "..curUser.." ("..sTmp.."): "..gl(CurPlugName.."_45","")..": "..data) end return true else if not PM_antispam_cache[sTmp][1][To] and sTmp~=(GetIP(To) or "") and (GetIP(To) or "")~="" then PM_antispam_cache[sTmp][1][To]=1 PM_antispam_cache[sTmp][2]=PM_antispam_cache[sTmp][2]+1 if PM_antispam_cache[sTmp][2]>MySettings["AllowedPMRecipients"] then PMToUser(To, curUser, To, gl("Bot_61",curUser)..gl(CurPlugName.."_45",curUser)) if PM_antispam_OP_Notoces==1 then PMToOPs(MySettings["BotName"], OpChat, "*** "..curUser.." ("..sTmp.."): "..gl(CurPlugName.."_45","")..": "..data) end return true end end end else PM_antispam_cache[sTmp]={} PM_antispam_cache[sTmp][1]={} PM_antispam_cache[sTmp][1][To]=1 PM_antispam_cache[sTmp][2]=1 end end end Остальные локализации: if MySettings["AllowedPMRecipients"]>0 then if isOp(curUser)==false then local sTmp=GetIP(curUser) or "" if PM_antispam_cache[sTmp] then if PM_antispam_cache[sTmp][2]>MySettings["AllowedPMRecipients"] then PMToUser(To, curUser, To, gl("Bot_61",curUser)..gl(CurPlugName.."_44",curUser)) if PM_antispam_OP_Notoces==1 then PMToOPs(MySettings["BotName"], OpChat, "*** "..curUser.." ("..sTmp.."): "..gl(CurPlugName.."_44","")..": "..data) end return true else if not PM_antispam_cache[sTmp][1][To] and sTmp~=(GetIP(To) or "") and (GetIP(To) or "")~="" then PM_antispam_cache[sTmp][1][To]=1 PM_antispam_cache[sTmp][2]=PM_antispam_cache[sTmp][2]+1 if PM_antispam_cache[sTmp][2]>MySettings["AllowedPMRecipients"] then PMToUser(To, curUser, To, gl("Bot_61",curUser)..gl(CurPlugName.."_44",curUser)) if PM_antispam_OP_Notoces==1 then PMToOPs(MySettings["BotName"], OpChat, "*** "..curUser.." ("..sTmp.."): "..gl(CurPlugName.."_44","")..": "..data) end return true end end end else PM_antispam_cache[sTmp]={} PM_antispam_cache[sTmp][1]={} PM_antispam_cache[sTmp][1][To]=1 PM_antispam_cache[sTmp][2]=1 end end end Файл Menu.lua: Добавлено меню для команды BASIC_commands["pm_count"] Файл OnCommand.lua: Добавлен блок обработки команды BASIC_commands["pm_count"]