概要
バージョン
ver1.1.95(object2.c)
結論を先に教えて!
- 地上では★は生成されない(モンスターの固定ドロップアイテム除く)
- 現在の階層がアイテムレベル(階層)を下回ると極端に生成確率が落ちる(レアリティ数倍以上)
- 個別★のページに書かれてある希少度は、そのベースアイテムの★判定の際に1/希少度の確率で生成されるということ。
- アイテムは生成レベル付近のアイテムが生成されやすい。逆に言えば深層では低ベースレべルの★はやや生成されづらい。
- ★の生成されやすさは60階あたりで一旦カンストし、混沌の領域でまた上昇する
- INSTA_ARTは常に生成判定が行われるのでレアリティの割に出やすい
大まかな流れ
- アイテム生成はmake_object()から行う
- make_artifact_special()でINSTA_ART★の作成判定を行う。作成されたら終了
- get_obj_num()でベースアイテムを決める
- apply_magic()でアイテムランクを決める
- make_artifact()で★作成判定を行う
- a_m_aux_?()でエゴアイテム作成を行う
make_object()
アイテム生成開始関数。生成レベルと共に開始。
生成レベルはダンジョンの階層や敵のレベルで決定する。
ダンジョンの床に落ちているアイテムは基本、
生成レベル=ダンジョン階層
となる。
獲得の巻物やカオスパトロン報酬なども補正がないため同様の模様。
クエストの場合は階層+αされるアイテムがある。
例:ミミックの財宝の床落ちアイテムは+10の補正がある(なので生成レベル35)
バルトの場合は階層+αされるアイテムがある。
基本的に高レベルのモンスターの足元のアイテムは高い補正になる。(+5~+20)
モンスターを倒した際のドロップアイテムは
生成レベル=(ダンジョン階層+モンスターのLv) / 2
となる。
床落ちアイテムと比べ不利に見えるが、上質以上確定であれば後述の+10補正などがあるためそれほど悪くない。
各種「箱」を開けた際の生成レベルは「箱」のアイテムLv+10になる。
おもちゃの缶詰のみ生成されたダンジョンの階層+5になる。
(そのため深層で箱を開けても良いアイテムが出やすいわけではない)
箱 |
生成レベル |
小さな木の箱 |
15 |
小さな鉄の箱 |
35 |
小さな鋼鉄の箱 |
55 |
大きな木の箱 |
25 |
大きな鉄の箱 |
45 |
大きな鋼鉄の箱 |
65 |
上記以外、クエスト報酬など中身が固定の箱は別途定義されている。
上質なら生成レベル+10する。
上質なら1/10、並なら1/1000でmake_artifact_special()を行う。
Extraモードであれば上質は1/8、並なら1/400。
上質なら生成アイテムリストから並以下のアイテムを削除する。
get_obj_num()でベースアイテムを決める。
apply_magic()でアーティファクト、エゴアイテムの判定、作成を行う。
矢が生成された場合複数生成する。
Extraの場合、かつ一部消耗品の場合は複数生成する。
get_obj_num()
ベースアイテムの生成。薬など消耗品や一部珍品を含む。
生成レベルにブースト判定を行う。
- 初心者ダンジョンでなければ1/10の確率でlevel = 1 + (level * 128 / 1d(128))する。
- 上記ブーストが無く、Extraモードかつ1/3の確率でlevel += 1d(50 - level / 4)する。
- 無縁塚かつweird_luckが通れば上記に加えてlevel += 1d(40)する(最大128)
生成レベル以下のアイテムすべてのチャンスを合算し(total)、チャンステーブルとする。
- 各アイテムのチャンスは100/レアレティ(端数切捨て)。
- 「銃が出ない」オプションなど除外指定されてるアイテムは除外する。
- Extraモードであれば帰還アイテムは除外する。妖魔本はチャンス2倍
value = 1d(total)とし、チャンステーブルのvalue番目のアイテムIDを取得する。
例:3つしかアイテムが無いとして、各チャンスが100,50,50のときtotalは200。
valueが50の時1番目のアイテムが、valueが175のとき3番目のアイテムが選択される。
50%で1回、10%で2回、上記の処理を追加で行い(つまり最大3回)、最もアイテムレベルが高いアイテムを生成する。
apply_magic()
生成レベルによってアイテムをランクアップ(並や上質→上質や高級品)させる。
いかさまの場合 生成レベルに 1d(プレイヤーのLv/2+10)を加える
ただし生成レベルは127を超えない
上質レベルを生成レベル+10とする。ただしダンジョン上質上限を超えない
高級レベルを上質レベル*2/3とする。ただしダンジョン高級上限を超えない
※ダンジョン上限は各ダンジョンで定義されている。
上質上限 |
高級上限 |
ダンジョン |
90 |
70 |
混沌の領域 |
85 |
40 |
無縁塚 |
80 |
25 |
虹龍洞 |
75 |
25 |
旧灼熱地獄、地獄 |
75 |
20 |
荒野、鉄獄、魔法の森、紅魔館、地獄谷、竜の住みか、夢の世界 |
70 |
20 |
玄武の沢 |
60 |
15 |
夢殿大祀廟、逆さ城、仙界 |
ここから条件で増加。
- 幸運状態か霊夢(賽銭6以上)であれば上質+10、高級+5
・上記でなく白いオーラか霊夢(賽銭4以上)であれば上質+5、高級+2
・上記でなく黒いオーラや占いで不調であれば上質-5、高級-2
- 占いで好調であれば上質+5、高級+2
- 無縁塚であれば上質+5、高級+5
- Extraモードであればそれぞれ2倍。ただし最低でも上質30、高級20
ここまでで上質99、高級75を超えていれば左記の値にする。
powerを決める。初期値は0として以下の順の処理を行う。
上質アイテムか1d99<上質レベルであればpower=1
power=1であり、高級アイテムか1d99<高級レベルであればpower=2
power=0であり、1d99<上質レベルであればpower=-1
power=-1であり、1d99<高級レベルであればpower=-2
上記後、紫苑の場合は1/13でpower=-2、1/6でpower=-1に変更する。
power>=2であれば1回、さらに無縁塚であれば+1回アーティファクト生成に挑戦する(make_artifact)
失敗時、白いオーラかつ1/77の確率でもう一度アーティファクト生成に挑戦する。
アーティファクト生成されたら情報を格納して終了。
ここからベースアイテム分類に従いエゴ、☆、その他パラメータ処理を行う。
武器→ a_m_aux_1
防具→ a_m_aux_2
指輪、アミュレット→ a_m_aux_3
リボン→ a_m_aux_5
その他→ a_m_aux_4
make_artifact() make_artifact_special()
★を作成判定を行う。
make_artifactとmake_artifact_specialとの差はベースアイテムが決まってるかどうかぐらい
地上では生成しない
アーティファクトリストを上からチェックしていく。
- 既に生成済みの★は出ない
- クエストアイテムフラグの★は出ない
- 銃が出現しないオプションなら★銃は出ない
- make_artifact_specialであればINSTA_ART以外は出ない
- make_artifactなら同じベースアイテム以外は出ない
- 現在階レベル以上のアーティファクトは 1/((アーティファクトレベル-階レベル)*2)のチェックを通らないと生成されない
- 生成レベル以上のベースアイテムのINSTA_ARTは 1/((ベースレベル-生成レベル)*5)のチェックを通らないと生成されない
- 1/アーティファクトのレアリティ(希少度)を通らないと生成されない
これらの条件をすべて通れば確定。追加耐性フラグがあれば付与して終了。
余談
並ベースの★の出にくさ
★アルハザードや★ナルシスがやたら出にくいのは以下のせい
- 並のアイテムとして生成
- 消耗品を含めた大量のアイテムから選択される(さらに折れ剣は高レア)
- 選択されてもベースが低レベルなの60%でまずキャンセルされる
- apply_magicで並みから高級品までブーストされる必要がある
力の指輪の出にくさ
make_artifact_special()においてベースアイテムの生成判定を行っているが、
大抵のINSTA_ARTは★レベル>=ベースレベルなので気にする必要はあまりない。
が、★ナルヤ、★ネンヤ、★ヴィルヤ、そして★一つの指輪のベースアイテムレベルは★レベル+10と逆転しており出づらい。
特に★ヴィルヤはベースレベル100のためオベロン打倒前に手に入れることは困難になっている。
本家変愚蛮怒より出にくくなっているアーティファクト
本家よりベースアイテムが変更となると生成難度が上がる傾向にある。
★ナインの戦闘つるはしはベースアイテムが戦闘つるはし(Lv50/レア1)からつるはし(Lv5/レア2)に変更されている。
そのためget_obj_num()でベースアイテムが選択がされづらくなっており、結果的に生成されづらくなっている。
同じ理由に★炎の鉄下駄などもある
また★太公望の釣り竿はINSTA_ARTから釣り竿がベースアイテムに変えられており、これもまた生成難度は上昇している。
最終更新:2022年08月11日 13:26