Skip to content
MSN Addons

MSN addons 2006

A TG007 community discussion started by Ozzy10.

Discussion 43 posts
Pinned topic
Pinned Open
Topic #5554 · 43 published posts · 9,168 views

Please feel free to post msn addons here, but also remember that some people dont know too much about msn and are learning.

 

Please make sure you post full code for your addon and that you add credits for other peoples work.

 

do NOT post disruptive code eg. takes and floods etc

 

Please make sure all code/text is in english

Edited Jan 16, 2006 1:50 AM by Ozzy10

My code does NOT have bugs. It just develops random features.

The following are words I know it to be working on, .com, www., http, .net, .org, .tk, .us. Others can be added. Simply change the spmsg alias to reflect your message you want added to the table.

;Hash Table Spam Kicker Addon by Mail
on *:start: { 
 hmake Spam 10  
 if ($exists(Spam.txt)) hload Spam Spam.txt 
 spmsg
}
#spamkicker on
on *:TEXT:*:#: {
 if ($1 === !adsp) && ($nick isowner $chan) {
   hadd -m Spam Word $addtok($hget(Spam,Word),$2,32)
   msg # Word Added $nick
   hsave -o Spam Spam.txt
 }
}
on ^*:TEXT:*:#: {
 if ($nick isowner #) halt 
 if ($right($1-,4) isin $hget(Spam,Word)) || ($left($1-,4) isin $hget(Spam,Word)) {
   .sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add deny *! $+ $$ial($nick) $+ *,1).addr 670 : $+ SPAMMING
   .sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) $nick : $+ $hget(Spam,spmsg) $nick
   halt  
 }
}
on ^*:ACTION:*:#: { 
 if ($nick isowner #) halt 
 if ($right($1-,4) isin $hget(Spam,Word)) || ($left($1-,4) isin $hget(Spam,Word)) {
   .sockwrite -tn msn.server. $+ $cid access $msn.get($cid,fullroom) add deny *! $+ $$ial($nick) $+ *,1).addr 670 : $+ SPAMMING
   .sockwrite -tn msn.server. $+ $cid kick $msn.get($cid,fullroom) $nick : $+ $hget(Spam,spmsg) $nick
   halt 
 }
}
alias spmsg {
 hadd -m Spam spmsg Your Message Here
}

Edited Mar 17, 2006 10:01 PM by Mail

 

"Diplomacy is the art of saying 'Nice doggie' until you can find a rock".-Will Rogers

I deleted my previous Owner-Host addon due to a revision in the code. Below is the new code.

;Admin-Trust List by Mail
on *:start: {
 hmake Admin 100
 if ($exists(Admin.txt)) hload Admin Admin.txt
 hmake ownerlist 100 
 if ($exists(ownerlist.txt)) hload ownerlist ownerlist.txt
 hmake Trust 100
 if ($exists(Trust.txt)) hload Trust Trust.txt
 hmake hostlist 100  
 if ($exists(hostlist.txt)) hload hostlist hostlist.txt
 hmake Allowed 10
 if ($exists(Allowed.txt)) hload Allowed Allowed.txt
}
on *:text:*:#: {
 if ($1 === !adt) && ($nick isowner $chan) {
   if ($2 ison $chan) hadd -m Trust Nick $+ $2 $$ial($$2,1).addr
   if ($2 !ison $chan) hadd -m Trust Nick $+ $2 $2
   hadd -m Trust Chan $chan
   msg $hget(Trust,Chan) $2 Was Added To My Trust List
   hsave -o Trust Trust.txt
 }
 if ($1 === !ada) && ($nick isowner $chan) {
   if ($2 ison $chan) hadd -m Admin Nick $+ $2 $$ial($$2,1).addr
   if ($2 !ison $chan) hadd -m Admin Nick $+ $2 $2
   hadd -m Admin Chan $chan
   msg $hget(Admin,Chan) $2 Was Added To My Admin List
   hsave -o Admin Admin.txt
 }
 if ($1 === !ra) && ($nick isowner $chan) {
   hdel Admin Nick $+ $2 $$ial($$2,1).addr
   msg $hget(Admin,Chan) $2 Was Removed From My Admin List
   hsave -o Admin Admin.txt
 }
 if ($1 === !rt) && ($nick isowner $chan) {
   hdel Trust Nick $+ $2 $$ial($$2,1).addr
   msg $hget(Trust,Chan) $2 Was Removed From My Trust List
   hsave -o Trust Trust.txt
 }
 if ($1 === !o) && ($address isin $hget(Admin,Nick $+ $nick)) || ($nick isin $hget(Admin,Nick $+ $nick)) { 
   if (!$hget(ownerlist)) { hmake ownerlist 100 } 
   if ($2 ison $chan) hadd -m ownerlist nick $+ $msn.decode($2) $$ial($$2,1).addr
   if ($2 !ison $chan) hadd -m ownerlist nick $+ $msn.decode($2) $2
   hadd ownerlist chan $chan 
   msg $nick $2- Has Been Added To My Ownerlist 
   hsave -o ownerlist ownerlist.txt
 } 
 if ($1 === !h) && ($address isin $hget(Trust,Nick $+ $nick)) || ($nick isin $hget(Trust,Nick $+ $nick)) { 
   if (!$hget(hostlist)) { hmake hostlist 100 }
   if ($2 ison $chan) hadd -m hostlist nick $+ $msn.decode($2) $$ial($$2,1).addr
   if ($2 !ison $chan) hadd -m hostlist nick $+ $msn.decode($2) $2
   hadd hostlist chan $chan
   msg $nick $2- Has Been Added To My Hostlist 
   hsave -o hostlist hostlist.txt 
 } 
 if ($1 === !-o) && ($address isin $hget(Trust,Nick $+ $nick)) || ($nick isin $hget(Trust,Nick $+ $nick)) {
   hdel ownerlist nick $+ $msn.decode($2) $$ial($$2,1).addr
   hsave -o ownerlist ownerlist.txt
   msg $nick $2- Has Been Removed From My Ownerlist
 }
 if ($1 === !-h) && ($address isin $hget(Trust,Nick $+ $nick)) || ($nick isin $hget(Trust,Nick $+ $nick)) {
   hdel hostlist nick $+ $msn.decode($2) $$ial($$2,1).addr
   hsave -o hostlist hostlist.txt
   msg $nick $2- Has Been Removed From My Hostlist
 }
 if ($1 === !adal) && ($nick isowner $chan) {
   if ($2 ison $chan) { hadd -m Allowed Kicker $+ $msn.ifdecode($2) $$ial($$2,1).addr }
   if ($2 !ison $chan) { hadd -m Allowed Kicker $+ $msn.decode($2) $2 }
   hadd -m Allowed Chan $chan
   hsave -o Allowed Allowed.txt
 }
 if ($1 === !ral) && ($nick isowner $chan) {
   if ($2 ison $chan) { hdel Allowed Kicker $+ $msn.ifdecode($nick) $$ial($$2,1).addr }
   if ($2 !ison $chan) { hdel Allowed Kicker $+ $msn.decode($2) $2 }
   hsave -o Allowed Allowed.txt
 }
} 
on *:exit: {
 hsave -o ownerlist ownerlist.txt
 hsave -o hostlist hostlist.txt
 hsave -o Trust Trust.txt
 hsave -o Admin Admin.txt
 hsave -o Allowed Allowed.txt
}
on *:disconnet: {
 hsave -o ownerlist ownerlist.txt
 hsave -o hostlist hostlist.txt
 hsave -o Trust Trust.txt
 hsave -o Admin Admin.txt
 hsave -o Allowed Allowed.txt
}

on *:Join:*: {
 if ($me isowner $chan) { 
   if ($address isin $hget(ownerlist,nick $+ $msn.decode($nick))) { 
     .sockwrite -tn msn.server. $+ $cid mode $msn.get($cid,fullroom) +q $nick 
     msg $hget(ownerlist,chan) Welcome Owner $nick 
   }
   if ($address isin $hget(hostlist,nick $+ $msn.decode($nick))) { 
     .sockwrite -tn msn.server. $+ $cid mode $msn.get($cid,fullroom) +o $nick
     msg $hget(hostlist,chan) Welcome Host $nick 
   } 
 } 
}
on *:Owner:#: {
 if ($$ial($msn.ifdecode($nick,1)) !isin $hget(ownerlist,Nick $+ $nick)) {
   .sockwrite -tn msn.server. $+ $cid mode $msn.get($cid,fullroom) -q $nick
   msg $hget(ownerlist,chan) You Are Not On My Ownerlist $nick.
 }
}
on *:Op:#: {
 if ($$ial($msn.ifdecode($nick,1)) !isin $hget(hostlist,Nick $+ $nick)) {
   .sockwrite -tn msn.server. $+ $cid mode $msn.get($cid,fullroom) -o $nick
   msg $hget(hostlist,chan) You Are Not On My Hostlist $nick.
 }
}

Edited Jan 27, 2006 4:44 AM by Mail

 

"Diplomacy is the art of saying 'Nice doggie' until you can find a rock".-Will Rogers

Anybody that knows about egg drops knows about this

Neat alias:{ xyzzy }

Long nick ban. Set custom amount of characters using a var.

Ban Long Nicknames 
.Deny : set %ln $$?"String of characters to block?"  |  /access $chan add deny $str(?,%ln) $+ *!*@*$* 0 : Long Nick Blocker | msg # Long nicks blcked. String set to %ln
.Clear deny : /access $chan delete deny $str(?,%ln) $+ *!*@*$* | msg # Long nicks unblocked. String removed: %ln | unset %ln

Some masses on user levels.

on list:text:.amsg*:#: { 
 msg # Message " $+ $2- $+ " been sent to all channels 
 var %a $scon(0) | var %b 1 | set %c $2- | var %d $right($chan,-2)
 while (%b <= %a) { /scon %b amsg $gettok($ial($nick,1),1,33) has sent a mass message from %d | scon %b amsg Message is: (*) %c (*) | inc %b }
}
on list:text:.aaway*:#: {
 msg # Away on all channels Reason: $2-
 set %massaway $2- | set %massawaytime $ctime | set %masstimerstart $asctime(dd/mm/yy hh:nn TT) 
 var %a $scon(0) | var %b 1 | set %c $2- | timer.massaway 0 1800 massaway
 while (%b <= %a) { /scon %b away %c | /scon %b amsg Mass Away @ $asctime(dd/mm/yyyy hh:nn TT) Reason : %massaway | inc %b }
}
alias massaway {  
 var %a $scon(0) | var %b 1 | set %c $2- | var %d $right($chan,-2)
 while (%b <= %a) { /scon %b amsg Currently Away: Been away since %masstimerstart Reason: %massaway | inc %b }
} 
on list:text:.aback*:#: { 
 timer.massaway off | msg # Now marked back on all channels
 var %a $scon(0) | var %b 1 
 while (%b <= %a) { /scon %b away | /scon %b amsg Mass Return @ $asctime(dd/mm/yyyy hh:nn TT) | /scon %b amsg We was away for $duration($calc($ctime - %massawaytime)) | inc %b }
}
on list:text:.ahop*:#: { 
 var %a $scon(0) | var %b 1 | var %c $right($chan,-2)
 while (%b <= %a) { /scon %b ame Mass Hop initiated by $gettok($ial($nick,1),1,33) in %c | /scon %b hop | inc %b }
}

Edited Mar 18, 2006 3:44 PM by X-Fusion

Just something i knocked up for a friend might find it usefull then again u might not ..

 

;  >--------------------------<
; |                            |
; |    Addon - Protect List    |
; |  Version - [v1.0]          |
; |   Author - D-Tox/Synedyne  |
; |                            |
;  >--------------------------<

menu Nicklist {
 -Protect List
 .Add:{ var %x = $$?="Reason" | writeini -n Protect.ini Nicks $ial($$1).user $$1 %x
   echo # Added $$1 To Protext List $+(",%x,")
 }
 .Remove:{ remini -n Protect.ini Nicks $ial($$1).user
   echo # Removed $$1 From Protect List.
 }
 .Scan:{ $Prot-Scan(#) }
} 
on Admin:TEXT:!apl *:#:{
 var %1 = 1
 while (%1 <= $nick(#,0)) {
   if (* $+ $2 $+ * iswm $nick(#,%1)) {
     writeini -n Protect.ini Nicks $ial($nick(#,%1)).user $decode.($nick(#,%1)) Remote Add
     echo # Added $nick(#,%1) To Protect List.
   }
   inc %1
 }
}
on Admin:TEXT:!rpl *:#:{
 var %1 = 1
 while (%1 <= $nick(#,0)) {
   if (* $+ $2 $+ * iswm $nick(#,%1)) {
     remini -n Protect.ini Nicks $ial($nick(#,%1)).user
     echo # Removed $nick(#,%1) From Protect List.
   }
   inc %1
 }
}

on ^*:KICK:#:{
 if ($ini(Protect.ini,Nicks,$ial($knick).user)) {
   access # add deny $ial($nick).addr 0 $+(:,Protected Nick Kick)
   kick # $nick $+(:,Protected User $+(",$knick,"))
 }
}

alias Prot-Scan {
 var %x = 1
 echo # Protect List Scan "Start"
 while (%x <= $nick(#,0)) {
   if ($ini(Protect.ini,Nicks,$ial($nick(#,%x)).user)) {
     var %y = $readini(Protect.ini,Nicks,$ial($nick(#,%x)).user)
     echo # $nick(#,%x) / $gettok(%y,1,32) $+(",$gettok(%y,2-,32),")
   }
   inc %x
 }
 echo # Protect List Scan "End"
}

Yep, I saw you do this for Evo yesterday in MSHS :P. Now my passport is unsubscribed for some reason.

yeah i thought someone might find it usefull ... :taz:

For those of you that like to have sounds on your script, but dont know how. ***THESE DO NOT HAVE TO BE EDITED...THEY ARE ALREADY IN YOUR C:\ DRIVE***

#chatsounds off
on *:join:#:{ splay c:\windows\media\notify.wmv }
on *:kick:#:{ splay c:\windows\media\chatkick.wmv }
#chatsounds end
Chat sounds
.On:{ enable #chatsounds | echo -a Chat sounds enabled }
.Off:{ disable #chatsounds | echo -a Chat sounds disabled }

Yes, you can add more, I was just doing these so people would have an idea of where to find default chat sounds.

Edited Mar 23, 2006 10:10 PM by X-Fusion

what if they haven't used webchat or c: isnt their main directory? unfortunately %windir% doesnt work in mirc so c: is best ^^'

People are like slinkies; they're generally boring until you push them down stairs

Actually, if C:\ isnt your main directory, most things wont work. C: is needed for almost everything to work. c:\windows is where all your DLLS for any programs to operate are located. So, if you moved them, then edit that I guess.

Although the vast majority of Windows users use C:/Windows as their primary Windows directory there are exceptions.

My default directory is D: because that's where I've got Windows XP installed, as well as my boot.ini file. Windows 2003 is on my E: drive so, obviously, its default directory is E:.

On the other hand it is being quite pedantic but it is a good idea to take others into consideration.

I don't get paid to know the answer, therefore I'm far more likely to give you a straight and honest answer.

You could use this...

 

alias windir { 
 set %windircheck 1
 if (%founddir) return %founddir
 else {
   :next
   set %drivecheck $disk(%windircheck).path
   if ($disk(%drivecheck)) set %diskpath $disk(%drivecheck).path
   inc %windircheck
   if (%windircheck < $disk(0)) && (!$shortfn($finddir(%diskpath,Windows,1))) goto next
   else { set %founddir $shortfn($finddir(%diskpath,Windows,1)) $+ \ | return %founddir }
 }
}
#chatsounds off
on *:join:#:{ splay $+($windir,media,\notify.wav) }
on *:kick:#:{ splay $+($windir,media,\chatkick.wav) }
#chatsounds end
Chat sounds
.On:{ enable #chatsounds | echo -a Chat sounds enabled }
.Off:{ disable #chatsounds | echo -a Chat sounds disabled }

Edited Mar 24, 2006 5:36 PM by Warrior124

An alias to move people from one list to another

EG..If you have people on your ownerlist and you rename it to admin list, this makes it easier

Usage: /ulist owner admin

alias ulist {
var %i = $ulist(*,$1,0) 
while (%i > 0) { 
auser $2 $ulist(*,$1,%i) 
dec %i 
}
} 

This does is a wildcard mass.

EG..If you want to owner or host someone with a certain letter in their name

Usage: /fast [q,o,v,d,k] [letter or chr]

q = owner

o = host

v = voice

d = de-host

k = kick

alias fast {
var %i = $nick(#,0)
while (%i > 0) {
if ($2 isin $nick(#,%i)) {
if ($1 == Q) { mode $chan +q $nick(#,%i) }
if ($1 == O) { mode $chan +o $nick(#,%i) }
if ($1 == V) { mode $chan +v $nick(#,%i) }
if ($1 == D) { mode $chan -o $nick(#,%i) }
if ($1 == K) { kick $chan $nick(#,%i) }
}
dec %i
}
}

For anybody that wants an Autojoin. Place in remotes

menu MenuBar,Status,channel {
 -
 Autojoin
 .Join All:/ajoin
 .Part All:/apart
 .-
 .Channels
 ..1 - %auto1
 ...Join:/join %auto1
 ...Change:/set %auto1 $?="Enter Channel:"
 ..2 - %auto2
 ...Join:/join %auto2
 ...Change:/set %auto2 $?="Enter Channel:"
 ..3 - %auto3
 ...Join:/join %auto3
 ...Change:/set %auto3 $?="Enter Channel:"
 ..4 - %auto4
 ...Join:/join %auto4
 ...Change:/set %auto4 $?="Enter Channel:"
 ..5 - %auto5
 ...Join:/join %auto5
 ...Change:/set %auto5 $?="Enter Channel:"
 ..6 - %auto6
 ...Join:/join %auto6
 ...Change:/set %auto6 $?="Enter Channel:"
 ..7 - %auto7
 ...Join:/join %auto7
 ...Change:/set %auto7 $?="Enter Channel:"
 ..8 - %auto8
 ...Join:/join %auto8
 ...Change:/set %auto8 $?="Enter Channel:"
 ..9 - %auto9
 ...Join:/join %auto9
 ...Change:/set %auto9 $?="Enter Channel:"
 ..10 - %auto10
 ...Join:/join %auto10
 ...Change:/set %auto10 $?="Enter Channel:"
 ..11 - %auto11
 ...Join:/join %auto11
 ...Change:/set %auto11 $?="Enter Channel:"
 ..12 - %auto12
 ...Join:/join %auto12
 ...Change:/set %auto12 $?="Enter Channel:"
 ..13 - %auto13
 ...Join:/join %auto13
 ...Change:/set %auto13 $?="Enter Channel:"
 ..14 - %auto14
 ...Join:/join %auto14
 ...Change:/set %auto14 $?="Enter Channel:"
 ..15- %auto15
 ...Join:/join %auto15
 ...Change:/set %auto15 $?="Enter Channel:"
 .-
 .AutoJoin Is %ackj
 ..On:/set %ackj On
 ..Off:/set %ackj Off
 -
}
alias ajoin { .join %auto1 $+ , $+ %auto2 $+ , $+ %auto3 $+ , $+ %auto4 $+ , $+ %auto5 $+ , $+ %auto6 $+ , $+ %auto7 $+ , $+ %auto8 $+ , $+ %auto9 $+ , $+ %auto10 $+ , $+ %auto11 $+ , $+ %auto12 $+ , $+ %auto13 $+ , $+ %auto14 $+ , $+ %auto15 }
alias apart { part %auto1 | .part %auto2 | .part %auto3 | .part %auto4 | .part %auto5 | .part %auto6 | .part %auto7 | .part %auto8 | .part %auto9 | .part %auto10 | .part %auto11 | .part %auto12 | .part %auto13 | .part %auto14 | .part %auto15 }
on *:connect:{ 
 if (%ackj == On) {
   ajoin
 }
}

CE Global Mail Center

 

I think all the bugs are worked out of this.

 

It lets participants leave mail messages for each other. To set messages type !mail Nickname Message.

 

It will auto set up a menu in the drop down section so that you can turn it on/off etc.

 

Gwen

 


on *:INPUT:?: {
 if (%mcstonnce !== On) && (!mail isin $1) { .ctcpreply $nick TIME CE Global Message Centre is Off.
 }
 if (%mcstonnce == On) {
   if (!mail isin $1) { 
     if (%mcstonnce == On) && ($2 == $null) { msg $nick You have attempted to activate Global Message Center, please include a Nickname and Message when you post a message.
       halt
     }
     if (%mcstonnce == On) && ($3 == $null) { msg $nick You have attempted to activate Global Message Center, please include a Nickname and Message when you post a message.
       halt
     }
     if ($2 isin %postnick5 [ $+ [ $2 ] ] ) { 
       .ctcpreply $nick TIME Messages for $2 are full.  
       .ctcpreply $nick TIME Your message has NOT been saved, please try again after $2 has received all of their current messages.
       halt
     }
     if ($2 isin %postnick4 [ $+ [ $2 ] ] ) { 
       set %postnick5 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
       .ctcpreply $nick TIME You set the following message: $2-
       halt
     }
     if ($2 isin %postnick3 [ $+ [ $2 ] ] ) { 
       set %postnick4 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
       .ctcpreply $nick TIME You set the following message: $2-
       halt
     }
     if ($2 isin %postnick2 [ $+ [ $2 ] ] ) { 
       set %postnick3 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
       .ctcpreply $nick TIME You set the following message: $2-
       halt
     }
     if ($2 isin %postnick [ $+ [ $2 ] ] ) { 
       set %postnick2 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
       .ctcpreply $nick TIME You set the following message: $2-
       halt
     }
     else { 
       set %postnick [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-
       .ctcpreply $nick TIME You set the following message: $2-
       halt
     }
   }
 }
}
on *:INPUT:#: { 
 if (%mcstonnce !== On) && (!mcinfo isin $1) {
   msg $chan CE Global Message Centre is Currently Off.
 }
 if (%mcstonnce == On) && (!mcinfo isin $1) {
   msg $chan To leave a short message for someone whisper the bot:  !mail Nickname Message.  For example:  !mail Gwen I missed you today.  Make sure to use the EXACT Nickname and CE Global Message Centre will leave the person your short message.
 }
 if (!mail isin $1) { /msg $chan $nick you can only send mail by whispering the bot.  Type !mcinfo for more details.
 }
 if ($nick isin %postnick [ $+ [ $nick ] ]) && (!mail !isin $1) { /msg $chan (e) --> $nick your mail will be posted privately in a moment.
   .ctcpreply $nick TIME %postnick [ $+ [ $nick ] ]
   /unset %postnick [ $+ [ $nick ] ]
 }
 if ($nick isin %postnick2 [ $+ [ $nick ] ]) && (!mail !isin $1) { 
   .ctcpreply $nick TIME %postnick2 [ $+ [ $nick ] ]
   /unset %postnick2 [ $+ [ $nick ] ]
 }
 if ($nick isin %postnick3 [ $+ [ $nick ] ]) && (!mail !isin $1) { 
   .ctcpreply $nick TIME %postnick3 [ $+ [ $nick ] ]
   /unset %postnick3 [ $+ [ $nick ] ]
 }
 if ($nick isin %postnick4 [ $+ [ $nick ] ]) && (!mail !isin $1) { 
   .ctcpreply $nick TIME %postnick4 [ $+ [ $nick ] ]
   /unset %postnick4 [ $+ [ $nick ] ]
 }
 if ($nick isin %postnick5 [ $+ [ $nick ] ]) && (!mail !isin $1) { 
   .ctcpreply $nick TIME %postnick5 [ $+ [ $nick ] ]
   /unset %postnick5 [ $+ [ $nick ] ]
 }
}

on *:text:*!mail*:#: { 
 if (%mcstonnce == On) { 
   /msg $chan $nick you can only send mail by whispering the bot.  Type !mcinfo for more details.
 }
}
on *:text:*:#: { 
 if (%mcstonnce !== On) && (!mcinfo isin $1) {
   msg $chan CE Global Message Centre is Currently Off.
 }
 if (%mcstonnce == On) && (!mcinfo isin $1) {
   msg $chan To leave a short message for someone whisper the bot:  !mail Nickname Message.  For example:  !mail Gwen I missed you today.  Make sure to use the EXACT Nickname and CE Global Message Centre will leave the person your short message.
 }
 if (%mcstonnce == On) && (!mail !isin $1) {
   if ($nick isin %postnick [ $+ [ $nick ] ]) { /msg $chan (e) --> $nick your mail will be posted privately in a moment.
     .ctcpreply $nick TIME %postnick [ $+ [ $nick ] ]
     /unset %postnick [ $+ [ $nick ] ]
   }
   if ($nick isin %postnick2 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME %postnick2 [ $+ [ $nick ] ]
     /unset %postnick2 [ $+ [ $nick ] ]
   }
   if ($nick isin %postnick3 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME %postnick3 [ $+ [ $nick ] ]
     /unset %postnick3 [ $+ [ $nick ] ]  
   }
   if ($nick isin %postnick4 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME %postnick4 [ $+ [ $nick ] ]
     /unset %postnick4 [ $+ [ $nick ] ]
   }
   if ($nick isin %postnick5 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME %postnick5 [ $+ [ $nick ] ]
     /unset %postnick5 [ $+ [ $nick ] ]
   } 
 }
}

on *:text:*!mail*:?: { if ($nick == $me) halt
 if (%mcstonnce == On) && ($2 == $null) { msg $nick You have attempted to activate Global Message Center, please include a Nickname and Message when you post a message.
   halt
 }
 if (%mcstonnce == On) && ($3 == $null) { msg $nick You have attempted to activate Global Message Center, please include a Nickname and Message when you post a message.
   halt
 }
 if (%mcstonnce !== On) { .ctcpreply $nick TIME CE Global Message Centre is Off.
 }
 if (%mcstonnce == On) {
   if ($2 isin %postnick5 [ $+ [ $2 ] ] ) { 
     .msg $nick for $2 are full.  
     .msg $nick Your message has NOT been saved, please try again after $2 has received all of their current messages.
     halt
   }  

   if ($2 isin %postnick4 [ $+ [ $2 ] ] ) { 
     set %postnick5 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
     .msg $nick You set the following message: $2-
     halt
   }
   if ($2 isin %postnick3 [ $+ [ $2 ] ] ) { 
     set %postnick4 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
     .msg $nick You set the following message: $2-
     halt
   }
   if ($2 isin %postnick2 [ $+ [ $2 ] ] ) { 
     set %postnick3 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
     .msg $nick You set the following message: $2-
     halt
   }
   if ($2 isin %postnick [ $+ [ $2 ] ] ) { 
     set %postnick2 [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-  
     .msg $nick You set the following message: $2-
   }
   else {
     set %postnick [ $+ [ $2 ] ] Mail from $nick $asctime(dd/mm/yyyy hh:nn TT) : $2-
     .msg $nick You set the following message: $2-

   }
 }
}

on *:text:*:?: { 
 if (%mcstonnce !== On) && (!mcinfo isin $1) {
   msg $nick CE Global Message Centre is Currently Off.
 }
 if (%mcstonnce == On) && (!mcinfo isin $1) {
   msg $nick To leave a short message for someone whisper the bot:  !mail Nickname Message.  For example:  !mail Gwen I missed you today.  Make sure to use the EXACT Nickname and CE Global Message Centre will leave the person your short message.
 }
 if (%mcstonnce == On) && (!mail !isin $1) {
   if ($nick isin %postnick [ $+ [ $nick ] ]) { 
     if ($nick !== $me) /msg $nick $nick private mail has been sent to you on the main screen.  For more details type !mcinfo
     .ctcpreply $nick TIME %postnick [ $+ [ $nick ] ]
     /unset %postnick [ $+ [ $nick ] ]
   }
   if ($nick isin %postnick2 [ $+ [ $nick ] ]) { 
    ;.msg $nick $nick private mail has been sent to you on the main screen.  For more details type !mcinfo
     .ctcpreply $nick TIME %postnick2 [ $+ [ $nick ] ]
     /unset %postnick2 [ $+ [ $nick ] ]
   }
   if ($nick isin %postnick3 [ $+ [ $nick ] ]) { 
    ;.msg $nick $nick private mail has been sent to you on the main screen.  For more details type !mcinfo
     .ctcpreply $nick TIME %postnick3 [ $+ [ $nick ] ]
     /unset %postnick3 [ $+ [ $nick ] ]  
   }
   if ($nick isin %postnick4 [ $+ [ $nick ] ]) { 
    ;.msg $nick $nick private mail has been sent to you on the main screen.  For more details type !mcinfo
     .ctcpreply $nick TIME %postnick4 [ $+ [ $nick ] ]
     /unset %postnick4 [ $+ [ $nick ] ]
   }
   if ($nick isin %postnick5 [ $+ [ $nick ] ]) { 
    ;.msg $nick $nick private mail has been sent to you on the main screen.  For more details type !mcinfo
     .ctcpreply $nick TIME %postnick5 [ $+ [ $nick ] ]
     /unset %postnick5 [ $+ [ $nick ] ]
   } 
 }
}



on *:JOIN:#: {  
 if (%mcjoininfo == On) && (%mcstonnce == On) { .ctcpreply $nick TIME CE Global Message Centre is On.  Type !mcinfo for more info.
 }
 if (%mcstonnce == On) {

   if ($nick isin %postnick [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME $nick you have mail.  To pick up your message type hi onto the main screen.
     halt
   }
   if ($nick isin %postnick2 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME $nick you have mail.  To pick up your message type hi onto the main screen.
     halt
   }
   if ($nick isin %postnick3 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME $nick you have mail.  To pick up your message type hi onto the main screen.
     halt
   }
   if ($nick isin %postnick4 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME $nick you have mail.  To pick up your message type hi onto the main screen.
     halt
   }
   if ($nick isin %postnick5 [ $+ [ $nick ] ]) { 
     .ctcpreply $nick TIME $nick you have mail.  To pick up your message type hi onto the main screen.
     halt
   }
 }
}

menu * { 
 -
 Message Centre -> is ( %mcstonnce ) and join message -> is ( %mcjoininfo )
 .Instructions: { 
   /echo $color(info2 text) -at To use message centre you or other chat room users can whisper the bot, or type onto the main screen: !mail Nickname Message.  
   /echo $color(info2 text) -at The message will be sent to the person when they join the room, speak in the room, or whisper the bot.
   /echo $color(info2 text) -at *Make sure to use the EXACT nickname, with all its characters.
   /echo $color(info2 text) -at For example: !mail Gwen I just wanted to say hi.
   /echo $color(info2 text) -at *Please only leave short messages.
   /echo $color(info2 text) -at You have the option to only allow hosts/owners to send messages, or everyone.
   /echo $color(info2 text) -at  Clear the messages on a regular basis.
 }
 .-
 .On -> is ( %mcstonnce ): /set %mcstonnce On | /echo $color(info2 text) -at Message Centre is now On. 
 .Off: /set %mcstonnce Off |  /echo $color(info2 text) -at Message Centre is now Off.
 .-
 .Clear Messages: /unset %postnick* | /echo $color(info2 text) -at All the messages are cleared.
 .-
 .On-join Info Message On -> is ( %mcjoininfo ): /set %mcjoininfo On | /echo $color(info2 text) -at People will be notified when they join that Message Centre is On, and they will be given instructions to use it.

 .On-join Info Message Off: /set %mcjoininfo Off | /echo $color(info2 text) -at On-join Message Info is Off.
 -
}

This is an addon that requires anyone ownering to have to whisper a secondary code in order to owner. The user just has to right click on the persons nickname, and click on "Secure Owner > Make Owner <nickname>". A random code will be given, and stored in an ini file.

 

When that person tries to owner the users script will deowner that person, and whisper that the secondary code is needed. If the potential owner gives the right code the code is replaced with a new code, and the new code is given to the potential owner. The potential owner is then ownered.

 

If he/she doesn't give the right code they are given 3 more chances to whisper the right code. If the 3 more chances are used up without the right code given they are immediately kicked, and banned for 5 minutes. Here is the addon code...

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;Secondary Code To Owner by, Warrior124.;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

on *:OWNER:#:{
 if ($opnick != $me) && (%secondarycode. [ $+ [ $chan ] ] == $true) {
   if (%givenpass. [ $+ [ $opnick ] ]) unset %givenpass. [ $+ [ $opnick ] ]
   else {
     set %needed_code. [ $+ [ $opnick ] ] $ial($opnick).addr
     mode # -o $opnick 
     msg $opnick Sorry $opnick $+ , but a secondary code is required to owner here. 
     msg $opnick Please give the secondary code you were provided with.
   }
 }
}

on *:TEXT:*:?:{
 if (%needed_code. [ $+ [ $nick ] ]) {
   if ($nick ison $comchan($me,1)) set %ialnick. [ $+ [ $nick ] ] $ial($ifmatch).addr
   if ($strip($1-) == $readini(SecondaryCodes.ini,$comchan($me,1),%ialnick. [ $+ [ $nick ] ])) {
     set %givenpass. [ $+ [ $nick ] ] %ialnick. [ $+ [ $nick ] ]
     mode $comchan($me,1) +q $nick
     set %newpass $rand(11111,9999999999)
     writeini SecondaryCodes.ini $comchan($me,1) %ialnick. [ $+ [ $nick ] ] %newpass
     msg $nick Your new pass is: $dc.decode($strip(%newpass))
     msg $nick Please remember this pass for next use. Whenever you owner again the pass will change again for security purposes.
     unset %newpass
     unset %ialnick. [ $+ [ $nick ] ]
     unset %needed_code. [ $+ [ $nick ] ]
   }
   else {
     if (!%tryagain) set %tryagain 3
     msg $nick Sorry $nick $+ , but that is the wrong code. Please provide the code given to you to owner here. You have %tryagain remaining.
     dec %tryagain
     if (%tryagain = 0) {
       access $comchan($me,1) add deny %ialnick. [ $+ [ $nick ] ] 5
       kick $comchan($me,1) $nick [Sorry $nick $+ , but you've used up your chances. Banned 5 minutes]
       unset %ialnick. [ $+ [ $nick ] ]
       unset %needed_code. [ $+ [ $nick ] ]
     }
   }
 }
}

menu * {
 -
 Secure Owner is $chr(91) $+ $iif(%secondarycode. [ $+ [ $chan ] ] == $true,On,Off) $+ $chr(93)
 .$iif($menu == channel,$iif(%secondarycode. [ $+ [ $chan ] ] == $true,Turn Off?,Turn On?)) : if (%secondarycode. [ $+ [ $chan ] ] == $true) unset %secondarycode. [ $+ [ $chan ] ] | else set %secondarycode. [ $+ [ $chan ] ] $true
 .$iif($menu == nicklist,Make Owner $1) : set %newpass $rand(11111,9999999999) | writeini SecondaryCodes.ini $chan $ial($1).addr %newpass | msg $1 Your secondary pass is: %newpass | msg $1 Please remember this pass for next use. Whenever you owner again the pass will change again for security purposes. | unset %newpass | mode $2 +q $1
 -
}

What this addon does is add colors to your nicklist through the cline. You can edit the colors to your liking.

Screenshot:

IPB Image

Code:

on *:LOAD:nicklistcolors $chan 
on *:JOIN:#:nicklistcolors $chan
ON *:OWNER:#:nicklistcolors $chan
ON *:DEOWNER:#:nicklistcolors $chan
ON *:OP:#:nicklistcolors $chan
ON *:DEOP:#:nicklistcolors $chan
ON *:VOICE:#:nicklistcolors $chan
ON *:DEVOICE:#:nicklistcolors $chan

alias nicklistcolors {
 var %line 1
 :LOOP
 if ($nick($1,%line) isvo $1) { cline 5 $1 $nick($1,%line) }
 if ($nick($1,%line) isop $1) { cline 4 $1 $nick($1,%line) }
 if ($nick($1,%line) isreg $1) { cline 6 $1 $nick($1,%line) }
 if ($nick($1,%line) == $me) && ($hget(theme,listbox.own) != $null) { cline 3 $1 $nick($1,%line) }
 if ($ignore(0) > 0) && ($ignore == $true) {
   var %temp5 1
   :loop2
   if ($ignore(%temp5) iswm $address($nick($1,%line),5)) && (channel isin $ignore(%temp5).type) { cline 14 $1 $nick($1,%line) }
   inc %temp5 1
   if (%temp5 <= $ignore(0)) { goto loop2 }
 }
 if ($nick($1,%line) == $null) { goto done }
 inc %line
 goto loop
 :DONE
 haltdef
}

Usage: /nicklistcolors

 

***Edited to add deop deown etc***

***Edited again to fix the start/load problem*** Also Gwen, when you do it manually, just use /nicklistcolors, no need for the /nicklistcolrs $chan :) That should work

Edited Apr 27, 2006 3:07 AM by X-Fusion

Nice X-Fusion,

 

The only problem I have with it is that I can't get it to set the colors on join, and it doesn't set the colors when you use the alias manuall /nicklistcolors

 

When I change the op status on someone it does show the nick colors nicely.

 

Gwen