« [ Hardware ] Conroe の欠点は致命傷になりうるか | トップページ | [ hardware ] W-ZERO3 が面白そう »

2006/07/21

[ UO ] 攻撃速度シュミレータ

他のサイトで見つけたんだけどそのツールは Java アプレットで Java VM 必須。 Java ランタイムが無い環境では動作しません。そこで、ランタイムなんぞ必要としない、 環境にも依存しない攻撃速度シュミレータを作ってみました。JavaScript を使用していますので、 JavaScript を ON にしてくださいね。現在のところ、IE6 SP2 と Firefox 1.5.0.2 で動作確認をしています。

武器選択 スタミナ 速度増加 攻撃速度
使い方
1. 攻撃速度を求める場合
武器を選んでキャラのスタミナと速度プロパの値を入力して「計算する」ボタンを押してください。攻撃速度の部分に計算結果が表示されます。
2. スタミナを求める場合
武器を選んで、速度プロパと目標の攻撃速度を入力。スタミナ欄は空欄のままで「計算する」ボタンを押してください。スタミナ欄に目的の攻撃速度を実現するために必要なスタミナが表示されます。undefined と表示された場合は、どう考えても実現不可能なスタミナであることを表します。
3. 速度増加を求める場合
武器を選んで、スタミナと目標の攻撃速度を入力。速度増加欄は空白のままで「計算する」ボタンを押してください。
4. 続けて計算する前に
前の値が残っていると正常に動作しません。続けて計算する前にリセットボタンを押してくださいな。

計算について

まず、基礎速度 b からスタミナに基いた短縮が行われます。このときに短縮される時間はスタミナを S とすると

0.25 * ( S / 30 )
マジックプロパティの速度増加 m による補正値は
100 / ( 100 + m )
最終的な攻撃速度 d は
d = { b - 0.25 * ( S/30 ) } * { 100 / (100 + m ) }
スタミナは上記を S について変形すると
S = [ b - d / { 100 / (100 + m ) }] * 120
速度増加 m について変形すると
m = [ 100{ b - 0.25( S/30 ) }] / d - 100
あとは端数切捨て処理とかエラー処理を追加して実装しています。 余談ですが、「連想配列なんて作らなくてもよかったじゃん」と select obj 書くときに気付きました。コードではかなり無駄がありますが訂正が面倒なので見逃してください。

これから

UO では、実際には、攻撃速度は 0.25 秒刻みで変化します。しかし、このツールではガウス関数は実装していないので 1.31 とか出てきます。そのうちに直す予定。このほかにバグを見つけた場合はコメントでお知らせくださいな。できる限り修正したいと思います。

謝辞

このツールを作成するに当たって、ウルティマオンライン パラリシャンUltima Online ~素晴らしき毒の世界~ にあるデータを参考にさせていただきました。素晴らしいサイトを運営されている鮎渡様と Gray@Izumo 様に感謝いたします。ありがとうございました。

2006.07.22
フィードバックをもとに速度増加の逆算機能を追加。Mikokoさんありがとうございました。ただ、速度プロパは 5% 刻みで表示されますが、内部的に ( つまり強度による計算で ) 6 ~ 9% が付いたときに実際にゲーム画面で表示されるのが 5% なのか 10% なのかわからないので、そのままで出力しています。切り上げ、切捨て処理についてご存知の方はご一報ください。
2006.07.22
桁落ちを考慮していない部分があったのでそれを修正。
2006.09.09
たぶん切り捨て処理だろうということでそれ実装。速度を0.25秒刻みで表示するようにしました。

|

« [ Hardware ] Conroe の欠点は致命傷になりうるか | トップページ | [ hardware ] W-ZERO3 が面白そう »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/103108/11046904

この記事へのトラックバック一覧です: [ UO ] 攻撃速度シュミレータ:

« [ Hardware ] Conroe の欠点は致命傷になりうるか | トップページ | [ hardware ] W-ZERO3 が面白そう »