私設SoS2オーナー応援BBS

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

スレッド

└◇1342:
顔画像変更 [醒夢] 11/19 18:50

 ├◇1345:Re:顔画像変更 [cosmos] 11/19 19:33
 │└◇1347:Re[2]:顔画像変更 [醒夢] 11/19 23:18
 └◇1346:Re:命中・回避アップ [cosmos] 11/19 19:58
  └◇1348:Re[2]:命中・回避アップ [醒夢] 11/19 23:37
   └◇1349:Re[3]:命中・回避アップ [moon] 11/20 00:25
    └◇1354:Re[4]:命中・回避アップ [醒夢] 11/20 12:27
     └◇1356:Re[5]:命中・回避アップ [moon] 11/20 20:52
      └◇1363:Re[6]:命中・回避アップ [醒夢] 11/21 18:35<-last


1342● 顔画像変更[ 醒夢 ] 2006 11/19 18:50
先日はありがとうございました。
無事販売数を追加できました。

http://www.honey.ne.jp/~yuya/sos/の顔画像選択を使わせて頂いているのですが、プレイ中に顔画像を変更できるコマンドを追加できませんかね?

あと、レティさんのレベルアップシステムと命中率・回避率システムを導入しているのですが、レベルアップで命中・回避を成長させたいのですがどうすればいいですかね


教えて君ですみませんが、どうかご教授をお願い致します。
スレッド一覧


1345● Re:顔画像変更[ cosmos ] 2006 11/19 19:33
ええと自分が答えるのもなんですが一様・・(何

> http://www.honey.ne.jp/~yuya/sos/の顔画像選択を使わせて頂いているのですが、プレイ中に顔画像を変更できるコマンドを追加できませんかね?

http://ks-karin.kiy.jp/ScriptofSagaII/sosII.htmlで公開されてますよ♪
スレッド一覧


1347● Re[2]:顔画像変更[ 醒夢 ] 2006 11/19 23:18
ありがとうございます。
変更できるようになりました。
スレッド一覧


1346● Re:命中・回避アップ[ cosmos ] 2006 11/19 19:58
> あと、レティさんのレベルアップシステムと命中率・回避率システムを導入しているのですが、レベルアップで命中・回避を成長させたいのですがどうすればいいですかね

については自分も他のステータスをレベルアップした時に上げられるようにしてます。その時の改造ですが・・

# Sub User Level Up Before #の
# 上昇する可能性のある能力の配列作成ここより
    if($sp =~ /Tf/){
        if($ak < $Max_ak){ push(@sts_up,"攻撃力") }
の下にでも

        if($hi < $Max_hi){ push(@sts_up,"命中") }
        if($ev < $Max_ev){ push(@sts_up,"回避") }

を追加

# Sub User Level Up After #

    }
    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;
    }
の下にでも

    }
    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;
    }

設定に
$Max_hi = 99;            # 命中限界値
$Max_ev = 99;            # 回避限界値
$stsup_hi_rvs = 3;        # 成長時命中力上昇値の乱数幅設定(設定値までの乱数で獲得経験値を決定)
$stsup_ev_rvs = 3;        # 成長時回避力上昇値の乱数幅設定(設定値までの乱数で獲得経験値を決定)

でいけると思います。

でも確かこのシステムは一つのフラグのみで2つの変数を格納しているからこれでいけるかどうかは自分もわかりません(汗
スレッド一覧


1348● Re[2]:命中・回避アップ[ 醒夢 ] 2006 11/19 23:37
ご回答ありがとうございます。

私もそういう風にすれば出来るかと思ったのですが無理でした。
やはり一つのフラグに二つの変数を格納しているというのがダメなんですかね?
でも、とあるサイトさんでは勝利数や敗北数を消費して命中・回避を上げる施設があるんですがね。原理は似ているから出来そうなんですが…。
スレッド一覧


1349● Re[3]:命中・回避アップ[ moon ] 2006 11/20 00:25
> 私もそういう風にすれば出来るかと思ったのですが無理でした。
> やはり一つのフラグに二つの変数を格納しているというのがダメなんですかね?

$quが該当パラメータだと思いますので、パラメータを参照または変更する前に、
  ($hi, $ev) = split(/△/, $qu);
パラメータを変更した後に、
  $qu = join('△', $hi, $ev);
を実行すれば反映されると思います。
スレッド一覧


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