From Bitty Kangaroo, 11 Years ago, written in Plain Text.
Embed
  1. ###Custom made Russian Roulette Script
  2. #this is the first script I written myself so ther's probably couple of things I could have done different
  3. #and I'm open for suggestions. If you got any ideas for me please contact me at dopeydwerg@hotmail.com
  4.  
  5.  
  6. #list lucky comments
  7. set pull {
  8.     "hizlica tetigi ceker..."
  9.     "titreyerek elini tetige goturur ve silayi yavasca sakagina dayar...."
  10.     "tetigi cekerken, yuzunde soguk ve sakin gulumseme belirir...."
  11.     "tabancayi agzina sokar...."
  12.     "tabancayi kaslarinin arasina yerlestirir ve sessizce dua eder..."
  13.     "yavasca silahi kaldirir ve cenesinin altina sabitler...."
  14. }
  15.  
  16. set lucky_msg {
  17.     "...klik......Oops..bu silahi doldurmayi mi unuttum ?"
  18.     ".....klik....Bu sansin daha fazla surmeyecek hahaha"
  19.     ".klik........Gelecek sefere kursun ile bir randevun olacak hahaha"
  20.     ".klik....... Seni sansli budala"
  21.     "......klik....Sanslisin o kursun calismadi...Ping silaha yeni kursun doldurur"
  22.     "....klik.....Bahse varim sen lotoda da bu kadar sansliydin"
  23.     "....klik......Cevir ya da ates et umursamiyorum, eger kazanirsan seni kendi ellerimle oldururum"
  24.     ".....klik.....iyi oldugunu saniyorsun.....birdahaki sefere karsina cikmaya curet ediyorum"
  25.     "....klik......Eger senin gibi bi kafam olsaydi kaybedene kadar devam ederdim"
  26.     ".....klik......Boyle cirkin biri nasil bu kadar sansli olabilir"
  27. }
  28.  
  29. #set vars
  30. set player1 ""
  31. set player2 ""
  32. set curplayer ""
  33. set notcurplayer ""
  34. set timeout_timer 0
  35. set started 0
  36. set turns 0
  37. set bullit [rand 5]
  38. #file you want scores to be written
  39. set scorefile "roulette.txt"
  40. set kill_count 0
  41. set last_warn ""
  42.  
  43. #binds
  44. bind pub - !cevir spin:gun
  45. bind pub - !vur shoot:gun
  46. bind pub - !rulet challenge:player
  47. bind pub - !tekrar reply:player
  48. bind pub - !kabul accept
  49. bind pub - !tavuk chicken
  50. bind pub - !skor show_player_score
  51. bind pub - !skorlar showall
  52.  
  53.  
  54. proc accept {nick host handle chan arg} {
  55.     global rrstarttimer
  56.             if {[utimerexists started]!=""} {killutimer $rrstarttimer}
  57.     reply:player $nick $host $handle $chan "accept"
  58. }
  59.  
  60. proc chicken {nick host handle chan arg} {
  61.     reply:player $nick $host $handle $chan "chicken"
  62. }
  63.  
  64. #proc to get somebody ro play with you
  65. proc challenge:player {nick host handle chan arg} {
  66.     global botnick player1 player2 started timeout_timer kill_count last_warn notcurplayer
  67.     global rrstarttimer rrchannel
  68.         if {$player1 != ""} {
  69.             puthelp "PRIVMSG $chan :Kusura bakma $player1 zaten $player2 'a meydan okundu"
  70.             return 0
  71.         }
  72.         if {![onchan $arg $chan]} {
  73.             if {$nick == $last_warn} {
  74.                 puthelp "PRIVMSG $chan :Simdi beni rahatsiz etmeye basladin, seni vurmam gerek."
  75.                 kill $nick $chan
  76.                 return 0
  77.             }
  78.             puthelp "PRIVMSG $chan :Kusura bakma ama bu kanalda $arg diye birini bulamiyorum. ismini dogru aldigina emin misin?"
  79.             puthelp "PRIVMSG $chan :Eger bunu tekrar yaparsan seni vururum."
  80.             set last_warn $nick
  81.             return 0
  82.         }        
  83.         if {$arg == ""} {
  84.             puthelp "PRIVMSG $chan :Oyunu baslatmak icin !rulet <nick> komutunu yap"
  85.             return 0
  86.         }
  87.         if {$started == 1} {
  88.             puthelp "PRIVMSG $chan :Oyun zaten devam ediyor"
  89.             return 0
  90.         }
  91.         if {$arg == $botnick} {
  92.             puthelp "PRIVMSG $chan :Meydan okuma kabul edildi"
  93.             puthelp "PRIVMSG $chan :RRRRRRRRRrrrrrrrr....."
  94.             kill $nick $chan
  95.             return 0
  96.         }            
  97.         set player1 $nick
  98.         set player2 $arg
  99.         set rrchannel $chan
  100.         set timeout_timer 1
  101.         utimer 20 [list timeout $chan ]
  102.         set rrstarttimer [utimer 50 started]
  103.         putquick "NOTICE $player2 :$nick Rus Ruleti oynamaniz icin size meydan okuyor."
  104.         putquick "NOTICE $player1 :Meydan okuma $player2 a gonderildi"
  105.         putquick "NOTICE $player2 :kabul etmek icin !kabul, korkup kacmak icin !tavuk"
  106.         return 0
  107. }
  108.  
  109. proc reply:player {nick host handle chan arg} {
  110.     global botnick player1 player2 turns started curplayer timeout_timer notcurplayer
  111.     global rrstarttimer rrchan
  112.         if {$player1 == ""} {
  113.             puthelp "NOTICE $nick :Henuz size meydan okuyan cikmadi"
  114.             puthelp "NOTICE $nick :Birine meydan okumak icin !rulet <nick> yap"
  115.             return 0
  116.         }
  117.         if {$nick != $player2} {
  118.             puthelp "NOTICE $nick :Bu senin cagrin degil. $player1 $player2 ye meydan okudu"
  119.             return 0
  120.         }
  121.         if {$arg == ""} {
  122.             puthelp "NOTICE $nick :kabul etmek icin !kabul, redetmek icin !tavuk"
  123.             return 0
  124.         }
  125.         if {$started == 1} {
  126.             puthelp "PRIVMSG $chan :Oyun zaten devam ediyor"
  127.             return 0
  128.         }        
  129.         if {$arg == "chicken"} {
  130.             puthelp "PRIVMSG $chan :$nick korktu. $player2 sen odlegin birisin."
  131.             set player1 ""
  132.             set player2 ""
  133.             return 0
  134.         }
  135.         if {$arg == "accept"} {
  136.             set curplayer $player1
  137.             set notcurplayer $player2
  138.             set rrchan $chan
  139.             putserv "notice $player1 :$nick meydan okumani kabul etti."
  140.             putserv "notice $player1 :$curplayer once basliyor. !vur tetigi ceker, !cevir tetigi cekmeden once tabancayi cevirir"
  141.             putserv "notice $player2 :$curplayer once basliyor. !vur tetigi ceker, !cevir tetigi cekmeden once tabancayi cevirir"
  142.             incr_stats $curplayer "" "" "" "" ""
  143.             incr_stats $notcurplayer "" "" "" "" ""
  144.             set started 1
  145.             set timeout_timer 0
  146.             return 0
  147.         }
  148. }
  149.  
  150. proc spin:gun {nick host handle chan arg} {
  151.     global botnick player1 player2 turns started bullit curplayer
  152.     if {$nick != $curplayer} {
  153.         puthelp "PRIVMSG $chan :Hey sahtekarlik yok, senin siran degil."
  154.         return 0
  155.     }
  156.     if {$started == 0} {
  157.         puthelp "PRIVMSG $chan :Oyun devam etmiyor. Oynamak icin !rulet <nick>"
  158.         return 0
  159.     }
  160.     set bullit [rand 5]
  161.     puthelp "PRIVMSG $chan :$curplayer tabancayi cevirir.....RRRRRRRRRrrrrrrrrre..."
  162.     incr_stats $curplayer "" "" "" "+ 1" ""
  163.     shoot:gun $nick $host $handle $chan $started
  164.     return 0
  165. }
  166.  
  167. proc shoot:gun {nick host handle chan arg} {
  168.     global botnick player1 player2 turns curplayer started bullit lucky_msg pull notcurplayer playerstat
  169.     if {$started == 0} {
  170.         puthelp "PRIVMSG $chan :Oyun devam etmiyor. Oynamak icin !rulet <nick>"
  171.         return 0
  172.     }
  173.     if {$nick != $curplayer} {
  174.         puthelp "PRIVMSG $chan :Hey sahtekarlik yok, senin siran degil."
  175.         return 0
  176.     }
  177.     set checknr1 [rand [llength $pull]]
  178.     set temp_pull $pull
  179.     set temp_pull [lindex $temp_pull $checknr1]
  180.     puthelp "PRIVMSG $chan :$nick $temp_pull"
  181.     incr_stats $curplayer "" "" "+ 1" "" ""
  182.     #check if bullit is on position 0 if it is then your dead
  183.     if {$bullit != 0} {
  184.         #if not then set bullit - 1 like in a real fun
  185.         set bullit [expr $bullit - 1]
  186.         #increase turns taken for stats
  187.         set turns [expr $turns + 1]
  188.         #insert random msg
  189.             set checknr [rand [llength $lucky_msg]]
  190.             set temp_lol $lucky_msg
  191.             set temp_lol [lindex $temp_lol $checknr]
  192.             puthelp "PRIVMSG $chan :$temp_lol"
  193.          #switch playsers so nobody can before there turn
  194.         if {$curplayer == $player1} {
  195.             set curplayer $player2
  196.             set notcurplayer $player1
  197.             } else {
  198.                 set curplayer $player1
  199.                 set notcurplayer $player2
  200.                 }
  201.                 puthelp "notice $curplayer :Senin siran !vur ya da  !cevir"
  202.                 puthelp "notice $notcurplayer :$curplayer'nin sirasi"
  203.         return 0
  204.     #if bullit was on position 0 kick loser from chan and reset all used variables
  205.     } else {
  206.         incr_stats $curplayer "" "+ 1" "" "" "+ 1"
  207.         incr_stats $notcurplayer "+ 1" "" "" "" "+ 1"
  208.         show_score $notcurplayer
  209.         putlog "$playerstat"
  210.         puthelp "KICK $chan $curplayer :\002 \00304 *BANG*!! Sen bir Olusun!! Kazanan $playerstat"
  211.         puthelp "PRIVMSG $chan :\002 \00312Oynamak icin -> !rulet <nick> , skorlar icin -> !skorlar nick , skor sorgulamak icin ->!skor <nick>"
  212.         set player1 ""
  213.         set player2 ""
  214.         set curplayer ""
  215.         set bullit [rand 5]
  216.         set started 0
  217.         return 0
  218.     }
  219. }
  220.  
  221. proc kill {nick chan} {
  222.     global botnick
  223.     set bullit [rand 5]
  224.     for {set x 1} {$x < $bullit} {incr x} {
  225.         puthelp "PRIVMSG $chan :klik..."
  226.     }
  227.     puthelp "PRIVMSG $chan :...BANG!!! Kaybettin! "
  228.     puthelp "KICK $chan $nick : Evet kral hala benim =p"
  229.     return 0
  230. }
  231.  
  232. proc timeout { chan } {
  233.     global botnick player1 player2 turns curplayer started bullit lucky_msg pull timeout_timer
  234.     if {$timeout_timer == 1} {
  235.         puthelp "PRIVMSG $chan : $player2 muhtemelen tavuk gibi korktu"
  236.         set player1 ""
  237.         set player2 ""
  238.         set curplayer ""
  239.         set bullit [rand 5]
  240.         set timeout_timer 0
  241.         set started 0
  242.         return 0
  243.     }
  244. }
  245.  
  246. proc get_scores {} {
  247.  global botnick scorefile rrscoresbyname rrscorestotal rrscores rrranksbyname rrranksbynum
  248.  if {[file exists $scorefile]&&[file size $scorefile]>2} {
  249.   set _sfile [open $scorefile r]
  250.   set rrscores [lsort -dict -decreasing [split [gets $_sfile] " "]]
  251.   close $_sfile
  252.   set rrscorestotal [llength $rrscores]
  253.  } else {
  254.   set rrscores ""
  255.   set rrscorestotal 0
  256.  }
  257.     if {[info exists rrscoresbyname]} {unset rrscoresbyname}
  258.         if {[info exists rrranksbyname]} {unset rrranksbyname}
  259.             if {[info exists rrranksbynum]} {unset rrranksbynum}      
  260.  set i 0
  261.  while {$i<[llength $rrscores]} {
  262.   set _item [lindex $rrscores $i]
  263.             set _nick [lindex [split $_item ,] 5]
  264.             set _win [lindex [split $_item ,] 0]
  265.             set _lost [lindex [split $_item ,] 1]
  266.             set _shots [lindex [split $_item ,] 2]
  267.             set _spins [lindex [split $_item ,] 3]
  268.             set _played [lindex [split $_item ,] 4]
  269.   set rrscoresbyname($_nick) $_win
  270.   set rrranksbyname($_nick) [expr $i+1],$_win
  271.   set rrranksbynum([expr $i+1]) $_nick,$_win
  272.   incr i
  273.  }
  274.  return
  275. }
  276. proc incr_stats {who win loss shots spins played} {
  277.     global botnick scorefile rrscoresbyname rrscorestotal rrscores rrranksbyname rrranksbynum
  278.     set who [lindex [split $who "|"] 0]
  279.     set who [lindex [split $who "_"] 0]
  280.     get_scores
  281.     if {$rrscorestotal>0} {
  282.         set i 0
  283.         if {[lsearch $rrscores "*,*,*,*,*,$who"]==-1} {
  284.             append _newscores "0,0,0,0,0,$who "
  285.         }
  286.         while {$i<[expr [llength $rrscores] - 1]} {
  287.             set _item [lindex $rrscores $i]
  288.             set _nick [lindex [split $_item ,] 5]
  289.             set _win [lindex [split $_item ,] 0]
  290.             set _lost [lindex [split $_item ,] 1]
  291.             set _shots [lindex [split $_item ,] 2]
  292.             set _spins [lindex [split $_item ,] 3]
  293.             set _played [lindex [split $_item ,] 4]
  294.             if {[strlwr $who]==[strlwr $_nick]} {
  295.                 append _newscores "[expr $_win $win],[expr $_lost $loss],[expr $_shots $shots],[expr $_spins $spins],[expr $_played $played],$_nick "
  296.             } else {
  297.                 append _newscores "$_win,$_lost,$_shots,$_spins,$_played,$_nick "
  298.             }
  299.             incr i
  300.         }
  301.     } else {
  302.         append _newscores "0,0,0,0,0,$who "
  303.     }
  304.     set _sfile [open $scorefile w]
  305.     puts $_sfile "$_newscores"  
  306.     close $_sfile
  307.     return 0
  308. }
  309.  
  310. proc show_score {text} {
  311.     global rrscoresbyname rrscores playerstat
  312.     get_scores
  313.     set idx [lsearch -glob $rrscores "*,*,*,*,*,$text"]
  314.     putlog "[lindex $rrscores $idx]"
  315.     set _item [lindex $rrscores $idx]
  316.     set _nick [lindex [split $_item ,] 5]
  317.     set _win [lindex [split $_item ,] 0]
  318.     set _lost [lindex [split $_item ,] 1]
  319.     set _shots [lindex [split $_item ,] 2]
  320.     set _played [lindex [split $_item ,] 4]
  321.     set playerstat "$_nick \00307oynanan $_played oyun, \00309kazanilan $_win, \00304kaybedilen $_lost, \00313hedefe $_shots atis"
  322.     return
  323. }
  324.  
  325. proc showall {nick uhost handle chan arg} {
  326.     global botnick scorefile rrscoresbyname rrscorestotal rrscores rrranksbyname rrranksbynum
  327.     get_scores
  328.     set totallength 16
  329.     if {$rrscorestotal>0} {
  330.         putquick "PRIVMSG $nick :\00304*****************Roulette Scores**********************"
  331.         putquick "PRIVMSG $nick :\00304**| NickName        | Total |  Won  | Lost | Shots \00304|**"
  332.         putquick "PRIVMSG $nick :\00304**|-----------------|-------|-------|------|-------|**"
  333.         set i 0
  334.         while {$i<[expr [llength $rrscores] - 1]} {
  335.             set checked 0
  336.             set _item [lindex $rrscores $i]
  337.             set _nick [lindex [split $_item ,] 5]
  338.             set _win [lindex [split $_item ,] 0]
  339.             if {$_win < 10} {
  340.                 set _win "   $_win   "
  341.                 } elseif {$_win < 100} {
  342.                     set _win "   $_win  "
  343.                     }
  344.             set _lost [lindex [split $_item ,] 1]
  345.             if {$_lost < 10} {
  346.                 set _lost "   $_lost  "
  347.                 } elseif {$_lost < 100} {
  348.                     set _lost "  $_lost  "
  349.                     }
  350.             set _shots [lindex [split $_item ,] 2]
  351.             if {$_shots < 10} {
  352.                 set _shots "   $_shots   "
  353.                 } elseif {$_shots < 100} {
  354.                     set _shots "   $_shots  "
  355.                     }
  356.             set _played [lindex [split $_item ,] 4]
  357.             if {$_played < 10} {
  358.                 set _played "   $_played   "
  359.                 } elseif {$_played < 100} {
  360.                     set _played "   $_played  "
  361.                     }
  362.             set checknick [split $_nick ""]
  363.             set who [lindex [split $nick "|"] 0]
  364.             set who [lindex [split $who "_"] 0]
  365.             if {[string tolower $who] == [string tolower $_nick]} {set checked 1}
  366.             set long [llength $checknick]
  367.             set spaces ""
  368.             for {set i2 $long} {$i2 < $totallength} {incr i2} {
  369.                 append spaces " "
  370.             }
  371.             if {$checked == 1} {
  372.                 putquick "PRIVMSG $nick :\00304**| \00312$_nick$spaces\00304|\00312$_played\00304|\00312$_win\00304|\00312$_lost\00304|\00312$_shots\00304|**"
  373.             } else {
  374.                 putquick "PRIVMSG $nick :\00304**| \00310$_nick$spaces\00304|\00310$_played\00304|\00310$_win\00304|\00310$_lost\00304|\00310$_shots\00304|**"
  375.             }
  376.             incr i
  377.         }
  378.         putquick "PRIVMSG $nick :\00304********************End off list**********************"
  379.     }
  380.     return 0
  381. }
  382.  
  383.  
  384. proc show_player_score {nick host handle chan arg} {
  385.     global rrscoresbyname rrscores playerstat
  386.      if {$arg == ""} { set arg $nick } else { set arg [lindex [split $arg " "] 0] }
  387.      show_score $arg
  388.      puthelp "PRIVMSG $chan : $playerstat"
  389.      return 1    
  390. }
  391.  
  392. proc started {} {
  393.     putlog "starttimer ended"
  394. }
  395.  
  396.  
  397. proc tggamemsg {what} {global rrchannel;putquick "PRIVMSG $rrchannel :[tgbold]$what"}
  398. putlog "\Rus Ruleti Yuklendi."