私設SoS2オーナー応援BBS

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

スレッド

└◇1683:
行動値システム [rien] 04/12 21:57

 └◇1684:Re:行動値システム [moon] 04/12 23:06
  └◇1685:Re[2]:行動値システム [rien] 04/12 23:47
   └◇1686:Re[3]:行動値システム [moon] 04/13 22:55
    └◇1687:Re[4]:行動値システム [rien] 04/14 00:21
     └◇1688:Re[5]:行動値システム [moon] 04/14 08:14
      └◇1690:Re[6]:行動値システム [rien] 04/14 12:31
       └◇1691:Re[7]:行動値システム [moon] 04/14 20:58
        └◇1692:Re[8]:行動値システム [rien] 04/15 11:32
         └◇1693:Re[9]:行動値システム [moon] 04/15 22:51
          └◇1694:Re[10]:行動値システム [rien] 04/16 00:19
           └◇1696:Re[11]:行動値システム [moon] 04/16 22:04
            └◇1697:Re[12]:行動値システム [rien] 04/17 00:31<-last


1683● 行動値システム[ rien ] 2009 04/12 21:57
いつもお世話になります。
また、分からないところが出てきてしまって・・
前回(といってもだいぶたっているのですが・・
レティさんの行動値システムを導入した際に探索と戦闘時に行動値を使うように設定したのですが、
この時に、行動値と同時に体力も減るようにしたいのですが。。
この場合はどう直したらよいのでしょうか・・。

もう1つなのですが行動値の最大値をステラのステータスアップで増やせるようにしたいと思うのですが
どこを直したらいいのか・・分からなくて

すみません・・よかったら教えていただきたいのです。
よろしくお願い致します。
スレッド一覧


1684● Re:行動値システム[ moon ] 2009 04/12 23:06
> 前回(といってもだいぶたっているのですが・・
> レティさんの行動値システムを導入した際に探索と戦闘時に行動値を使うように設定したのですが、
> この時に、行動値と同時に体力も減るようにしたいのですが。。
> この場合はどう直したらよいのでしょうか・・。

行動値を減らしている処理付近に体力を減らす処理を追加すれば良いと思います。
ただし、単純に$hp--;のようにすると元の体力によっては0以下になってしまうので体力が2以上の場合だけ減少させる($hp-- if($hp > 1);)などの何らかの手間をかける必要があります。

> もう1つなのですが行動値の最大値をステラのステータスアップで増やせるようにしたいと思うのですが
> どこを直したらいいのか・・分からなくて

最大値がシステム全体で同一($MaxAp)のようですので、まずはプレイヤーデータに最大値を保持する新しいパラメータを追加します。
そして、ソースコードで$MaxApを使用している箇所をプレイヤーごとの最大値が使用されるように修正します。
ここまでが前準備で、ステラツィオで増やせるようにするのには@sdtlines、@smglines、sub stell_compを他のステータスアップを参考にして修正します。
スレッド一覧


1685● Re[2]:行動値システム[ rien ] 2009 04/12 23:47

> 行動値を減らしている処理付近に体力を減らす処理を追加すれば良いと思います。
> ただし、単純に$hp--;のようにすると元の体力によっては0以下になってしまうので体力が2以上の場合だけ減少させる($hp-- if($hp > 1);)などの何らかの手間をかける必要があります。

すみません・・・ここの部分がよく分からなくて詳しく教えてもらってもよいでしょうか??
体力を減らす処理をどう追加してよいのかわからず・・
戦闘の部分だと今は
>>if ($hp <= 2)     { push (@msg,'戦闘できる体力がありません'); return }
    if ($dap <$Ap_fight){ push (@msg,'行動値が足りません'); return }
とこうなっているのですが・・・if ($hp <= 2)の部分を置き換えたりすればよいのでしょうか??


> 最大値がシステム全体で同一($MaxAp)のようですので、まずはプレイヤーデータに最大値を保持する新しいパラメータを追加します。
> そして、ソースコードで$MaxApを使用している箇所をプレイヤーごとの最大値が使用されるように修正します。
> ここまでが前準備で、ステラツィオで増やせるようにするのには@sdtlines、@smglines、sub stell_compを他のステータスアップを参考にして修正します。

こっちについては知識が全然足りないようでどこから手をつけたらよいのか分からないので
諦めることにします。
教えてくださったのにすみません・・・。
スレッド一覧


1686● Re[3]:行動値システム[ moon ] 2009 04/13 22:55
>
> > 行動値を減らしている処理付近に体力を減らす処理を追加すれば良いと思います。
> > ただし、単純に$hp--;のようにすると元の体力によっては0以下になってしまうので体力が2以上の場合だけ減少させる($hp-- if($hp > 1);)などの何らかの手間をかける必要があります。
>
> すみません・・・ここの部分がよく分からなくて詳しく教えてもらってもよいでしょうか??
> 体力を減らす処理をどう追加してよいのかわからず・・
> 戦闘の部分だと今は
> >>if ($hp <= 2)     { push (@msg,'戦闘できる体力がありません'); return }
>     if ($dap <$Ap_fight){ push (@msg,'行動値が足りません'); return }
> とこうなっているのですが・・・if ($hp <= 2)の部分を置き換えたりすればよいのでしょうか??

戦闘ですと「$dap -=$Ap_fight;」を追加したと思いますが、ここが行動値を減らす処理ですのでこの次にでも以下を追加すれば良いです。
  $hp-- if($hp > 1);
この場合は戦闘後に体力が2以上の場合しか体力が減少しませんので、必ず減少させる場合は上記の場所ではなく以下の間(データ読み込みからダメージ処理までの間)に追加すれば良いです。
  @rcdlines = &get_user("$Fm{'id'}");
    〜
  if ($result == 1) {
スレッド一覧


1687● Re[4]:行動値システム[ rien ] 2009 04/14 00:21

> 戦闘ですと「$dap -=$Ap_fight;」を追加したと思いますが、ここが行動値を減らす処理ですのでこの次にでも以下を追加すれば良いです。
>   $hp-- if($hp > 1);
> この場合は戦闘後に体力が2以上の場合しか体力が減少しませんので、必ず減少させる場合は上記の場所ではなく以下の間(データ読み込みからダメージ処理までの間)に追加すれば良いです。
>   @rcdlines = &get_user("$Fm{'id'}");
>     〜
>   if ($result == 1) {

お返事ありがとうございます。
上のようにやってみました。if ($result == 1) {の上に$hp-- if($hp > 1);を追加してみました)
体力が減るようになったのですが、勝ってダメージが出ない時も減っていて
負け、引き分け時のダメージが発生する時もそれ以上の体力が減ってしまっているようです。
ダメージ分だけ減るようにするにはどこを直したらよいのでしょうか・・・。

追加になってしまうのですが、レティさんの行動値システムだと迎撃側の行動値も減ってしまうようで・・・
迎撃側は減らないようにすることはできますか?
どこを直せばよいのかわからなくて・・・
すみませんが、よろしくお願いします。
スレッド一覧


1688● Re[5]:行動値システム[ moon ] 2009 04/14 08:14
>
> > 戦闘ですと「$dap -=$Ap_fight;」を追加したと思いますが、ここが行動値を減らす処理ですのでこの次にでも以下を追加すれば良いです。
> >   $hp-- if($hp > 1);
> > この場合は戦闘後に体力が2以上の場合しか体力が減少しませんので、必ず減少させる場合は上記の場所ではなく以下の間(データ読み込みからダメージ処理までの間)に追加すれば良いです。
> >   @rcdlines = &get_user("$Fm{'id'}");
> >     〜
> >   if ($result == 1) {
>
> お返事ありがとうございます。
> 上のようにやってみました。if ($result == 1) {の上に$hp-- if($hp > 1);を追加してみました)
> 体力が減るようになったのですが、勝ってダメージが出ない時も減っていて
> 負け、引き分け時のダメージが発生する時もそれ以上の体力が減ってしまっているようです。
> ダメージ分だけ減るようにするにはどこを直したらよいのでしょうか・・・。

ダメージ分だけ減るように、とはどのようにしたいのでしょうか?(ダメージが2倍という意味ではないですよね・・・)

> 追加になってしまうのですが、レティさんの行動値システムだと迎撃側の行動値も減ってしまうようで・・・
> 迎撃側は減らないようにすることはできますか?
> どこを直せばよいのかわからなくて・・・
> すみませんが、よろしくお願いします。

改造方法を見た限りだと挑戦側しか減っていないように思うのですが・・・。
sub fightで$pdapが使われていますか?
スレッド一覧


1690● Re[6]:行動値システム[ rien ] 2009 04/14 12:31
> ダメージ分だけ減るように、とはどのようにしたいのでしょうか?(ダメージが2倍という意味ではないですよね・・・)

お返事ありがとうございます。
すみません、説明不足でした。
戦闘のダメージ以外にも体力が減っている状態です。
昨日の時点ではダメージ以外にも体力が減っている状態としか分からなかったのですが
いろいろ試してみて、どうやら戦闘のダメージ+1(戦闘ダメージが3だとすると体力が4減っています
だと分かりました(確定ではないのですが恐らくは。
なので戦闘を行うと1減るということになってしまっているのでしょうか・・?
戦闘ダメージ関係でもう1つわからないことがあって・・・
引き分け時にダメージが3減っているのですが・・上の条件だとすると本来は2なのかもしれないですが・・
これをダメージ1に統一したいのですが、できますでしょうか?
いろいろいじってみたのですが、うまく出来ませんでした。

> 改造方法を見た限りだと挑戦側しか減っていないように思うのですが・・・。
> sub fightで$pdapが使われていますか?
すみません・・こちらの見間違いでした。
設定で戦闘者と迎撃者と勘違いしました。
それとは別に戦闘行うことで行動値が0になってしまっていたようで(迎撃側
これはなんとか直すことができました。
ご迷惑おかけしてすみません。
スレッド一覧


1691● Re[7]:行動値システム[ moon ] 2009 04/14 20:58
> > ダメージ分だけ減るように、とはどのようにしたいのでしょうか?(ダメージが2倍という意味ではないですよね・・・)
>
> お返事ありがとうございます。
> すみません、説明不足でした。
> 戦闘のダメージ以外にも体力が減っている状態です。
> 昨日の時点ではダメージ以外にも体力が減っている状態としか分からなかったのですが
> いろいろ試してみて、どうやら戦闘のダメージ+1(戦闘ダメージが3だとすると体力が4減っています
> だと分かりました(確定ではないのですが恐らくは。
> なので戦闘を行うと1減るということになってしまっているのでしょうか・・?

はい、そのようになっています。
行動値と同時に体力も減るようにする、ということでしたので。

ダメージを受けた場合は行動値と一緒の体力を減らさない、ということなのでしょうか?
この場合は、厳密に行うとアイテムによる回復も考えないといけなくなり若干面倒なので「戦闘後の体力が戦闘前以上の場合に体力を減らす」というようにしたほうが良いです。
この場合は以下のようにします。
1. 「if ($result == 1) {」の上に「my $old_hp = $hp;」を追加。
2. 「if (!$php) { $kl++ };」の上に「$hp-- if($hp >= $old_hp && $hp > 1);」を追加。
  ※ $hp > 1の条件は必要無いはずですが念の為残してあります。

> 戦闘ダメージ関係でもう1つわからないことがあって・・・
> 引き分け時にダメージが3減っているのですが・・上の条件だとすると本来は2なのかもしれないですが・・
> これをダメージ1に統一したいのですが、できますでしょうか?
> いろいろいじってみたのですが、うまく出来ませんでした。

引き分けは$result == 0の時ですが、通常はこのifブロックの中で$hp--として体力を1減らしています。
おそらくはこのあたりが変わっているのだと思いますので、(マシマロさんの分割版の)オリジナルと見比べたほうが良いと思います。
スレッド一覧


1692● Re[8]:行動値システム[ rien ] 2009 04/15 11:32

> はい、そのようになっています。
> 行動値と同時に体力も減るようにする、ということでしたので。
>
> ダメージを受けた場合は行動値と一緒の体力を減らさない、ということなのでしょうか?
> この場合は、厳密に行うとアイテムによる回復も考えないといけなくなり若干面倒なので「戦闘後の体力が戦闘前以上の場合に体力を減らす」というようにしたほうが良いです。
> この場合は以下のようにします。
> 1. 「if ($result == 1) {」の上に「my $old_hp = $hp;」を追加。
> 2. 「if (!$php) { $kl++ };」の上に「$hp-- if($hp >= $old_hp && $hp > 1);」を追加。
>   ※ $hp > 1の条件は必要無いはずですが念の為残してあります。

すみません・・説明不足というか理解不足でご迷惑をおかけして・・
行動値と体力を一緒に減らすようにと思ったのは漠然と探索のイメージでした。
今思うと戦闘とか探索とか記述しないとわかりませんよね・・申し訳ありません。
戦闘の場合はダメージだけ減らすというようにはできますか?
例えば1回の戦闘を行いBダメージを受けて敗北した場合だと
行動値が1回行動分減り体力が3減るようにしたいのです。
ダメージを受けない場合は体力は減らず、行動値のみ減るという感じなのですが・・


> 引き分けは$result == 0の時ですが、通常はこのifブロックの中で$hp--として体力を1減らしています。
> おそらくはこのあたりが変わっているのだと思いますので、(マシマロさんの分割版の)オリジナルと見比べたほうが良いと思います。

こちらで、マシマロさんのオリジナルと見比べたところ
どちらも
Sub Fight内
if ($result == 0) { &fmsg('引'); $hp-- }
と記述されてたのですが・・見るべきところはココではないのでしょうか・・

なんどもすみません・・よろしくお願いします。
スレッド一覧


1693● Re[9]:行動値システム[ moon ] 2009 04/15 22:51
> すみません・・説明不足というか理解不足でご迷惑をおかけして・・
> 行動値と体力を一緒に減らすようにと思ったのは漠然と探索のイメージでした。
> 今思うと戦闘とか探索とか記述しないとわかりませんよね・・申し訳ありません。
> 戦闘の場合はダメージだけ減らすというようにはできますか?
> 例えば1回の戦闘を行いBダメージを受けて敗北した場合だと
> 行動値が1回行動分減り体力が3減るようにしたいのです。
> ダメージを受けない場合は体力は減らず、行動値のみ減るという感じなのですが・・

1. 1回の戦闘を行いBダメージを受けて敗北した場合だと行動値が1回行動分減り体力が3減る
2. ダメージを受けない場合は体力は減らず、行動値のみ減る
以下の意味であっていますか?
  1.は合計6の体力が減るということではなくダメージによる3だけ減り行動値も減る、ということ。
  2.は1.で0ダメージの場合のため行動値だけ減る、ということ。
そうすると両方とも行動値の改造を行った直後の動作のはずです。(ただし、引き分け時は除く。)

どのような動作にしたいのかがいまいち掴めないので、以下のようなかんじで行動の前後で体力と行動値がどのようになっているのかをまとめていただけると助かります。
なお、とりあえず戦闘前の体力は10、行動値は20、戦闘に必要な行動値は5としてください。
・勝利、ダメージ0 → 戦闘後の体力?、行動値?
・勝利、ダメージ3 → 戦闘後の体力?、行動値?
・敗北、ダメージ0 → 戦闘後の体力?、行動値?
・敗北、ダメージ3 → 戦闘後の体力?、行動値?
・引き分け、ダメージ1 → 戦闘後の体力?、行動値?

> > 引き分けは$result == 0の時ですが、通常はこのifブロックの中で$hp--として体力を1減らしています。
> > おそらくはこのあたりが変わっているのだと思いますので、(マシマロさんの分割版の)オリジナルと見比べたほうが良いと思います。
>
> こちらで、マシマロさんのオリジナルと見比べたところ
> どちらも
> Sub Fight内
> if ($result == 0) { &fmsg('引'); $hp-- }
> と記述されてたのですが・・見るべきところはココではないのでしょうか・・
>
> なんどもすみません・・よろしくお願いします。

他に$result==0として判断している箇所がありましたらそこも確認する必要があります。
これが見付からない場合はfight.pl内を$hpで検索して$result==0以外で$hpを減らしている箇所を探してみてください。
それでも原因箇所が特定できない場合はsub fightの各所に「push(@msg, "(1)$hp");」((1)と書いた部分は適宜変更)を書いて動作させ、どこで余計な減少処理を行っているのかを特定してください。
スレッド一覧


1694● Re[10]:行動値システム[ rien ] 2009 04/16 00:19

> 1. 1回の戦闘を行いBダメージを受けて敗北した場合だと行動値が1回行動分減り体力が3減る
> 2. ダメージを受けない場合は体力は減らず、行動値のみ減る
> 以下の意味であっていますか?
>   1.は合計6の体力が減るということではなくダメージによる3だけ減り行動値も減る、ということ。
>   2.は1.で0ダメージの場合のため行動値だけ減る、ということ。
> そうすると両方とも行動値の改造を行った直後の動作のはずです。(ただし、引き分け時は除く。)

す、すみません・・・
そういえばそうでした・・戦闘においては以前の状態に戻せばよかったのですよね
お手数おかけしてすみません・・。

> 他に$result==0として判断している箇所がありましたらそこも確認する必要があります。
> これが見付からない場合はfight.pl内を$hpで検索して$result==0以外で$hpを減らしている箇所を探してみてください。
> それでも原因箇所が特定できない場合はsub fightの各所に「push(@msg, "(1)$hp");」((1)と書いた部分は適宜変更)を書いて動作させ、どこで余計な減少処理を行っているのかを特定してください。

ありがとうございます。
ファイトマネーのところで減っていたようです。
今は正常に動いています。ありがとうございました!

もう1つ追加の質問があるのですがよろしいでしょうか?
複数回探索の改造のことですが(マシマロさんだったかと思います
今の状態だとプルダウンで一番上が1回→一番下が探索回数最大値
となっているのですが、これをmoonさんのsosのように
一番上を全力で探索というようにしたいのですが、この場合はどう直せばいいのでしょうか??

何度もすみませんが、よろしくお願いします
スレッド一覧


1696● Re[11]:行動値システム[ moon ] 2009 04/16 22:04
> もう1つ追加の質問があるのですがよろしいでしょうか?
> 複数回探索の改造のことですが(マシマロさんだったかと思います
> 今の状態だとプルダウンで一番上が1回→一番下が探索回数最大値
> となっているのですが、これをmoonさんのsosのように
> 一番上を全力で探索というようにしたいのですが、この場合はどう直せばいいのでしょうか??
>
> 何度もすみませんが、よろしくお願いします

全力は体力-1回の探索で良いでしょうか?
おそらく以下のようにすれば良いと思います。
1. sub normal_actionの以下を変更します。
  $hpcheck = 2;
  print qq|<option value="1" SELECTED>1回\n|;
    ↓
  $hpcheck = 1;
  print qq|<option value="0" SELECTED>全力\n|;
2. sub find_item_sub_oriの「$f_max = $Fm{'t_max'};」の下に以下を追加します。
  $f_max = $hp - 1 if($f_max == 0);
3. ついでに、体力が1の時でも探索できてしまいそうなので「while ($t_max < $f_max){」の上に以下を追加しておいたほうが良いと思います。
  $f_max = $hp - 1 if($f_max >= $hp);
スレッド一覧


1697● Re[12]:行動値システム[ rien ] 2009 04/17 00:31

> 全力は体力-1回の探索で良いでしょうか?
> おそらく以下のようにすれば良いと思います。
> 1. sub normal_actionの以下を変更します。
>   $hpcheck = 2;
>   print qq|<option value="1" SELECTED>1回\n|;
>     ↓
>   $hpcheck = 1;
>   print qq|<option value="0" SELECTED>全力\n|;
> 2. sub find_item_sub_oriの「$f_max = $Fm{'t_max'};」の下に以下を追加します。
>   $f_max = $hp - 1 if($f_max == 0);
> 3. ついでに、体力が1の時でも探索できてしまいそうなので「while ($t_max < $f_max){」の上に以下を追加しておいたほうが良いと思います。
>   $f_max = $hp - 1 if($f_max >= $hp);

いつもありがとうございます。
おかげさまでうまく出来ました!
ありがとうございます。
分からないことばかりで、またお世話になると思いますが、よろしくお願いします。
スレッド一覧

CGIROOM