diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | data/docs/2 | 23 | ||||
-rw-r--r-- | lib/Multi/IRC.pm | 16 |
3 files changed, 29 insertions, 12 deletions
@@ -1,4 +1,4 @@ -git - ? +2.7 - 2009-09-24 - Improved styling of the threeboxes layout - Blacklist a users' votes from the VN vote statistics - usermods can browse a users' votes and list even when they are hidden diff --git a/data/docs/2 b/data/docs/2 index 77a66169..3f402aab 100644 --- a/data/docs/2 +++ b/data/docs/2 @@ -3,11 +3,24 @@ :SUB:When to add a visual novel <p> - A visual novel should be added if the visual novel and/or adventure (VN/ADV) - parts play an important part of the game (more than one-third), or the VN/ADV - parts have great consequences on the outcome of the game.<br /> - If a game is an official fandisk or sidedisk, it should also be added for - completeness. + To be included in this database, a game needs to use the novel narrative + consistently for telling its story. Examples include describing <a + href="http://s.vndb.org/sf/58/258.jpg">visuals</a>, <a + href="http://s.vndb.org/sf/63/2663.jpg">events</a>, <a + href="http://s.vndb.org/sf/74/274.jpg">character actions</a> or <a + href="http://s.vndb.org/sf/49/449.jpg">thoughts</a>. This storytelling needs to + be employing one of the known Visual Novel presentation methods such as <a + href="http://s.vndb.org/sf/40/3440.jpg">ADV</a>, <a + href="http://s.vndb.org/sf/52/3152.jpg">NVL</a> and their <a + href="http://s.vndb.org/sf/39/339.jpg">variations</a>.<br /> + <br /> + A game that 'feels' like a VN even though it has another function than strickly + narrating a story (such as, highly interactive simulation) may qualify if it's + either told entirely in ADV/NVL style or has its other gameplay elements + clearly subordinated to the textual elements (presented in ADV/NVL style) (ie. + action scenes in 3D games cannot be argued to be subordinated to their textual + elements as the visuals are clearly the 'point' of the game; The completely + optional low-graphic 'dungeons' in Princess Maker games would be). </p> :SUB:General info diff --git a/lib/Multi/IRC.pm b/lib/Multi/IRC.pm index 4f417083..5018d2aa 100644 --- a/lib/Multi/IRC.pm +++ b/lib/Multi/IRC.pm @@ -190,7 +190,7 @@ sub irc_001 { sub irc_public { # mask, dest, msg - $_[HEAP]{idlequotes}{$_[ARG1][0]} = 0; + $_[HEAP]{idlequotes}{ lc($_[ARG1][0]) } = 0; return if $_[KERNEL]->call($_[SESSION] => command => @_[ARG0..$#_]); $_[KERNEL]->call($_[SESSION] => vndbid => $_[ARG1], $_[ARG2]); } @@ -223,11 +223,14 @@ sub command { # mask, dest, msg my $lvl = $_[HEAP]{commands}{$cmd} & ~8; my $usr = parse_user($mask); + my $ulvl = grep(matches_mask($_, $mask), @{$_[HEAP]{masters}}) ? 2 : + ($irc->is_channel_operator($_[HEAP]{channels}[0], $usr) || $irc->is_channel_owner($_[HEAP]{channels}[0], $usr)) ? 1 : 0; + return $_[KERNEL]->yield(reply => $dest, $dest->[0] eq $_[HEAP]{channels}[0] ? 'Only OPs can do that!' : "Only $_[HEAP]{channel}[0] OPs can do that!", $usr) || 1 - if $lvl == 1 && !$irc->is_channel_operator($_[HEAP]{channels}[0], $usr); + if $lvl == 1 && $ulvl < 1; return $_[KERNEL]->yield(reply => $dest, 'You are not my master!', $usr) || 1 - if $lvl == 2 && !grep matches_mask($_, $mask), @{$_[HEAP]{masters}}; + if $lvl == 2 && $ulvl < 2; return $_[KERNEL]->yield('cmd_'.$cmd, $usr, $dest, $arg, $mask) || 1; } @@ -237,7 +240,7 @@ sub idlequote { for (keys %{$_[HEAP]{idlequotes}}) { next if --$_[HEAP]{idlequotes}{$_} > 0; $_[KERNEL]->yield(cmd_quote => '', [$_]) if $_[HEAP]{idlequotes}{$_} == 0; - $_[HEAP]{idlequotes}{$_} = int(60+rand(300)); + $_[HEAP]{idlequotes}{$_} = int(120+rand(600)); } $_[KERNEL]->delay(idlequote => 60); } @@ -270,7 +273,7 @@ sub notify { # name, pid, payload LEFT JOIN releases_rev rr ON c.type = 1 AND c.id = rr.id LEFT JOIN producers_rev pr ON c.type = 2 AND c.id = pr.id JOIN users u ON u.id = c.requester - WHERE c.id > ? + WHERE c.id > ? AND c.requester <> 1 ORDER BY c.added| : $_[ARG0] eq 'newpost' ? q|SELECT 't' AS type, tp.tid AS id, tp.num AS rev, t.title, u.username, tp.date AS lastpost, |.GETBOARDS.q| @@ -292,7 +295,7 @@ sub notify { # name, pid, payload sub notify_result { # num, res return if $_[ARG0] < 1; - my $r = $_[ARG1][0]; + my $r = $_[ARG1][$#{$_[ARG1]}]; $_[HEAP]{lastrev} = $r->{lastrev} if $r->{lastrev}; $_[HEAP]{lastpost} = $r->{lastpost} if $r->{lastpost}; $_[HEAP]{lasttag} = $r->{lasttag} if $r->{lasttag}; @@ -558,6 +561,7 @@ sub formatid { push @msg, RED.'By'.NORMAL.' '.$_->{username} if $_->{username}; # (only if comments key is present) Summary: + $_->{comments} =~ s/\n/ /g if $_->{comments}; push @msg, RED.'Summary:'.NORMAL.' '.( length $_->{comments} > 40 ? substr($_->{comments}, 0, 37).'...' : $_->{comments} ) if defined $_->{comments}; |