trigger control
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

trigger control

Started by jiten, 25 August, 2004, 12:23:00

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

jiten

is it possible to control this kind of triggers (one or more symbols in between the words)?
for example, the name of the hub is "ptzone" and ppl advert it like:

- P.....T....Z....O....N...E
- P::::T::::Z::::O::::N::::E
- P****T****Z****O****N*****E

can someone make some changes in this code to check those trigs?

code:

BotName = "?bot?"

advtrigs = {"hub" }

controltrigs={["hub"]=1,["ptzone"]=2}

validtrigs = {"none"}

tabAdvert = {}
supervip = {}
fSuperVip = "logs/svip.txt"   

function Main()
   frmHub:RegBot(BotName)
   SetTimer(60000)
   StartTimer()
end

function OnTimer()
   for key, value in tabAdvert do
      if (tabAdvert[key].iClock > clock()+60) then
         tabAdvert[key]=nil
      end
   end
end

function DataArrival(user, data)
   if not user.bOperator then
      LoadFromFile(fSuperVip)
      if strsub(data, 1, 1) == "<" then
         local _, _, msg = strfind(data, "^%b<>%s+(.*)|")
         if Verify(user.sName, msg) then
            local Lines = Verify(user.sName, msg)
            tabAdvert = nil
            tabAdvert = {}
            local s,e,onlymes = strfind(data, "%b<> (.*)")
            catch=strsub(user.sName,1,14)
            if catch=="'??SemiDeus??'" then                  
            else
               SendPmToOps (BotName,"Report: <"..user.sName.."> ("..user.sIP..") is advertising in main: "..msg)
               SendToVips("Report: <"..user.sName.."> ("..user.sIP..") is advertising in main: "..msg)
               user:SendPM(BotName,"Advertising Censored. Sorry.")
            end
            return 1
         end
         for key, value in controltrigs do
            if( strfind( strlower(data), key) ) then
               s,e,onlymes = strfind(data, "%b<> (.*)")
               SendPmToOps (BotName, "Control: <"..user.sName.."> ("..user.sIP..") told in main: "..onlymes.."")
               SendToVips("Report: <"..user.sName.."> ("..user.sIP..") is advertising in main: "..onlymes)
            end
         end

         spam=0
         if( strfind( strlower(data), "no",1,1) ) and ( strfind( strlower(data), "ip.",1,1) ) then
            if ( strfind( strlower(data), "com",1,1) ) or ( strfind( strlower(data), "org",1,1) ) or ( strfind( strlower(data), "info",1,1) ) then
         spam=spam+1; end; end;

         if( strfind( strlower(data), "dns",1,1) ) and ( strfind( strlower(data), "2",1,1) ) and ( strfind( strlower(data), "go",1,1) ) then
         spam=spam+1; end

         if( strfind( strlower(data), "dy",1,1) ) and ( strfind( strlower(data), "nu",1,1) ) then
            if( strfind( strlower(data), ".net",1,1) ) or ( strfind( strlower(data), ".com",1,1) ) then
         spam=spam+1;end; end

         if( strfind( strlower(data), "d n s a",1,1) ) or ( strfind( strlower(data), "d n s .",1,1) ) or ( strfind( strlower(data), "d n s 2",1,1) ) or ( strfind( strlower(data), "o d s .",1,1) ) or ( strfind( strlower(data), "d y n",1,1) ) then
         spam=spam+1;end


      elseif strsub(data, 1, 4) == "$To:" then
         local _, _, to, from, msg = strfind(data, "^%$To:%s+(%S+)%s+From:%s+(%S+)%s-%$%b<>%s+(.*)|")
         local nick = GetItemByName(to)
         if not user.bOperator then
            local userdata = to.." "..from
            if Verify(userdata, msg) then
               local Lines = Verify(userdata, msg)
               tabAdvert = nil
               tabAdvert = {}
               local s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
               if catch=="['??SemiDeus??']" then
               else
                  SendPmToOps (BotName,"Report: <"..user.sName.."> ("..user.sIP..") said in PVT this: "..msg)
                  SendToVips("Report: <"..user.sName.."> ("..user.sIP..") is advertising in PVT: "..msg)
                  user:SendPM(BotName,"Advertising Censored. Sorry.")
               end
               return 1
            end
            for key, value in controltrigs do
               if( strfind( strlower(data), key) ) then
                  s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
                  SendPmToOps (BotName, "Control: <"..user.sName.."> ("..user.sIP..") said in PVT this: "..mes.."")
                  SendToVips("Report: <"..user.sName.."> ("..user.sIP..") is advertising in PVT: "..mes)
               end
            end

            spam=0
            if( strfind( strlower(data), "no",1,1) ) and ( strfind( strlower(data), "ip.",1,1) ) then
               if ( strfind( strlower(data), "com",1,1) ) or ( strfind( strlower(data), "org",1,1) ) or ( strfind( strlower(data), "info",1,1) ) then
            spam=spam+1; end; end;

            if( strfind( strlower(data), "dns",1,1) ) and ( strfind( strlower(data), "2",1,1) ) and ( strfind( strlower(data), "go",1,1) ) then
            spam=spam+1; end
   
            if( strfind( strlower(data), "dy",1,1) ) and ( strfind( strlower(data), "nu",1,1) ) then
               if( strfind( strlower(data), ".net",1,1) ) or ( strfind( strlower(data), ".com",1,1) ) then
            spam=spam+1;end; end
   
            if( strfind( strlower(data), "d n s a",1,1) ) or ( strfind( strlower(data), "d n s .",1,1) ) or ( strfind( strlower(data), "d n s 2",1,1) ) or ( strfind( strlower(data), "o d s .",1,1) ) or ( strfind( strlower(data), "d y n",1,1) ) then
            spam=spam+1;end
      
         end
      end
   end
end

function Verify(userdata, msg)
   if not msg then return end
   tmp =""
   gsub(strlower(msg), "([a-z0-9.:%-])", function(x) tmp = tmp..x end)
   if not tabAdvert[userdata] then
      tabAdvert[userdata] = { iClock = clock(), l1 = "", l2 = "", l3 = "", l4= "", l5= "",l6= "",l7= "",l8= "",l9 = tmp}
   else
      tabAdvert[userdata].iClock = clock()
      tabAdvert[userdata].l1 = tabAdvert[userdata].l2
      tabAdvert[userdata].l2 = tabAdvert[userdata].l3
      tabAdvert[userdata].l3 = tabAdvert[userdata].l4
      tabAdvert[userdata].l4 = tabAdvert[userdata].l5
      tabAdvert[userdata].l5 = tabAdvert[userdata].l6
      tabAdvert[userdata].l6 = tabAdvert[userdata].l7
      tabAdvert[userdata].l7 = tabAdvert[userdata].l8
      tabAdvert[userdata].l8 = tabAdvert[userdata].l9
      tabAdvert[userdata].l9 = tmp
   end
   local Lines = tabAdvert[userdata].l1..tabAdvert[userdata].l2..tabAdvert[userdata].l3..tabAdvert[userdata].l4..tabAdvert[userdata].l5..tabAdvert[userdata].l6..tabAdvert[userdata].l7..tabAdvert[userdata].l8..tabAdvert[userdata].l9
   for key, value in advtrigs do
      if (strfind(Lines, strlower(value), 1, 1)) then
         for key2, value2 in validtrigs do
            if (strfind(Lines, strlower(value2), 1, 1)) then
               return nil
            end
         end
         return 1
      end
   end
end

function LoadFromFile(file)
   if (readfrom(file) ~= nil) then
      readfrom(file)
      dostring(read("*all"))
      readfrom()
   end
end

function SendToVips(msg)
   local usr,aux
   for usr, aux in supervip do
      if (GetItemByName(usr) ~= nil) then
         GetItemByName(usr):SendPM(BotName, msg)
      end
   end
end

nErBoS

Hi,

Try to search for NightLitch anti-pub in the Finished Scripts section. It will solve that i believe.

Best regards, nErBoS
--## nErBoS Spot ##--

SMF spam blocked by CleanTalk