私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇1354:
Re[4]:命中・回避アップ [醒夢] 11/20 12:27

 └◇1356:Re[5]:命中・回避アップ [moon] 11/20 20:52
  └◇1363:Re[6]:命中・回避アップ [醒夢] 11/21 18:35<-last


1354● Re[4]:命中・回避アップ[ 醒夢 ] 2006 11/20 12:27
レスありがとうございます。
こんな感じにしてみたのですがこれでいいのでしょうか?

# Sub Lv Form #
sub lv_form {
    &level_up_after if $Fm{'mode'} eq 'level_up_after';
    &header;
    &table_top;
    &level_up_before if $Fm{'mode'} eq 'level_up_before';
    &msg;
    &normal_action;
    &player_data;
    &table_bottom;
}

# Sub User Level Up Before #
sub level_up_before {
    @rcdlines = &get_user("$Fm{'id'}");
    $fg = 'LVB'; &userout;

    $next_exp = ($lv+1) * $exp_rvs;
    if($exp < $next_exp){ push (@msg,"経験値が足りません。次のレベルにはあと$next_exp-$expの経験値が必要です"); return }
($hi,$ev) = split(/△/,$qu);
# 上昇する可能性のある能力の配列作成ここより
    if($sp =~ /Tf/){
        if($ak < $Max_ak){ push(@sts_up,"攻撃力") }
        if($dd < $Max_dd){ push(@sts_up,"防御力") }
        if($hi < $Max_hi){ push(@sts_up,"命中率") }
        if($ev < $Max_ev){ push(@sts_up,"回避率") }
        if($xp < $Max_xp){ push(@sts_up,"HP") }
        if($xi < $Max_xi){ push(@sts_up,"所持数") }
    }else{
        if($xp < $Max_xp){ push(@sts_up,"体力") }
        if($xi < $Max_xi){ push(@sts_up,"所持数") }
    }
# ここまで
    $sts_up = @sts_up;
    if(!$sts_up){ push (@msg,'成長する能\力値がありません'); return }

    push (@msg,"成長させたい\能\力を選択し、$def_okボタンを押してください");

    &form('start'); print qq|<tr><td colspan=2>|;
    foreach (0 .. $#sts_up) {
        &input('radio','LVU',"$sts_up[$_]",'checked',''); print qq|$sts_up[$_]\n|;
    }

    &OKbuttoninform('n','level_up_after');
    print qq|</td></tr>|; &form('end');
}

# Sub User Level Up After #
sub level_up_after {
    @rcdlines = &get_user("$Fm{'id'}");
    return if $fg ne 'LVB';

    $next_exp = ($lv+1) * $exp_rvs;
    if($exp < $next_exp){ push (@msg,"経験値が足りません。次のレベルには$next_expの経験値が必要です"); return }

    if($Fm{'LVU'} eq "攻撃力"){
        $grow_up = int(rand($stsup_ak_rvs)+1);
        $Max_grow_up = $Max_ak - $ak;
        $grow_up = $Max_grow_up if $grow_up > $Max_grow_up;
        $ak += $grow_up;
    }
    elsif($Fm{'LVU'} eq "防御力"){
        $grow_up = int(rand($stsup_dd_rvs)+1);
        $Max_grow_up = $Max_dd - $dd;
        $grow_up = $Max_grow_up if $grow_up > $Max_grow_up;
        $dd += $grow_up;
    }
    elsif($Fm{'LVU'} eq "命中率"){
        $grow_up = int(rand($stsup_hi_rvs)+1);
        $Max_grow_up = $Max_hi - $hi;
        $grow_up = $Max_grow_up if $grow_up > $Max_grow_up;
        $hi += $grow_up;
    }
    elsif($Fm{'LVU'} eq "回避率"){
        $grow_up = int(rand($stsup_ev_rvs)+1);
        $Max_grow_up = $Max_ev - $ev;
        $grow_up = $Max_grow_up if $grow_up > $Max_grow_up;
        $ev += $grow_up;
    }
    elsif($Fm{'LVU'} eq "HP"){
        $grow_up = int(rand($stsup_xp_rvs)+1);
        $Max_grow_up = $Max_xp - $xp;
        $grow_up = $Max_grow_up if $grow_up > $Max_grow_up;
        $xp += $grow_up;
    }
    elsif($Fm{'LVU'} eq "所持数"){
        $grow_up = int(rand($stsup_xi_rvs)+1);
        $Max_grow_up = $Max_xi - $xi;
        $grow_up = $Max_grow_up if $grow_up > $Max_grow_up;
        $xi += $grow_up;
    }
  $qu = join('△', $hi, $ev);
    push (@msg,"LvUP!$Fm{'LVU'}が$grow_up上がった!");

    $exp -= $next_exp;
    $lv++;

    $fg = ''; &userout;
}
1;
スレッド一覧


1356● Re[5]:命中・回避アップ[ moon ] 2006 11/20 20:52
> こんな感じにしてみたのですがこれでいいのでしょうか?

splitとjoinしか見ていませんが、sub level_up_afterでsplitしていないようです。
スレッド一覧


1363● Re[6]:命中・回避アップ[ 醒夢 ] 2006 11/21 18:35
ありがとうございます!
無事上げる事が出来ました。
仰る通りafterの方にsplitを入れていなかったのが問題だったようです。
スレッド一覧

CGIROOM