Mercurial > hg > scripts
comparison teh-lol.pl @ 18:acd4783e6bd1
Lols have to be at the beginning, one more qualifier, a cheating loller ruinds the combo
author | Jordi Gutiérrez Hermoso <jordigh@gmail.com> |
---|---|
date | Sun, 30 Jan 2011 16:55:09 -0600 |
parents | 8a1f549776fa |
children | a7406b7600ab |
comparison
equal
deleted
inserted
replaced
17:8a1f549776fa | 18:acd4783e6bd1 |
---|---|
92 my %prev_loller; | 92 my %prev_loller; |
93 | 93 |
94 sub check_combo { | 94 sub check_combo { |
95 my $chan = Xchat::get_info("channel"); | 95 my $chan = Xchat::get_info("channel"); |
96 my $msg = $_[0][1]; | 96 my $msg = $_[0][1]; |
97 my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l/i; | 97 my $islol = $msg =~ /^\s*l((o|(?<!l)lo)+)l\b/i; |
98 if(not $islol) { | 98 if(not $islol) { |
99 my $combo = $combo_count{$chan}; | 99 my $combo = $combo_count{$chan}; |
100 | 100 |
101 # We have a combo to report! | 101 # We have a combo to report! |
102 if($combo > 2) { | 102 if($combo > 2) { |
103 my $qualifier; | 103 my $qualifier; |
104 if($combo == 3) { | 104 if($combo == 3) { |
105 $qualifier = "Good"; | 105 $qualifier = "Good"; |
106 } | 106 } |
107 elsif ($combo > 3 and $combo < 5) { | 107 elsif ($combo > 3 and $combo <= 5) { |
108 $qualifier = "Great"; | 108 $qualifier = "Great"; |
109 } | 109 } |
110 else{ | 110 elsif ($combo > 5 and $combo <= 10) { |
111 $qualifier = "Marvelous"; | 111 $qualifier = "Marvelous"; |
112 } | |
113 else { | |
114 $qualifer = "M-M-M-MONSTER COMBO!"; | |
112 } | 115 } |
113 my $report = "$combo-lol combo! $qualifier!"; | 116 my $report = "$combo-lol combo! $qualifier!"; |
114 | 117 |
115 my $delay = (rand(3) + 1)*1e3; | 118 my $delay = (rand(3) + 1)*1e3; |
116 Xchat::hook_timer($delay, | 119 Xchat::hook_timer($delay, |
124 $combo_count{$chan} = 0; | 127 $combo_count{$chan} = 0; |
125 $prev_loller{$chan} = ""; | 128 $prev_loller{$chan} = ""; |
126 } | 129 } |
127 else { | 130 else { |
128 my $loller = $_[0][0]; | 131 my $loller = $_[0][0]; |
129 if( not $loller eq $prev_loller{$chan}) { | 132 |
133 #A loller trying to cheat ruins the combo for everyone | |
134 if( $loller eq $prev_loller{$chan}) { | |
135 $combo_count{$chan} = 0; | |
136 } | |
137 else { | |
130 $combo_count{$chan}++; | 138 $combo_count{$chan}++; |
131 $prev_loller{$chan} = $loller; | |
132 } | 139 } |
140 | |
141 $prev_loller{$chan} = $loller; | |
133 } | 142 } |
134 | 143 |
135 return Xchat::EAT_NONE; | 144 return Xchat::EAT_NONE; |
136 } | 145 } |
137 | 146 |