Top > :解析 > アイテム

:解析/アイテム

Last-modified: 2018-01-10 (水) 03:21:06

警告:以下の文章はスポイラー、いわゆるネタバレです。
プレイの楽しみを損なう可能性があるので、一通りプレイしてからの閲覧を推奨します。
尚、ここで得た情報等をこの手の情報を扱っている場所以外で公言するのはマナーとしてお控え下さい。












以下の内容は、1.22(開発版)に基づく。


用語等は決定されたものではありません。より分かりやすい表現があれば修正をお願いします。

一般情報 Edit

アイテムを作成する場合、引数以外にも沢山の設定が必要である。

  • アイテム作成者の情報(地面、キャラクタ、店などのメニュー)
  • アイテム生成ランク(生成レベルと呼ばれることもある)
  • アイテム生成品質ランク(生成タイプと呼ばれることもある)
  • アイテム品質
  • アイテムIDを未指定で作る場合、アイテムカテゴリ/アイテムサブカテゴリの指定
  • 神託記載モード
  • イベントフラグ 等々・・・

作成 Edit

全てのアイテムは、作成関数を呼び出すことで生成される。

アイテム作成関数 Edit

引数として、アイテム作成位置/アイテムID/地面X座標/地面Y座標/作成個数が必要。

  1. アイテム作成済みフラグを落とす。
  2. アイテムのサブカテゴリが0指定なら、アイテムカテゴリを0初期化。
  3. アイテムID設定。不定時は-1を設定。
  4. アイテム個数設定。0指定なら0を設定。
  5. アイテム作成の実処理を実行。
  6. アイテム作成済みフラグを初期化。

アイテム作成実処理 Edit

  1. アイテム作成がNPC以外なら、品質向上判定
    • 運値 > rnd(5000)かつ、現在品質が5:神器未満なら、生成品質+1
  2. アイテムの空きスロット取得。取得NGは処理終了。
  3. スロット情報初期化
  4. 作成位置がNPC以外かつメニュー以外なら、場所を決定
    1. 座標が不定/指定座標がNGならX/Y座標をランダム決定、それ以外は指定座標を設定。
      1. 座標にアイテムが存在したらやり直し。
    2. 座標が画面外ならやり直し。
    3. 指定座標がOKの場合は、アイテムに座標を設定。次の処理へスキップ。
    4. 座標位置に罠があり、20:電撃/21:火柱/22:落石の場合はやり直し。
    5. 座標位置のマップが壁(進入不可)以外なら、アイテムに座標を設定。次の処理へスキップ。
    6. 100回試してNGの場合は処理終了。
  5. アイテムIDが不定の場合、IDをランダム決定する
    1. 品質ランクが0以下で指定されている or メニュー以外なら、生成タイプ2を設定するか判定。
      1. 品質が3:高品質かつ、1/1000の確率
      2. 品質が4:奇跡かつ、1/100の確率
    2. アイテムIDをランダム決定。決定方法は、指定されたアイテムカテゴリ等の情報から、アイテム作成リストを作成。
      rnd(作成リストの相対生成率の総和)を求め、作成リストとマッチング。マッチしたIDを決定IDとする。
    3. 決定IDが25:エラーの場合
      1. 品質ランクが2なら、品質4:奇跡に変更
      2. アイテムの生成ランクを+10
      3. 品質ランクを0に設定
      4. 再度アイテムIDを決定
  6. アイテムIDが25:エラーかつ、アイテム種類が60002:祭壇なら、501:素材変化の巻物に変更。
  7. アイテム作成済フラグを立てる
  8. アイテムの基本情報を設定
  9. アイテム毎の色設定
    • 色が1の場合、ランダムで色を決め直す。
  10. 特定アイテムの処理1
    • 「特定アイテムの処理1」を参照。主に、種類を決定する。
  11. アイテムの入手済みフラグを立てる。
  12. 作成アイテムの品質を確定。
  13. アイテム品質が6:特別の場合は、神託履歴を記載する
    • メニュー時(リトル報酬/メダル交換等)は次の処理へスキップ。
    • 神託未記載モードの時は次の処理へスキップ。
    1. デバッグ情報設定
    2. アイテムの持ち主情報取得
    3. 神託追記
      • キャラ作成なら、キャラ用神託情報を追記。
      • 地面作成なら、エリア用神託情報を追記。
  14. 特定アイテムの処理2
    • 「特定アイテムの処理2」を参照。主に、種類と価格を決定する。
  15. 特定アイテムの処理3
    • 「特定アイテムの処理3」を参照。宝箱系/食べ物系アイテムの処理。
  16. エンチャント処理
  17. 特定アイテムの処理4
    • 「特定アイテムの処理4」を参照。特定カテゴリに対して、主に祝福と鑑定度を決定する。
  18. 家具なら価格を、現在価格 * (80 + 修飾子ID * 20) / 100に設定。
  19. アイテムのターン数(?不明)を設定する。
  20. 個数が指定されている場合、アイテム個数を設定
  21. アイテム作成がイベントによるものなら、イベントフラグを落とす
  22. アイテム作成が地面なら、アイテムのスタック処理

特定アイテムの処理1

  • 519:染料:色をrnd(21)で設定。
  • 24:本:種類をarnd(15)で設定。
  • 563:学習書:種類をランダムスキル関数で設定。
  • 783:レシピ:種類をリストからランダム、使用回数を1に設定。

特定アイテムの処理2

  • 617:釣餌
    • 種類:rnd(6)
    • アイテム絵ID:385+餌ID
    • 価格:種類 * 種類 * 500 + 200
  • 344:権利書
    • 種類:rnd(5) + 1
    • メニュー以外は、ID=2:住み心地のいい家に変更
    • 付帯情報に名称IDをコピー
    • 価格:5000 + 4500 * 種類 ^ 4 * 20000
    • ID=5:古城なら、価格を2倍に変更
  • 54:金貨
    • 枚数の計算
    • アイテム品質によって、枚数増加
      • 3:高品質は2倍
      • 4:奇跡は4倍
    • 持ち主がキャラクタなら、所持金を増やして作成金貨を削除。
  • 729:おみやげ
    • 種類:rnd(rnd(rnd(6) + 1) + 1)
    • 価格:種類 * 2500 + 500
  • 578:貯金箱
    • 種類:rnd(rnd(7) + 1)
    • 価格:種類 ^ 3 * 1000 + 1000
  • 685:モンスターボール
    • Lv:rnd(生成レベル + 1) + 1
    • 価格:2000 + Lv ^ 3 * 100
  • 630:素材槌
  • 687:古書物
    • 種類:rnd(rnd(limit(生成レベル / 2, 1, 14)) + 1)
  • 667:妹の弁当
    • 妹の弁当フラグを立てる
  • 641:クーラーボックス / 510:形見のカバン / 561:店の金庫 / 547:給料箱 / 579:冷蔵庫
    • 種類の設定

特定アイテムの処理3

  • 72000:宝箱系
    • 生成レベル設定
      • 283:カバン:(rnd(10) + 1) * (PC Lv / 10 + 1)
      • 416:ガシャポン:PC Lv
      • 作成場所がシェルター:5
      • その他:生成階 + 5
    • 開錠難度設定
      • 283:カバン:rnd(15)
      • 作成場所がシェルター:rnd(1)
      • その他:rnd(生成階 + 1)
    • 乱数種設定:rnd(30000)
    • 734:宝箱の設定
      • 開錠難度:rnd(rnd(100) + 1) + 1
      • 価格:開錠難度 * 25 + 150
      • アイテム個数:rnd(8)
  • 57000:食べ物系
    • ハーブ/もち/固定アーティファクト等の一部食品を除き実行。
    1. メニューなら、調理名を付加
      • 1/2:付加されない
      • 1/2:3+rnd(3)で調理名を設定
    2. 調理品なら、アイテム絵を変更する。
      • 生ものなら、腐敗日時として賞味期限+現在時刻を設定する。

特定アイテムの処理4

  • 60000:家具系
    • 1/3の確率で修飾子を設定。設定値はrnd(rnd(12) + 1)。
  • メニューなら、鑑定度:3を設定
  • 68000:金貨 / 69000:プラチナ硬貨 / 622:小さなメダル / 724:演奏チケット / 730:友情の証 / 615:請求書
    • 祝福無し/鑑定度:3を設定。
  • 92000:交易品
    • 祝福無し/鑑定度:3/アイテムの鑑定済みフラグを立てる。
  • 62000:骨や剥製等のガラクタ / 64000:ジャンク / 77000:鉱石
    • 祝福無し
  • メニュー以外の場合、装備品はrnd(自然鑑定Lv + 1) > 5で鑑定度:2を設定

アイテム作成リスト

該当アイテム全てに対して
相対生成率 = 生成率基礎値 / (1000 + (生成レベル - アイテムレベル) * 生成レベル差係数) + 1
を計算し、抽選する。
アイテムごとに、アイテムレベル・生成タイプ・大カテゴリ・サブカテゴリ・生成率基礎値・生成レベル差係数が設定されており

  • 生成レベル > アイテムレベル
  • 生成タイプが一致
  • 生成カテゴリが設定されている場合は一致(設定がない場合は全カテゴリ該当扱い)

をすべて満たす場合作成リストに追加する。

テーブル情報 Edit

アイテムテーブルは、70個の要素を5480個保持するテーブルである。
Indexが0-199はPCアイテム、200-5079はNPCアイテム、5080-5479はマップアイテムに割り振られている。
また、NPCとの対応は、(200+20*(NPC No - 1)で対応付けがなされる。

アイテムテーブル Edit

No名称No名称No名称No名称No名称
0個数14DV28付帯情報442Enc02 ID56Enc09 ID
1価格15PV29鑑定難度43Enc02 POW57Enc09 POW
2アイテム絵ID16装備品サブカテゴリ30?ターン数44Enc03 ID58Enc10 ID
3アイテムID17祝福状態31---45Enc03 POW59Enc10 POW
4品質18装備箇所32---46Enc04 ID60Enc11 ID
5地面X座標19使用効果ID33---47Enc04 POW61Enc11 POW
6地面Y座標20ボーナス34---48Enc05 ID62Enc12 ID
7重さ21所有者35状態フラグ49Enc05 POW63Enc12 POW
8鑑定度22色ID36---50Enc06 ID64Enc13 ID
9杖回数23銘柄ID37---51Enc06 POW65Enc13 POW
10ダイス数24素材ID38---52Enc07 ID66Enc14 ID
11ダイス面数25付帯情報139---53Enc07 POW67Enc14 POW
12ダメージ修正26付帯情報240Enc01 ID54Enc08 ID68Enc15 ID
13命中修正27付帯情報341Enc01 POW55Enc08 POW69Enc15 POW

付帯情報など Edit

  • 4:品質
    1:粗悪 / 2:良質 / 3:高品質 / 4:奇跡 / 5:神器 / 6:特別
  • 9:杖回数
    杖:残回数 / 箱系アイテム:種類ID(3:形見のカバン, 4給料箱, 5店の金庫, 6冷蔵庫)
  • 17:祝福状態

    -2:堕落 / -1:呪い / 0:通常 /1:祝福

  • 21:所有者
    0:不定 / 1:マップ / 2:持ち運べない / 3:設置/撤去可能 / 4:果物? / 5:果樹
  • 23:銘柄ID
    家具:1〜11 / 収穫作物:0〜9 / エゴ:10000〜、20000〜 / ☆:40000+rnd(30000) / レシピ:種類ID/ モンスターボール:内蔵モンスター/ 釣った魚,ジャンク:釣果リスト識別子
  • 25:付帯情報1
    祭壇:神ID / 井戸:残り容量 / 楽器:成功値補正 / 生き武器:Lv / 本:種類ID / 学習書:スキルID
    レシピ:1 / 釣餌:1〜6 / 権利書:1〜5 / 古書物:種類ID / 食料:食料サブカテゴリ / 果樹:果物の数
  • 26:付帯情報2
    生き武器:Exp / 宝箱系:開錠難度 / 食料:調理名ID
  • 27:付帯情報3
    食品:腐敗までの時間/腐敗状態 / 井戸:枯れ度 / 宝箱系:乱数種類
  • 28:付帯情報4
    おみやげ:種類ID / 弾丸:装填数? / 貯金箱:種類ID / モンスターボール:Lv
  • 30:ターン数?
    (アイテムを地面に置いた時に増加する数値。アイテム毎に重複しない数値が設定される。)
  • 35:状態フラグ
    1:耐酸 / 2:耐熱 / 4:書物未解読 / 5:貴重品 / 6:媚薬混入 / 7:再使用に一定期間必要な物
    8:エヘカトルの祝福済み / 9:盗品 / 10:生き武器 / 12:NPCが所持者? / 13:大事な物指定
    14:毒薬混入 / 15:エターナルフォース / 16:ショールームで使用可能 /17:手作り品

アイテムカテゴリ Edit

No名称No名称No名称
10000近接武器34000首輪62000血や骨や剥製
1200052000ポーション64000ジャンク
1400053000巻物68000金貨
1600054000魔法書69000プラチナ硬貨
180005500072000宝箱
19000腰当56000魔法の杖77000鉱石
20000マント57000食べ物80000樹木
22000グローブ59000道具91000旅糧
24000遠隔武器60000家具92000交易品
25000矢弾60001井戸99999999黄金
32000指輪60002祭壇------

アイテムサブカテゴリ Edit

No名称No名称No名称No名称No名称
10001大剣1200124001短弓/長弓/骨弓60001井戸
10002長剣/刀/ライトセーバー12002帽子24003機械弓52001回復系ポーション60002祭壇
10003短剣/忍刀/包丁1400324020拳銃/機関銃/散弾銃5200260004寝具
10004棍棒1600124021光子銃53100権利書60005楽器
10005大槌16003服/法衣24030投擲武器57001小麦粉64000ガラクタ(クズ石等)
10006杖/長杖18001重靴25001矢束57002生麺64100ガラクタ(洗物等)
100071800225002クロスボウの矢束57003野菜77001鉱石
10008鉾槍19001腰当25020弾丸57004果物99999その他アイテム
1000920001外套/羽/翼25030光子弾58005ハーブ99999999黄金
10010大斧22001篭手32001指輪58500------
10011鎌/大鎌22003細工篭手/手袋34001首輪/ペンダント59500テスト用フライパン/ナベ------

その他 Edit

ランダム名称について Edit

JP動作の場合、ランダム名称は"ndata.csv"を用いて作成される。また、内部では389行 x 15列のテーブルとして保持する。


*名称決定は、\萋文字∪楝鎧讚K尾文字の3つの決定処理で構成される。
*ファイルの14列目は名称として使用されない。名称カテゴリとして使用される。

  • 事前処理
    • 名称決定処理の動作モードを指定。
    • モードが1 or 3の場合、乱数を(23:銘柄ID-40000)で初期化。
      mode 0 : キャラクタ異名 / メイドによる自宅別名
      mode 1 : 23:銘柄IDが40000以上のアイテム名称参照
      mode 2 : 盗賊団のチーム名 / ペットチーム名
      mode 3 : 名前の巻物
  • 名称決定処理
  1. 先頭文字決定
    1. 行と列番号をランダム決定。データが空白ならやり直し。
    2. モードが1 or 3の場合、名称カテゴリが『具』だったらやり直し。
    3. 先頭文字決定。
  2. 接続詞の追加判定
    1. 先頭文字の列番号が0, 1の場合
      • 「の」を追加。
      • 1/10の確率で、先頭文字の列番号を10に再設定。
    2. 先頭文字の列番号が10, 11の場合
      1. 5/25の確率:先頭文字列の列番号を0に再設定。1/2の確率で「の」を追加。
      2. 4/25の確率:「・オブ・」を追加。
      3. 4/25の確率:「・」を追加。
      4. 4/25の確率:文字の先頭に「ザ・」を追加して、最終処理へスキップ。
  3. 末尾文字決定
    1. 行番号をランダム決定。
    2. 先頭文字と行番号が同じならやり直し。
    3. 先頭文字と末尾文字の名称カテゴリが被った場合、どちらかが『万能』で無ければやり直し。
    4. 列番号を決定。先頭文字の列番号が10未満ならrnd(2)、それ以外は10+rnd(2)で設定。
    5. データが空白ならやり直し。
    6. OKの場合は末尾文字を追加。
    7. 100回試してNGなら、最初からやり直し。
  4. エラー判定
    1. 作成文字が14文字以上なら、最初からやり直し。
    2. OKならば最終処理へスキップ。
  5. 最初からやり直し。
    (接続詞/エラー判定のスキップ処理実行まで無限ループ)
  6. 最終処理
    1. モードが2の場合、4/5の確率で次の文字のうち1つをランダム追加。
      「団」 / 「チーム」 / 「パーティー」 / 「の集い」 / 「の軍」 / 「アーミー」 / 「隊」 / 「の一家」 / 「軍」 / 「の隊」 / 「の団」
      「の団」はデータにはあるが実際には出現しない(配列の長さ11に対し添字をrnd(10)で求めるため)
    2. 作成文字列を決定名称として設定する。