Pages

Sunday, August 28, 2011

fun ping.tcl

#################################################
##------------------------------------------- -##
##                                             ##
##         ***    *******  ***   *** ******    ##
##        *** *   ***   **  *** *** ***  ***   ##
##       ***   *  ***   **   *****  ***  ***   ##
##      ********* *******     ***   ***  ***   ##
##     ***        ***    **   ***   ***  ***   ##
##    ***         ***     **  ***   ***  ***   ##
##   ***          ***      ** ***    ******    ##
##---------------------------------------------##
#################################################
set mode_pesan 0 ;# 0 (Channel), 1 (Query)
set fp(normal) 5 ;# Batas normal, masih aman
set fp(sedang) 10 ;# Batas sedang, lebih dari ini dinyatakan lag parah :P

##################
##[ PESAN PONG ]##
##################
# <nick> - Nick, <durasi> - Durasi dalam detik
set pong_normal {
"Pong <nick> hanya <durasi>"
"Tenang <nick>..! Cuma <durasi> kok"
"Seep..<nick> ga lag kok, cuma <durasi>"
"Mantap <nick>! <durasi> aja"
"<durasi> kok <nick>"
"Weleh! Ga usah pang ping mulu napa <nick>? cuma <durasi> kok"
"Pung pung pung <nick>.. ew cuma <durasi>"
"<nick> masih normal kok. <durasi> tuh"
"Balasan <nick> OK! <durasi>"
}
set pong_sedang {
"<durasi> lumayan deh buat <nick>"
"Ew.. Lagnya <nick> <durasi>"
"Hadah.. si <nick> udah mulai ngelag <durasi> nich.."
"wew.. <nick> telat <durasi>"
"kekeke.. hati2 dengan <durasi> itu <nick>"
"gegege.. <nick> udah mulai ga normal dg lag <durasi> nih"
"hmm.. udah <durasi> <nick>.."
}
set pong_lag {
"Hayah <nick>! Pongnya <durasi> mampus aja sekalian.. wkwkwk.."
"Wakz!! Lag <nick> <durasi> ??? cape dee.."
"<nick> telat <durasi>. Jiakakakak.."
"Wkwkwkw.. DC-in aja deh <nick>. Lagnya udah <durasi>"
"Byuhh.. kagak salah tuh <nick> <durasi> ?"
"hihihihi..<nick> udah mau DC dg lag <durasi>"
"gagagaga.. <nick> mending ganti server.. lagmu <durasi>"
"wekz.. <nick> masih bisa bertahan dg lag <durasi>"
"Akhirnya.. <nick> mencapai klimaks dlm waktu <durasi>.. wkwkwk.."
}

###############
##[ BINDING ]##
###############
bind pub * !ping ping_saya
bind pub * ping ping_saya
bind ctcr * PING balasan_ping

################
##[ PROSEDUR ]##
################
proc ping_saya {nick uhost hand chan txt} {
  global pnick pchan
  set txt [string toupper $txt]
  if {$txt == "" || [string match "#*" $txt]} {
    puthelp "NOTICE $nick :Penggunaan: ping <me/nick>"
    return 0
  } elseif {$txt == "ME"} {
    putserv "PRIVMSG $nick :\001PING [unixtime]\001"
    set pnick $nick
    set pchan $chan
    return 1
  } else {
    putserv "PRIVMSG $txt :\001PING [unixtime]\001"
    set pnick $nick
    set pchan $chan
    return 1
  }
}

proc balasan_ping {nick uhost hand dest key txt} {
  global botnick mode_pesan fp pong_normal pong_sedang pong_lag pnick pchan
  if {[string match {*[a-z]*} $txt] || [string match {*[A-Z]*} $txt] } {
    putlog "Invalid Pong!"
    return 0
  }
  if {$nick != $botnick} {
    set durasi "[expr [unixtime] - $txt]"
    if {$durasi < $fp(normal)} {
      set komentar [lindex $pong_normal [rand [llength $pong_normal]]]
    } elseif {$durasi < $fp(sedang)} {
      set komentar [lindex $pong_sedang [rand [llength $pong_sedang]]]
    } else {
      set komentar [lindex $pong_lag [rand [llength $pong_lag]]]
    }
    regsub -all "<nick>" $komentar "$nick" komentar
    regsub -all "<durasi>" $komentar "$durasi detik" komentar
    if { $mode_pesan == 0 } {
      putserv "PRIVMSG $pchan :$komentar"
    } else {
      putserv "PRIVMSG $pnick :$komentar"
    }
  }
}

putlog "ARYO voice.tcl loaded"

No comments:

Post a Comment