PtokaX forum

Archive => Archived 4.0 boards => Finished Lua 4 scripts => Topic started by: pHaTTy on 14 November, 2003, 16:29:16

Title: Lucifer 666 : Antiadvertising
Post by: pHaTTy on 14 November, 2003, 16:29:16
hmmm ive not seen this on the forum so i posted it

its by Demone.Asteroth and OpiumVolage



--------------------------------------------------------------------------------
--Lucifer 6.6.6-- updated version

--This is a Powerful AntiAdvertising Script
--Powered by Demone.Astaroth and OpiumVolage

--History: Base='multiline antiadvertise' by OpiumVolage (your tables simplify the work I did until that moment). Here its features:
--             1)Script can block this types of advertisement: A) example.no-ip.com
--       B) e x a m p l e . n o - i p . c o m
--       C)example.
--          no-
--          ip.
--          com
--       D)e
--          x
--          a
--          m
--          p
--          l
--          e
--          .
--          n
--          o
--          -      
--          i
--          p
--          .
--          c
--          o
--          m
--             2)You can insert valid addresses (like yours) in trigs, so bot won't kick you
--             3)Users conversating with ops don't get kicked
--             4)Why the Timer? It cleans memory.

--             Demone.Astaroth addons: 1)added an huge list of addresses
--        2)When advertising: user advised on Pm before disconnection; Bot sends to all in main chat the kicking message (without IP);
--                                         advertise-infos send to Op-chat directly without troubling any Op with Pms! Infos contain user's IP, user To(if PM) and last message
--         Just replace INSERT.HERE.YOUR.OP-CHAT.NAME fields with yours.
--                          3)inserted Disconnect and TimeBan (15 minutes) instead of gagging user
--        4)Prevented very splitted addresses (with more tabAdvert lines)
--                                      5)added Control-addresses: user isn't kicked for these addresses but Ops are informed in any case.
--                                                                                   this is useful for friend-hubs addresses, if u also want to control them
--                                      6)added ControlUser status: if u're scary about your vips advertising their hubs and stealing you user,
--                                                                                    you can't insert the tag [VIP] or anything else in the specific space: they will not
--                                                                                      get kicked for any addresses, but in case of typing a Control-address, Ops will be
--                                                                                          informed.
--                                      7)Fixed some bug (Thanks Opium)
--      8)Added a new string-pieces find way to catch advertises

BotName = "?Lucifer?"

advtrigs = {"dns2go","myftpsite","servebeer","mine.nu","ip.com","dynip","depecheconnect.com","zapto.org",
"staticip","serveftp","ipactive","ip.org","no-ip","servegame","gotdns.org","ip.net","ip.co.uk",
"ath.cx","dyndns","68.67.18.75","clanpimp","idlegames","sytes","unusualperson.com",
"24.184.64.48","uni.cc","151.198.149.60","homeunix","24.209.232.97","ciscofreak.com",
"deftonzs.com","24.187.50.121","flamenap","xs4all","serveftp","point2this.com","ip.info",
"myftp","d2g","151.198.149.60","24.184.64.48","orgdns","myip.org","stufftoread.com",
"ip.biz","dynu.com","mine.org","kick-ass.net","darkdata.net","ipme.net","udgnet.com","homeip.net",
"e-net.lv","newgnr.com","bst.net","bsd.net","ods.org","x-host","bounceme.net","myvnc.com",
"kyed.com","lir.dk","finx.org","sheckie.net","vizvaz.net","snygging.net","kicks-ass.com","nerdcamp.net",
"cicileu.","3utilities.com","myftp.biz","redirectme.net","servebeer.com","servecounterstrike.com",
"servehalflife.com","servehttp.com","serveirc.com","servemp3.com","servepics.com","servequake.com",
"damnserver.com","ditchyourip.com","dnsiskinky.com","geekgalaxy.com","net-freaks.com","ip.ca",
"securityexploits.com","securitytactics.com","servehumour.com","servep2p.com","servesarcasm.com",
"workisboring.com","hopto","64.246.26.135","213.145.29.222","dnsalias"}

validtrigs = {"myhub.no-ip.com","multihub2.no-ip.com", "greatfriend.no-ip.com"} --insert here your addresses (like yours or multihub ones or great friend's hub ;) )

controltrigs={["hub1"]=1,["hub2"]=2,["hub3"]=3, ["hub4"]=4, ["hub5"]=5} --insert here addresses you want to be informed (no kick)

tabAdvert = {}

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
if strsub(data, 1, 1) == "<" then
local _, _, msg = strfind(data, "^%b<>%s+(.*)|")
if Verify(user.sName, msg) then
catch=strsub(user.sName,1,5)         --5 is counting chars of the tag below: if u change [VIP], change it!
if catch=="[VIP]" then                  --ControlUser status : insert users Tag u don't want to get kicked
else
tabAdvert[user.sName]=nil
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying: "..onlymes.."")
end
end
for key, value in controltrigs do
if( strfind( strlower(data), key) ) then
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "Control: User "..user.sName.." with IP "..user.sIP.." told 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

if spam>0 then
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying: "..onlymes.."")
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 nick.bOperator then
local userdata = to.." "..from
if Verify(userdata, msg) then
catch=strsub(user.sName,1,16)
if catch=="['??SemiDeus??']" then
else
tabAdvert[userdata] = nil
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
end
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 ("INSERT.HERE.YOUR.OP-CHAT.NAME", "Control: User "..user.sName.." with IP "..user.sIP.." said to "..whoTo.." this: "..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

if spam>0 then
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
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




quite nice :o)
Title: Lucifer !!!
Post by: Cp6uja on 07 June, 2004, 10:57:46
Lucifer...
The best ANTIADVERTISE script


nErBoS 4 MoDeRaToR

 :P
Title:
Post by: TiMeTrAVelleR on 30 September, 2004, 19:49:21
Syntax error: attempt to index local `nick' (a nil value)
stack traceback:
   1:  function `DataArrival' at line 143 [file `...Bureaublad\Trance Hub\scripts\Lucifer 6.6.6.lua']


can sombody  check this error out please

TiMe
Title:
Post by: kazi on 22 October, 2004, 07:58:06
It s a very nic script, only when users do it in pm to each other  they dont get kicked?
Title:
Post by: Naruto on 20 December, 2004, 11:56:47
Nice antiadv.
;) one of the best i ever see


 :P www.naruto_sama.party.lu (http://www.naruto_sama.party.lu)
Title:
Post by: Ruri_Ruri on 21 December, 2004, 16:49:27
drink?
Title:
Post by: Fano on 12 February, 2005, 04:53:41
QuoteOriginally posted by (uk-kingdom)pH?tt?
hmmm ive not seen this on the forum so i posted it

its by Demone.Asteroth and OpiumVolage



--------------------------------------------------------------------------------
--Lucifer 6.6.6-- updated version

--This is a Powerful AntiAdvertising Script
--Powered by Demone.Astaroth and OpiumVolage

--History: Base='multiline antiadvertise' by OpiumVolage (your tables simplify the work I did until that moment). Here its features:
--             1)Script can block this types of advertisement: A) example.no-ip.com
--       B) e x a m p l e . n o - i p . c o m
--       C)example.
--          no-
--          ip.
--          com
--       D)e
--          x
--          a
--          m
--          p
--          l
--          e
--          .
--          n
--          o
--          -      
--          i
--          p
--          .
--          c
--          o
--          m
--             2)You can insert valid addresses (like yours) in trigs, so bot won't kick you
--             3)Users conversating with ops don't get kicked
--             4)Why the Timer? It cleans memory.

--             Demone.Astaroth addons: 1)added an huge list of addresses
--        2)When advertising: user advised on Pm before disconnection; Bot sends to all in main chat the kicking message (without IP);
--                                         advertise-infos send to Op-chat directly without troubling any Op with Pms! Infos contain user's IP, user To(if PM) and last message
--         Just replace INSERT.HERE.YOUR.OP-CHAT.NAME fields with yours.
--                          3)inserted Disconnect and TimeBan (15 minutes) instead of gagging user
--        4)Prevented very splitted addresses (with more tabAdvert lines)
--                                      5)added Control-addresses: user isn't kicked for these addresses but Ops are informed in any case.
--                                                                                   this is useful for friend-hubs addresses, if u also want to control them
--                                      6)added ControlUser status: if u're scary about your vips advertising their hubs and stealing you user,
--                                                                                    you can't insert the tag [VIP] or anything else in the specific space: they will not
--                                                                                      get kicked for any addresses, but in case of typing a Control-address, Ops will be
--                                                                                          informed.
--                                      7)Fixed some bug (Thanks Opium)
--      8)Added a new string-pieces find way to catch advertises

BotName = "?Lucifer?"

advtrigs = {"dns2go","myftpsite","servebeer","mine.nu","ip.com","dynip","depecheconnect.com","zapto.org",
"staticip","serveftp","ipactive","ip.org","no-ip","servegame","gotdns.org","ip.net","ip.co.uk",
"ath.cx","dyndns","68.67.18.75","clanpimp","idlegames","sytes","unusualperson.com",
"24.184.64.48","uni.cc","151.198.149.60","homeunix","24.209.232.97","ciscofreak.com",
"deftonzs.com","24.187.50.121","flamenap","xs4all","serveftp","point2this.com","ip.info",
"myftp","d2g","151.198.149.60","24.184.64.48","orgdns","myip.org","stufftoread.com",
"ip.biz","dynu.com","mine.org","kick-ass.net","darkdata.net","ipme.net","udgnet.com","homeip.net",
"e-net.lv","newgnr.com","bst.net","bsd.net","ods.org","x-host","bounceme.net","myvnc.com",
"kyed.com","lir.dk","finx.org","sheckie.net","vizvaz.net","snygging.net","kicks-ass.com","nerdcamp.net",
"cicileu.","3utilities.com","myftp.biz","redirectme.net","servebeer.com","servecounterstrike.com",
"servehalflife.com","servehttp.com","serveirc.com","servemp3.com","servepics.com","servequake.com",
"damnserver.com","ditchyourip.com","dnsiskinky.com","geekgalaxy.com","net-freaks.com","ip.ca",
"securityexploits.com","securitytactics.com","servehumour.com","servep2p.com","servesarcasm.com",
"workisboring.com","hopto","64.246.26.135","213.145.29.222","dnsalias"}

validtrigs = {"myhub.no-ip.com","multihub2.no-ip.com", "greatfriend.no-ip.com"} --insert here your addresses (like yours or multihub ones or great friend's hub ;) )

controltrigs={["hub1"]=1,["hub2"]=2,["hub3"]=3, ["hub4"]=4, ["hub5"]=5} --insert here addresses you want to be informed (no kick)

tabAdvert = {}

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
if strsub(data, 1, 1) == "<" then
local _, _, msg = strfind(data, "^%b<>%s+(.*)|")
if Verify(user.sName, msg) then
catch=strsub(user.sName,1,5)         --5 is counting chars of the tag below: if u change [VIP], change it!
if catch=="[VIP]" then                  --ControlUser status : insert users Tag u don't want to get kicked
else
tabAdvert[user.sName]=nil
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying: "..onlymes.."")
end
end
for key, value in controltrigs do
if( strfind( strlower(data), key) ) then
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "Control: User "..user.sName.." with IP "..user.sIP.." told 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

if spam>0 then
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying: "..onlymes.."")
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 nick.bOperator then
local userdata = to.." "..from
if Verify(userdata, msg) then
catch=strsub(user.sName,1,16)
if catch=="['??SemiDeus??']" then
else
tabAdvert[userdata] = nil
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
end
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 ("INSERT.HERE.YOUR.OP-CHAT.NAME", "Control: User "..user.sName.." with IP "..user.sIP.." said to "..whoTo.." this: "..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

if spam>0 then
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
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




quite nice :o)

I have a problem, sombody can help me?! :(

Syntax error: attempt to index local `nick' (a nil value)
stack traceback:
   1:  function `DataArrival' at line 185 [file `...\Program Files\PtokaX\scripts\Lucifer 6.6.6.lua']

Hubsoft  PtokaX-0330-15.25debug  :(
Title:
Post by: blackwings on 12 February, 2005, 11:15:55
QuoteOriginally posted by Fano
I have a problem, sombody can help me?! :(

Syntax error: attempt to index local `nick' (a nil value)
stack traceback:
   1:  function `DataArrival' at line 185 [file `...\Program Files\PtokaX\scripts\Lucifer 6.6.6.lua']

Hubsoft  PtokaX-0330-15.25debug  :(
check at line 185,

Instead of  = INSERT.HERE.YOUR.OP-CHAT.NAME

use your own Op chat name

for example =
if you Op chat name is => -OP-CHAT-
then line 185 should look like this =>
SendPmToOps ("-OP-CHAT-", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
but I would personally use this instead =>
SendPmToOps (BotName, "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
Same thing should be done to line =
100, 106,131,154,160,
Title:
Post by: Fano on 12 February, 2005, 15:37:05
here is script, and same error :(

Syntax error: attempt to index local `nick' (a nil value)
stack traceback:
   1:  function `DataArrival' at line 185 [file `...\Program Files\PtokaX\scripts\Lucifer 6.6.6.lua']

[SIZE=1]
BotName = "?AntiSpam?"


advtrigs = {"dns2go","myftpsite","servebeer","mine.nu","ip.com","dynip","depecheconnect.com","zapto.org",

"staticip","serveftp","ipactive","ip.org","no-ip","servegame","gotdns.org","ip.net","ip.co.uk",

"ath.cx","dyndns","68.67.18.75","clanpimp","idlegames","sytes","unusualperson.com",

"24.184.64.48","uni.cc","151.198.149.60","homeunix","24.209.232.97","ciscofreak.com",

"deftonzs.com","24.187.50.121","flamenap","xs4all","serveftp","point2this.com","ip.info",

"myftp","d2g","84.237.153.117","24.184.64.48","orgdns","myip.org","stufftoread.com",

"ip.biz","dynu.com","mine.org","kick-ass.net","darkdata.net","ipme.net","udgnet.com","homeip.net",

"e-net.lv","newgnr.com","bst.net","bsd.net","ods.org","x-host","bounceme.net","myvnc.com",

"kyed.com","lir.dk","finx.org","sheckie.net","vizvaz.net","snygging.net","kicks-ass.com","nerdcamp.net",

"cicileu.","3utilities.com","myftp.biz","redirectme.net","servebeer.com","servecounterstrike.com",

"servehalflife.com","servehttp.com","serveirc.com","servemp3.com","servepics.com","servequake.com",

"damnserver.com","ditchyourip.com","dnsiskinky.com","geekgalaxy.com","net-freaks.com","ip.ca",

"securityexploits.com","securitytactics.com","servehumour.com","servep2p.com","servesarcasm.com",

"workisboring.com","hopto","64.246.26.135","213.145.29.222","dnsalias","81.198.234.105:5555"}



validtrigs = {"bla.bla.no-ip.com"} --insert here your addresses (like yours or multihub ones or great friend's hub ;) )



controltrigs={["hub1"]=1} --insert here addresses you want to be informed (no kick)



tabAdvert = {}



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

if strsub(data, 1, 1) == "<" then

local _, _, msg = strfind(data, "^%b<>%s+(.*)|")

if Verify(user.sName, msg) then

catch=strsub(user.sName,1,5)         --5 is counting chars of the tag below: if u change [VIP], change it!

if catch=="(VIP)" then                  --ControlUser status : insert users Tag u don't want to get kicked

else

tabAdvert[user.sName]=nil

SendToAll( BotName, user.sName.." timebaned by ?AntiSpam? for advertising!")

user:SendPM(BotName, "Don't try again to advertise!")

user:Disconnect();

user:TimeBan(15);

s,e,onlymes = strfind(data, "%b<> (.*)")

SendPmToOps ("?OpChat?", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying: "..onlymes.."")

end

end

for key, value in controltrigs do

if( strfind( strlower(data), key) ) then

s,e,onlymes = strfind(data, "%b<> (.*)")

SendPmToOps ("?OpChat?", "Control: User "..user.sName.." with IP "..user.sIP.." told 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


if spam>0 then

SendToAll( BotName, user.sName.." timebaned by ?AntiSpam? for advertising!")

user:SendPM(BotName, "Don't try again to advertise!")

user:Disconnect();

user:TimeBan(15);

s,e,onlymes = strfind(data, "%b<> (.*)")

SendPmToOps ("?OpChat?", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying: "..onlymes.."")

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 nick.bOperator then

local userdata = to.." "..from

if Verify(userdata, msg) then

catch=strsub(user.sName,1,16)

if catch=="['??SemiDeus??']" then

else

tabAdvert[userdata] = nil

SendToAll( BotName, user.sName.." timebaned by ?AntiSpam? for advertising!")

user:SendPM(BotName, "Don't try again to advertise!")

user:Disconnect();

user:TimeBan(15);

s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  

SendPmToOps ("?OpChat?", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")

end

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 ("?OpChat?", "Control: User "..user.sName.." with IP "..user.sIP.." said to "..whoTo.." this: "..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


if spam>0 then

SendToAll( BotName, user.sName.." timebaned by ?AntiSpam? for advertising!")

user:SendPM(BotName, "Don't try again to advertise!")

user:Disconnect();

user:TimeBan(15);

s,e,whoTo,from,mes = strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")  

SendPmToOps ("?OpChat?", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")

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
[/SIZE]