私設SoS2オーナー応援BBS

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

スレッド

└◇1427:
戦闘時の判定部分について [矢神] 12/28 21:45

 └◇1428:Re:戦闘時の判定部分について [moon] 12/29 01:13
  └◇1429:ありがとうございます。 [矢神] 12/29 01:48
   └◇1430:自己解決出来ました。お騒がせしました。 [矢神] 12/29 08:17<-last


1427● 戦闘時の判定部分について[ 矢神 ] 2007 12/28 21:45
度々お世話になります。

戦闘時の勝利判定なのですが、現在# Sub Fight #を見てみた所
>    $uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po;
>    $udfd = $dd + $db + $ua + $up; $pdfd = $pdd + $pdb + $pa + $pp;

>    $udice = int(rand($Badice)) + $uatk - $def_dm;
>    $pdice = int(rand($Badice)) + $patk - $def_dm;

>    $result = $udice <=> $pdice;
となっており、どうも防御力が影響していないように見えたので、
    $uatk = ($ak + $dd)/2 + $ab + $uw + $uo; $patk = ($pak + $pdd)/2 + $pab + $def_ab + $pw + $po;
(従来$akのみだったところを$ak+&dd÷2にしたい)

という風に変えてみたのですが、今度は与える(受ける)ダメージが1.5などという様に中途半端な数字が出るようになってしまいました。
これを解消するにはどのようにすればいいのでしょうか。

#相変わらず知識無で手探りに改造しているので、根本的に何か間違っていましたら申し訳ありません…。
スレッド一覧


1428● Re:戦闘時の判定部分について[ moon ] 2007 12/29 01:13
> 度々お世話になります。
>
> 戦闘時の勝利判定なのですが、現在# Sub Fight #を見てみた所
> >    $uatk = $ak + $ab + $uw + $uo; $patk = $pak + $pab + $def_ab + $pw + $po;
> >    $udfd = $dd + $db + $ua + $up; $pdfd = $pdd + $pdb + $pa + $pp;
> で
> >    $udice = int(rand($Badice)) + $uatk - $def_dm;
> >    $pdice = int(rand($Badice)) + $patk - $def_dm;
> 〜
> >    $result = $udice <=> $pdice;
> となっており、どうも防御力が影響していないように見えたので、
>     $uatk = ($ak + $dd)/2 + $ab + $uw + $uo; $patk = ($pak + $pdd)/2 + $pab + $def_ab + $pw + $po;
> (従来$akのみだったところを$ak+&dd÷2にしたい)
>
> という風に変えてみたのですが、今度は与える(受ける)ダメージが1.5などという様に中途半端な数字が出るようになってしまいました。
> これを解消するにはどのようにすればいいのでしょうか。
>
> #相変わらず知識無で手探りに改造しているので、根本的に何か間違っていましたら申し訳ありません…。

perlにはintという整数化ができる組み込み関数が用意されていますのでこれを利用すれば良いです。
具体的には、$a/2を切り捨てする場合はint($a/2)とします。
スレッド一覧


1429● ありがとうございます。[ 矢神 ] 2007 12/29 01:48
>    $uatk = int(($ak + $dd)/2) + $ab + $uw + $uo; $patk = int(($pak + $pdd)/2) + $pab + $def_ab + $pw + $po;

このような感じで書き入れてみましたが、書き方に問題は無いでしょうか。
スレッド一覧


1430● 自己解決出来ました。お騒がせしました。[ 矢神 ] 2007 12/29 08:17
上の処理だけだと与えるダメージも防御力込みで判定されてしまっていて今度は攻撃力の意味が薄らいでしまっていたので、
元の式を名を変えて残してダメージ計算部分の変数名も置き換えることで解決する事が出来ました。
なんとか動いているようなので大丈夫なようです。お世話になりました。
スレッド一覧

CGIROOM