Mercurial > hg > scripts
changeset 16:895bcfde1df4
Fix bugs, ensure a single person can't combo
author | Jordi Gutiérrez Hermoso <jordigh@gmail.com> |
---|---|
date | Sun, 30 Jan 2011 16:34:37 -0600 |
parents | 0d8587643fc6 |
children | 8a1f549776fa |
files | teh-lol.pl |
diffstat | 1 files changed, 23 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/teh-lol.pl +++ b/teh-lol.pl @@ -88,36 +88,51 @@ } my $prev_msg = ""; -my %chan_combo_count; +my %combo_count; +my %prev_loller; sub check_combo { my $chan = Xchat::get_info("channel"); my $msg = $_[0][1]; my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l/i; if(not $islol) { - my $combo = $chan_combo_count{$chan}; + my $combo = $combo_count{$chan}; # We have a combo to report! if($combo > 2) { my $qualifier; - if($combo == 3){ + if($combo == 3) { $qualifier = "Good"; } - else if ($combo > 3 and $combo < 5) { + elsif ($combo > 3 and $combo < 5) { $qualifier = "Great"; } else{ $qualifier = "Marvelous"; } my $report = "$combo-lol combo! $qualifier!"; - Xchat::command("say $report"); - return Xchat::REMOVE; + + my $delay = (rand(3) + 1)*1e3; + Xchat::hook_timer($delay, + sub { + Xchat::command("say $report"); + return Xchat::REMOVE; + } + ); } - $chan_combo_count{$chan} = 0; + + $combo_count{$chan} = 0; + $prev_loller{$chan} = ""; } else { - $chan_combo_count{$chan}++; + my $loller = $_[0][0]; + print $loller; # debug + if( not $loller eq $prev_loller{$chan}) { + $combo_count{$chan}++; + $prev_loller{$chan} = $loller; + } } + return Xchat::EAT_NONE; }