2013/06/13
■ [変愚蛮怒/開発]k_info.txtの「A:」ヘッダによるアイテム生成率の設定(変愚蛮怒 Ver2.1.3 rev3468)
各アイテム情報k_info.txt/e_info.txt/a_info.txtのデータ形式(変愚蛮怒 ver2.0.0)で説明不足だったk_info.txtの「A:」によるオブジェクト生成率について今回の記事で補足する。
「A:」のフォーマットは例えば以下の通りの例で見られる。
N:242:体力回復:灰斑の E:Healing:Gray Speckled G:!:s I:75:37:200 W:15:0:4:300 A:15/1:30/1:60/1:80/1 P:0:1d1:0:0:0 D:$It heals you 300 and cures blindness, confusion, poison, stunned, cuts and D:$berserk when you quaff it. D:それは飲むと体力が300回復し、盲目・混乱・毒・朦朧・切り傷・狂戦士化を癒す。
Aは[階層/チャンス値]の構造を:で区切り最大4つまで持つ。これはinit_object_alloc()関数で、以下のように処理され、アイテム生成テーブルに収められる。
- 全アイテム種別毎に、4つの「階層/チャンス値」をアイテム生成テーブルに加える。
- チャンス値は実際には100/チャンス値としてprob値に収められる、つまりチャンス値が小さいほど生成率は上がる。
このアイテム生成テーブルは、各種のアイテムの生成種別によるフィルタや、生成階層のフィルタを受けて条件外の値が弾かれる。よって体力回復の薬の
A:15/1:30/1:60/1:80/1
は、以下を意味する
- 生成階15F未満では生成対象外。
- 15F以上生成の重み100を与えられる
- 30F以上でさらに重み100を与えられる。
- 60F以上でさらに重み100を与えられる。
- 80F以上でさらに重み100を与えられる。
- 生成率は(重みの総計)/(全生成対象の総計)となる。
つまり生成階の重みが追加される直後の階層でツモを行えば、お望みのアイテムの生成率が極大化する。生成テーブルへの指定が一つしかない場合は、当然その階層が最も生成率が高い時期になるだろう。
■ [D'angband/開発]D'angband開発日誌 part40…プレイヤーとモンスターのシステム的同化(1)
辺土SATSUGAI流開祖『フナヒヤンダ』
おいおい、何だこりゃ。ドッペルゲンガーか。
兵器の悪魔『ウディンダイ』
いや、単なるバグだね。 例の「プレイヤーとモンスターのシステム的同化」って奴を実現するための 過渡期状態ってところだ。 プレイヤーのデータもcave配列のモンスター参照先IDで参照できるように なったんだが、デバッグ向けの特殊な移動処理の際にその更新が 上手く行われなかったことによる症状だよ。
辺土SATSUGAI流開祖『フナヒヤンダ』
まるで意味がワカラン。
兵器の悪魔『ウディンダイ』
変愚からの実装を知っている人向けの説明だからね。
辺土SATSUGAI流開祖『フナヒヤンダ』
あなたはあなたの上にいる(意味深)
兵器の悪魔『ウディンダイ』
データ仕様の変化に伴ってこういうところもおかしくなっているから、 一つ一つ潰していかないといけないねえ。
2018年春夏新作商品は販売! <br>■最新の2018年のブランドの新しいコピーを販売しています。 <br>100%の品質保証を■!満足は保証! 100パーセントの顧客導入率! <br>■優れた品質と低価格、本物より! <br>■送料は無料です!買うために安心してください! <br>私たちの製品が良好であることを絶対的に自信を持って。 <br>高品質低価格保証救助 <br>製品の数、良い品質、低価格、多様う! <br>動作原理:品質、密着性も宅配、評判に焦点が最初に私たちのポリシーです。