diff --git a/Irpg/Action.pm b/Irpg/Action.pm index 47e3fb28ad601c8987a071525132344b0b5ce96b..bf5f0d57ce512fb9b621b3df340fc426866e85b9 100644 --- a/Irpg/Action.pm +++ b/Irpg/Action.pm @@ -238,20 +238,22 @@ sub perform_action { my $p2def = eval '$rps->{$p2}{class}->'.$action_type.'_def()'; my $p1sum = itemsum($p1,1); my $p2sum = itemsum($p2,1); - my $p1roll = int(0.5 + rand($p1sum) * $p1atk); - my $p2roll = int(0.5 + rand($p2sum) * $p2def); + my $p1roll = int(rand($p1sum));# * $p1atk); + my $p2roll = int(rand($p2sum));# * $p2def); my $ret; if ($p1roll < 5 || $p2roll < 5 || $p1sum < 5 || $p2roll < 5) { $ret = {p1sum=>$p1sum, p2sum=>$p2sum, p1roll=>$p1roll, p2roll=>$p2roll, + p1atk=>$p1atk, p2def=>$p2def, vict=>0}; } else { $ret = {p1sum=>int(0.5+$p1sum/5), p2sum=>int(0.5+$p2sum/5), p1roll=>int(0.5+$p1roll/5), p2roll=>int(0.5+$p2roll/5), + p1atk=>$p1atk, p2def=>$p2def, vict=>0}; } - if ($p1roll >= $p2roll) { + if ($p1roll*$p1atk >= $p2roll*$p2def) { # VICTORY $ret->{vict}++; my $align_mod = $rps->{$p1}{alignment} eq 'Good' ? 0.05 : @@ -274,8 +276,8 @@ sub challenge_opp { # pit argument player against random player my $action_type = choose_action($p1); my $ret_action = perform_action($p1, $p2, $action_type); my $res_action = eval $action_type.'_result($p1, $p2, $ret_action->{vict})'; - my $p1_res = "[$ret_action->{p1roll}/$ret_action->{p1sum}]"; - my $p2_res = "[$ret_action->{p2roll}/$ret_action->{p2sum}]"; + my $p1_res = "[$ret_action->{p1roll}*$ret_action->{p1atk}/$ret_action->{p1sum}]"; + my $p2_res = "[$ret_action->{p2roll}*$ret_action->{p2def}/$ret_action->{p2sum}]"; my $mesg = ''; if ($action_type eq 'fight') { @@ -302,8 +304,8 @@ sub collision_action { my $ret_action = perform_action($p1, $p2, $action_type); my $res_action = eval $action_type.'_result($p1, $p2, $ret_action->{vict})'; - my $p1_res = "[$ret_action->{p1roll}/$ret_action->{p1sum}]"; - my $p2_res = "[$ret_action->{p2roll}/$ret_action->{p2sum}]"; + my $p1_res = "[$ret_action->{p1roll}*$ret_action->{p1atk}/$ret_action->{p1sum}]"; + my $p2_res = "[$ret_action->{p2roll}*$ret_action->{p2def}/$ret_action->{p2sum}]"; my $mesg = "$p1 $p1_res has come upon $p2 $p2_res and "; if ($action_type eq 'fight') { $mesg .= ($ret_action->{vict} ? @@ -456,8 +458,8 @@ sub do_action { my $ret_action = perform_action($p1, $p2, $action_type); my $res_action = eval $action_type.'_result($p1, $p2, $ret_action->{vict}, 1)'; - my $p1_res = "[$ret_action->{p1roll}/$ret_action->{p1sum}]"; - my $p2_res = "[$ret_action->{p2roll}/$ret_action->{p2sum}]"; + my $p1_res = "[$ret_action->{p1roll}*$ret_action->{p1atk}/$ret_action->{p1sum}]"; + my $p2_res = "[$ret_action->{p2roll}*$ret_action->{p2def}/$ret_action->{p2sum}]"; my $mesg = ''; if ($action_type eq 'fight') { diff --git a/Irpg/Classes/Farmer.pm b/Irpg/Classes/Farmer.pm index 1123b223ddfe106bf17bec16eddcd73f5aaed8c3..1002cedcdd611c37baff3d6b36865c148b92d360 100644 --- a/Irpg/Classes/Farmer.pm +++ b/Irpg/Classes/Farmer.pm @@ -109,6 +109,4 @@ sub real_lvl { return CORE::int($lvl); } - - 1; diff --git a/Irpg/Main.pm b/Irpg/Main.pm index 40907687f7b8b0a4fdfcc8a53cda2218a1538b57..c91c535b59bf87aa67ccd4e23b87684c0dcbaecf 100644 --- a/Irpg/Main.pm +++ b/Irpg/Main.pm @@ -312,8 +312,10 @@ sub rpcheck { # check levels, update database if ($rps->{$k}{online} && exists $rps->{$k}{nick} && $rps->{$k}{nick} && exists $onchan{$rps->{$k}{nick}}) { $rps->{$k}{next} -= ($curtime - $$lasttime_ref); - $rps->{$k}{next_a} -= ($curtime - $$lasttime_ref); - $rps->{$k}{next_a} = 0 if ($rps->{$k}{next_a} < 0); + $rps->{$k}{next_a} = map { $_ - ($curtime - $$lasttime_ref) } + $rps->{$k}{next_a}; + #$rps->{$k}{next_a} -= ($curtime - $$lasttime_ref); + #$rps->{$k}{next_a} = 0 if ($rps->{$k}{next_a} < 0); $rps->{$k}{idled} += ($curtime - $$lasttime_ref); if ($rps->{$k}{next} < 1) { $rps->{$k}{level}++; @@ -446,11 +448,11 @@ sub parse { } } elsif ($arg[1] eq 'part') { - if (defined($username)) { - $rps->{$username}{online}=0; - penalize($username,"part"); - } - delete($onchan{$usernick}) if ($opts->{botchan} eq substr($arg[2], 1)); + if (defined($username)) { + $rps->{$username}{online}=0; + penalize($username,"part"); + } + delete($onchan{$usernick}) if ($opts->{botchan} eq substr($arg[2], 1)); } elsif ($arg[1] eq 'kick') { $usernick = $arg[3]; @@ -520,12 +522,12 @@ sub parse { } elsif ($arg[1] eq '307') { # 307 is the line of /WHOIS which exists if the user is registered - my @persos = grep { $rps->{$_}{nick} eq $arg[3] } keys %$rps; - return unless (@persos); - my $char_name = $persos[0]; - foreach (@persos) { - $char_name = $_ if $rps->{$_}{lastlogin} > $rps->{$char_name}{lastlogin}; - } + my @persos = grep { $rps->{$_}{nick} eq $arg[3] } keys %$rps; + return unless (@persos); + my $char_name = $persos[0]; + foreach (@persos) { + $char_name = $_ if $rps->{$_}{lastlogin} > $rps->{$char_name}{lastlogin}; + } $rps->{$char_name}{online} = 1; Irpg::Irc::chanmsg("Logged in registered user $arg[3] as $char_name."); } diff --git a/Irpg/Users.pm b/Irpg/Users.pm index aebe2cd889f432717a29860061c5ecf8402e4196..22fb0401271ef1b7cf2aceb876b8dad9830f8b8b 100644 --- a/Irpg/Users.pm +++ b/Irpg/Users.pm @@ -357,11 +357,12 @@ sub points { if (!@arg) { Irpg::Irc::privmsg("Your raw competences are the following: ". join(', ', map { uc($_)." $rps->{$username}{stats}{$_}" } - qw(str con int wis cha dex)).".", $source); + qw(str con int wis cha dex))." ". + "You have $rps->{$username}{points} point(s) available.", $source); return; } if (@arg != 2 || $arg[1] !~ m/^\d+$/) { - Irpg::Irc::notice("Try: POINTS <stat> <n>",$usernick); + Irpg::Irc::notice("Try: POINTS [<stat> <n>]",$usernick); return; } my ($stat, $n) = @arg;