« わたしが携帯デバイスに求めるもの | トップページ | [ webdev ] Aptana は Dreamweaver の代わりにはならない »

2006/07/26

[ UO ] テイム成功/命令成功率計算ツール for テイマー

テイム成功率・命令成功率と必要スキル値を計算するツールです。この系統のツールもどっかで見たんだけど、それも Java が必要でページ開くのも重かったんだよね。なにより、Windows XP には標準では Java は走らないので、使いたい場合は Java VM を入れなきゃならない。Java アプレットって起動に時間がかかるから嫌いなんだよ。

軽くて Java VM みたいな余計なランタイムを必要としないツールがあったらな、ということで自分で作ってみました。

動物
テイムスキル値
ロアスキル値
テイム成功率
命令成功率

使い方

1. テイムがいくつ必要なのか知りたい
テイムしたい動物を選んでから、目標のテイム成功率を入力して実行ボタンをクリックしてください。または、目標の命令成功率とロアの値を入力してから実行ボタンをクリックしてください。
2. ロアがいくつ必要なのか知りたい
まず操作したいペットを選択してください。それからロアと目標の命令成功率を入力して実行ボタンをクリックしてください。
3. テイム成功率を知りたい
テイムしたい動物を選んでから、テイムスキルを入力してください。最後に実行ボタンをクリックします。なお、ロアもセットで入力すると命令成功確立も表示します。
4. 命令成功率を知りたい
命令したい動物を選択してください。テイムとロアのスキル値を入力してから実行ボタンを押してください。
5. 続けて計算する前に
前の値が残っていると正常に動作しません。続けて使用する前にリセットボタンをクリックしてください。

計算について
テイム成功率を Rt, テイムスキルを St, その動物をテイム可能な最低のスキル値を Mt とするとテイム成功率は次の式で表せます。 なお、テイム成功率にはロアは影響しません。

Rt = 0.2{ 10St - ( 10Mt + 249.0 ) } + 50

命令成功率 Rc を求めるのは、ちょっと複雑です。 まず最初にキャラクターのテイムスキル値 St とロアスキル値 Sl からスキルポイント Ps を求めます。 次に、スキルポイントと命令難易度を比較した値 Dc を求めます。

Ps = ( 40St + 10Sl ) / 5
Dc = Ps - 10 Mt
ここ分岐です。Dc < 0 のときは、ベースコントロールポイント Bc を式1で求めます。 0 < Dc のときは、ベースコントロールポイントを式2で求めます。
式1: Bc = 14Dc + 700
式2: Bc = 6Dc + 700
ベースコントロールポイントをチェックして補正します。0 < Bc < 200 のときは Bc = 200 に、Bc > 990 のときは Bc = 990 とします。それ以外のときはそのままです。 補正したものを最終的なコントロールポイントとします。 コントロールポイントを 10 で割ったものがコントロール成功率です。この補正があるため、命令成功率はスキルがどんなに高くても 99% が上限となります。

テイムスキル値を計算する方法は 2 種類あります。一つ目はテイム成功率から逆算する方法。前述の Rt についての式を St について解くと以下の式を得ることができます。

St = { 5( Rt - 50 ) + ( 10Mt + 249 ) } / 10
もう 1 つは、命令成功率とロアから逆算する方法です ( あんまり考えたくなかったけど ) 。 この場合は成功率 20% 以下とそれ以上で計算方法が異なります。20% 以下の場合は式1変形することで、それ以上の場合は式2から逆算します。
式1より
St = { ( Bc - 700 )/ 14 + 10Mt - 2Sl }/ 8

式2より
St = { ( Bc - 700 )/ 6 + 10Mt -2Sl }/ 8

ロアは命令成功率から逆算します。

Bc < 200 のとき式1より
Sl = { ( Bc - 700 )/ 14 + 10Mt - 8St }/ 2
200 <= Bc のとき式2より
Sl = { ( Bc - 700 )/ 6 + 10Mt - 8St }/ 2

更新履歴
2006.09.08
いろいろ機能を強化。いっちばん最初の設計はダメダメだと思って作り直したのが、この拡張前のコード。でも、じつは作り直したほうがダメダメで、いっちばん最初の設計のほうが拡張性に優れていたというオチでした。無理やり拡張したのでインターフェイス関数(だったもの)がすごいことになってます。次に拡張するときはリファクタリングじゃなくて、スクラッチから書き直す必要があるでしょう。

謝辞
データはウルティマオンラインパラリシャンを参考にさせていただきました。サイトを運営しておられる鮎渡様に感謝いたします。ありがとうございました。

|

« わたしが携帯デバイスに求めるもの | トップページ | [ webdev ] Aptana は Dreamweaver の代わりにはならない »

コメント

コメントを書く



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


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



トラックバック

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

この記事へのトラックバック一覧です: [ UO ] テイム成功/命令成功率計算ツール for テイマー:

« わたしが携帯デバイスに求めるもの | トップページ | [ webdev ] Aptana は Dreamweaver の代わりにはならない »