発言者: 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)とします。
▼関連発言
│
└◆1427:戦闘時の判定部分について [矢神] 12/28 21:45
└◆1428:Re:戦闘時の判定部分について [moon] 12/29 01:13
└◆1429:ありがとうございます。 [矢神] 12/29 01:48
└◆1430:自己解決出来ました。お騒がせしました。 [矢神] 12/29 08:17<-last