トップ «前の日記(2013/06/23) 最新 次の日記(2013/06/25)» 編集

SikabaneWorksが関係するコンテンツ(主に*band系ローグライク)の開発近況・補足から全く個人的な雑記まで。

[WEB:屍の見える丘公園]| [RSS]

Angband | Badiashimshe | C# | CRAUZEL | D'angband/小説草稿 | D'angband/開発 | DarkSouls | Demon'sSouls | DungeonCrawl | ElvenUteruses | Haskell | Hengband | J9シリーズ | LEGO | LineDrawing | MISC | MTG | Mac | Math | Moria | R-18 | Roguelike | Rough | RoughSketch | Ruby | SDL | UNIX | VMware | WarHammer | Zangband | アタシラヂョウヲウ | イラスト | ガジェット | ゲーム | ゲーム紹介 | ゲーム製作技術 | ゲーム論 | スケッチ | ツクール | テクノロジー | ニコニコ動画 | ファルコム | ファンタジー | マリオ | ヴィーヤウトゥムノ | 別記事追加予定 | 変愚蛮怒 | 変愚蛮怒/スポイラー | 変愚蛮怒/元ネタ探訪 | 変愚蛮怒/攻略 | 変愚蛮怒/開発 | 宗教 | 情報 | 政治 | 文字コード | 日ペ昔話 | 東方 | 東方ワンドロ | 東方外法漢女 | 歴史 | 漫画製作 | 版権絵 | 画像処理 | 翻訳 | 自然言語 | 艦隊これくしょん | 落書き | 言語解析 | 読書 | 超人ロック | 追記予定 | 通信 | 鉄獄旅慕情 | 阿片窟 | 馬鹿馬鹿蛮怒/開発 | 魔法少女まどか☆マギカ | 魚類版深夜の真剣お絵描き60分一本勝負


2013/06/24

[変愚蛮怒/開発]パッチを解読してみる・職業:風水士

やはりというか、種族や性格より追加しないといけないことが多い。参考になるだろうか。

自動拾いの修正

差分が丸ごと差し替えになっている。丁寧な設定は素晴らしい。

diff -ruN hengband/autopick.txt hengband-geo3/autopick.txt
--- hengband/autopick.txt	2007-02-10 23:51:30.000000000 +0900
+++ hengband-geo3/autopick.txt	2007-03-11 10:55:03.372731200 +0900
@@ -1,471 +1,471 @@
-# autopick.txt 変愚蛮怒仕様
-#
-# このファイルの一番最後は実際に使用できる設定ファイルの具体例になって
-# います。このファイルを 'picktype.prf' という名前で
-# lib\user\picktype.prf か ~/.angband/Hengband/picktype.prf としてコピー
-# すれば、そのまま自動拾いファイルとして使用することができます。
-# (Unix の場合は ~/.angband/Hengband/ のみが使用可能。Windows等、Unix以
-# 外の場合は、lib\user\ のみが使用可能です。)
-#
-#    ●自動拾いの使い方
-#
-#      プレイ中に'_'コマンドを実行すると設定を編集するエディターに入り
-#      ます。このエディターを使って1行に1つのアイテムの名前を書くと、
-#      そのアイテムは自動的に拾います。基本の操作は vi に似ていて、い
-#      くつかの emacs と同じコマンドも使えます。必要なコマンドは全て一
-#      行目と画面の右半分に表示されています。
-#
-#      重要なコマンド
-#       'a' と 'i' と ^Q :  コマンドモードから入力モードに移ります。
-#       ESC と ^Q        :  入力モードからコマンドモードに戻ります。
-#       'q'              :  エディターを終了します。(コマンドモードのみ)
-#       'hjkl2468'       :  カーソルを移動します。(コマンドモードのみ)
-#       ^B ^N ^P ^F      :  カーソルを移動します。(いつでも使えます)
-#       ^I  : 持ち物/装備からアイテムを選んでその名前を挿入します。
-#       ^S  : カーソル位置のアイテムの 拾う/破壊/放置 の切り換え
-#       ^U  : 未鑑定/未判明/鑑定済み/*鑑定*済み の制限の切り換え
-#       ^L  : 最後に自動破壊したアイテムの名前を挿入。
-#       '/' : 検索。続けて ^I か ^L を押すと直接指定したアイテムを検索します。
-#       'n' : 次にマッチする行を検索。(条件分岐を考慮しません)
-#       'N' : 前にマッチする行を検索。(条件分岐を考慮しません)
-#
-#      設定は全て変愚蛮怒ディレクトリの中の lib\user\ の下か
-#      ~/.angband/Hengband/ の下に「picktype-(名前).prf」 という名前の
-#      ファイルで記録されるので、これをメモ帳等の適当なエディタで編集
-#      して、'$'コマンドで読み込み直すこともできます。このファイルはプ
-#      レイヤーキャラクターの名前が「(名前)」であるときに使用されます
-#      が、内蔵のエディタを使わない場合は「picktype.prf」という名前の
-#      ファイルを作っておけば、どんな名前のキャラでプレイするときでも
-#      読み込まれます。
-#
-#      両方ある場合は、起動時に両方読み込みますが、「picktype-(名前).
-#      prf」の内容のほうが「picktype.prf」より優先されます。
-#      (「picktype.prf」「picktype-(名前).prf」合わせて)最大1009個まで
-#      登録できます。頭が#の行や空行は無視されます。
-#
-#      以下は実際のpicktype.prfの内容の例です。
-#    ---------
-#    賞金首のアイテム
-#    !無価値のアイテム
-#
-#    未判明の薬
-#    未判明の巻物
-#    未判明の指輪
-#    未判明のアミュレット
-#    未判明のロッド
-#    未判明の杖
-#    未判明の魔法棒
-#
-#    ~未鑑定の光源
-#
-#    未鑑定のダイス目の違う武器
-#    未鑑定のダイス目25以上の武器
-#    ~未鑑定の武器
-#    ~未鑑定の防具
-#
-#    獲得
-#    経験の薬
-#    増強の薬
-#    *破壊*
-#    抹殺
-#    体力回復
-#    生命の薬
-#    スピードの
-#    致命傷の治癒の薬
-#
-#    ---------
-#
-#      基本的に、名前の一部にファイルに書いた文字列が含まれていれば、
-#      そのアイテムを自動的に拾います。ただし頭に…、
-#
-#      ・「!」がついている場合はそのアイテムを自動的に破壊します。
-#      ・「~」がついている場合は拾いも破壊もせずに床に残します。
-#      ・「;」がついている場合は拾う前に確認メッセージが出ます。
-#
-#      さらに、これらに加えて、「(」を付け加える事でマップコマンド中で
-#      のそのアイテムの表示を抑止する事ができます。(以下のTipsを参照し
-#      てください。)
-#
-#      (注意! always_pickup オプションが有効の時は !と書いたアイテムで
-#      も拾います。)
-#
-#      picktype.prf の先頭から順番に優先的に評価するので、不要なものの
-#      破壊の設定の下にその他のアイテムを拾う設定を書いたり、高級なア
-#      イテムを拾う設定の下にその他の低質なアイテムを破壊する設定を書
-#      くのが便利な方法です。
-#
-#      ☆ Tips
-#      ☆ マップコマンド('M'キー)の使用中にさらに 'M','N','K'や'D'を押
-#      ☆ すことで、それぞれ自動的に拾うアイテム、床に放置するアイテム、
-#      ☆ 破壊するアイテムを表示する事が出来ます。'D'は'M'と'N'を両方
-#      ☆ 押すのと同じです。ただし、アイテム名の先頭に'('を付けて登録
-#      ☆ したものは表示しません。
-#      ☆
-#
-#      以下のようなキーワードで始まるものは特別扱いになります。
-#      ・すべての~        : すべてのアイテムが対象になります。
-#      ・収集中の~        : 既に同じ種類の物を持っているアイテムが対象になります。
-#      ・未判明の~        : 効果の分からないアイテムが対象になります。
-#      ・未鑑定の~        : 鑑定されていないアイテムが対象になります。
-#      ・鑑定済みの~      : 鑑定されているアイテムが対象になります。
-#      ・*鑑定*済みの~    : *鑑定*されているアイテムが対象になります。
-#      ・ダイス目の違う~  : 殺戮の武器等でダイスの目が通常と異なるアイテムが対象になります。
-#      ・ダイス目n以上の~ : ダイス数×面数が n 以上のアイテムが対象になります。
-#      ・修正値n以上の~   : 能力修正値が(+n)以上のアイテムが対象になります。
-#                            能力修正が無い場合は他の数値が+n以上なら対象になります。
-#      ・無価値の~        : 価値のない(売却できない)アイテムが対象になります。
-#      ・アーティファクト~: 判明しているアーティファクトが対象になります。
-#      ・エゴ~            : 判明しているエゴ装備が対象になります。
-#      ・上質の~          : {上質}の装備が対象になります。
-#      ・無銘の~          : 非エゴ, 非アーティファクトの装備が対象になります。
-#      ・並の~            : {並}の装備が対象になります。
-#      ・レアな~          : ドラゴン防具等の珍しいベースアイテムの装備が対象になります。
-#      ・ありふれた~      : ドラゴン防具等以外の普通のベースアイテムの装備が対象になります。
-#      ・賞金首の~        : 賞金首の死体または骨が対象になります。
-#      ・ユニーク・モンスターの~: ユニーク・モンスターの死体、骨、彫像が対象になります。
-#      ・人間の~          : 人間の死体または骨が対象になります。(悪魔魔法で使用)
-#      ・読めない~        : 専門としない魔法領域の魔法書が対象になります。
-#      ・第一領域の~      : 第一領域の魔法書が対象になります。
-#      ・第二領域の~      : 第二領域の魔法書が対象になります。
-#      ・n冊目の           : nが1から4のとき、n冊目の魔法書が対象になります。
-#
-#      ~の部分では、アイテムの種類を表す以下のようなキーワードが特別扱いになります
-#      ・アイテム          : すべてのアイテムが対象になります。
-#      ・武器              : 武器が対象になります。
-#      ・防具              : 防具が対象になります。
-#      ・矢                : 矢、クロスボウの矢、石、弾が対象になります。
-#      ・光源              : たいまつやランタン等が対象になります。
-#      ・魔法アイテム      : 巻物・杖・魔法棒・ロッドが対象になります。
-#      ・がらくた          : 折れた棒や像等の役に立たないものが対象になります。
-#      ・死体や骨          : モンスターの死体や骨が対象になります。
-#      ・魔法書            : 魔法書、武芸の書、歌集が対象になります。
-#      ・得意武器          : プリースト、修行僧、魔獣使い、練気術師、騎兵、忍者にとって、
-#                            特別に扱いやすい種類の武器が対象になります。
-#
-#      他に部位別の装備品を対象とするキーワード: 盾、弓、指輪、アミュ
-#      レット、鎧、クローク、兜、籠手、靴 が使用できます。
-#
-#      この後に区切り記号のコロン「:」を挟んでさらに文字列が続く場合は、
-#      その文字列が名前の一部に含まれているアイテムが対象になります。
-#      ここで、アイテムの種類を表すキーワード(アイテム、武器、防具等)
-#      を使用しない場合は区切り記号は省略できます。また、文字列の頭に
-#      記号「^」を入れるとそれはアイテム名の先頭部分に一致します。
-#
-#    ---------
-#
-#    光源:石	 // 名前に"石"を含む光源を拾う。「光源石」 は使用不可。
-#    籠手:腕力の // 腕力のガントレットを拾うが、腕力の指輪は拾わない。
-#    !ローブ	 // 名前に"ローブ"を含むもの(ローブ、グローブ等)を破壊。
-#    !^ローブ	 // グローブは破壊しない。
-#    !防具:^耐	 // 耐火、耐冷、耐電、耐酸の防具を破壊。全耐性は破壊しない。
-#
-#    ---------
-#
-#      また、行の最後に # で始まる文字列を書くと、鑑定したりアイテムの
-#      上に立った瞬間に自動的にその文字列がアイテムに刻まれます。
-#
-#
-#      各行の書式は次のようになります。
-#
-#         [! ~ ; (]
-#         [[すべての] [収集中の]
-#          [未判明の] [未鑑定の] [鑑定済みの] [*鑑定*済みの]
-#          [アーティファクト] [エゴ] [上質の] [無銘の] [並の]
-#          [無価値の] [レアな] [ありふれた]
-#          [ダイス目の違う] [ダイス目n以上の] [修正値n以上の]
-#          [賞金首の] [ユニーク・モンスターの] [人間の]
-#          [読めない] [第一領域の] [第二領域の] [n冊目の]
-#          [アイテム|アーティファクト|武器|得意武器|防具|矢|魔法アイテム|
-#           がらくた|死体や骨|魔法書|鈍器|盾|弓|指輪|アミュレット|光源|鎧|
-#           クローク|兜|籠手|靴] :]
-#         [[^]その他の文字列] [#自動刻み文字列]
-#
-#      ☆ Tips
-#      ☆   未鑑定の や ダイス目の違う 等のキーワードは一行に並べて書く
-#      ☆   事で両方の制限を適用させる事が出来ます。
-#      ☆   現在のバージョンではキーワードの順番も自由です。
-#      ☆
-#
-#
-#    ● 条件分岐の使い方
-#
-#      自動拾いの設定は種族や職業、レベル等に条件を付けて設定すること
-#      が出来ます。
-#
-#      ☆ Tips
-#      ☆   マクロ定義のファイル(プレイヤー名.prf 等)でも全く同じ書式で
-#      ☆   条件分岐を使う事が出来ます。
-#      ☆
-#
-#      ・条件分岐の書式
-#        ?:引数
-#          引数が"0"なら以降の自動拾い/破壊の登録をスキップする。
-#          引数が"1"なら以降の登録を行う。 引数が"0"以外は全て"1"と見なす。
-#        (注意!)条件分岐を入れ子にすることは出来ません。
-#
-#      ・ファイルの挿入の書式
-#        %:ファイル名
-#          lib\user\ファイル名 か ~/.angband/Hengband/ファイル名 を自
-#          動拾いの登録ファイルとして読み込みます。
-#
-#      ・使用可能な演算子
-#        [EQU 引数1 引数2 ...]
-#          引数1と他のどれかの引数が等しいと"1"、どれも等しくないと"0"を返す。
-#        [IOR 引数1 引数2 ...]
-#        [AND 引数1 引数2 ...]
-#          IORは引数の論理和、ANDは引数の論理積をとって真なら"1"、偽なら"0"を返す。
-#        [NOT 引数]
-#          引数が"1"なら"0"、"0"なら"1"を返す。
-#        [LEQ 引数1 引数2 ...]
-#        [GEQ 引数1 引数2 ...]
-#          LEQは引数の大きさを「文字列として比較」して
-#          引数1≦引数2≦...のとき"1"を返す。
-#          GEQは引数1≧引数2≧...のとき"1"を返す。
-#
-#      ・変数説明
-#        $RACE
-#          種族を英語名で返す。
-#          Human, Half-Elf, Elf, Hobbit, Gnome, Dwarf, Half-Orc,
-#          Half-Troll, Amberite, High-Elf, Barbarian, Half-Ogre,
-#          Half-Giant, Half-Titan, Cyclops, Yeek, Klackon, Kobold,
-#          Nibelung, Dark-Elf, Draconian, Mindflayer, Imp, Golem,
-#          Skeleton, Zombie, Vampire, Spectre, Sprite, Beastman, Ent,
-#          Archon, Balrog, Dunadan, Shadow-Fairy, Kuta, Android,
-#          のどれか
-#        $CLASS
-#          職業を英語名で返す。
-#          Warrior, Mage, Priest, Rogue, Ranger, Paladin,
-#          Warrior-Mage, Chaos-Warrior, Monk, Mindcrafter, High-Mage,
-#          Tourist, Imitator, BeastMaster, Sorcerer, Archer,
-#          Magic-Eater, Bard, Red-Mage, Samurai, ForceTrainer,
-#          Blue-Mage, Cavalry, Berserker, Weaponsmith, Mirror-Master,
-#          Ninja
-#          のどれか
-#        $PLAYER
-#          プレイヤーの名前を返す。ただし、' '(スペース)、'['、']'は
-#          prefの制約でそのまま使えないため、'_'に置き換えて返す。
-#          例: 名前が"[ Temp ]"ならば、$PLAYERは"__Temp__"を返す。
-#        $REALM1
-#          第1魔法領域を英語名で返す。
-#          none, Life, Sorcery, Nature, Chaos, Death, Trump, Arcane,
-#          Craft, Daemon, Crusade, Music, Kendo
-#          のどれか。魔法書を使えない場合は none になる。
-#        $REALM2
-#          第2魔法領域を英語名で返す。第2領域を使えない場合は none になる。
-#        $LEVEL
-#          プレイヤーのレベルを2桁の文字列で返す。
-#          "01","09","10","50" 等
-#
-#------------------------------------------------------------------
-#
-#    これ以下は具体的に使用可能な設定例です。
-#    このファイルをpicktype.prfという名前でlib\user\ か
-#    ~/.angband/Hengband/ にコピーすれば自動拾いファイルとして
-#    使用することができます。
-#
-#------------------------------------------------------------------
-
-#
-# 基本的な設定
-#
-
-賞金首の死体
-賞金首の骨
-
-# 狂戦士は使用できない巻物、杖、魔法棒、ロッドを全て破壊する。
-?:[EQU $CLASS Berserker]
-!魔法アイテム
-?:1
-
-未判明のアイテム
-
-# 未鑑定名が、玻璃瓶、石、白熱灯、星、宝石 の光源は
-# アーティファクトなので拾う。
-未鑑定の光源:宝石#!!
-未鑑定の光源:石
-未鑑定の光源:星#!!
-未鑑定の光源:白熱灯
-未鑑定の光源:玻璃瓶#!!
-
-# アーティファクトを*鑑定*した瞬間に耐性自動刻み'%'をする。
-~*鑑定*済みのアーティファクト#%
-
-# 既に持っている種類の薬、巻物、ロッド等は重ねられるので全て拾う。
-
-収集中の薬
-収集中の巻物
-収集中のロッド
-収集中の矢
-(収集中のアイテム
-
-# よく拾う物
-鑑定のロッド#!k!!
-全感知のロッド#@z0!k!!
-スピードのロッド#!k!!
-
-無敵の薬#!k
-獲得#!k
-経験の薬#!k
-増強の薬#!k
-*破壊*
-抹殺
-
-腕力の薬#!k
-賢さの薬#!k
-器用さの薬#!k
-耐久力の薬#!k
-知能の薬#!k
-魅力の薬#!k
-
-生命の薬#!k
-体力回復#!k
-
-#
-# 魔道具術士は吸収できるものをすべて拾う。
-# アーチャーは矢の材料を拾う。
-# 忍者は暗闇の光源を破壊しない。
-# 吸血鬼は暗闇を作るアイテムを破壊しない。
-#
-?:[EQU $CLASS Magic-Eater]
-のロッド
-の杖
-の魔法棒
-?:[EQU $CLASS Archer]
-の骨
-?:[EQU $CLASS Ninja]
-~光源:暗闇の
-鉄のくさび#@v0
-?:[EQU $RACE Vampire]
-(~暗闇の巻物
-(~暗闇の杖
-?:1
-
-# レベルが10以上なら破壊する例
-#   レベルが10以上に上がった直後から有効です。
-#   条件のレベルを変更した場合は'$'コマンドで読み込むかゲームを再開すると
-#   ちゃんと読み込まれます。
-#
-?:[GEQ $LEVEL 10]
-(!リンゴジュースの薬
-(!空のビン
-(!水の薬
-?:1
-
-# レベルが20以下なら自動破壊禁止で床に放置する例
-# '('を指定する事で、マップ'M'コマンドで表示しないように指示します。
-?:[LEQ $LEVEL 20]
-(~のろまの薬
-(~眠りの薬
-?:1
-
-# 複雑な例(誰も使わないでしょう。このままコピーする場合以外は…)
-?:[AND [GEQ $LEVEL 20] [IOR [EQU $REALM1 Life Nature Craft] [EQU $REALM2 Life Nature Craft]]]
-(!食料
-(!スライムモルド
-(!エルフの行糧
-?:1
-
-
-#
-# 高レベルで弱い装備品を全て壊す例。「無銘の~」の使用には細心の注意が必要。
-# 何もしないとドラゴン装備等も壊すので放置のコマンド文字'~'で守る必要があります。
-#
-?:[GEQ $LEVEL 40]
-~無銘の防具:ドラゴン
-~無銘の防具:エルフのクローク
-~無銘の防具:影のクローク
-~無銘の防具:ミラー・シールド
-~無銘の武器:ダイヤモンド・エッジ
-~無銘の武器:粉砕のメイス
-(!無銘の武器
-(!無銘の防具
-
-?:[GEQ $LEVEL 20]
-(!無銘の武器:(+0,+0)
-(!無銘の防具:,+0]
-?:1
-
-#
-#自分の魔法領域の魔法書に適切な自動刻みをする例。
-#上級魔法書と下級魔法書の中間の優先順位に挿入する例として、
-#未鑑定の武器、防具、矢を床に放置する設定を入れてあります。
-#
-
-#
-#  上級魔法書
-#
-第一領域の4冊目の武芸の書#!k
-第一領域の3冊目の武芸の書#!k
-第一領域の4冊目の魔法書#@md!k
-第一領域の3冊目の魔法書#@mc!k
-第二領域の4冊目の魔法書#@mh!k
-第二領域の3冊目の魔法書#@mg!k
-
-# ここに上級魔法書よりは優先順位が低くて
-# 下級よりは高くしたいものを書く。
-# 例えば、
-未鑑定のダイス目の違う武器
-~未鑑定の武器
-~未鑑定の防具
-~未鑑定の矢
-
-#
-#  下級魔法書
-#
-# 職業と領域によってはわざと特定の魔法書を持たない事があるので、
-# 既に持っていなければ放置。
-
-収集中の魔法書
-~第一領域の2冊目の魔法書#@mb!k
-~第一領域の1冊目の魔法書#@ma!k
-~第二領域の2冊目の魔法書#@mf!k
-~第二領域の1冊目の魔法書#@me!k
-
-
-# その他の魔法書
-
-# 専門外の下級魔法書はレベル30以上なら全て自動破壊する。
-?:[GEQ $LEVEL 30]
-(!読めない1冊目の魔法書
-(!読めない2冊目の魔法書
-(!読めない3冊目の秘術の魔法書
-(!読めない4冊目の秘術の魔法書
-?:1
-
-# 戦士と狂戦士は上級魔法書を手動で破壊すると経験値になるので、拾う。
-?:[EQU $CLASS Warrior Berserker]
-(~読めない4冊目の秘術の魔法書
-読めない4冊目の魔法書
-(~読めない3冊目の秘術の魔法書
-読めない3冊目の魔法書
-?:1
-
-# 破邪パラディンは生命と破邪以外の魔法書を手動で破壊すると経験値になる。
-# 経験値にならない生命の上級魔法書は高く売れるが高レベルでは放置する。
-?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade] [GEQ $LEVEL 30]]
-(~読めない4冊目の生命の魔法書
-(~読めない3冊目の生命の魔法書
-?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade]]
-(~読めない4冊目の秘術の魔法書
-読めない4冊目の魔法書
-(~読めない3冊目の秘術の魔法書
-読めない3冊目の魔法書
-?:1
-
-# 暗黒パラディンは生命と破邪の魔法書を手動で破壊すると経験値になる。
-?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Death]]
-読めない4冊目の生命の魔法書
-読めない4冊目の破邪の魔法書
-読めない3冊目の生命の魔法書
-読めない3冊目の破邪の魔法書
-?:1
-
-# その他の場合も上級魔法書は高く売れるので低レベルでは拾う。
-?:[LEQ $LEVEL 29]
-(~読めない4冊目の秘術の魔法書
-読めない4冊目の魔法書
-(~読めない3冊目の秘術の魔法書
-読めない3冊目の魔法書
-?:1
-
-
+# autopick.txt 変愚蛮怒仕様

+#

+# このファイルの一番最後は実際に使用できる設定ファイルの具体例になって

+# います。このファイルを 'picktype.prf' という名前で

+# lib\user\picktype.prf か ~/.angband/Hengband/picktype.prf としてコピー

+# すれば、そのまま自動拾いファイルとして使用することができます。

+# (Unix の場合は ~/.angband/Hengband/ のみが使用可能。Windows等、Unix以

+# 外の場合は、lib\user\ のみが使用可能です。)

+#

+#    ●自動拾いの使い方

+#

+#      プレイ中に'_'コマンドを実行すると設定を編集するエディターに入り

+#      ます。このエディターを使って1行に1つのアイテムの名前を書くと、

+#      そのアイテムは自動的に拾います。基本の操作は vi に似ていて、い

+#      くつかの emacs と同じコマンドも使えます。必要なコマンドは全て一

+#      行目と画面の右半分に表示されています。

+#

+#      重要なコマンド

+#       'a' と 'i' と ^Q :  コマンドモードから入力モードに移ります。

+#       ESC と ^Q        :  入力モードからコマンドモードに戻ります。

+#       'q'              :  エディターを終了します。(コマンドモードのみ)

+#       'hjkl2468'       :  カーソルを移動します。(コマンドモードのみ)

+#       ^B ^N ^P ^F      :  カーソルを移動します。(いつでも使えます)

+#       ^I  : 持ち物/装備からアイテムを選んでその名前を挿入します。

+#       ^S  : カーソル位置のアイテムの 拾う/破壊/放置 の切り換え

+#       ^U  : 未鑑定/未判明/鑑定済み/*鑑定*済み の制限の切り換え

+#       ^L  : 最後に自動破壊したアイテムの名前を挿入。

+#       '/' : 検索。続けて ^I か ^L を押すと直接指定したアイテムを検索します。

+#       'n' : 次にマッチする行を検索。(条件分岐を考慮しません)

+#       'N' : 前にマッチする行を検索。(条件分岐を考慮しません)

+#

+#      設定は全て変愚蛮怒ディレクトリの中の lib\user\ の下か

+#      ~/.angband/Hengband/ の下に「picktype-(名前).prf」 という名前の

+#      ファイルで記録されるので、これをメモ帳等の適当なエディタで編集

+#      して、'$'コマンドで読み込み直すこともできます。このファイルはプ

+#      レイヤーキャラクターの名前が「(名前)」であるときに使用されます

+#      が、内蔵のエディタを使わない場合は「picktype.prf」という名前の

+#      ファイルを作っておけば、どんな名前のキャラでプレイするときでも

+#      読み込まれます。

+#

+#      両方ある場合は、起動時に両方読み込みますが、「picktype-(名前).

+#      prf」の内容のほうが「picktype.prf」より優先されます。

+#      (「picktype.prf」「picktype-(名前).prf」合わせて)最大1009個まで

+#      登録できます。頭が#の行や空行は無視されます。

+#

+#      以下は実際のpicktype.prfの内容の例です。

+#    ---------

+#    賞金首のアイテム

+#    !無価値のアイテム

+#

+#    未判明の薬

+#    未判明の巻物

+#    未判明の指輪

+#    未判明のアミュレット

+#    未判明のロッド

+#    未判明の杖

+#    未判明の魔法棒

+#

+#    ~未鑑定の光源

+#

+#    未鑑定のダイス目の違う武器

+#    未鑑定のダイス目25以上の武器

+#    ~未鑑定の武器

+#    ~未鑑定の防具

+#

+#    獲得

+#    経験の薬

+#    増強の薬

+#    *破壊*

+#    抹殺

+#    体力回復

+#    生命の薬

+#    スピードの

+#    致命傷の治癒の薬

+#

+#    ---------

+#

+#      基本的に、名前の一部にファイルに書いた文字列が含まれていれば、

+#      そのアイテムを自動的に拾います。ただし頭に…、

+#

+#      ・「!」がついている場合はそのアイテムを自動的に破壊します。

+#      ・「~」がついている場合は拾いも破壊もせずに床に残します。

+#      ・「;」がついている場合は拾う前に確認メッセージが出ます。

+#

+#      さらに、これらに加えて、「(」を付け加える事でマップコマンド中で

+#      のそのアイテムの表示を抑止する事ができます。(以下のTipsを参照し

+#      てください。)

+#

+#      (注意! always_pickup オプションが有効の時は !と書いたアイテムで

+#      も拾います。)

+#

+#      picktype.prf の先頭から順番に優先的に評価するので、不要なものの

+#      破壊の設定の下にその他のアイテムを拾う設定を書いたり、高級なア

+#      イテムを拾う設定の下にその他の低質なアイテムを破壊する設定を書

+#      くのが便利な方法です。

+#

+#      ☆ Tips

+#      ☆ マップコマンド('M'キー)の使用中にさらに 'M','N','K'や'D'を押

+#      ☆ すことで、それぞれ自動的に拾うアイテム、床に放置するアイテム、

+#      ☆ 破壊するアイテムを表示する事が出来ます。'D'は'M'と'N'を両方

+#      ☆ 押すのと同じです。ただし、アイテム名の先頭に'('を付けて登録

+#      ☆ したものは表示しません。

+#      ☆

+#

+#      以下のようなキーワードで始まるものは特別扱いになります。

+#      ・すべての~        : すべてのアイテムが対象になります。

+#      ・収集中の~        : 既に同じ種類の物を持っているアイテムが対象になります。

+#      ・未判明の~        : 効果の分からないアイテムが対象になります。

+#      ・未鑑定の~        : 鑑定されていないアイテムが対象になります。

+#      ・鑑定済みの~      : 鑑定されているアイテムが対象になります。

+#      ・*鑑定*済みの~    : *鑑定*されているアイテムが対象になります。

+#      ・ダイス目の違う~  : 殺戮の武器等でダイスの目が通常と異なるアイテムが対象になります。

+#      ・ダイス目n以上の~ : ダイス数×面数が n 以上のアイテムが対象になります。

+#      ・修正値n以上の~   : 能力修正値が(+n)以上のアイテムが対象になります。

+#                            能力修正が無い場合は他の数値が+n以上なら対象になります。

+#      ・無価値の~        : 価値のない(売却できない)アイテムが対象になります。

+#      ・アーティファクト~: 判明しているアーティファクトが対象になります。

+#      ・エゴ~            : 判明しているエゴ装備が対象になります。

+#      ・上質の~          : {上質}の装備が対象になります。

+#      ・無銘の~          : 非エゴ, 非アーティファクトの装備が対象になります。

+#      ・並の~            : {並}の装備が対象になります。

+#      ・レアな~          : ドラゴン防具等の珍しいベースアイテムの装備が対象になります。

+#      ・ありふれた~      : ドラゴン防具等以外の普通のベースアイテムの装備が対象になります。

+#      ・賞金首の~        : 賞金首の死体または骨が対象になります。

+#      ・ユニーク・モンスターの~: ユニーク・モンスターの死体、骨、彫像が対象になります。

+#      ・人間の~          : 人間の死体または骨が対象になります。(悪魔魔法で使用)

+#      ・読めない~        : 専門としない魔法領域の魔法書が対象になります。

+#      ・第一領域の~      : 第一領域の魔法書が対象になります。

+#      ・第二領域の~      : 第二領域の魔法書が対象になります。

+#      ・n冊目の           : nが1から4のとき、n冊目の魔法書が対象になります。

+#

+#      ~の部分では、アイテムの種類を表す以下のようなキーワードが特別扱いになります

+#      ・アイテム          : すべてのアイテムが対象になります。

+#      ・武器              : 武器が対象になります。

+#      ・防具              : 防具が対象になります。

+#      ・矢                : 矢、クロスボウの矢、石、弾が対象になります。

+#      ・光源              : たいまつやランタン等が対象になります。

+#      ・魔法アイテム      : 巻物・杖・魔法棒・ロッドが対象になります。

+#      ・がらくた          : 折れた棒や像等の役に立たないものが対象になります。

+#      ・死体や骨          : モンスターの死体や骨が対象になります。

+#      ・魔法書            : 魔法書、武芸の書、歌集が対象になります。

+#      ・得意武器          : プリースト、修行僧、魔獣使い、練気術師、騎兵、忍者にとって、

+#                            特別に扱いやすい種類の武器が対象になります。

+#

+#      他に部位別の装備品を対象とするキーワード: 盾、弓、指輪、アミュ

+#      レット、鎧、クローク、兜、籠手、靴 が使用できます。

+#

+#      この後に区切り記号のコロン「:」を挟んでさらに文字列が続く場合は、

+#      その文字列が名前の一部に含まれているアイテムが対象になります。

+#      ここで、アイテムの種類を表すキーワード(アイテム、武器、防具等)

+#      を使用しない場合は区切り記号は省略できます。また、文字列の頭に

+#      記号「^」を入れるとそれはアイテム名の先頭部分に一致します。

+#

+#    ---------

+#

+#    光源:石	 // 名前に"石"を含む光源を拾う。「光源石」 は使用不可。

+#    籠手:腕力の // 腕力のガントレットを拾うが、腕力の指輪は拾わない。

+#    !ローブ	 // 名前に"ローブ"を含むもの(ローブ、グローブ等)を破壊。

+#    !^ローブ	 // グローブは破壊しない。

+#    !防具:^耐	 // 耐火、耐冷、耐電、耐酸の防具を破壊。全耐性は破壊しない。

+#

+#    ---------

+#

+#      また、行の最後に # で始まる文字列を書くと、鑑定したりアイテムの

+#      上に立った瞬間に自動的にその文字列がアイテムに刻まれます。

+#

+#

+#      各行の書式は次のようになります。

+#

+#         [! ~ ; (]

+#         [[すべての] [収集中の]

+#          [未判明の] [未鑑定の] [鑑定済みの] [*鑑定*済みの]

+#          [アーティファクト] [エゴ] [上質の] [無銘の] [並の]

+#          [無価値の] [レアな] [ありふれた]

+#          [ダイス目の違う] [ダイス目n以上の] [修正値n以上の]

+#          [賞金首の] [ユニーク・モンスターの] [人間の]

+#          [読めない] [第一領域の] [第二領域の] [n冊目の]

+#          [アイテム|アーティファクト|武器|得意武器|防具|矢|魔法アイテム|

+#           がらくた|死体や骨|魔法書|鈍器|盾|弓|指輪|アミュレット|光源|鎧|

+#           クローク|兜|籠手|靴] :]

+#         [[^]その他の文字列] [#自動刻み文字列]

+#

+#      ☆ Tips

+#      ☆   未鑑定の や ダイス目の違う 等のキーワードは一行に並べて書く

+#      ☆   事で両方の制限を適用させる事が出来ます。

+#      ☆   現在のバージョンではキーワードの順番も自由です。

+#      ☆

+#

+#

+#    ● 条件分岐の使い方

+#

+#      自動拾いの設定は種族や職業、レベル等に条件を付けて設定すること

+#      が出来ます。

+#

+#      ☆ Tips

+#      ☆   マクロ定義のファイル(プレイヤー名.prf 等)でも全く同じ書式で

+#      ☆   条件分岐を使う事が出来ます。

+#      ☆

+#

+#      ・条件分岐の書式

+#        ?:引数

+#          引数が"0"なら以降の自動拾い/破壊の登録をスキップする。

+#          引数が"1"なら以降の登録を行う。 引数が"0"以外は全て"1"と見なす。

+#        (注意!)条件分岐を入れ子にすることは出来ません。

+#

+#      ・ファイルの挿入の書式

+#        %:ファイル名

+#          lib\user\ファイル名 か ~/.angband/Hengband/ファイル名 を自

+#          動拾いの登録ファイルとして読み込みます。

+#

+#      ・使用可能な演算子

+#        [EQU 引数1 引数2 ...]

+#          引数1と他のどれかの引数が等しいと"1"、どれも等しくないと"0"を返す。

+#        [IOR 引数1 引数2 ...]

+#        [AND 引数1 引数2 ...]

+#          IORは引数の論理和、ANDは引数の論理積をとって真なら"1"、偽なら"0"を返す。

+#        [NOT 引数]

+#          引数が"1"なら"0"、"0"なら"1"を返す。

+#        [LEQ 引数1 引数2 ...]

+#        [GEQ 引数1 引数2 ...]

+#          LEQは引数の大きさを「文字列として比較」して

+#          引数1≦引数2≦...のとき"1"を返す。

+#          GEQは引数1≧引数2≧...のとき"1"を返す。

+#

+#      ・変数説明

+#        $RACE

+#          種族を英語名で返す。

+#          Human, Half-Elf, Elf, Hobbit, Gnome, Dwarf, Half-Orc,

+#          Half-Troll, Amberite, High-Elf, Barbarian, Half-Ogre,

+#          Half-Giant, Half-Titan, Cyclops, Yeek, Klackon, Kobold,

+#          Nibelung, Dark-Elf, Draconian, Mindflayer, Imp, Golem,

+#          Skeleton, Zombie, Vampire, Spectre, Sprite, Beastman, Ent,

+#          Archon, Balrog, Dunadan, Shadow-Fairy, Kuta, Android,

+#          のどれか

+#        $CLASS

+#          職業を英語名で返す。

+#          Warrior, Mage, Priest, Rogue, Ranger, Paladin,

+#          Warrior-Mage, Chaos-Warrior, Monk, Mindcrafter, High-Mage,

+#          Tourist, Imitator, BeastMaster, Sorcerer, Archer,

+#          Magic-Eater, Bard, Red-Mage, Samurai, ForceTrainer,

+#          Blue-Mage, Cavalry, Berserker, Weaponsmith, Mirror-Master,

+#          Ninja, Geomancer

+#          のどれか

+#        $PLAYER

+#          プレイヤーの名前を返す。ただし、' '(スペース)、'['、']'は

+#          prefの制約でそのまま使えないため、'_'に置き換えて返す。

+#          例: 名前が"[ Temp ]"ならば、$PLAYERは"__Temp__"を返す。

+#        $REALM1

+#          第1魔法領域を英語名で返す。

+#          none, Life, Sorcery, Nature, Chaos, Death, Trump, Arcane,

+#          Craft, Daemon, Crusade, Music, Kendo

+#          のどれか。魔法書を使えない場合は none になる。

+#        $REALM2

+#          第2魔法領域を英語名で返す。第2領域を使えない場合は none になる。

+#        $LEVEL

+#          プレイヤーのレベルを2桁の文字列で返す。

+#          "01","09","10","50" 等

+#

+#------------------------------------------------------------------

+#

+#    これ以下は具体的に使用可能な設定例です。

+#    このファイルをpicktype.prfという名前でlib\user\ か

+#    ~/.angband/Hengband/ にコピーすれば自動拾いファイルとして

+#    使用することができます。

+#

+#------------------------------------------------------------------

+

+#

+# 基本的な設定

+#

+

+賞金首の死体

+賞金首の骨

+

+# 狂戦士は使用できない巻物、杖、魔法棒、ロッドを全て破壊する。

+?:[EQU $CLASS Berserker]

+!魔法アイテム

+?:1

+

+未判明のアイテム

+

+# 未鑑定名が、玻璃瓶、石、白熱灯、星、宝石 の光源は

+# アーティファクトなので拾う。

+未鑑定の光源:宝石#!!

+未鑑定の光源:石

+未鑑定の光源:星#!!

+未鑑定の光源:白熱灯

+未鑑定の光源:玻璃瓶#!!

+

+# アーティファクトを*鑑定*した瞬間に耐性自動刻み'%'をする。

+~*鑑定*済みのアーティファクト#%

+

+# 既に持っている種類の薬、巻物、ロッド等は重ねられるので全て拾う。

+

+収集中の薬

+収集中の巻物

+収集中のロッド

+収集中の矢

+(収集中のアイテム

+

+# よく拾う物

+鑑定のロッド#!k!!

+全感知のロッド#@z0!k!!

+スピードのロッド#!k!!

+

+無敵の薬#!k

+獲得#!k

+経験の薬#!k

+増強の薬#!k

+*破壊*

+抹殺

+

+腕力の薬#!k

+賢さの薬#!k

+器用さの薬#!k

+耐久力の薬#!k

+知能の薬#!k

+魅力の薬#!k

+

+生命の薬#!k

+体力回復#!k

+

+#

+# 魔道具術士は吸収できるものをすべて拾う。

+# アーチャーは矢の材料を拾う。

+# 忍者は暗闇の光源を破壊しない。

+# 吸血鬼は暗闇を作るアイテムを破壊しない。

+#

+?:[EQU $CLASS Magic-Eater]

+のロッド

+の杖

+の魔法棒

+?:[EQU $CLASS Archer]

+の骨

+?:[EQU $CLASS Ninja]

+~光源:暗闇の

+鉄のくさび#@v0

+?:[EQU $RACE Vampire]

+(~暗闇の巻物

+(~暗闇の杖

+?:1

+

+# レベルが10以上なら破壊する例

+#   レベルが10以上に上がった直後から有効です。

+#   条件のレベルを変更した場合は'$'コマンドで読み込むかゲームを再開すると

+#   ちゃんと読み込まれます。

+#

+?:[GEQ $LEVEL 10]

+(!リンゴジュースの薬

+(!空のビン

+(!水の薬

+?:1

+

+# レベルが20以下なら自動破壊禁止で床に放置する例

+# '('を指定する事で、マップ'M'コマンドで表示しないように指示します。

+?:[LEQ $LEVEL 20]

+(~のろまの薬

+(~眠りの薬

+?:1

+

+# 複雑な例(誰も使わないでしょう。このままコピーする場合以外は…)

+?:[AND [GEQ $LEVEL 20] [IOR [EQU $REALM1 Life Nature Craft] [EQU $REALM2 Life Nature Craft]]]

+(!食料

+(!スライムモルド

+(!エルフの行糧

+?:1

+

+

+#

+# 高レベルで弱い装備品を全て壊す例。「無銘の~」の使用には細心の注意が必要。

+# 何もしないとドラゴン装備等も壊すので放置のコマンド文字'~'で守る必要があります。

+#

+?:[GEQ $LEVEL 40]

+~無銘の防具:ドラゴン

+~無銘の防具:エルフのクローク

+~無銘の防具:影のクローク

+~無銘の防具:ミラー・シールド

+~無銘の武器:ダイヤモンド・エッジ

+~無銘の武器:粉砕のメイス

+(!無銘の武器

+(!無銘の防具

+

+?:[GEQ $LEVEL 20]

+(!無銘の武器:(+0,+0)

+(!無銘の防具:,+0]

+?:1

+

+#

+#自分の魔法領域の魔法書に適切な自動刻みをする例。

+#上級魔法書と下級魔法書の中間の優先順位に挿入する例として、

+#未鑑定の武器、防具、矢を床に放置する設定を入れてあります。

+#

+

+#

+#  上級魔法書

+#

+第一領域の4冊目の武芸の書#!k

+第一領域の3冊目の武芸の書#!k

+第一領域の4冊目の魔法書#@md!k

+第一領域の3冊目の魔法書#@mc!k

+第二領域の4冊目の魔法書#@mh!k

+第二領域の3冊目の魔法書#@mg!k

+

+# ここに上級魔法書よりは優先順位が低くて

+# 下級よりは高くしたいものを書く。

+# 例えば、

+未鑑定のダイス目の違う武器

+~未鑑定の武器

+~未鑑定の防具

+~未鑑定の矢

+

+#

+#  下級魔法書

+#

+# 職業と領域によってはわざと特定の魔法書を持たない事があるので、

+# 既に持っていなければ放置。

+

+収集中の魔法書

+~第一領域の2冊目の魔法書#@mb!k

+~第一領域の1冊目の魔法書#@ma!k

+~第二領域の2冊目の魔法書#@mf!k

+~第二領域の1冊目の魔法書#@me!k

+

+

+# その他の魔法書

+

+# 専門外の下級魔法書はレベル30以上なら全て自動破壊する。

+?:[GEQ $LEVEL 30]

+(!読めない1冊目の魔法書

+(!読めない2冊目の魔法書

+(!読めない3冊目の秘術の魔法書

+(!読めない4冊目の秘術の魔法書

+?:1

+

+# 戦士と狂戦士は上級魔法書を手動で破壊すると経験値になるので、拾う。

+?:[EQU $CLASS Warrior Berserker]

+(~読めない4冊目の秘術の魔法書

+読めない4冊目の魔法書

+(~読めない3冊目の秘術の魔法書

+読めない3冊目の魔法書

+?:1

+

+# 破邪パラディンは生命と破邪以外の魔法書を手動で破壊すると経験値になる。

+# 経験値にならない生命の上級魔法書は高く売れるが高レベルでは放置する。

+?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade] [GEQ $LEVEL 30]]

+(~読めない4冊目の生命の魔法書

+(~読めない3冊目の生命の魔法書

+?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade]]

+(~読めない4冊目の秘術の魔法書

+読めない4冊目の魔法書

+(~読めない3冊目の秘術の魔法書

+読めない3冊目の魔法書

+?:1

+

+# 暗黒パラディンは生命と破邪の魔法書を手動で破壊すると経験値になる。

+?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Death]]

+読めない4冊目の生命の魔法書

+読めない4冊目の破邪の魔法書

+読めない3冊目の生命の魔法書

+読めない3冊目の破邪の魔法書

+?:1

+

+# その他の場合も上級魔法書は高く売れるので低レベルでは拾う。

+?:[LEQ $LEVEL 29]

+(~読めない4冊目の秘術の魔法書

+読めない4冊目の魔法書

+(~読めない3冊目の秘術の魔法書

+読めない3冊目の魔法書

+?:1

+

+

diff -ruN hengband/autopick_eng.txt hengband-geo3/autopick_eng.txt
--- hengband/autopick_eng.txt	2004-08-10 23:49:28.000000000 +0900
+++ hengband-geo3/autopick_eng.txt	2007-03-11 10:55:03.372731200 +0900
@@ -1,451 +1,451 @@
-# autopick.txt for Hengband
-#
-# The last part of this file is an example of 'pickpref.prf'.
-# You can copy this file to lib\user\ or ~/.angband/Hengband/
-# to use as preference of auto-picker.
-# (UNIX user must copy to ~/.angband/Hengband/. Others must
-# copy to lib\user\ .)
-#
-#    =====   How to use auto-picker/destroyer   ========
-#
-#     Press the _ in a game to enter editor mode for preference of
-#     auto-picker/destroyer.  Basic usage of the editor is almost same
-#     as vi, and also have emacs like commands.  Most commands is
-#     always displayed on the first line and the right half of the
-#     screen.
-#
-#     Important commands
-#      'a', 'i' or ^Q :  Enter insert mode from command mode
-#      ESC  or ^Q     :  Return to command mode from insert mode
-#      'q'            :  Quit the editor (command mode only)
-#      'hjkl2468'     :  Move cursor (command mode only)
-#      ^B ^N ^P ^F    :  Move cursor (always)
-#      ^I  : Choose an item from inventry/equipment, then insert its name
-#      ^S  : Rotates action (pick up / destroy / leave on floor)
-#      ^U  : Rotates identify state (identified / unidentified / ...)
-#      ^L  : Insert name of the last auto-destroyed item.
-#      '/' : Search string, or search an item specified by ^I or ^L.
-#      'n' : Search next
-#      'N' : Search previous
-#
-#      The preference will be saved in a file named
-#      "pickpref-<<name>>.prf" in your user directory; This will be
-#      ~/.angband/Hengband/ for UNIX, or hengband\lib\user\ for other
-#      operating systems.  You may edit this file using any text
-#      editor, and may use the '$' command within the game to reread
-#      this file.  When you don't use the in-game editor, you may use
-#      "pickpref.prf" as preference file.
-#
-#      When there are both files, the game will read the file
-#      "pickpref-<<current character name>>.prf" first and then read
-#      the file "pickpref.prf".  The first-read file takes priority.
-#
-#      Notes:
-#      Maximum number of active lines is 1009.
-#      A line with a header '#' is a comment.
-#
-#
-#    Editing the file
-#    ---------
-#
-#    Command letter:
-#           Each line determines the actions taken when you step over
-#      a kind of object.  Starting a line with '!' indicates that you
-#      wish to destroy this kind of object.  Starting a line with '~'
-#      indicates that you wish to leave this kind of object on the
-#      floor.  Starting a line with ';' indicates that you wish to
-#      force the game to ask you if you want to pick the item up or
-#      not.  Otherwise, your character will automatically attempt to
-#      pick up the object.
-#           There is an additional command letter '('.  It indicates that
-#      you don't wish this item to be displayed in full map. see below.
-#
-#      Notes:
-#      If you want to disable the effect of the '!' indicator temporally,
-#      use 'always_pickup' option.
-#
-#
-#    Keywords:
-#           After the command letter may come one or more keywords.  They are:
-#
-#      all               : All items match.
-#      collecting        : Matches if you already have that same item.
-#      unaware           : Items with unknown effects match.
-#      unidentified      : Unidentified items match.
-#      identified        : Identified items match.
-#      *identified*      : *Identified* items match.
-#      dice boosted      : Weapons with boosted damage dice match.
-#      more than N dice  : Weapons with dice (dd * ds) better than +N match.
-#      more bonus than N : Items which has more magical bonus than (+N) match.
-#      worthless         : Items which you cannot sell match.
-#      artifacts         : Artifact items match.
-#      ego               : Ego items match.
-#      good              : {good} items match.
-#      nameless          : Non ego/non artifact items match.
-#      average           : {average} items match.
-#      rare              : Rare equipment such as Dragon armors etc. match.
-#      common            : Any equipments except 'rare' equipment match.
-#      wanted            : Wanted monster's corpses or skeletons match.
-#      unique monster's  : Unique monster's corpses, skeletons or statues match.
-#      human             : Human corpses or skeletons match.
-#      unreadable        : Spellbooks other than those you can read match.
-#      first realm's     : Your first magic realm's spellbooks match.
-#      second realm's    : Your second magic realm's spellbooks match.
-#      first             : First one of four spellbooks in each realm match.
-#      second            : Second one of four spellbooks in each realm match.
-#      third             : Third one of four spellbooks in each realm match.
-#      fourth            : Fourth one of four spellbooks in each realm match.
-#
-#      items             : All items match. Use it with an adjective for
-#                          readability (i.e. "unaware items").
-#      weapons           : All weapons including missile weapons match.
-#      armors            : All armors match.
-#      missiles          : Arrows, bolts, and shots match.
-#      magical devices   : Wands, staffs, rods and scrolls match.
-#      lights            : Light sources match.
-#      junks             : Junk items like Shard of Pottery or etc. match.
-#      corpses or skeletons : Corpses or skeletons of monsters match.
-#      spellbooks        : All books match.
-#      favorite weapons  : Weapons suitable for your class (for Priest, Monk,
-#                          BeastMaster, ForceTrainer, Cavalry, and Ninja)
-#
-#      You may also use keywords which match specified kinds of equipment:
-#      weapons, armors, missiles, magical devices, lights, junks, spellbooks,
-#      hafted weapons, shields, bows, rings, amulets, suits, cloaks, helms,
-#      gloves, boots
-#
-#
-#    Character strings:
-#           After the keywords, you may write a character string. Only items
-#      whose name contains this character string as part of their name match.
-#      Upper or lower case makes no difference.
-#           You must insert a ':' between your special keywords and character
-#      string, if both exist in one line.
-#
-#    Force start-of-line matching:
-#      If the first character in a character string is '^', then the
-#      character string must match the beginning of a line.
-#
-#    !Mace           // Destroy Maces and Lead-Filled Maces.
-#    !^Mace          // Destroy only Maces.
-#
-#
-#    Examples:
-#
-#    !worthless items
-#    Meaning:  "destroy all items that are worthless"
-#
-#    unaware potion
-#    Meaning:  "pick up all unaware potions"
-#
-#    ~unidentified lites
-#    Meaning:  "leave all unidentified light sources on the ground"
-#
-#    unidentified more than 25 dice weapons
-#    Meaning:  "pick up all weapons with dice that total more than 25.  A
-#         weapon that is 2d13 qualifies, a weapon that is 5d5 does not."
-#
-#    Acquirement
-#    Meaning:  "pick up anything that includes in its name the word
-#    'Acquirement'"
-#
-#    potion of Experience
-#    Meaning:  "pick up anything named 'potion of experience'"
-#
-#    Lights:stone
-#    Meaning:  "Pick up light sources named stone"
-#
-#    gloves:slaying
-#    Meaning:  "Pick up gauntlets of slaying. Not rings of slaying."
-#
-#
-#    Special Notes:
-#
-#      Lines will be evaluated in order, and first matched line will be
-#      applied. So you can write names of specific excellent items to pick
-#      up, followed by a general item name with '!' to destroy useless items.
-#
-#      ! Tips
-#      !     In full map command ('M'), you can press M, N, K, or D to
-#      ! display locations of items for auto-pickup, leaving, auto-destroy
-#      ! or both auto-pickup and leaving.
-#      !     Additional command letter '(' prevents this display.
-#      !
-#
-#      If you begin the last string in a line with '#', this string will
-#      be automatically inscribed on the item.
-#
-#
-#      Strict syntax of each line is below.
-#
-#      [! ~ ; (]
-#      [[all] [collecting]
-#       [unaware] [unidentified] [identified] [*identified*]
-#       [artifact] [ego] [good] [nameless] [average]
-#       [worthless] [rare] [common]
-#       [dice boosted] [more than N dice] [more bonus than N]
-#       [wanted] [unique monster's] [human] [unreadable]
-#       [first realm's] [second realm's] [first] [second] [third] [fourth]
-#       [items | weapons | favorite weapons | armors | missiles |
-#        magical devices | lights | junks | corpses or skeletons | spellbooks |
-#        hafted weapons | shields | bows | rings | amulets | suits | cloaks |
-#        helms | gloves | boots] :]
-#      [[^]part-of-item-name] [#auto-inscription-string]
-#
-#
-#    =======  How to use Conditional Expressions  ========
-#
-#      The lines of pickpref.prf can be disabled/enabled using
-#      conditional expressions.
-#      The syntax is the same as that of other preference files.
-#
-#      - usage of condition expressions
-#        ?:expr
-#          If result of expr is "0", all lines below are disabled.
-#          If result of expr is "1", all lines below are enabled.
-#          Caution:It cannot be nested.
-#
-#      - usage to include other file
-#        %:filename
-#          Read a file named 'filename' as a new pick-pref file. The file
-#          must be in the user directory.
-#
-#      - usage of operators
-#        [EQU arg1 arg2 ...]
-#          If all args are the same as arg1, returns "1", or else returns "0".
-#        [IOR arg1 arg2 ...]
-#        [AND arg1 arg2 ...]
-#          IOR evaluates and returns all args' logical OR. AND is logical AND.
-#        [NOT arg]
-#          Returns "0" if arg is "1", or else returns "1"
-#        [LEQ arg1 arg2 ...]
-#        [GEQ arg1 arg2 ...]
-#          Compare args as string. LEQ returns "1" if (arg1 <= arg2 <= ...) ,
-#          GEQ returns "1" if (arg1 >= arg2 >= ...) otherwise returns "0".
-#
-#      - Special variables
-#        $RACE
-#         Returns name of player race. One of below:
-#          Human, Half-Elf, Elf, Hobbit, Gnome, Dwarf, Half-Orc,
-#          Half-Troll, Amberite, High-Elf, Barbarian, Half-Ogre,
-#          Half-Giant, Half-Titan, Cyclops, Yeek, Klackon, Kobold,
-#          Nibelung, Dark-Elf, Draconian, Mindflayer, Imp, Golem,
-#          Skeleton, Zombie, Vampire, Spectre, Sprite, Beastman, Ent,
-#          Archon, Balrog, Dunadan, Shadow-Fairy, Kutar, Android,
-#
-#        $CLASS
-#         Returns name of player class. One of below:
-#          Warrior, Mage, Priest, Rogue, Ranger, Paladin,
-#          Warrior-Mage, Chaos-Warrior, Monk, Mindcrafter, High-Mage,
-#          Tourist, Imitator, BeastMaster, Sorcerer, Archer,
-#          Magic-Eater, Bard, Red-Mage, Samurai, ForceTrainer,
-#          Blue-Mage, Cavalry, Berserker, Weaponsmith, Mirror-Master,
-#          Ninja
-#
-#        $PLAYER
-#         Returns player name.
-#        $REALM1
-#         Returns player's first magic realm
-#          none, Life, Sorcery, Nature, Chaos, Death, Trump, Arcane,
-#          Craft, Daemon, Crusade, Music, Kendo
-#        $REALM2
-#         Returns player's second magic realm
-#        $LEVEL
-#         Returns player level as two-character string.
-#          Ex. "01","09","10","50" etc.
-#
-#------------------------------------------------------------------
-#
-#    Below is an example 'pickpref.prf' file.
-#    You can copy this file to lib\user\ or ~/.angband/Hengband/.
-#    (UNIX user must copy to ~/.angband/Hengband/. Others must copy
-#    to  lib\user\ .)
-#
-#------------------------------------------------------------------
-
-wanted corpse
-wanted Skeleton
-
-# Berserker cannot use magical devices; rods, wands, and scrolls.
-?:[EQU $CLASS Berserker]
-!magical devices
-?:1
-
-unaware items
-
-#Artifact lights
-unidentified lights:^Jewel#!!
-unidentified lights:^levitation stone#!!
-unidentified lights:^Palantir#!!
-unidentified lights:^stone#@A0
-unidentified lights:^star#!!
-unidentified lights:^Incandescent Light
-unidentified lights:^Phial#!!
-
-# auto inscribe resistances (see lib/help/objects.txt#Inscriptions)
-~*identified* artifacts#%all
-
-#
-# pick all items which can stack your inventory without inscription.
-#
-collecting rod
-collecting potion
-collecting scroll
-collecting missiles
-(collecting items
-
-#
-# good items
-#
-~rod of Perception#@z0!k!!
-~rod of speed#!k!!
-~rod of Healing#!k!!
-~rod of Enlightenment#k!!
-~rod of Detection#!k!!
-
-potion of Invulnerability#!k
-Acquirement#!k
-potion of Experience
-potion of Augmentation
-*Destruction*
-Genocide
-
-potion of strength
-potion of wisdom
-potion of dexterity
-potion of constitution
-potion of intelligence
-potion of Charisma
-
-potion of life#!k
-healing#!k
-
-#
-# Magic-Eaters pick up all magical device to absorb.
-# Skeletons is material of missiles for Archers.
-# Ninja needs lights of darkness.
-# Vampire needs darkness.
-#
-?:[EQU $CLASS Magic-Eater]
-rod of
-staff of
-wand of
-?:[EQU $CLASS Archer]
-worthless skeleton
-?:[EQU $CLASS Ninja]
-~lights:darkness
-Iron Spike#@v0
-?:[EQU $RACE Vampire]
-(~scroll of darkness
-(~staff of darkness
-?:1
-
-# Destroy unless very early stage.
-?:[GEQ $LEVEL 10]
-(!amulet of Adornment
-(!potion of Apple Juice
-(!Empty Bottle
-(!potion of water
-?:1
-
-# These worthless potions have some use at very early stage.
-# Command letter '(' means, 'Don't display its location in full map command.'
-?:[LEQ $LEVEL 20]
-(~potion of booze
-(~potion of Slowness
-(~potion of Sleep
-?:1
-
-# complex example; destroy needless food items.
-?:[AND [GEQ $LEVEL 20] [IOR [EQU $REALM1 Life Nature Craft] [EQU $REALM2 Life Nature Craft]]]
-(!food
-(!Slime Mold
-(!of Elvish Waybread
-?:1
-
-
-#
-# Destroy useless equipment at high level.
-#
-# Beware!!!!
-#    The line '!nameless armors' destroy all dragon armour!
-#    '~identified armors:dragon' will prevent this dangerous behavior.
-#
-
-?:[GEQ $LEVEL 40]
-~identified armors:dragon
-~nameless armors:Elven Cloak
-~nameless armors:Shadow Cloak
-~nameless weapons:Diamond Edge
-~nameless weapons:Mace of Disruption
-~nameless weapons:Shield of Deflection
-!nameless weapons
-!nameless armors
-
-?:[GEQ $LEVEL 20]
-!nameless weapons:) (+0,+0)
-!nameless armors:,+0]
-?:1
-
-# higher rank of your spellbooks
-first realm's fourth Book of Kendo#!k
-first realm's third Book of Kendo#!k
-first realm's fourth spellbooks#@md!k
-first realm's third spellbooks#@mc!k
-second realm's fourth spellbooks#@mh!k
-second realm's third spellbooks#@mg!k
-
-# unidentified equipment
-unidentified dice boosted weapons
-unidentified more than 25 dice weapons
-unidentified weapons
-unidentified armors
-~unidentified missiles
-
-# lower rank of your spellbooks
-collecting spellbooks
-~first realm's second spellbooks#@mb!k
-~first realm's first spellbooks#@ma!k
-~second realm's second spellbooks#@mf!k
-~second realm's first spellbooks#@me!k
-
-# other spellbooks
-
-?:[GEQ $LEVEL 30]
-(!unreadable first spellbooks
-(!unreadable second spellbooks
-(!unreadable third spellbooks:arcane
-(!unreadable fourth spellbooks:arcane
-?:1
-
-# pick up for experience
-?:[EQU $CLASS Warrior Berserker]
-(~unreadable fourth spellbooks:arcane
-unreadable fourth spellbooks
-(~unreadable third spellbooks:arcane
-unreadable third spellbooks
-?:1
-?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade] [GEQ $LEVEL 30]]
-(~unreadable fourth spellbooks:life
-(~unreadable third spellbooks:life
-?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade]]
-(~unreadable fourth spellbooks:arcane
-unreadable fourth spellbooks
-(~unreadable third spellbooks:arcane
-unreadable third spellbooks
-?:1
-?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Death]]
-unreadable fourth spellbooks:life
-unreadable fourth spellbooks:crusade
-unreadable third spellbooks:life
-unreadable third spellbooks:crusade
-?:1
-
-# pick up for money
-?:[LEQ $LEVEL 29]
-(~unreadable third spellbooks:arcane
-(~unreadable fourth spellbooks:arcane
-unreadable fourth spellbooks
-unreadable third spellbooks
-?:1
-
+# autopick.txt for Hengband

+#

+# The last part of this file is an example of 'pickpref.prf'.

+# You can copy this file to lib\user\ or ~/.angband/Hengband/

+# to use as preference of auto-picker.

+# (UNIX user must copy to ~/.angband/Hengband/. Others must

+# copy to lib\user\ .)

+#

+#    =====   How to use auto-picker/destroyer   ========

+#

+#     Press the _ in a game to enter editor mode for preference of

+#     auto-picker/destroyer.  Basic usage of the editor is almost same

+#     as vi, and also have emacs like commands.  Most commands is

+#     always displayed on the first line and the right half of the

+#     screen.

+#

+#     Important commands

+#      'a', 'i' or ^Q :  Enter insert mode from command mode

+#      ESC  or ^Q     :  Return to command mode from insert mode

+#      'q'            :  Quit the editor (command mode only)

+#      'hjkl2468'     :  Move cursor (command mode only)

+#      ^B ^N ^P ^F    :  Move cursor (always)

+#      ^I  : Choose an item from inventry/equipment, then insert its name

+#      ^S  : Rotates action (pick up / destroy / leave on floor)

+#      ^U  : Rotates identify state (identified / unidentified / ...)

+#      ^L  : Insert name of the last auto-destroyed item.

+#      '/' : Search string, or search an item specified by ^I or ^L.

+#      'n' : Search next

+#      'N' : Search previous

+#

+#      The preference will be saved in a file named

+#      "pickpref-<<name>>.prf" in your user directory; This will be

+#      ~/.angband/Hengband/ for UNIX, or hengband\lib\user\ for other

+#      operating systems.  You may edit this file using any text

+#      editor, and may use the '$' command within the game to reread

+#      this file.  When you don't use the in-game editor, you may use

+#      "pickpref.prf" as preference file.

+#

+#      When there are both files, the game will read the file

+#      "pickpref-<<current character name>>.prf" first and then read

+#      the file "pickpref.prf".  The first-read file takes priority.

+#

+#      Notes:

+#      Maximum number of active lines is 1009.

+#      A line with a header '#' is a comment.

+#

+#

+#    Editing the file

+#    ---------

+#

+#    Command letter:

+#           Each line determines the actions taken when you step over

+#      a kind of object.  Starting a line with '!' indicates that you

+#      wish to destroy this kind of object.  Starting a line with '~'

+#      indicates that you wish to leave this kind of object on the

+#      floor.  Starting a line with ';' indicates that you wish to

+#      force the game to ask you if you want to pick the item up or

+#      not.  Otherwise, your character will automatically attempt to

+#      pick up the object.

+#           There is an additional command letter '('.  It indicates that

+#      you don't wish this item to be displayed in full map. see below.

+#

+#      Notes:

+#      If you want to disable the effect of the '!' indicator temporally,

+#      use 'always_pickup' option.

+#

+#

+#    Keywords:

+#           After the command letter may come one or more keywords.  They are:

+#

+#      all               : All items match.

+#      collecting        : Matches if you already have that same item.

+#      unaware           : Items with unknown effects match.

+#      unidentified      : Unidentified items match.

+#      identified        : Identified items match.

+#      *identified*      : *Identified* items match.

+#      dice boosted      : Weapons with boosted damage dice match.

+#      more than N dice  : Weapons with dice (dd * ds) better than +N match.

+#      more bonus than N : Items which has more magical bonus than (+N) match.

+#      worthless         : Items which you cannot sell match.

+#      artifacts         : Artifact items match.

+#      ego               : Ego items match.

+#      good              : {good} items match.

+#      nameless          : Non ego/non artifact items match.

+#      average           : {average} items match.

+#      rare              : Rare equipment such as Dragon armors etc. match.

+#      common            : Any equipments except 'rare' equipment match.

+#      wanted            : Wanted monster's corpses or skeletons match.

+#      unique monster's  : Unique monster's corpses, skeletons or statues match.

+#      human             : Human corpses or skeletons match.

+#      unreadable        : Spellbooks other than those you can read match.

+#      first realm's     : Your first magic realm's spellbooks match.

+#      second realm's    : Your second magic realm's spellbooks match.

+#      first             : First one of four spellbooks in each realm match.

+#      second            : Second one of four spellbooks in each realm match.

+#      third             : Third one of four spellbooks in each realm match.

+#      fourth            : Fourth one of four spellbooks in each realm match.

+#

+#      items             : All items match. Use it with an adjective for

+#                          readability (i.e. "unaware items").

+#      weapons           : All weapons including missile weapons match.

+#      armors            : All armors match.

+#      missiles          : Arrows, bolts, and shots match.

+#      magical devices   : Wands, staffs, rods and scrolls match.

+#      lights            : Light sources match.

+#      junks             : Junk items like Shard of Pottery or etc. match.

+#      corpses or skeletons : Corpses or skeletons of monsters match.

+#      spellbooks        : All books match.

+#      favorite weapons  : Weapons suitable for your class (for Priest, Monk,

+#                          BeastMaster, ForceTrainer, Cavalry, and Ninja)

+#

+#      You may also use keywords which match specified kinds of equipment:

+#      weapons, armors, missiles, magical devices, lights, junks, spellbooks,

+#      hafted weapons, shields, bows, rings, amulets, suits, cloaks, helms,

+#      gloves, boots

+#

+#

+#    Character strings:

+#           After the keywords, you may write a character string. Only items

+#      whose name contains this character string as part of their name match.

+#      Upper or lower case makes no difference.

+#           You must insert a ':' between your special keywords and character

+#      string, if both exist in one line.

+#

+#    Force start-of-line matching:

+#      If the first character in a character string is '^', then the

+#      character string must match the beginning of a line.

+#

+#    !Mace           // Destroy Maces and Lead-Filled Maces.

+#    !^Mace          // Destroy only Maces.

+#

+#

+#    Examples:

+#

+#    !worthless items

+#    Meaning:  "destroy all items that are worthless"

+#

+#    unaware potion

+#    Meaning:  "pick up all unaware potions"

+#

+#    ~unidentified lites

+#    Meaning:  "leave all unidentified light sources on the ground"

+#

+#    unidentified more than 25 dice weapons

+#    Meaning:  "pick up all weapons with dice that total more than 25.  A

+#         weapon that is 2d13 qualifies, a weapon that is 5d5 does not."

+#

+#    Acquirement

+#    Meaning:  "pick up anything that includes in its name the word

+#    'Acquirement'"

+#

+#    potion of Experience

+#    Meaning:  "pick up anything named 'potion of experience'"

+#

+#    Lights:stone

+#    Meaning:  "Pick up light sources named stone"

+#

+#    gloves:slaying

+#    Meaning:  "Pick up gauntlets of slaying. Not rings of slaying."

+#

+#

+#    Special Notes:

+#

+#      Lines will be evaluated in order, and first matched line will be

+#      applied. So you can write names of specific excellent items to pick

+#      up, followed by a general item name with '!' to destroy useless items.

+#

+#      ! Tips

+#      !     In full map command ('M'), you can press M, N, K, or D to

+#      ! display locations of items for auto-pickup, leaving, auto-destroy

+#      ! or both auto-pickup and leaving.

+#      !     Additional command letter '(' prevents this display.

+#      !

+#

+#      If you begin the last string in a line with '#', this string will

+#      be automatically inscribed on the item.

+#

+#

+#      Strict syntax of each line is below.

+#

+#      [! ~ ; (]

+#      [[all] [collecting]

+#       [unaware] [unidentified] [identified] [*identified*]

+#       [artifact] [ego] [good] [nameless] [average]

+#       [worthless] [rare] [common]

+#       [dice boosted] [more than N dice] [more bonus than N]

+#       [wanted] [unique monster's] [human] [unreadable]

+#       [first realm's] [second realm's] [first] [second] [third] [fourth]

+#       [items | weapons | favorite weapons | armors | missiles |

+#        magical devices | lights | junks | corpses or skeletons | spellbooks |

+#        hafted weapons | shields | bows | rings | amulets | suits | cloaks |

+#        helms | gloves | boots] :]

+#      [[^]part-of-item-name] [#auto-inscription-string]

+#

+#

+#    =======  How to use Conditional Expressions  ========

+#

+#      The lines of pickpref.prf can be disabled/enabled using

+#      conditional expressions.

+#      The syntax is the same as that of other preference files.

+#

+#      - usage of condition expressions

+#        ?:expr

+#          If result of expr is "0", all lines below are disabled.

+#          If result of expr is "1", all lines below are enabled.

+#          Caution:It cannot be nested.

+#

+#      - usage to include other file

+#        %:filename

+#          Read a file named 'filename' as a new pick-pref file. The file

+#          must be in the user directory.

+#

+#      - usage of operators

+#        [EQU arg1 arg2 ...]

+#          If all args are the same as arg1, returns "1", or else returns "0".

+#        [IOR arg1 arg2 ...]

+#        [AND arg1 arg2 ...]

+#          IOR evaluates and returns all args' logical OR. AND is logical AND.

+#        [NOT arg]

+#          Returns "0" if arg is "1", or else returns "1"

+#        [LEQ arg1 arg2 ...]

+#        [GEQ arg1 arg2 ...]

+#          Compare args as string. LEQ returns "1" if (arg1 <= arg2 <= ...) ,

+#          GEQ returns "1" if (arg1 >= arg2 >= ...) otherwise returns "0".

+#

+#      - Special variables

+#        $RACE

+#         Returns name of player race. One of below:

+#          Human, Half-Elf, Elf, Hobbit, Gnome, Dwarf, Half-Orc,

+#          Half-Troll, Amberite, High-Elf, Barbarian, Half-Ogre,

+#          Half-Giant, Half-Titan, Cyclops, Yeek, Klackon, Kobold,

+#          Nibelung, Dark-Elf, Draconian, Mindflayer, Imp, Golem,

+#          Skeleton, Zombie, Vampire, Spectre, Sprite, Beastman, Ent,

+#          Archon, Balrog, Dunadan, Shadow-Fairy, Kutar, Android,

+#

+#        $CLASS

+#         Returns name of player class. One of below:

+#          Warrior, Mage, Priest, Rogue, Ranger, Paladin,

+#          Warrior-Mage, Chaos-Warrior, Monk, Mindcrafter, High-Mage,

+#          Tourist, Imitator, BeastMaster, Sorcerer, Archer,

+#          Magic-Eater, Bard, Red-Mage, Samurai, ForceTrainer,

+#          Blue-Mage, Cavalry, Berserker, Weaponsmith, Mirror-Master,

+#          Ninja, Geomancer

+#

+#        $PLAYER

+#         Returns player name.

+#        $REALM1

+#         Returns player's first magic realm

+#          none, Life, Sorcery, Nature, Chaos, Death, Trump, Arcane,

+#          Craft, Daemon, Crusade, Music, Kendo

+#        $REALM2

+#         Returns player's second magic realm

+#        $LEVEL

+#         Returns player level as two-character string.

+#          Ex. "01","09","10","50" etc.

+#

+#------------------------------------------------------------------

+#

+#    Below is an example 'pickpref.prf' file.

+#    You can copy this file to lib\user\ or ~/.angband/Hengband/.

+#    (UNIX user must copy to ~/.angband/Hengband/. Others must copy

+#    to  lib\user\ .)

+#

+#------------------------------------------------------------------

+

+wanted corpse

+wanted Skeleton

+

+# Berserker cannot use magical devices; rods, wands, and scrolls.

+?:[EQU $CLASS Berserker]

+!magical devices

+?:1

+

+unaware items

+

+#Artifact lights

+unidentified lights:^Jewel#!!

+unidentified lights:^levitation stone#!!

+unidentified lights:^Palantir#!!

+unidentified lights:^stone#@A0

+unidentified lights:^star#!!

+unidentified lights:^Incandescent Light

+unidentified lights:^Phial#!!

+

+# auto inscribe resistances (see lib/help/objects.txt#Inscriptions)

+~*identified* artifacts#%all

+

+#

+# pick all items which can stack your inventory without inscription.

+#

+collecting rod

+collecting potion

+collecting scroll

+collecting missiles

+(collecting items

+

+#

+# good items

+#

+~rod of Perception#@z0!k!!

+~rod of speed#!k!!

+~rod of Healing#!k!!

+~rod of Enlightenment#k!!

+~rod of Detection#!k!!

+

+potion of Invulnerability#!k

+Acquirement#!k

+potion of Experience

+potion of Augmentation

+*Destruction*

+Genocide

+

+potion of strength

+potion of wisdom

+potion of dexterity

+potion of constitution

+potion of intelligence

+potion of Charisma

+

+potion of life#!k

+healing#!k

+

+#

+# Magic-Eaters pick up all magical device to absorb.

+# Skeletons is material of missiles for Archers.

+# Ninja needs lights of darkness.

+# Vampire needs darkness.

+#

+?:[EQU $CLASS Magic-Eater]

+rod of

+staff of

+wand of

+?:[EQU $CLASS Archer]

+worthless skeleton

+?:[EQU $CLASS Ninja]

+~lights:darkness

+Iron Spike#@v0

+?:[EQU $RACE Vampire]

+(~scroll of darkness

+(~staff of darkness

+?:1

+

+# Destroy unless very early stage.

+?:[GEQ $LEVEL 10]

+(!amulet of Adornment

+(!potion of Apple Juice

+(!Empty Bottle

+(!potion of water

+?:1

+

+# These worthless potions have some use at very early stage.

+# Command letter '(' means, 'Don't display its location in full map command.'

+?:[LEQ $LEVEL 20]

+(~potion of booze

+(~potion of Slowness

+(~potion of Sleep

+?:1

+

+# complex example; destroy needless food items.

+?:[AND [GEQ $LEVEL 20] [IOR [EQU $REALM1 Life Nature Craft] [EQU $REALM2 Life Nature Craft]]]

+(!food

+(!Slime Mold

+(!of Elvish Waybread

+?:1

+

+

+#

+# Destroy useless equipment at high level.

+#

+# Beware!!!!

+#    The line '!nameless armors' destroy all dragon armour!

+#    '~identified armors:dragon' will prevent this dangerous behavior.

+#

+

+?:[GEQ $LEVEL 40]

+~identified armors:dragon

+~nameless armors:Elven Cloak

+~nameless armors:Shadow Cloak

+~nameless weapons:Diamond Edge

+~nameless weapons:Mace of Disruption

+~nameless weapons:Shield of Deflection

+!nameless weapons

+!nameless armors

+

+?:[GEQ $LEVEL 20]

+!nameless weapons:) (+0,+0)

+!nameless armors:,+0]

+?:1

+

+# higher rank of your spellbooks

+first realm's fourth Book of Kendo#!k

+first realm's third Book of Kendo#!k

+first realm's fourth spellbooks#@md!k

+first realm's third spellbooks#@mc!k

+second realm's fourth spellbooks#@mh!k

+second realm's third spellbooks#@mg!k

+

+# unidentified equipment

+unidentified dice boosted weapons

+unidentified more than 25 dice weapons

+unidentified weapons

+unidentified armors

+~unidentified missiles

+

+# lower rank of your spellbooks

+collecting spellbooks

+~first realm's second spellbooks#@mb!k

+~first realm's first spellbooks#@ma!k

+~second realm's second spellbooks#@mf!k

+~second realm's first spellbooks#@me!k

+

+# other spellbooks

+

+?:[GEQ $LEVEL 30]

+(!unreadable first spellbooks

+(!unreadable second spellbooks

+(!unreadable third spellbooks:arcane

+(!unreadable fourth spellbooks:arcane

+?:1

+

+# pick up for experience

+?:[EQU $CLASS Warrior Berserker]

+(~unreadable fourth spellbooks:arcane

+unreadable fourth spellbooks

+(~unreadable third spellbooks:arcane

+unreadable third spellbooks

+?:1

+?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade] [GEQ $LEVEL 30]]

+(~unreadable fourth spellbooks:life

+(~unreadable third spellbooks:life

+?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Crusade]]

+(~unreadable fourth spellbooks:arcane

+unreadable fourth spellbooks

+(~unreadable third spellbooks:arcane

+unreadable third spellbooks

+?:1

+?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Death]]

+unreadable fourth spellbooks:life

+unreadable fourth spellbooks:crusade

+unreadable third spellbooks:life

+unreadable third spellbooks:crusade

+?:1

+

+# pick up for money

+?:[LEQ $LEVEL 29]

+(~unreadable third spellbooks:arcane

+(~unreadable fourth spellbooks:arcane

+unreadable fourth spellbooks

+unreadable third spellbooks

+?:1

+

m_info.txtへの追加

領域魔法の使用可否、レベルなどを指定。風水士の場合超能力者等と同じ独自技能になるので、領域魔法は全てなし。

diff -ruN hengband/lib/edit/m_info.txt hengband-geo3/lib/edit/m_info.txt
--- hengband/lib/edit/m_info.txt	2004-07-04 16:13:04.000000000 +0900
+++ hengband-geo3/lib/edit/m_info.txt	2007-03-11 10:55:47.065558400 +0900
@@ -3703,3 +3703,37 @@

 # Crusade
 R:9:0
+
+
+### Geomancer ###
+N:27
+I:LIFE:WIS:0x00:0:99:400
+# Life
+R:0:0
+
+# Sorcery
+R:1:0
+
+# Neture
+R:2:0
+
+# Chaos
+R:3:0
+
+# Death
+R:4:0
+
+# Trump
+R:5:0
+
+# Arcane
+R:6:0
+
+# Craft
+R:7:0
+
+# Deamon
+R:8:0
+
+# Crusade
+R:9:0

s_info.txtへの追加

各武器やマーシャルアーツ、二刀流、乗馬の技能値を指定する。これも非常に長いので略。

diff -ruN hengband/lib/edit/s_info.txt hengband-geo3/lib/edit/s_info.txt
--- hengband/lib/edit/s_info.txt	2002-11-15 23:24:14.000000000 +0900
+++ hengband-geo3/lib/edit/s_info.txt	2007-03-11 10:55:47.125644800 +0900
@@ -8967,3 +8967,336 @@
 S:0:0:7000  # SUDE
 S:1:4000:8000  # NITOURYU
 S:2:0:0  # RIDING
+
+### Geomancer ###
+N:27
+# Bow
+W:0:0:0:1  # 0
+W:0:1:0:1  #
+W:0:2:1:2  # SLING
+W:0:3:0:1  #
+W:0:4:0:1  #
+W:0:5:0:1  #
+W:0:6:0:1  #
+W:0:7:0:1  #
+W:0:8:0:1  #
+W:0:9:0:1  #
+W:0:10:0:1  # 10
+W:0:11:0:1  #
+W:0:12:0:1  # SHORT_BOW
+W:0:13:0:1  # LONG_BOW
+W:0:14:0:1  #
+W:0:15:0:1  #
+W:0:16:0:1  #
+W:0:17:0:1  #
+W:0:18:0:1  #
+W:0:19:0:1  #
+W:0:20:0:1  # 20
+W:0:21:0:1  #
+W:0:22:0:1  #
+W:0:23:0:1  # LIGHT_XBOW
+W:0:24:0:1  # HEAVY_XBOW
+W:0:25:0:1  #
+W:0:26:0:1  #
+W:0:27:0:1  #
+W:0:28:0:1  #
+W:0:29:0:1  #
+W:0:30:0:1  # 30
+W:0:31:0:1  #
+W:0:32:0:1  #
+W:0:33:0:1  #
+W:0:34:0:1  #
+W:0:35:0:1  #
+W:0:36:0:1  #
+W:0:37:0:1  #
+W:0:38:0:1  #
+W:0:39:0:1  #
+W:0:40:0:1  # 40
+W:0:41:0:1  #
+W:0:42:0:1  #
+W:0:43:0:1  #
+W:0:44:0:1  #
+W:0:45:0:1  #
+W:0:46:0:1  #
+W:0:47:0:1  #
+W:0:48:0:1  #
+W:0:49:0:1  #
+W:0:50:0:1  # 50
+W:0:51:0:1  #
+W:0:52:0:1  #
+W:0:53:0:1  #
+W:0:54:0:1  #
+W:0:55:0:1  #
+W:0:56:0:1  #
+W:0:57:0:1  #
+W:0:58:0:1  #
+W:0:59:0:1  #
+W:0:60:0:1  # 60
+W:0:61:0:1  #
+W:0:62:0:1  #
+W:0:63:0:4  # NAMAKE
+# Digging
+W:1:0:0:1  # 0
+W:1:1:0:1  # SHOVEL
+W:1:2:0:1  # GNOMISH_SHOVEL
+W:1:3:0:1  # DWARVEN_SHOVEL
+W:1:4:0:1  # PICK
+W:1:5:0:1  # ORCISH_PICK
+W:1:6:0:1  # DWARVEN_PICK
+W:1:7:0:1  # MATTOCK
+W:1:8:0:1  #
+W:1:9:0:1  #
+W:1:10:0:1  # 10
+W:1:11:0:1  #
+W:1:12:0:1  #
+W:1:13:0:1  #
+W:1:14:0:1  #
+W:1:15:0:1  #
+W:1:16:0:1  #
+W:1:17:0:1  #
+W:1:18:0:1  #
+W:1:19:0:1  #
+W:1:20:0:1  # 20
+W:1:21:0:1  #
+W:1:22:0:1  #
+W:1:23:0:1  #
+W:1:24:0:1  #
+W:1:25:0:1  #
+W:1:26:0:1  #
+W:1:27:0:1  #
+W:1:28:0:1  #
+W:1:29:0:1  #
+W:1:30:0:1  # 30
+W:1:31:0:1  #
+W:1:32:0:1  #
+W:1:33:0:1  #
+W:1:34:0:1  #
+W:1:35:0:1  #
+W:1:36:0:1  #
+W:1:37:0:1  #
+W:1:38:0:1  #
+W:1:39:0:1  #
+W:1:40:0:1  # 40
+W:1:41:0:1  #
+W:1:42:0:1  #
+W:1:43:0:1  #
+W:1:44:0:1  #
+W:1:45:0:1  #
+W:1:46:0:1  #
+W:1:47:0:1  #
+W:1:48:0:1  #
+W:1:49:0:1  #
+W:1:50:0:1  # 50
+W:1:51:0:1  #
+W:1:52:0:1  #
+W:1:53:0:1  #
+W:1:54:0:1  #
+W:1:55:0:1  #
+W:1:56:0:1  #
+W:1:57:0:1  #
+W:1:58:0:1  #
+W:1:59:0:1  #
+W:1:60:0:1  # 60
+W:1:61:0:1  #
+W:1:62:0:1  #
+W:1:63:0:1  #
+# Hafted
+W:2:0:0:1  # 0
+W:2:1:0:1  # CLUB
+W:2:2:0:1  # WHIP
+W:2:3:0:1  # QUARTERSTAFF
+W:2:4:0:0  # NUNCHAKU
+W:2:5:0:1  # MACE
+W:2:6:0:1  # BALL_AND_CHAIN
+W:2:7:0:1  # JO_STAFF
+W:2:8:0:1  # WAR_HAMMER
+W:2:9:0:1  #
+W:2:10:0:1  # 10
+W:2:11:0:1  # THREE_PIECE_ROD
+W:2:12:0:1  # MORNING_STAR
+W:2:13:0:1  # FLAIL
+W:2:14:0:1  # BO_STAFF
+W:2:15:0:1  # LEAD_FILLED_MACE
+W:2:16:0:1  # TETSUBO
+W:2:17:0:1  #
+W:2:18:0:1  # TWO_HANDED_FLAIL
+W:2:19:0:1  # GREAT_HAMMER
+W:2:20:0:1  # MACE_OF_DISRUPTION
+W:2:21:0:1  # WIZSTAFF
+W:2:22:0:1  #
+W:2:23:0:1  #
+W:2:24:0:1  #
+W:2:25:0:1  #
+W:2:26:0:1  #
+W:2:27:0:1  #
+W:2:28:0:1  #
+W:2:29:0:1  #
+W:2:30:0:1  # 30
+W:2:31:0:1  #
+W:2:32:0:1  #
+W:2:33:0:1  #
+W:2:34:0:1  #
+W:2:35:0:1  #
+W:2:36:0:1  #
+W:2:37:0:1  #
+W:2:38:0:1  #
+W:2:39:0:1  #
+W:2:40:0:0  # TSURIZAO
+W:2:41:0:1  #
+W:2:42:0:1  #
+W:2:43:0:1  #
+W:2:44:0:1  #
+W:2:45:0:1  #
+W:2:46:0:1  #
+W:2:47:0:1  #
+W:2:48:0:1  #
+W:2:49:0:1  #
+W:2:50:0:1  # GROND
+W:2:51:0:1  #
+W:2:52:0:1  #
+W:2:53:0:1  #
+W:2:54:0:1  #
+W:2:55:0:1  #
+W:2:56:0:1  #
+W:2:57:0:1  #
+W:2:58:0:1  #
+W:2:59:0:1  #
+W:2:60:0:1  # 60
+W:2:61:0:1  #
+W:2:62:0:1  #
+W:2:63:0:4  # NAMAKE
+# Polearm
+W:3:0:0:1  # 0
+W:3:1:0:1  # HATCHET
+W:3:2:0:1  # SPEAR
+W:3:3:0:1  # SICKLE
+W:3:4:0:1  # AWL_PIKE
+W:3:5:0:1  # TRIDENT
+W:3:6:0:1  # FAUCHARD
+W:3:7:0:1  # BROAD_SPEAR
+W:3:8:0:1  # PIKE
+W:3:9:0:1  # NAGINATA
+W:3:10:0:1  # BEAKED_AXE
+W:3:11:0:1  # BROAD_AXE
+W:3:12:0:1  # LUCERNE_HAMMER
+W:3:13:0:1  # GLAIVE
+W:3:14:0:1  # LAJATANG
+W:3:15:0:1  # HALBERD
+W:3:16:0:1  # GUISARME
+W:3:17:0:1  # SCYTHE
+W:3:18:0:1  #
+W:3:19:0:1  #
+W:3:20:0:1  # LANCE
+W:3:21:0:1  #
+W:3:22:0:1  # BATTLE_AXE
+W:3:23:0:1  #
+W:3:24:0:1  #
+W:3:25:0:1  # GREAT_AXE
+W:3:26:0:1  # TRIFURCATE_SPEAR
+W:3:27:0:1  #
+W:3:28:0:1  # LOCHABER_AXE
+W:3:29:0:1  # HEAVY_LANCE
+W:3:30:0:1  # SCYTHE_OF_SLICING
+W:3:31:0:1  #
+W:3:32:0:1  #
+W:3:33:0:1  #
+W:3:34:0:1  #
+W:3:35:0:1  #
+W:3:36:0:1  #
+W:3:37:0:1  #
+W:3:38:0:1  #
+W:3:39:0:1  #
+W:3:40:0:1  # 40
+W:3:41:0:1  #
+W:3:42:0:1  #
+W:3:43:0:1  #
+W:3:44:0:1  #
+W:3:45:0:1  #
+W:3:46:0:1  #
+W:3:47:0:1  #
+W:3:48:0:1  #
+W:3:49:0:1  #
+W:3:50:0:1  # DEATH_SCYTHE
+W:3:51:0:1  #
+W:3:52:0:1  #
+W:3:53:0:1  #
+W:3:54:0:1  #
+W:3:55:0:1  #
+W:3:56:0:1  #
+W:3:57:0:1  #
+W:3:58:0:1  #
+W:3:59:0:1  #
+W:3:60:0:1  # 60
+W:3:61:0:1  #
+W:3:62:0:1  #
+W:3:63:0:1  #
+# Sword
+W:4:0:0:1  # 0
+W:4:1:0:1  # BROKEN_DAGGER
+W:4:2:0:1  # BROKEN_SWORD
+W:4:3:0:1  #
+W:4:4:1:4  # DAGGER
+W:4:5:0:1  # MAIN_GAUCHE
+W:4:6:0:2  # TANTO
+W:4:7:0:1  # RAPIER
+W:4:8:0:1  # SMALL_SWORD
+W:4:9:0:1  # BASILLARD
+W:4:10:0:1  # SHORT_SWORD
+W:4:11:0:1  # SABRE
+W:4:12:0:1  # CUTLASS
+W:4:13:0:1  # WAKIZASHI
+W:4:14:0:1  # KHOPESH
+W:4:15:0:1  # TULWAR
+W:4:16:0:1  # BROAD_SWORD
+W:4:17:0:1  # LONG_SWORD
+W:4:18:0:1  # SCIMITAR
+W:4:19:0:1  # NINJATO
+W:4:20:0:1  # KATANA
+W:4:21:0:1  # BASTARD_SWORD
+W:4:22:0:1  # GREAT_SCIMITAR
+W:4:23:0:1  # CLAYMORE
+W:4:24:0:1  # ESPADON
+W:4:25:0:1  # TWO_HANDED_SWORD
+W:4:26:0:1  # FLAMBERGE
+W:4:27:0:1  # NO_DACHI
+W:4:28:0:1  # EXECUTIOERS_SWORD
+W:4:29:0:1  # ZWEIHANDER
+W:4:30:0:1  # BLADE_OF_CHAOS
+W:4:31:0:1  # DIAMOND_EDGE
+W:4:32:0:4  # DOKUBARI
+W:4:33:0:1  #
+W:4:34:0:1  #
+W:4:35:0:1  #
+W:4:36:0:1  #
+W:4:37:0:1  #
+W:4:38:0:1  #
+W:4:39:0:1  #
+W:4:40:0:1  # 40
+W:4:41:0:1  #
+W:4:42:0:1  #
+W:4:43:0:1  #
+W:4:44:0:1  #
+W:4:45:0:1  #
+W:4:46:0:1  #
+W:4:47:0:1  #
+W:4:48:0:1  #
+W:4:49:0:1  #
+W:4:50:0:1  # 50
+W:4:51:0:1  #
+W:4:52:0:1  #
+W:4:53:0:1  #
+W:4:54:0:1  #
+W:4:55:0:1  #
+W:4:56:0:1  #
+W:4:57:0:1  #
+W:4:58:0:1  #
+W:4:59:0:1  #
+W:4:60:0:1  # 60
+W:4:61:0:1  #
+W:4:62:0:1  #
+W:4:63:0:1  #
+# Skill
+S:0:0:4000  # SUDE
+S:1:0:0  # NITOURYU
+S:2:0:0  # RIDING
+

クエスト報酬/施設使用の指定

種族よりも追加しないといけない事項が大掛かりになる傾向がある。

diff -ruN hengband/lib/edit/t0000001.txt hengband-geo3/lib/edit/t0000001.txt
--- hengband/lib/edit/t0000001.txt	2007-02-10 23:50:12.000000000 +0900
+++ hengband-geo3/lib/edit/t0000001.txt	2007-03-11 10:55:47.175716800 +0900
@@ -79,7 +79,7 @@
 F:!:FLOOR:3:0:70

 # Ring of Warning
-?:[AND [EQU $QUEST1 3] [EQU $CLASS Mage High-Mage Blue-Mage Sorcerer Mirror-Master] ]
+?:[AND [EQU $QUEST1 3] [EQU $CLASS Mage High-Mage Blue-Mage Sorcerer Mirror-Master Geomancer] ]
 F:b:BUILDING_1:3:0:0:0:0:NONE:14
 F:!:FLOOR:3:0:618

@@ -392,9 +392,9 @@
 F:a:BUILDING_0:3
 F:@:FLOOR:3:0:0:0:218

-# Quest 27 rewarding (Warrior-Mage, Red-Mage and Magic-Eater
+# Quest 27 rewarding (Warrior-Mage, Red-Mage, Magic-Eater and Geomancer
 # get The Charmed Pendant)
-?:[AND [EQU $QUEST27 3] [EQU $CLASS Warrior-Mage Red-Mage Magic-Eater] ]
+?:[AND [EQU $QUEST27 3] [EQU $CLASS Warrior-Mage Red-Mage Magic-Eater Geomancer] ]
 F:a:BUILDING_0:3
 F:@:FLOOR:3:0:0:0:219

diff -ruN hengband/lib/edit/t0000002.txt hengband-geo3/lib/edit/t0000002.txt
--- hengband/lib/edit/t0000002.txt	2007-02-10 23:50:12.000000000 +0900
+++ hengband-geo3/lib/edit/t0000002.txt	2007-03-11 10:55:47.185731200 +0900
@@ -336,8 +336,8 @@
 B:7:A:0:武器を強化する:400:800:w:23:0
 B:$7:A:1:Enchant armor:300:600:a:24:0
 B:7:A:1:防具を強化する:300:600:a:24:0
-B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
-B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
+B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
+B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0

 B:$9:N:Temple of Life:Crysania:Human
 B:9:N:生命魔術の塔:クリサニア:人間
@@ -354,8 +354,8 @@
 B:10:A:1:一泊する:0:100:r:17:0
 B:$10:A:2:Identify possessions:100:2000:i:26:0
 B:10:A:2:持ち物全てを鑑定:100:2000:i:26:0
-B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$11:N:Archers Guild:Trallin:Half-elf
 B:11:N:アーチャーのギルド:トゥラリン:ハーフエルフ
@@ -363,8 +363,8 @@
 B:11:A:0:矢や石等を強化する:20:40:a:30:0
 B:$11:A:1:Enchant bow:400:800:b:31:0
 B:11:A:1:弓を強化する:400:800:b:31:0
-B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
+B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0

 B:$12:N:Paladins Guild:Langordathur:Human
 B:12:N:パラディンのギルド:ランゴルダスール:人間
@@ -372,8 +372,8 @@
 B:12:A:0:防具を強化する:300:600:a:24:0
 B:$12:A:1:See Healers:0:150:h:28:0
 B:12:A:1:治療家に会う:0:150:h:28:0
-B:$12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 D:######################################################################################################################################################################################################
 D:#---------------------TTTT-------------------------------------------------------------TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT#
diff -ruN hengband/lib/edit/t0000003.txt hengband-geo3/lib/edit/t0000003.txt
--- hengband/lib/edit/t0000003.txt	2007-02-10 23:50:12.000000000 +0900
+++ hengband-geo3/lib/edit/t0000003.txt	2007-03-11 10:55:47.205760000 +0900
@@ -319,8 +319,8 @@
 B:10:A:2:持ち物全てを鑑定:100:600:i:26:0
 B:$10:A:3:request Quest:0:0:q:6:0
 B:10:A:3:クエスト:0:0:q:6:0
-B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$11:N:Archers Guild:Angros:Elf
 B:11:N:アーチャーのギルド:アングロス:エルフ
@@ -328,8 +328,8 @@
 B:11:A:0:矢や石等を強化する:20:40:a:30:0
 B:$11:A:1:Enchant bow:400:800:b:31:0
 B:11:A:1:弓を強化する:400:800:b:31:0
-B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
+B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0

 B:$12:N:Paladins Guild:Vilios:Human
 B:12:N:パラディンのギルド:ヴィリオス:人間
@@ -337,8 +337,8 @@
 B:12:A:0:防具を強化する:400:1000:a:24:0
 B:$12:A:1:See Healers:0:150:h:28:0
 B:12:A:1:治療家に会う:0:150:h:28:0
-B:$12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$13:N:Trump Tower:Pelloi:Amberite
 B:13:N:トランプ魔術の塔:ペロイ:アンバライト
diff -ruN hengband/lib/edit/t0000004.txt hengband-geo3/lib/edit/t0000004.txt
--- hengband/lib/edit/t0000004.txt	2007-02-10 23:50:12.000000000 +0900
+++ hengband-geo3/lib/edit/t0000004.txt	2007-03-11 10:55:47.225788800 +0900
@@ -194,8 +194,8 @@
 B:7:A:1:防具を強化する:200:500:a:24:0
 B:$7:A:2:Request quest:0:0:q:6:0
 B:7:A:2:クエスト:0:0:q:6:0
-B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
-B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
+B:$7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
+B:7:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0

 B:$8:N:Wizards Tower:Valceronwe:Sprite
 B:8:N:賢者の塔:ヴァルセロン:妖精
@@ -205,8 +205,8 @@
 B:8:A:1:全てのアイテムを再充填:0:0:a:45:0
 B:$8:A:2:Identify posessions:200:1000:i:26:0
 B:8:A:2:持ち物全てを鑑定:200:1000:i:26:0
-B:$8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
-B:8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
+B:$8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:8:C:0:2:0:0:1:0:1:0:0:0:2:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$9:N:Inner Temple:Kabir:Dwarf
 B:9:N:寺院:カビー:ドワーフ
@@ -214,8 +214,8 @@
 B:9:A:0:治療の祈祷:0:100:h:28:0
 B:$9:A:1:Restoration:300:1000:r:29:0
 B:9:A:1:能力回復:300:1000:r:29:0
-B:$9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:9:C:0:0:2:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$10:N:Thieves Den:Molvrae:Dark Elf
 B:10:N:盗賊のアジト:モルブラエ:ダーク・エルフ
@@ -223,8 +223,8 @@
 B:10:A:1:一泊する:0:50:r:17:0
 B:$10:A:2:Identify possessions:175:800:i:26:0
 B:10:A:2:持ち物全てを鑑定:175:800:i:26:0
-B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:10:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$11:N:Archers Tavern:Celegail:Elf
 B:11:N:アーチャーの酒場:ケレガイル:エルフ
@@ -232,8 +232,8 @@
 B:11:A:0:矢や石等を強化する:22:44:a:30:0
 B:$11:A:1:Enchant bow:400:500:b:31:0
 B:11:A:1:弓を強化する:400:500:b:31:0
-B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
+B:11:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0

 B:$12:N:Paladins Sanctum:Calpirosse:Half-Elf
 B:12:N:パラディンの聖所:カルパイロス:ハーフエルフ
@@ -241,8 +241,8 @@
 B:12:A:0:防具を強化する:240:440:a:24:0
 B:$12:A:1:See Healers:0:100:h:28:0
 B:12:A:1:治療家に会う:0:100:h:28:0
-B:$12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:12:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$13:N:Trump Tower:Colleuse:Amberite
 B:13:N:トランプ魔術の塔:コレウス:アンバライト
diff -ruN hengband/lib/edit/t_lite.txt hengband-geo3/lib/edit/t_lite.txt
--- hengband/lib/edit/t_lite.txt	2007-02-10 23:50:14.000000000 +0900
+++ hengband-geo3/lib/edit/t_lite.txt	2007-03-11 10:55:47.235803200 +0900
@@ -93,7 +93,7 @@
 F:!:FLOOR:3:0:70

 # Ring of Warning
-?:[AND [EQU $QUEST1 3] [EQU $CLASS Mage High-Mage Blue-Mage Sorcerer Mirror-Master] ]
+?:[AND [EQU $QUEST1 3] [EQU $CLASS Mage High-Mage Blue-Mage Sorcerer Mirror-Master Geomancer] ]
 F:b:BUILDING_1:3:0:0:0:0:NONE:2
 F:!:FLOOR:3:0:618

@@ -328,7 +328,7 @@

 # Quest 27 rewarding (Warrior-Mage, Red-Mage and Magic-Eater
 # get The Charmed Pendant)
-?:[AND [EQU $QUEST27 3] [EQU $CLASS Warrior-Mage Red-Mage Magic-Eater] ]
+?:[AND [EQU $QUEST27 3] [EQU $CLASS Warrior-Mage Red-Mage Magic-Eater Geomancer] ]
 F:b:BUILDING_1:3:0:0:0:0:NONE:15
 F:!:FLOOR:3:0:0:0:219

@@ -564,8 +564,8 @@
 B:6:A:0:武器を強化する:400:800:w:23:0
 B:$6:A:1:Enchant armor:300:600:a:24:0
 B:6:A:1:防具を強化する:300:600:a:24:0
-B:$6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
-B:6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0
+B:$6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0
+B:6:C:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:2:0:0:2:2:2:0:0:0

 B:$7:N:Temple of Life:Crysania:Human
 B:7:N:生命魔術の塔:クリサニア:人間
@@ -582,8 +582,8 @@
 B:8:A:1:一泊する:0:100:r:17:0
 B:$8:A:2:Identify possessions:100:2000:i:26:0
 B:8:A:2:持ち物全てを鑑定:100:2000:i:26:0
-B:$8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:8:C:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$9:N:Archers Guild:Trallin:Half-elf
 B:9:N:アーチャーのギルド:トゥラリン:ハーフエルフ
@@ -591,8 +591,8 @@
 B:9:A:0:矢や石等を強化する:20:40:a:30:0
 B:$9:A:1:Enchant bow:400:800:b:31:0
 B:9:A:1:弓を強化する:400:800:b:31:0
-B:$9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
-B:9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0
+B:$9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0
+B:9:C:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0

 B:$10:N:Paladins Guild:Langordathur:Human
 B:10:N:パラディンのギルド:ランゴルダスール:人間
@@ -600,8 +600,8 @@
 B:10:A:0:防具を強化する:300:600:a:24:0
 B:$10:A:1:See Healers:0:200:h:28:0
 B:10:A:1:治療家に会う:0:200:h:28:0
-B:$10:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
-B:10:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:$10:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
+B:10:C:0:0:0:0:0:2:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0

 B:$11:N:Tower of Sorcery:Tanistil:Elf
 B:11:N:仙術の塔:タニスティル:エルフ

ヘルプ記述追加

diff -ruN hengband/lib/help/editor.txt hengband-geo3/lib/help/editor.txt
--- hengband/lib/help/editor.txt	2004-08-10 15:46:14.000000000 +0900
+++ hengband-geo3/lib/help/editor.txt	2007-03-11 10:55:47.285875200 +0900
@@ -323,7 +323,7 @@
       Tourist, Imitator, BeastMaster, Sorcerer, Archer,
       Magic-Eater, Bard, Red-Mage, Samurai, ForceTrainer,
       Blue-Mage, Cavalry, Berserker, Weaponsmith, Mirror-Master,
-      Ninja
+      Ninja, Geomancer

     $PLAYER
      Returns player name.
diff -ruN hengband/lib/help/jeditor.txt hengband-geo3/lib/help/jeditor.txt
--- hengband/lib/help/jeditor.txt	2007-02-10 23:50:26.000000000 +0900
+++ hengband-geo3/lib/help/jeditor.txt	2007-03-11 10:55:47.325932800 +0900
@@ -553,7 +553,7 @@
    Chaos-Warrior, Monk, Mindcrafter, High-Mage, Tourist, Imitator,
    BeastMaster, Sorcerer, Archer, Magic-Eater, Bard, Red-Mage,
    Samurai, ForceTrainer, Blue-Mage, Cavalry, Berserker, Weaponsmith,
-   Mirror-Master, Ninja
+   Mirror-Master, Ninja, Geomancer
    のどれか

 $PLAYER
diff -ruN hengband/lib/help/jraceclas.txt hengband-geo3/lib/help/jraceclas.txt
--- hengband/lib/help/jraceclas.txt	2007-02-10 23:50:26.000000000 +0900
+++ hengband-geo3/lib/help/jraceclas.txt	2007-03-11 10:55:47.365990400 +0900
@@ -911,6 +911,17 @@
     かに速く走る事ができます。


+***** <Geomancer>
+--- 風水士 ---
+
+    風水士は地形を活かして戦う魔法使いです。使える術には二つの種別があ
+    ります。一つは地形を変化させる術で、自分に都合の良い地形を作り出す
+    ことができます。もう一つは地形を触媒として唱える呪文で、現在立って
+    いる地形によって使うことのできるものが大きく変化します。どちらも魔
+    法書を必要としません。極端に強力な呪文は唱えることができませんが、
+    消費MP、最低レベル、失敗率は低く抑えられています。魔法に必要な能
+    力値は賢さです。
+

 ***** <ThePersonalities>
 === 性格 ===
@@ -1093,6 +1104,7 @@
 鍛冶師         +3   -1   -1   +1   +0   -1      +6         +30%
 鏡使い         -2   +3   +1   -1   -2   +1      +2         +30%
 忍者           +0   -1   -1   +3   +2   -1      +2         +20%
+風水士         -2   +1   +2   +0   -2   +1      +0         +40%


 --- Table 3 - Personality Statistic Bonus Table ---
@@ -1191,6 +1203,7 @@
 鍛冶師         30+10  28+10  28+10   1    20    10    60+21  45+15
 鏡使い         30+10  33+11  40+12   3    14    16    34+6   30+10
 忍者           45+15  24+10  36+10   8    48    32    70+25  66+18
+風水士         45+15  37+12  36+10   3    +inf  +inf  34+6   20+7

 各職業の技能値を示す 2つの数値は初期技能と10レベルあたりの上昇速度を示
 しています。例えば、戦士の解除技能は 25+12 ですから、30レベルに到達し
diff -ruN hengband/lib/help/raceclas.txt hengband-geo3/lib/help/raceclas.txt
--- hengband/lib/help/raceclas.txt	2004-03-24 19:09:42.000000000 +0900
+++ hengband-geo3/lib/help/raceclas.txt	2007-03-11 10:55:47.406048000 +0900
@@ -988,6 +988,19 @@
     extremely fast.


+***** <Geomancer>
+--- Geomancer ---
+
+    A Geomancer is a spell caster who fights with the best use of
+    terrains. There are two types of spells that can be used. As for
+    one, he can produce convenient terrains with the spell that
+    changes terrains. Others are spells that recites terrains as a
+    catalyst. The spells change by terrains from which he is standing
+    now. Neither magic books are needed. The mana costs, minimum
+    levels, and failure rates are suppressed though extremely strong
+    spells cannot be casted. Wisdom determines his spell casting
+    ability.
+

 ***** <ThePersonalities>
 === The Personality ===
@@ -1175,6 +1188,7 @@
 Weaponsmith    +3   -1   -1   +1   +0   -1      +6         +30%
 Mirror-Master  -2   +3   +1   -1   -2   +1      +2         +30%
 Ninja          +0   -1   -1   +3   +2   -1      +2         +20%
+Geomancer      -2   +1   +2   +0   -2   +1      +0         +40%


 --- Table 3 - Personality Statistic Bonus Table ---
@@ -1276,6 +1290,7 @@
 Weaponsmith    30+10  28+10  28+10   1    20    10    60+21  45+15
 Mirror-Master  30+10  33+11  40+12   3    14    16    34+6   30+10
 Ninja          45+15  24+10  36+10   8    48    32    70+25  66+18
+Geomancer      45+15  37+12  36+10   3    +inf  +inf  34+6   20+7

 For character classes, there are two figures: the first figure is the
 base level of the ability, while the second figure is the bonus that

オプション変更(スコア送信削除)

diff -ruN hengband/lib/pref/pref-opt.prf hengband-geo3/lib/pref/pref-opt.prf
--- hengband/lib/pref/pref-opt.prf	2003-12-17 04:41:48.000000000 +0900
+++ hengband-geo3/lib/pref/pref-opt.prf	2007-03-11 10:55:47.486163200 +0900
@@ -76,7 +76,7 @@
 Y:empty_levels
 X:bound_walls_perm
 Y:last_words
-Y:send_score
+#Y:send_score
 X:allow_debug_opts

タイル表示時のグラフィック指定

 ##### Disturbance #####
diff -ruN hengband/lib/pref/xtra-new.prf hengband-geo3/lib/pref/xtra-new.prf
--- hengband/lib/pref/xtra-new.prf	2002-02-22 01:58:50.000000000 +0900
+++ hengband-geo3/lib/pref/xtra-new.prf	2007-03-11 10:55:47.496177600 +0900
@@ -145,4 +145,6 @@
 R:0:0x93/0
 ?:[EQU $CLASS Ninja]
 R:0:0x95/0
+?:[EQU $CLASS Geomancer]
+R:0:0x93/0

diff -ruN hengband/lib/pref/xtra-xxx.prf hengband-geo3/lib/pref/xtra-xxx.prf
--- hengband/lib/pref/xtra-xxx.prf	2002-02-01 21:57:44.000000000 +0900
+++ hengband-geo3/lib/pref/xtra-xxx.prf	2007-03-11 10:55:47.436091200 +0900
@@ -138,3 +138,5 @@
 R:0:0xAD/0
 ?:[EQU $CLASS Ninja]
 R:0:0xAA/0
+?:[EQU $CLASS Geomancer]
+R:0:0xA5/0

アーティファクト生成時のバイアス傾向

プリースト系扱い

diff -ruN hengband/src/artifact.c hengband-geo3/src/artifact.c
--- hengband/src/artifact.c	2007-02-10 23:59:56.000000000 +0900
+++ hengband-geo3/src/artifact.c	2007-03-11 10:55:47.576292800 +0900
@@ -1671,6 +1671,7 @@
 				artifact_bias = BIAS_MAGE;
 				break;
 			case CLASS_PRIEST:
+			case CLASS_GEOMANCER:
 				artifact_bias = BIAS_PRIESTLY;
 				break;
 			case CLASS_ROGUE:

職業上の徳

「然」と「節」

diff -ruN hengband/src/avatar.c hengband-geo3/src/avatar.c
--- hengband/src/avatar.c	2007-02-10 23:51:40.000000000 +0900
+++ hengband-geo3/src/avatar.c	2007-03-11 10:55:47.616350400 +0900
@@ -224,6 +224,7 @@
 		break;
 	case CLASS_RANGER:
 	case CLASS_ARCHER:
+    case CLASS_GEOMANCER:
 		p_ptr->vir_types[i++] = V_NATURE;
 		p_ptr->vir_types[i++] = V_TEMPERANCE;
 		break;

職業のゲーム中解説追加

diff -ruN hengband/src/birth.c hengband-geo3/src/birth.c
--- hengband/src/birth.c	2007-02-10 23:51:40.000000000 +0900
+++ hengband-geo3/src/birth.c	2007-03-11 10:55:47.636379200 +0900
@@ -1821,8 +1821,9 @@

 "鏡使いは、魔力の込められた鏡を作り出して、それを触媒として攻撃を行なうことができる鏡魔法を使います。鏡使いは鏡の上で実力を発揮し、鏡の上では素早いテレポートが可能となります。魔法の鏡は、レベルによって一度に制御できる数が制限されます。鏡魔法に必要な能力は知能です。",

-"忍者は暗闇に潜む恐るべき暗殺者であり、光源を持たずに行動し、相手の不意をつき一撃で息の根を止めます。また、相手を惑わすための忍術も身につけます。罠やドアを見つける能力に優れ、罠の解除や鍵開けに熟達しています。軽装を好み、重い鎧や武器を装備すると著しく動きが制限され、また、盾を装備しようとはしません。軽装ならば、レベルが上がるにつれより速くより静かに行動できます。さらに忍者は恐怖せず、成長すれば毒がほとんど効かなくなり、透明なものを見ることができるようになります。忍術に必要な能力は器用さです。"
+"忍者は暗闇に潜む恐るべき暗殺者であり、光源を持たずに行動し、相手の不意をつき一撃で息の根を止めます。また、相手を惑わすための忍術も身につけます。罠やドアを見つける能力に優れ、罠の解除や鍵開けに熟達しています。軽装を好み、重い鎧や武器を装備すると著しく動きが制限され、また、盾を装備しようとはしません。軽装ならば、レベルが上がるにつれより速くより静かに行動できます。さらに忍者は恐怖せず、成長すれば毒がほとんど効かなくなり、透明なものを見ることができるようになります。忍術に必要な能力は器用さです。",

+"風水士は地形を活かして戦う魔法使いです。使える術には二つの種別があります。一つは地形を変化させる術で、自分に都合の良い地形を作り出すことができます。もう一つは地形を触媒として唱える呪文で、現在立っている地形によって使うことのできるものが大きく変化します。どちらも魔法書を必要としません。極端に強力な呪文は唱えることができませんが、消費MP、最低レベル、失敗率は低く抑えられています。魔法に必要な能力値は賢さです。"
 #else

 "A Warrior is a hack-and-slash character, who solves most of his problems by cutting them to pieces, but will occasionally fall back on the help of a magical device.  Unfortunately, many high-level devices may be forever beyond their use.",
@@ -1877,7 +1878,9 @@

 "Mirror-Masters are spell casters; like other mages, they must live by their wits.  They can create magical mirrors, and employ them in the casting of Mirror-Magic spells.  A Mirror-Master standing on a mirror has greater ability and, for example, can perform quick teleports.  The maximum number of Magical Mirrors which can be controlled simultaneously depends on the level.  Intelligence determines a Mirror-Master's spell casting ability.",

-"A Ninja is a fearful assassin lurking in darkness.  He or she can navigate effectively with no light source, catch enemies unawares, and kill with a single blow.  Ninjas can use Ninjutsu, and are good at locating hidden traps and doors, disarming traps and picking locks.  Since heavy armors, heavy weapons, or shields will restrict their motion greatly, they prefer light clothes, and become faster and more stealthy as they gain levels.  A Ninja knows no fear and, at high level, becomes almost immune to poison and able to see invisible things.  Dexterity determines a Ninja's ability to use Ninjutsu."
+"A Ninja is a fearful assassin lurking in darkness.  He or she can navigate effectively with no light source, catch enemies unawares, and kill with a single blow.  Ninjas can use Ninjutsu, and are good at locating hidden traps and doors, disarming traps and picking locks.  Since heavy armors, heavy weapons, or shields will restrict their motion greatly, they prefer light clothes, and become faster and more stealthy as they gain levels.  A Ninja knows no fear and, at high level, becomes almost immune to poison and able to see invisible things.  Dexterity determines a Ninja's ability to use Ninjutsu.",
+
+"A Geomancer is a spell caster who fights with the best use of terrains. There are two types of spells that can be used. As for one, he can produce convenient terrains with the spell that changes terrains. Others are spells that recites terrains as a catalyst. The spells change by terrains from which he is standing now. Neither magic books are needed. The mana costs, minimum levels, and failure rates are suppressed though extremely strong spells cannot be casted. Wisdom determines his spell casting ability. "
 #endif
 };

職業の初期装備

@@ -3722,6 +3725,12 @@
 		{ TV_SOFT_ARMOR, SV_SOFT_LEATHER_ARMOR },
 		{ TV_SWORD, SV_DAGGER }
 	},
+	{
+		/* Geomancer */
+		{ TV_POTION, SV_POTION_SPEED },
+		{ TV_RING, SV_RING_SUSTAIN_WIS},
+		{ TV_SWORD, SV_DAGGER }
+	},
 };

呪文の巻物無効処理

diff -ruN hengband/src/cmd6.c hengband-geo3/src/cmd6.c
--- hengband/src/cmd6.c	2007-02-10 23:51:40.000000000 +0900
+++ hengband-geo3/src/cmd6.c	2007-03-11 10:55:47.776580800 +0900
@@ -1969,7 +1969,7 @@

 		case SV_SCROLL_SPELL:
 		{
-			if ((p_ptr->pclass == CLASS_WARRIOR) || (p_ptr->pclass == CLASS_IMITATOR) || (p_ptr->pclass == CLASS_MINDCRAFTER) || (p_ptr->pclass == CLASS_SORCERER) || (p_ptr->pclass == CLASS_ARCHER) || (p_ptr->pclass == CLASS_MAGIC_EATER) || (p_ptr->pclass == CLASS_RED_MAGE) || (p_ptr->pclass == CLASS_SAMURAI) || (p_ptr->pclass == CLASS_BLUE_MAGE) || (p_ptr->pclass == CLASS_CAVALRY) || (p_ptr->pclass == CLASS_BERSERKER) || (p_ptr->pclass == CLASS_SMITH) || (p_ptr->pclass == CLASS_MIRROR_MASTER) || (p_ptr->pclass == CLASS_NINJA)) break;
+			if ((p_ptr->pclass == CLASS_WARRIOR) || (p_ptr->pclass == CLASS_IMITATOR) || (p_ptr->pclass == CLASS_MINDCRAFTER) || (p_ptr->pclass == CLASS_SORCERER) || (p_ptr->pclass == CLASS_ARCHER) || (p_ptr->pclass == CLASS_MAGIC_EATER) || (p_ptr->pclass == CLASS_RED_MAGE) || (p_ptr->pclass == CLASS_SAMURAI) || (p_ptr->pclass == CLASS_BLUE_MAGE) || (p_ptr->pclass == CLASS_CAVALRY) || (p_ptr->pclass == CLASS_BERSERKER) || (p_ptr->pclass == CLASS_SMITH) || (p_ptr->pclass == CLASS_MIRROR_MASTER) || (p_ptr->pclass == CLASS_NINJA) || (p_ptr->pclass == CLASS_GEOMANCER)) break;
 			p_ptr->add_spells++;
 			p_ptr->update |= (PU_SPELLS);
 			ident = TRUE;

職業ID、特殊魔法領域、風水地形の定義追加

diff -ruN hengband/src/defines.h hengband-geo3/src/defines.h
--- hengband/src/defines.h	2005-05-12 21:01:00.000000000 +0900
+++ hengband-geo3/src/defines.h	2007-03-11 10:55:47.876724800 +0900
@@ -195,7 +195,7 @@
 /*
  * Maximum number of player "class" types (see "table.c", etc)
  */
-#define MAX_CLASS            27
+#define MAX_CLASS            28

 #define MAX_SEIKAKU          12

@@ -373,7 +373,22 @@
 #define MIND_BERSERKER      2
 #define MIND_MIRROR_MASTER  3
 #define MIND_NINJUTSU       4
+#define MIND_GEOMANCY       5

+#define GEOMANCY_LIFE       0
+#define GEOMANCY_SORCERY    1
+#define GEOMANCY_NAT_EARTH  2
+#define GEOMANCY_NAT_WATER  3
+#define GEOMANCY_NAT_FIRE   4
+#define GEOMANCY_NAT_WIND   5
+#define GEOMANCY_CHAOS      6
+#define GEOMANCY_DEATH      7
+#define GEOMANCY_TRUMP      8
+#define GEOMANCY_ARCANE     9
+#define GEOMANCY_CRAFT     10
+#define GEOMANCY_DAEMON    11
+#define GEOMANCY_CRUSADE   12
+#define MAX_GEOMANCY       13

 /*
  * Size of memory reserved for initialization of some arrays
@@ -904,6 +919,7 @@
 #define CLASS_SMITH             24
 #define CLASS_MIRROR_MASTER     25
 #define CLASS_NINJA             26
+#define CLASS_GEOMANCER         27

 #define SEIKAKU_FUTUU	 0
 #define SEIKAKU_CHIKARA	 1

魔法処理関数のstatic化

風水の効果の中に領域魔法と同等のものを実装していることの副次的修正と思われる。

diff -ruN hengband/src/do-spell.c hengband-geo3/src/do-spell.c
--- hengband/src/do-spell.c	2007-02-10 23:51:40.000000000 +0900
+++ hengband-geo3/src/do-spell.c	2007-03-11 10:55:47.986883200 +0900
@@ -1186,7 +1186,7 @@
 }


-static cptr do_life_spell(int spell, int mode)
+cptr do_life_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -1884,7 +1884,7 @@
 }


-static cptr do_sorcery_spell(int spell, int mode)
+cptr do_sorcery_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -2588,7 +2588,7 @@
 }


-static cptr do_nature_spell(int spell, int mode)
+cptr do_nature_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -3378,7 +3378,7 @@
 }


-static cptr do_chaos_spell(int spell, int mode)
+cptr do_chaos_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -4181,7 +4181,7 @@
 }


-static cptr do_death_spell(int spell, int mode)
+cptr do_death_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -5015,7 +5015,7 @@
 }


-static cptr do_trump_spell(int spell, int mode)
+cptr do_trump_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -5943,7 +5943,7 @@
 }


-static cptr do_arcane_spell(int spell, int mode)
+cptr do_arcane_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -6666,7 +6666,7 @@
 }


-static cptr do_craft_spell(int spell, int mode)
+cptr do_craft_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -7363,7 +7363,7 @@
 }


-static cptr do_daemon_spell(int spell, int mode)
+cptr do_daemon_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -8155,7 +8155,7 @@
 }


-static cptr do_crusade_spell(int spell, int mode)
+cptr do_crusade_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -8945,7 +8945,7 @@
 }


-static cptr do_music_spell(int spell, int mode)
+cptr do_music_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
@@ -10183,7 +10183,7 @@
 }


-static cptr do_hissatsu_spell(int spell, int mode)
+cptr do_hissatsu_spell(int spell, int mode)
 {
 	bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
 	bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;

アイテム自動鑑定処理の追加

diff -ruN hengband/src/dungeon.c hengband-geo3/src/dungeon.c
--- hengband/src/dungeon.c	2007-02-10 23:51:40.000000000 +0900
+++ hengband-geo3/src/dungeon.c	2007-03-11 10:55:48.127084800 +0900
@@ -269,6 +269,7 @@
 		case CLASS_HIGH_MAGE:
 		case CLASS_SORCERER:
 		case CLASS_MAGIC_EATER:
+		case CLASS_GEOMANCER:
 		{
 			/* Very bad (light) sensing */
 			if (0 != randint0(240000L / (plev + 5))) return;
@@ -4759,7 +4760,8 @@
 			if ( (p_ptr->pclass == CLASS_MINDCRAFTER) ||
 			     (p_ptr->pclass == CLASS_BERSERKER) ||
 			     (p_ptr->pclass == CLASS_NINJA) ||
-			     (p_ptr->pclass == CLASS_MIRROR_MASTER)
+			     (p_ptr->pclass == CLASS_MIRROR_MASTER) ||
+			     (p_ptr->pclass == CLASS_GEOMANCER)
 			     ) do_cmd_mind_browse();
 			else if (p_ptr->pclass == CLASS_SMITH)
 				do_cmd_kaji(TRUE);
@@ -4830,6 +4832,12 @@
 #else
 						which_power = "ninjutsu";
 #endif
+					else if (p_ptr->pclass == CLASS_GEOMANCER)
+#ifdef JP
+						which_power = "風水術";
+#else
+						which_power = "geomancy";
+#endif
 					else if (mp_ptr->spell_book == TV_LIFE_BOOK)
 #ifdef JP
 						which_power = "祈り";
@@ -4858,7 +4866,8 @@
 					if ((p_ptr->pclass == CLASS_MINDCRAFTER) ||
 					    (p_ptr->pclass == CLASS_BERSERKER) ||
 					    (p_ptr->pclass == CLASS_NINJA) ||
-					    (p_ptr->pclass == CLASS_MIRROR_MASTER)
+					    (p_ptr->pclass == CLASS_MIRROR_MASTER) ||
+					    (p_ptr->pclass == CLASS_GEOMANCER)
 					    )
 						do_cmd_mind();
 					else if (p_ptr->pclass == CLASS_IMITATOR)

関数のextern定義

先ほどのstatic化に伴うものや、風水士実装向けのグローバル変数等

diff -ruN hengband/src/externs.h hengband-geo3/src/externs.h
--- hengband/src/externs.h	2007-02-10 23:51:40.000000000 +0900
+++ hengband-geo3/src/externs.h	2007-03-11 10:55:48.227228800 +0900
@@ -597,6 +597,7 @@
 extern s16b feat_pattern_corrupted;
 extern s16b feat_black_market;
 extern s16b feat_town;
+extern s16b feat_dark_pit;
 extern s16b feat_deep_water;
 extern s16b feat_shallow_water;
 extern s16b feat_deep_lava;
@@ -807,6 +808,18 @@
 extern void do_cmd_magic_eater(bool only_browse);

 /* do-spell.c */
+extern cptr do_life_spell(int spell, int mode);
+extern cptr do_sorcery_spell(int spell, int mode);
+extern cptr do_nature_spell(int spell, int mode);
+extern cptr do_chaos_spell(int spell, int mode);
+extern cptr do_death_spell(int spell, int mode);
+extern cptr do_trump_spell(int spell, int mode);
+extern cptr do_arcane_spell(int spell, int mode);
+extern cptr do_craft_spell(int spell, int mode);
+extern cptr do_daemon_spell(int spell, int mode);
+extern cptr do_crusade_spell(int spell, int mode);
+extern cptr do_music_spell(int spell, int mode);
+extern cptr do_hissatsu_spell(int spell, int mode);
 extern void stop_singing(void);
 extern cptr do_spell(int realm, int spell, int mode);

@@ -1523,7 +1536,7 @@
 extern void show_highclass(void);

 /* mind.c */
-extern mind_power mind_powers[5];
+extern mind_power mind_powers[6];
 extern void mindcraft_info(char *p, int use_mind, int power);
 extern void do_cmd_mind(void);
 extern void do_cmd_mind_browse(void);

地形定義追加

diff -ruN hengband/src/init2.c hengband-geo3/src/init2.c
--- hengband/src/init2.c	2007-02-10 23:51:40.000000000 +0900
+++ hengband-geo3/src/init2.c	2007-03-11 10:55:48.297329600 +0900
@@ -1724,6 +1724,7 @@
 	/* Various */
 	feat_black_market = f_tag_to_index_in_init("BLACK_MARKET");
 	feat_town = f_tag_to_index_in_init("TOWN");
+	feat_dark_pit = f_tag_to_index_in_init("DARK_PIT");

 	/* Terrains */
 	feat_deep_water = f_tag_to_index_in_init("DEEP_WATER");

インクルードファイル参照先パス変更

diff -ruN hengband/src/main-gcu.c hengband-geo3/src/main-gcu.c
--- hengband/src/main-gcu.c	2003-11-24 02:03:30.000000000 +0900
+++ hengband-geo3/src/main-gcu.c	2007-03-11 10:55:48.347401600 +0900
@@ -171,9 +171,9 @@
  */
 #ifdef USE_NCURSES
 # undef bool
-# include <ncurses.h>
+# include "ncurses.h"
 #else
-# include <curses.h>
+# include "curses.h"
 #endif

 typedef struct term_data term_data;

風水技能追加

diff -ruN hengband/src/mind.c hengband-geo3/src/mind.c
--- hengband/src/mind.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/mind.c	2007-03-18 12:06:28.622641600 +0900
@@ -14,7 +14,7 @@
 #include "mindtips.h"


-mind_power mind_powers[5] =
+mind_power mind_powers[6] =
 {
   {
     {
@@ -278,12 +278,126 @@
       { 41, 50,  55, "Bunshin"},
       { 99,  0,   0, ""},
 #endif
+    }
+  },
+
+  {// Geomancy
+    {
+      /* Level gained,  cost,  %fail,  name */
+#ifdef JP
+      {  1,  8,  30, "森林創造"},
+      {  4, 10,  35, "扉生成"},
+      {  7, 13,  40, "水脈湧出"},
+      { 11, 14,  45, "溶岩流"},
+      { 15, 12,  50, "深淵の創出"},
+      { 19, 19,  75, "結界の紋章"},
+      { 24, 16,  75, "石の壁"},
+      { 29, 20,  80, "爆発のルーン"},
+      { 34, 17,  70, "トラップ発生"},
+      { 40, 15,  90, "聖なる鏡"},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      { 99,  0,   0, ""},
+      { 99,  0,   0, ""},
+      { 99,  0,   0, ""},
+#else
+      {  1,  8,  30, "Forest Creation"},
+      {  4, 10,  35, "Door Production"},
+      {  7, 13,  40, "Water Decrement"},
+      { 11, 14,  45, "Lava Stream"},
+      { 15, 12,  50, "Abyss Generation"},
+      { 19, 19,  75, "Glyph of Warding"},
+      { 24, 16,  75, "Wall of Stone"},
+      { 29, 20,  80, "Explosive Rune"},
+      { 34, 17,  70, "Trap Emergence"},
+      { 40, 15,  90, "Sacred Mirror"},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      {  0,  0,   0, ""},
+      { 99,  0,   0, ""},
+      { 99,  0,   0, ""},
+      { 99,  0,   0, ""},
+#endif

     }
   },
 };


+/*
+ * Allow user to choose a geomancy realm.
+ */
+static int get_geo_realm(void)
+{
+    cave_type* c_ptr = &cave[py][px];
+    if(is_glyph_grid(c_ptr))
+    {
+        return GEOMANCY_LIFE;
+    }
+    else if(have_flag(f_info[c_ptr->feat].flags,FF_STORE))
+    {
+        return GEOMANCY_SORCERY;
+    }
+    else if(have_flag(f_info[c_ptr->feat].flags,FF_WALL))
+    {
+        return GEOMANCY_NAT_EARTH;
+    }
+    else if(have_flag(f_info[c_ptr->feat].flags,FF_WATER))
+    {
+        return GEOMANCY_NAT_WATER;
+    }
+    else if(have_flag(f_info[c_ptr->feat].flags,FF_LAVA))
+    {
+        return GEOMANCY_NAT_FIRE;
+    }
+    else if(have_flag(f_info[c_ptr->feat].flags,FF_TREE))
+    {
+        return GEOMANCY_NAT_WIND;
+    }
+    else if(is_explosive_rune_grid(c_ptr))
+    {
+        return GEOMANCY_CHAOS;
+    }
+    else if(have_flag(f_info[c_ptr->feat].flags,FF_DOOR)
+	  ||have_flag(f_info[c_ptr->feat].flags,FF_STAIRS))
+    {
+        return GEOMANCY_TRUMP;
+    }
+    else if(have_flag(f_info[c_ptr->feat].flags,FF_TRAP))
+    {
+        return GEOMANCY_CRAFT;
+    }
+    else if(c_ptr->feat == feat_dark_pit)
+    {
+        return GEOMANCY_DAEMON;
+    }
+    else if(is_mirror_grid(c_ptr))
+    {
+        return GEOMANCY_CRUSADE;
+    }
+    else if(!(c_ptr->info & CAVE_GLOW)
+  	  && (p_ptr->cur_lite <= 0))
+    {
+        return GEOMANCY_DEATH;
+    }
+    else
+    {
+        return GEOMANCY_ARCANE;
+    }
+}
+
+
 void mindcraft_info(char *p, int use_mind, int power)
 {
 #ifdef JP
@@ -415,10 +529,70 @@
 	    }
 	  break;
 	}
+      case MIND_GEOMANCY:
+	{
+        if(power < 10)
+        {
+            switch (power)
+            {
+            case 0:  sprintf(p, " %s1", s_range); break;
+            case 1:  sprintf(p, " %s1", s_range); break;
+            case 2:  sprintf(p, " %s3", s_range); break;
+            case 3:  sprintf(p, " %s3", s_range); break;
+            case 4:  sprintf(p, " %s0", s_range); break;
+            case 5:  sprintf(p, " %s0", s_range); break;
+            case 6:  sprintf(p, " %s1", s_range); break;
+            case 7:  sprintf(p, " %s0", s_range); break;
+            case 8:  sprintf(p, " %s1", s_range); break;
+            case 9:  sprintf(p, " %s0", s_range); break;
+            }
+        }
+        else
+        {
+            int realm = get_geo_realm();
+            int realm2 = geo_magic_map[realm][power-10][0];
+            int spell2 = geo_magic_map[realm][power-10][1];
+            switch (realm2)
+            {
+            case REALM_LIFE:
+                sprintf(p, " %s", do_life_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_SORCERY:
+                sprintf(p, " %s", do_sorcery_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_NATURE:
+                sprintf(p, " %s", do_nature_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_CHAOS:
+                sprintf(p, " %s", do_chaos_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_DEATH:
+                sprintf(p, " %s", do_death_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_TRUMP:
+                sprintf(p, " %s", do_trump_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_ARCANE:
+                sprintf(p, " %s", do_arcane_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_CRAFT:
+                sprintf(p, " %s", do_craft_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_DAEMON:
+                sprintf(p, " %s", do_daemon_spell(spell2, SPELL_INFO));
+                break;
+            case REALM_CRUSADE:
+                sprintf(p, " %s", do_crusade_spell(spell2, SPELL_INFO));
+                break;
+                }
+        }
+        break;
+	}
       }
     }
 }

+
   /*
  * Allow user to choose a mindcrafter power.
  *
@@ -453,6 +627,7 @@
       bool            flag, redraw;
       int             use_mind;
       int menu_line = (use_menu ? 1 : 0);
+      bool            allow_mind[MAX_MIND_POWERS];

       switch(p_ptr->pclass)
 	{
@@ -506,6 +681,16 @@
 #endif
 	    break;
 	  }
+	case CLASS_GEOMANCER:
+	  {
+        use_mind = MIND_GEOMANCY;
+#ifdef JP
+	    p = "風水術";
+#else
+	    p = "geomancy";
+#endif
+	    break;
+	  }
 	default:
 	  {
 	    use_mind = 0;
@@ -518,6 +703,56 @@
 	  }
 	}
       mind_ptr = &mind_powers[use_mind];
+      if(use_mind == MIND_GEOMANCY)
+      {
+          int realm = get_geo_realm();
+          int j;
+          for(j=10; j<MAX_MIND_POWERS; j++)
+          {
+              int realm2 = geo_magic_map[realm][j-10][0];
+              int spell2 = geo_magic_map[realm][j-10][1];
+              magic_type* s_ptr = &m_info[CLASS_MAGE].info[realm2-1][spell2];
+              if(realm2 == REALM_NONE) continue;
+              mind_ptr->info[j].min_lev = s_ptr->slevel;
+              mind_ptr->info[j].mana_cost = s_ptr->smana;
+              mind_ptr->info[j].fail = s_ptr->sfail;
+              switch (realm2)
+              {
+              case REALM_LIFE:
+                  mind_ptr->info[j].name = do_life_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_SORCERY:
+                  mind_ptr->info[j].name = do_sorcery_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_NATURE:
+                  mind_ptr->info[j].name = do_nature_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_CHAOS:
+                  mind_ptr->info[j].name = do_chaos_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_DEATH:
+                  mind_ptr->info[j].name = do_death_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_TRUMP:
+                  mind_ptr->info[j].name = do_trump_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_ARCANE:
+                  mind_ptr->info[j].name = do_arcane_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_CRAFT:
+                  mind_ptr->info[j].name = do_craft_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_DAEMON:
+                  mind_ptr->info[j].name = do_daemon_spell(spell2, SPELL_NAME);
+                  break;
+              case REALM_CRUSADE:
+                  mind_ptr->info[j].name = do_crusade_spell(spell2, SPELL_NAME);
+                  break;
+              default:
+                  break;
+              }
+          }
+      }

 	/* Assume cancelled */
       *sn = (-1);
@@ -550,7 +785,7 @@
 	{
 	  if (mind_ptr->info[i].min_lev <= plev)
 	    {
-	      num++;
+            num = i+1;
 	    }
 	}

@@ -660,7 +895,13 @@
 					/* Access the spell */
 					spell = mind_ptr->info[i];

-					if (spell.min_lev > plev)   break;
+					if (spell.min_lev > plev)
+                    {
+                        allow_mind[i] = FALSE;
+                        continue;
+                    } else {
+                        allow_mind[i] = TRUE;
+                    }

 					chance = spell.fail;

@@ -775,7 +1016,7 @@
 		}

 		/* Totally Illegal */
-		if ((i < 0) || (i >= num))
+		if ((i < 0) || (i >= MAX_MIND_POWERS) || !allow_mind[i])
 		{
 			bell();
 			continue;
@@ -1794,6 +2035,76 @@

 /*
  * do_cmd_cast calls this function if the player's class
+ * is 'ninja'.
+ */
+static bool cast_geo_spell(int realm, int spell)
+{
+	if(spell < 10)
+	{
+		switch(spell)
+		{
+		case 0:
+			if (cave_clean_bold(py, px)) cave_set_feat(py, px, feat_tree);
+			tree_creation();
+			break;
+		case 1:
+			if (cave_clean_bold(py, px))
+				cave_set_feat(py, px, feat_door[DOOR_DOOR].open);
+			door_creation();
+			break;
+		case 2:
+			fire_ball_hide(GF_WATER_FLOW, 0, 2+randint1(2), 3);
+			break;
+		case 3:
+			fire_ball_hide(GF_LAVA_FLOW, 0, 2+randint1(2), 3);
+			break;
+		case 4:
+			if (cave_clean_bold(py, px)) cave_set_feat(py, px, feat_dark_pit);
+			break;
+		case 5:
+			warding_glyph();
+			break;
+		case 6:
+			if (cave_clean_bold(py, px) && p_ptr->pass_wall)
+				cave_set_feat(py, px, feat_granite);
+			wall_stone();
+			break;
+		case 7:
+			explosive_rune();
+			break;
+		case 8:
+			trap_creation(py, px);
+			break;
+		case 9:
+			place_mirror();
+			break;
+		}
+        energy_use = 200;
+	}
+	else
+	{
+		int realm2 = geo_magic_map[realm][spell-10][0];
+		int spell2 = geo_magic_map[realm][spell-10][1];
+		switch (realm2)
+		{
+		case REALM_LIFE:	 do_life_spell(spell2, SPELL_CAST);break;
+		case REALM_SORCERY:	 do_sorcery_spell(spell2, SPELL_CAST);break;
+		case REALM_NATURE:	 do_nature_spell(spell2, SPELL_CAST);break;
+		case REALM_CHAOS:	 do_chaos_spell(spell2, SPELL_CAST);break;
+		case REALM_DEATH:	 do_death_spell(spell2, SPELL_CAST);break;
+		case REALM_TRUMP:	 do_trump_spell(spell2, SPELL_CAST);break;
+		case REALM_ARCANE:	 do_arcane_spell(spell2, SPELL_CAST);break;
+		case REALM_CRAFT:	 do_craft_spell(spell2, SPELL_CAST);break;
+		case REALM_DAEMON:	 do_daemon_spell(spell2, SPELL_CAST);break;
+		case REALM_CRUSADE:	 do_crusade_spell(spell2, SPELL_CAST);break;
+		}
+	}
+	return TRUE;
+}
+
+
+/*
+ * do_cmd_cast calls this function if the player's class
  * is 'mindcrafter'.
  */
 void do_cmd_mind(void)
@@ -1834,6 +2145,7 @@
 		case CLASS_BERSERKER:   use_mind = MIND_BERSERKER;p = "怒り";break;
 		case CLASS_MIRROR_MASTER:   use_mind = MIND_MIRROR_MASTER;p = "鏡魔法";break;
 		case CLASS_NINJA:       use_mind = MIND_NINJUTSU;p = "精神";break;
+		case CLASS_GEOMANCER:   use_mind = MIND_GEOMANCY;p = "風水術";break;
 		default:                use_mind = 0;p = "超能力";break;
 	}
 #else
@@ -1844,6 +2156,7 @@
 		case CLASS_BERSERKER:   use_mind = MIND_BERSERKER;break;
 		case CLASS_MIRROR_MASTER:   use_mind = MIND_MIRROR_MASTER;break;
 		case CLASS_NINJA:       use_mind = MIND_NINJUTSU;break;
+		case CLASS_GEOMANCER:   use_mind = MIND_GEOMANCY;break;
 		default:                use_mind = 0;break;
 	}
 #endif
@@ -2085,6 +2398,10 @@
 			/* Cast the spell */
 			cast = cast_ninja_spell(n);
 			break;
+		case MIND_GEOMANCY:
+			/* Cast the spell */
+			cast = cast_geo_spell(get_geo_realm(),n);
+			break;
 		default:
 #ifdef JP
 			msg_format("謎の能力:%d, %d",use_mind, n);
@@ -2198,6 +2515,7 @@
 	else if (p_ptr->pclass == CLASS_NINJA) use_mind = MIND_NINJUTSU;
 	else if (p_ptr->pclass == CLASS_MIRROR_MASTER)
 	  use_mind = MIND_MIRROR_MASTER;
+	else if (p_ptr->pclass == CLASS_GEOMANCER) use_mind = MIND_GEOMANCY;

 	screen_save();

@@ -2218,6 +2536,50 @@
 		Term_erase(12, 17, 255);
 		Term_erase(12, 16, 255);

+		if(use_mind == MIND_GEOMANCY)
+        {
+            int realm = get_geo_realm();
+            for(j=10; j<MAX_MIND_POWERS; j++)
+            {
+                int realm2 = geo_magic_map[realm][j-10][0];
+                int spell2 = geo_magic_map[realm][j-10][1];
+                switch (realm2)
+                {
+                case REALM_LIFE:
+                    mind_tips[use_mind][j] = do_life_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_SORCERY:
+                    mind_tips[use_mind][j] = do_sorcery_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_NATURE:
+                    mind_tips[use_mind][j] = do_nature_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_CHAOS:
+                    mind_tips[use_mind][j] = do_chaos_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_DEATH:
+                    mind_tips[use_mind][j] = do_death_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_TRUMP:
+                    mind_tips[use_mind][j] = do_trump_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_ARCANE:
+                    mind_tips[use_mind][j] = do_arcane_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_CRAFT:
+                    mind_tips[use_mind][j] = do_craft_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_DAEMON:
+                    mind_tips[use_mind][j] = do_daemon_spell(spell2, SPELL_DESC);
+                    break;
+                case REALM_CRUSADE:
+                    mind_tips[use_mind][j] = do_crusade_spell(spell2, SPELL_DESC);
+                    break;
+                default:
+                    break;
+                }
+            }
+        }
 		roff_to_buf(mind_tips[use_mind][n], 62, temp, sizeof(temp));
 		for(j=0, line = 17;temp[j];j+=(1+strlen(&temp[j])))
 		{
@@ -2228,6 +2590,7 @@
 		{
 		case MIND_MIRROR_MASTER:
 		case MIND_NINJUTSU:
+		case MIND_GEOMANCY:
 #ifdef JP
 		  prt("何かキーを押して下さい。",0,0);
 #else
diff -ruN hengband/src/mindtips.h hengband-geo3/src/mindtips.h
--- hengband/src/mindtips.h	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/mindtips.h	2007-03-11 22:07:39.256452800 +0900
@@ -1,5 +1,5 @@
 #ifdef JP
-static cptr mind_tips[5][MAX_MIND_POWERS] =
+static cptr mind_tips[6][MAX_MIND_POWERS] =
 {
 {
 	"近くの全ての見えるモンスターを感知する。レベル5で罠/扉、15で透明なモンスター、30で財宝とアイテムを感知できるようになる。レベル20で周辺の地形を感知し、45でその階全体を永久に照らし、ダンジョン内のすべてのアイテムを感知する。レベル25で一定時間テレパシーを得る。",
@@ -116,9 +116,32 @@
 	"全ての攻撃が、1/2の確率で無効になる。",
 	"",
 },
+{
+	"周囲に木を作り出す。",
+	"周囲に扉を作り出す。",
+	"周囲に水脈を作り出す。",
+	"周囲に溶岩を作り出す。",
+	"足元に暗い穴を作り出す。",
+	"足元に結界の紋章を作り出す。",
+	"周囲に石の壁を作り出す。",
+	"足元に爆発のルーンを作り出す。",
+	"周囲にトラップを作り出す。",
+	"足元に鏡を作り出す。",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+},
 };
 #else
-static cptr mind_tips[5][MAX_MIND_POWERS] =
+static cptr mind_tips[6][MAX_MIND_POWERS] =
 {
 {
 	"Detects visible monsters in your vicinity and more and more. Detects traps and doors at level 5, invisible monsters at level 15, items at level 30. And magic mapping at level 20. Lights and know the whole level at level 45. Gives telepathy at level 25.",
@@ -236,6 +259,187 @@
 	"Creates shadows of yourself which gives you abillity to completely evade any attacks at one in two chance for a while.",
 	"",
 },
+{
+	"Creates trees in all adjacent squares.",
+	"Creates doors in all adjacent squares.",
+	"Transforms floors to water around you.",
+	"Transforms floors to magma around you.",
+	"Creates a dark-pit under you.",
+	"Creates a glyph under you.",
+	"Creates granite walls in all adjacent squares.",
+	"Creates a explosive rune under you.",
+	"Creates traps in all adjacent squares.",
+	"Creates a mirror under you.",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+	"",
+},
 };
 #endif

+static int geo_magic_map[MAX_GEOMANCY][MAX_MIND_POWERS-10][2] = {
+    {//LIFE
+        {REALM_LIFE,1},
+        {REALM_LIFE,24},
+        {REALM_LIFE,10},
+        {REALM_LIFE,14},
+        {REALM_LIFE,18},
+        {REALM_LIFE,22},
+        {REALM_LIFE,28},
+        {REALM_LIFE,23},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//SORCERY
+        {REALM_SORCERY,7},
+        {REALM_SORCERY,9},
+        {REALM_SORCERY,24},
+        {REALM_SORCERY,20},
+        {REALM_SORCERY,19},
+        {REALM_LIFE,16},
+        {REALM_SORCERY,15},
+        {REALM_SORCERY,29},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//NAT_EARTH
+        {REALM_NATURE,3},
+        {REALM_NATURE,14},
+        {REALM_NATURE,20},
+        {REALM_NATURE,30},
+        {REALM_NATURE,8},
+        {REALM_NATURE,17},
+        {REALM_NATURE,24},
+        {REALM_CHAOS,25},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//NAT_WATER
+        {REALM_NATURE,3},
+        {REALM_NATURE,14},
+        {REALM_NATURE,20},
+        {REALM_NATURE,30},
+        {REALM_NATURE,9},
+        {REALM_NATURE,13},
+        {REALM_NATURE,26},
+        {REALM_NATURE,28},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//NAT_FIRE
+        {REALM_NATURE,3},
+        {REALM_NATURE,14},
+        {REALM_NATURE,20},
+        {REALM_NATURE,30},
+        {REALM_NATURE,11},
+        {REALM_DAEMON,12},
+        {REALM_CHAOS,26},
+        {REALM_DAEMON,27},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//NAT_WIND
+        {REALM_NATURE,3},
+        {REALM_NATURE,14},
+        {REALM_NATURE,20},
+        {REALM_NATURE,30},
+        {REALM_NATURE,1},
+        {REALM_NATURE,25},
+        {REALM_NATURE,27},
+        {REALM_NATURE,15},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//CHAOS
+        {REALM_CHAOS,1},
+        {REALM_CHAOS,6},
+        {REALM_CHAOS,9},
+        {REALM_CHAOS,24},
+        {REALM_CHAOS,10},
+        {REALM_CHAOS,19},
+        {REALM_CHAOS,14},
+        {REALM_CHAOS,29},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//DEATH
+        {REALM_DEATH,1},
+        {REALM_DEATH,7},
+        {REALM_DEATH,18},
+        {REALM_DEATH,9},
+        {REALM_DEATH,13},
+        {REALM_DEATH,21},
+        {REALM_DEATH,23},
+        {REALM_DEATH,29},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//TRUMP
+        {REALM_TRUMP,0},
+        {REALM_TRUMP,4},
+        {REALM_TRUMP,6},
+        {REALM_TRUMP,16},
+        {REALM_TRUMP,12},
+        {REALM_TRUMP,13},
+        {REALM_TRUMP,22},
+        {REALM_TRUMP,15},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//ARCANE
+        {REALM_ARCANE,1},
+        {REALM_ARCANE,5},
+        {REALM_ARCANE,9},
+        {REALM_ARCANE,14},
+        {REALM_ARCANE,15},
+        {REALM_ARCANE,16},
+        {REALM_ARCANE,17},
+        {REALM_ARCANE,30},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//CRAFT
+        {REALM_CRAFT,5},
+        {REALM_CRAFT,16},
+        {REALM_CRAFT,24},
+        {REALM_CRAFT,11},
+        {REALM_CRAFT,19},
+        {REALM_CRAFT,13},
+        {REALM_CRAFT,20},
+        {REALM_CRAFT,23},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//DAEMON
+        {REALM_DAEMON,4},
+        {REALM_DAEMON,6},
+        {REALM_DAEMON,8},
+        {REALM_DAEMON,10},
+        {REALM_DAEMON,25},
+        {REALM_DAEMON,20},
+        {REALM_DAEMON,15},
+        {REALM_DAEMON,23},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+    {//CRUSADE
+        {REALM_CRUSADE,6},
+        {REALM_CRUSADE,10},
+        {REALM_CRUSADE,18},
+        {REALM_CRUSADE,14},
+        {REALM_CRUSADE,28},
+        {REALM_CRUSADE,15},
+        {REALM_CRUSADE,22},
+        {REALM_CRUSADE,29},
+        {REALM_NONE,0},
+        {REALM_NONE,0},
+    },
+};

デバッグ向けと思われる処理

モンスターの出現時にメッセージを出す・

diff -ruN hengband/src/monster1.c hengband-geo3/src/monster1.c
--- hengband/src/monster1.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/monster1.c	2007-03-11 10:55:48.457560000 +0900
@@ -3014,7 +3014,6 @@
 	byte		a1, a2;
 	char		c1, c2;

-
 	/* Access the chars */
 	c1 = r_ptr->d_char;
 	c2 = r_ptr->x_char;
@@ -3023,6 +3022,8 @@
 	a1 = r_ptr->d_attr;
 	a2 = r_ptr->x_attr;

+	// TEST
+	msg_format("TEST:%s ",r_name + r_ptr->name);

 	/* Clear the top line */
 	Term_erase(0, 0, 255);

風水士向けレイシャル技能

diff -ruN hengband/src/racial.c hengband-geo3/src/racial.c
--- hengband/src/racial.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/racial.c	2007-03-11 11:31:47.421998400 +0900
@@ -1396,6 +1396,11 @@
 			energy_use = 0;
 			break;
 		}
+		case CLASS_GEOMANCER:
+		{
+            map_area(DETECT_RAD_MAP);
+			break;
+		}
 		}
 	}
 	else if (p_ptr->mimic_form)
@@ -1725,6 +1730,7 @@
 						case CLASS_IMITATOR:
 						case CLASS_ARCHER:
 						case CLASS_SMITH:
+                        case CLASS_GEOMANCER:
 							if (one_in_(3))
 							{
 								Type = GF_MISSILE;
@@ -2643,6 +2649,21 @@
 		power_desc[num++].number = -3;
 		break;
 	}
+    case CLASS_GEOMANCER:
+	{
+#ifdef JP
+strcpy(power_desc[num].name, "周辺感知");
+#else
+		strcpy(power_desc[num].name, "Mapping");
+#endif
+
+		power_desc[num].level = 1;
+		power_desc[num].cost = 5;
+		power_desc[num].stat = A_WIS;
+		power_desc[num].fail = 20;
+		power_desc[num++].number = -3;
+		break;
+	}
 	default:
 #ifdef JP
 strcpy(power_desc[0].name, "(なし)");

職業技能コマンド実装

diff -ruN hengband/src/store.c hengband-geo3/src/store.c
--- hengband/src/store.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/store.c	2007-03-11 10:55:48.647833600 +0900
@@ -4561,7 +4561,8 @@
 			if ( (p_ptr->pclass == CLASS_MINDCRAFTER) ||
 			     (p_ptr->pclass == CLASS_BERSERKER) ||
 			     (p_ptr->pclass == CLASS_NINJA) ||
-			     (p_ptr->pclass == CLASS_MIRROR_MASTER)
+			     (p_ptr->pclass == CLASS_MIRROR_MASTER) ||
+			     (p_ptr->pclass == CLASS_GEOMANCER)
 			     ) do_cmd_mind_browse();
 			else if (p_ptr->pclass == CLASS_SMITH)
 				do_cmd_kaji(TRUE);

打撃回数処理追加

diff -ruN hengband/src/tables.c hengband-geo3/src/tables.c
--- hengband/src/tables.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/tables.c	2007-03-11 11:01:16.329016000 +0900
@@ -1134,6 +1134,7 @@
  * ForceTrainer  num = 4; mul = 2; div = MAX(60, weapon_weight);
  * Mirror Master num = 3; mul = 3; div = MAX(100, weapon_weight);
  * Ninja         num = 4; mul = 1; div = MAX(20, weapon_weight);
+ * Geomancer     num = 3; mul = 2; div = MAX(100, weapon_weight);
  *
  * To get "P", we look up the relevant "adj_str_blow[]" (see above),
  * multiply it by "mul", and then divide it by "div".

能力値テーブル

@@ -3714,6 +3715,17 @@
 		15, 10, 10, 0,  0,  0, 25,18,
 		2,  20, 40
 	},
+	{
+#ifdef JP
+		"風水士",
+#endif
+		"Geomancer",
+
+		{ -2,  1, 2, +0, -2, 1},
+		45, 37, 36, 3,200,200, 34,20,
+		15, 12, 10, 0,  0,  0,  6, 7,
+		0,  40, 40
+	},
 };

 player_seikaku seikaku_info[MAX_SEIKAKU] =
@@ -4041,6 +4053,7 @@
 	(CH_NONE),				/* Weaponsmith */
 	(CH_NONE),				/* Mirror-master */
 	(CH_NONE),				/* Ninja */
+	(CH_NONE),				/* Geomancer */
 };


@@ -4083,6 +4096,7 @@
 	(CH_NONE),				/* Weaponsmith */
 	(CH_NONE),				/* Mirror-master */
 	(CH_NONE),				/* Ninja */
+	(CH_NONE),				/* Geomancer */
 };


@@ -4607,6 +4621,19 @@
 		"暗殺者",
 		"死の長き腕",
 	},
+	/* Geomancer */
+	{
+		"易経読み",
+		"乾の占者",
+		"兌の占者",
+		"離の占者",
+		"震の占者",
+		"巽の占者",
+		"坎の占者",
+		"艮の占者",
+		"坤の占者",
+		"伏羲の子",
+	},
 };

 #else
@@ -4989,6 +5016,19 @@
 		"Assassinator",
 		"Death Lord",
 	},
+	/* Geomancer */
+	{
+		"I Ching Reader",
+		"Auger of Qian",
+		"Auger of Dui",
+		"Auger of Li",
+		"Auger of Zhen",
+		"Auger of Xun",
+		"Auger of Kan",
+		"Auger of Gen",
+		"Auger of Kun",
+		"Sun of Fu Hsi",
+	},
 };
 #endif

コマンドメニューへの追加

diff -ruN hengband/src/util.c hengband-geo3/src/util.c
--- hengband/src/util.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/util.c	2007-03-11 10:55:48.848121600 +0900
@@ -4067,6 +4067,7 @@
 	{"技術/特殊能力", 0, 0, MENU_CLASS, CLASS_SMITH},
 	{"鏡魔法/特殊能力", 0, 0, MENU_CLASS, CLASS_MIRROR_MASTER},
 	{"忍術/特殊能力", 0, 0, MENU_CLASS, CLASS_NINJA},
+	{"風水術/特殊能力", 0, 0, MENU_CLASS, CLASS_GEOMANCER},
 	{"広域マップ(<)", 2, 6, MENU_WILD, FALSE},
 	{"通常マップ(>)", 2, 7, MENU_WILD, TRUE},
 	{"", 0, 0, 0, 0},

地形情報変数追加

diff -ruN hengband/src/variable.c hengband-geo3/src/variable.c
--- hengband/src/variable.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/variable.c	2007-03-11 10:55:48.918222400 +0900
@@ -1249,6 +1249,7 @@
 /* Various */
 s16b feat_black_market;
 s16b feat_town;
+s16b feat_dark_pit;

 /* Terrains */
 s16b feat_deep_water;

職業毎のステータス計算処理追加

diff -ruN hengband/src/xtra1.c hengband-geo3/src/xtra1.c
--- hengband/src/xtra1.c	2007-02-10 23:51:42.000000000 +0900
+++ hengband-geo3/src/xtra1.c	2007-03-11 10:55:48.948265600 +0900
@@ -2377,6 +2377,7 @@

 	if ((p_ptr->pclass == CLASS_MINDCRAFTER) ||
 	    (p_ptr->pclass == CLASS_MIRROR_MASTER) ||
+	    (p_ptr->pclass == CLASS_GEOMANCER) ||
 	    (p_ptr->pclass == CLASS_BLUE_MAGE))
 	{
 		levels = p_ptr->lev;
@@ -2492,6 +2493,7 @@
 		case CLASS_MINDCRAFTER:
 		case CLASS_BEASTMASTER:
 		case CLASS_MIRROR_MASTER:
+		case CLASS_GEOMANCER:
 		{
 			if (inventory[INVEN_RARM].tval <= TV_SWORD) cur_wgt += inventory[INVEN_RARM].weight/2;
 			if (inventory[INVEN_LARM].tval <= TV_SWORD) cur_wgt += inventory[INVEN_LARM].weight/2;
@@ -2555,6 +2557,7 @@
 			case CLASS_FORCETRAINER:
 			case CLASS_TOURIST:
 			case CLASS_MIRROR_MASTER:
+			case CLASS_GEOMANCER:
 			{
 				msp -= msp * (cur_wgt - max_wgt) / 800;
 				break;
@@ -4798,6 +4801,7 @@
 				case CLASS_MAGE:
 				case CLASS_HIGH_MAGE:
 				case CLASS_BLUE_MAGE:
+				case CLASS_GEOMANCER:
 					num = 3; wgt = 100; mul = 2; break;

 				/* Priest, Mindcrafter, Magic-Eater */

スコア送信禁止

diff -ruN hengband/src/z-config.h hengband-geo3/src/z-config.h
--- hengband/src/z-config.h	2004-07-21 22:51:18.000000000 +0900
+++ hengband-geo3/src/z-config.h	2007-03-11 10:55:49.038395200 +0900
@@ -601,6 +601,7 @@
  * Use world score server
  */
 #define WORLD_SCORE
+#undef WORLD_SCORE
 #endif

 #endif /* HAVE_CONFIG_H */

[変愚蛮怒/攻略]ウトゥムノの鍛冶師鉄獄を行くpart1

1日目
                           性別に男性を選択した。
                           種族にバルログを選択した。
                           職業に鍛冶師を選択した。
                           性格にふつうを選択した。
 6:00                地上: 辺境の地に降り立った。
 6:00                      恐れ知らずの指輪を識別した。

0

Raviniella

獣の歌い手『ラヴィンニエラ』
アロー…あなた、聞こえますか?

Angaseice

鉄血『アンガセイス』
良好だよ。成程、ゴースト・ホイールとは良くできたものだな。
こうも思い通りの「影」の世界に身を置くことが出来るとは。

Raviniella

獣の歌い手『ラヴィンニエラ』
ブランド、マーリン両殿下の御要望に基づいての仕事…
つつがなく務められるよう努力致しましょう。

Angaseice

鉄血『アンガセイス』
無論だ…早速だがまずはマーリン殿下より勧められた
ルーチン通りに進行しようか。

 6:01                      真鍮のランタン(7500ターンの寿命)を購入した。
 6:01                      2つの 油つぼを購入した。
 6:01                      8つの 松明(2500ターンの寿命)を購入した。
 6:17            クエスト: クエスト「盗賊の隠れ家」へと突入した。
 6:19                      レベルが2に上がった。
 6:20                      レベルが3に上がった。
 6:20                      クエスト「盗賊の隠れ家」を達成した。
 6:20                      レベルが4に上がった。

1

Raviniella

獣の歌い手『ラヴィンニエラ』
ええ…まずは路上盗賊のアジトに
K・A・C・H・I・K・O・M・Iを行うが吉だそうです。

Angaseice

鉄血『アンガセイス』
応!

2

Angaseice

鉄血『アンガセイス』
…出だしから随分なものを拾ったぞ。

Raviniella

獣の歌い手『ラヴィンニエラ』
どこの聖者からかっぱいて来たのかしら…
ともあれ幸先よろしいですわね。

 6:32                      地上へ階段を上った。

3

Angaseice

鉄血『アンガセイス』
魅力5の上、この身ではここまで買い叩かれるか。
鉱夫仕事を省けるのは助かるような、
趣味を絶たねばならぬのがいささか残念なような。

Raviniella

獣の歌い手『ラヴィンニエラ』
趣味ならば今回の任務の性質上幾らでも満たせるではないですか。
今は効率を優先して下さい。

 7:17                地上: 鑑定の杖を識別した。
 7:17                      鑑定の杖 (11回分)を購入した。
 7:17                      邪悪存在感知の杖を識別した。
 7:17                      邪悪存在感知の杖 (13回分)を購入した。
 7:20                      ライト・クロスボウ (x3) (1.20turn) (+0,+0)を購入した。
 7:24                      21個の 松明(2500ターンの寿命)を購入した。
 7:29            クエスト: クエスト「もの言えぬ証人」へと突入した。

4

Raviniella

獣の歌い手『ラヴィンニエラ』
次に、ブービートラップ屋敷の掃除を行って下さい。

Angaseice

鉄血『アンガセイス』
松明が投擲物としてこうも優れているとは意外だったな。
かさばるのは玉に瑕だが。

 7:37                      レベルが5に上がった。
 7:39                      レベルが6に上がった。
 8:46                      クエスト「もの言えぬ証人」を達成した。
 8:55                      地上へ階段を上った。
 9:07                地上: 警告の指輪を識別した。

5

Angaseice

鉄血『アンガセイス』
ん、まあ当面の私にはまあまあの一品だ。

 9:22                      ショート・テレポートの巻物を識別した。
 9:22                      16巻の ショート・テレポートの巻物を購入した。
 9:22                      魔法の地図の巻物を識別した。
 9:22                      2巻の 魔法の地図の巻物を購入した。
 9:22                      テレポートの巻物を識別した。
 9:22                      5巻の テレポートの巻物を購入した。
 9:24                      ヒーローの薬を識別した。
 9:24                      10服の ヒーローの薬を購入した。
 9:24                      致命傷の治癒の薬を識別した。
 9:24                      7服の 致命傷の治癒の薬を購入した。
 9:25                      光の巻物を識別した。
 9:36                      1階へ階段を下りた。
 9:36   1階(イークの洞穴): イークの洞穴の最深階1階に到達した。
 9:40                      3階へ階段を下りた。
 9:40   3階(イークの洞穴): イークの洞穴の最深階3階に到達した。
 9:59                      4階へ階段を下りた。
 9:59   4階(イークの洞穴): イークの洞穴の最深階4階に到達した。
10:39                      5階へ階段を下りた。
10:39            クエスト: イークの洞穴の最深階5階に到達した。
10:44                      レベルが7に上がった。
10:52                      レベルが8に上がった。
11:03                      レベルが9に上がった。
11:21                      レベルが10に上がった。
12:06                      レベルが11に上がった。
12:25                      クエスト「ワーグを殱滅せよ」を達成した。

6

Raviniella

獣の歌い手『ラヴィンニエラ』
次は魔狼退治…やはり、そうそう手間取る仕事でもありませんね。

12:32                      無知の指輪を識別した。
12:32                      回復モンスターの魔法棒を識別した。
12:33                      パニック・モンスターの魔法棒を識別した。
12:55                      4階へ階段を上った。
13:11   4階(イークの洞穴): 3階へ階段を上った。
13:16   3階(イークの洞穴): 1階へ階段を上った。
13:20   1階(イークの洞穴): 地上へ階段を上った。
13:29                地上: 天恵の巻物を識別した。
13:34                      帰還の詔の巻物を識別した。
13:34                      3巻の 帰還の詔の巻物を購入した。
2日目
 2:18                地上: 宿屋に泊まった。
 6:00                      すがすがしい朝を迎えた。
 6:03                      宿屋に泊まった。
18:00                      夕方を迎えた。
18:03                      宿屋に泊まった。
3日目
 6:00                      すがすがしい朝を迎えた。
 6:02                      宿屋に泊まった。
18:00                      夕方を迎えた。
18:01                      6巻の 魔法の地図の巻物を購入した。
21:32                地上: 1階へ階段を下りた。
21:32           1階(鉄獄): 鉄獄の最深階1階に到達した。
21:48                      3階へ階段を下りた。
21:48           3階(鉄獄): 鉄獄の最深階3階に到達した。
21:49                      好まざる猫『フリージア』を倒した。
21:55                      4階へ階段を下りた。
21:55           4階(鉄獄): 鉄獄の最深階4階に到達した。
22:11                      サモン・モンスターの巻物を識別した。
22:12                      スピードの薬を識別した。
22:12                      鑑定の巻物を識別した。
22:23                      6階へ階段を下りた。
22:23           6階(鉄獄): 鉄獄の最深階6階に到達した。

7

Angaseice

鉄血『アンガセイス』
6Fランクエ…むう、我等が闇の子の裔か。

22:41                      塩水の薬を識別した。
22:53                      探索の指輪を識別した。
22:54                      財宝感知の杖を識別した。
23:07                      レベルが12に上がった。
23:07                      オークの隊長『マウフル』を倒した。
23:07                      ランダムクエスト(オークの隊長『マウフル』)を達成した。

8

Angaseice

鉄血『アンガセイス』
許せよ、これも「影」のめぐり合わせというもの。

23:08                      スナガによってピンチに陥った。

Raviniella

獣の歌い手『ラヴィンニエラ』
何気に苦戦されてますわね。体が慣れるまでは自重下さいよ。

23:22                      耐冷の薬を識別した。
4日目
 2:31                      透明物体感知の薬を識別した。
 5:14                      帰還を使って地上へと戻った。
 9:37                地上: 酔っ払いの薬を識別した。
 9:57                      8服の 致命傷の治癒の薬を購入した。
 9:57                      聖唱歌の巻物を識別した。
 9:57                      3巻の 聖唱歌の巻物を購入した。
 9:58                      10巻の テレポートの巻物を購入した。
10:16                      宿屋に泊まった。
18:00                      夕方を迎えた。
18:03                      宿屋に泊まった。
5日目
 6:00                      すがすがしい朝を迎えた。
 6:03                      宿屋に泊まった。
18:00                      夕方を迎えた。
18:01                      17巻の 魔法の地図の巻物を購入した。
18:05                      2巻の 帰還の詔の巻物を購入した。
18:14                      10個の 松明(2500ターンの寿命)を購入した。
18:24                      帰還を使って鉄獄の6階へ下りた。
18:48           6階(鉄獄): 脆弱の薬を識別した。
18:49                      透明物体感知の杖を識別した。
18:56                      エキサイト・モンスターの指輪を識別した。
19:18                      脆弱の指輪を識別した。
19:21                      農夫マゴットの飼犬『きば』を倒した。
19:36                      暗闇の杖を識別した。
19:37                      7階へ階段を下りた。
19:37           7階(鉄獄): 鉄獄の最深階7階に到達した。
20:01                      農夫マゴットの飼犬『おおかみ』を倒した。
20:04                      レベルが13に上がった。
20:15                      8階へ階段を下りた。
20:15           8階(鉄獄): 鉄獄の最深階8階に到達した。
20:34                      恐怖除去のキノコを識別した。
20:34                      のろまの薬を識別した。
20:51                      パニック・モンスターの巻物を識別した。
21:29                      10階へ階段を下りた。
21:29          10階(鉄獄): 鉄獄の最深階10階に到達した。
21:38                      『トラのホッブス』を倒した。
22:26                      12階へ階段を下りた。
22:26          12階(鉄獄): 鉄獄の最深階12階に到達した。

9

Angaseice

鉄血『アンガセイス』
12F。今度は面妖だが…
それだけに心置きなく屠れそうな相手だな。

22:39                      軽傷の治癒の薬を識別した。
22:51                      『スメアゴル』を倒した。
22:53                      ☆白馬の王子様の鉛詰めメイスを発見した。

10

23:00                      レベルが14に上がった。
23:00                      サルマンの間者『ヘビの舌』を倒した。

11

Angaseice

鉄血『アンガセイス』
何やら相応しからぬ一品を持つ者等ばかり。
悪いが鉄獄の業に従って頂くとするぞ。

Raviniella

獣の歌い手『ラヴィンニエラ』
そこの子鬼じみたのは「賞金首」です。遺体を回収してください。

23:32                      トラップ感知のロッドを識別した。
23:45                      エキサイト・モンスターの巻物を識別した。
6日目
 0:51                      トラップ感知の巻物を識別した。
 1:20                      グラーキの奴隷によってピンチに陥った。

12

Angaseice

鉄血『アンガセイス』
ぬ…

Raviniella

獣の歌い手『ラヴィンニエラ』
…言っているそばからやってしまいましたね。どうする気です?

Angaseice

鉄血『アンガセイス』
元より続けるしかあるまい。そもそも先に言った通り、
私の本業通りに進めるのが此度の使命だろう?
ならば元より「アーティファクト生成の巻物」とやらに
頼ることができぬのだから。

Raviniella

獣の歌い手『ラヴィンニエラ』
…己の手に拠る鍛冶の技で、サーペントの瞳を
もぎ取って来る…そういうことでしたわね。

 1:55                      ゴースト『Q』を倒した。
 1:55                      ランダムクエスト(ゴースト『Q』)を達成した。

Angaseice

鉄血『アンガセイス』
ともあれ、こいつには死を持って償ってもらおう。
子鬼の骸は最後の晩餐よ。

13

Raviniella

獣の歌い手『ラヴィンニエラ』
それでは先ほど子鬼から奪った銘物は?…

Angaseice

鉄血『アンガセイス』
無論使わぬ。後で鍛冶の技の折に呪力の火種にくべるまでよ。

14

 1:55                      レベルが15に上がった。
 1:58                      13階へ階段を下りた。
 1:58          13階(鉄獄): 鉄獄の最深階13階に到達した。
 2:01                      帰還を使って地上へと戻った。
 2:45                地上: 耐久力復活の薬を識別した。
 2:45                      耐久力復活の薬を購入した。
7日目
 3:58                地上: 3服の 致命傷の治癒の薬 {25%引き}を購入した。
 4:01                      重傷の治癒の薬を識別した。
 4:01                      3服の 重傷の治癒の薬を購入した。
 4:10            クエスト: クエスト「オークのキャンプ」へと突入した。
 4:25                      丘オークの隊長『ゴルフィンブール』を倒した。
 4:28                      ブラック・オークによってピンチに陥った。
 4:29                      丘オークによってピンチに陥った。
 4:30                      丘オークによってピンチに陥った。
 4:52                      レベルが16に上がった。
 5:36                      スライムモルドジュースの薬を識別した。
 5:37                      ドア/階段感知の杖を識別した。
 6:04                      クエスト「オークのキャンプ」を達成した。

Angaseice

鉄血『アンガセイス』
さあ、残りのルーチンを片付けよう。

 6:43                      武器呪縛の巻物を識別した。
 7:02                      地上へ階段を上った。
 7:03                地上: 病気のキノコを識別した。
 7:04                      無知の薬を識別した。
 7:04                      スリープ・モンスターの魔法棒を識別した。
 7:04                      謎の魔法棒を識別した。
 7:27                地上: 2服の スピードの薬を購入した。
 7:36                      3服の 致命傷の治癒の薬を購入した。
 7:36                      2巻の 帰還の詔の巻物を購入した。
 8:18                      4つの 油つぼを購入した。
 8:18                      14個の 松明(2500ターンの寿命)を購入した。
 8:26                      帰還を使って鉄獄の13階へ下りた。
 8:35          13階(鉄獄): 15階へ階段を下りた。
 8:35          15階(鉄獄): 鉄獄の最深階15階に到達した。
 8:51                      赤外線視力の薬を識別した。
 8:51                      装飾のアミュレットを識別した。
 9:21                      16階へ階段を下りた。
 9:21          16階(鉄獄): 鉄獄の最深階16階に到達した。
 9:28                      レベルが17に上がった。
 9:41                      召喚の杖を識別した。
 9:53                      岩石溶解の魔法棒を識別した。
 9:53                      耐火の薬を識別した。
 9:54                      病気の薬を識別した。
 9:54                      悪臭雲の魔法棒を識別した。
 9:59                      18階へ階段を下りた。
 9:59          18階(鉄獄): 鉄獄の最深階18階に到達した。
10:04                      ウルファングの息子『ウルファスト』を倒した。
10:15                      軽傷の治癒の杖を識別した。
10:21                      帰還を使って地上へと戻った。
10:33                地上: 3服の スピードの薬を購入した。
10:42            クエスト: クエスト「破滅のクエスト1」へと突入した。
11:10                      レベルが18に上がった。
11:41                      レベルが19に上がった。
11:41                      クエスト「破滅のクエスト1」を達成した。

15

16

11:42                      防具強化の巻物を識別した。
12:00                      武器ダメージ増加の巻物を識別した。
12:22                      重傷の治癒のキノコを識別した。
12:40                      毒入り食料によってピンチに陥った。
12:40                      病弱のキノコを識別した。
12:59                      体力回復の薬を識別した。
13:08                      ドア/階段感知の巻物を識別した。
13:09                      サモン・アンデッドの巻物を識別した。
13:15                      リンゴジュースの薬を識別した。
13:25                      噂の巻物を識別した。
13:32                      地上へ階段を上った。
14:02                地上: サンダー・ボルトのロッドを識別した。
14:02                      スリープ・モンスターのロッドを識別した。
14:02                      光の杖を識別した。
14:03                      耐火の指輪を識別した。
14:03                      テレポートの指輪を識別した。
14:25                地上: 火炎の指輪を識別した。
14:31                      耐酸のアミュレットを識別した。
14:31                      耐酸のアミュレット {r酸}を購入した。
14:44                      3服の 致命傷の治癒の薬を購入した。
14:44                      14服の 重傷の治癒の薬を購入した。
14:55                      20個の 松明(2500ターンの寿命)を購入した。
15:25                      帰還を使って鉄獄の18階へ下りた。
15:49          18階(鉄獄): 南蛮の酋長『木鹿大王』を倒した。
15:56                      火の神『祝融』を倒した。
16:01                      無知のキノコを識別した。
16:01                      ドア/階段感知のロッドを識別した。
16:18                      守りの指輪を識別した。
16:35                      トラップ/ドア破壊の巻物を識別した。
16:52                      19階へ階段を下りた。
16:52          19階(鉄獄): 鉄獄の最深階19階に到達した。
16:55                      『ボーシン』を倒した。
16:58                      21階へ階段を下りた。
16:58          21階(鉄獄): 鉄獄の最深階21階に到達した。
17:05                      耐光耐暗の指輪を識別した。
17:25                      レベルが20に上がった。
17:50                      腕力復活のキノコを識別した。
17:50                      盲目のキノコを識別した。
18:30                      チェンジ・モンスターのロッドを識別した。
19:06                      帰還を使って地上へと戻った。
19:29                地上: 12服の 重傷の治癒の薬を購入した。
19:29                      2巻の 帰還の詔の巻物を購入した。

17

Angaseice

鉄血『アンガセイス』
ここまでは順当かな。

Raviniella

獣の歌い手『ラヴィンニエラ』
ええ、この調子で事を進めましょう。

  [変愚蛮怒 2.1.3 キャラクタ情報]

                          名前  : ふつうのアンガセイス

 性別     : 男性             年齢            321才   腕力 : 18/112
 種族     : バルログ         身長            246cm   知能 :  18/10
 職業     : 鍛冶師           体重            108kg   賢さ :      3
                             社会的地位        1     器用 :  18/60
                             属性             大悪   耐久 :  18/61
                                                     魅力 :      5

 打撃修正(右手)  (+64,+10)   HP         275/ 275   打撃命中  :超越
                             MP           0/   0   射撃命中  :超越
 打撃回数              4+0                           魔法防御  :超越
 平均ダメージ         61+0   レベル             20   隠密行動  :大変良い
                             経験値          13711
 射撃攻撃修正     (+21,+6)   最大経験        13711   知覚      :良い
 射撃武器倍率        x3.21   次レベル        15120   探索      :大変良い
 射撃回数             1.25   所持金           6512   解除      :大変良い
                                                     魔法道具  :超越
 AC             [35,+41]   日付      7日目 19:48
 加速                 (+0)   プレイ時間   01:03:28   赤外線視力:50 feet


                         (キャラクターの生い立ち)
          あなたはヴァリノールの鍛冶師でしたが、メルコールとの交友を
          執拗に詰問されたことに嫌気が差し、ウトゥムノへ降りました。
          今はアンバーの王子ブランドに仕えています。


          …あなたは現在、 アングウィル にいる。


                                                               能力修正
 性別  : 男性          能力    基本 種 職 性 装   合計   現在  abcdefghijkl@
 種族  : バルログ      腕力 : 18/42  4  3  0  0 18/112         .............
 職業  : 鍛冶師        知能 :    18  2 -1  0  0  18/10         .............
 レベル: 20            賢さ :    10-10 -1  0  4      3         .............
 HP  : 275/275       器用 :    18  2  1  0  3  18/60         3............
 MP  : 0/0           耐久 : 18/21  3  0  0  1  18/61         .1...........
                       魅力 :    11 -5 -1  0  0      5         .............
         \)}=="~[(]]]             \)}=="~[(]]]                 \)}=="~[(]]]
         abcdefghijkl@            abcdefghijkl@                abcdefghijkl@
 耐酸  : .+...+.......    耐轟音: .............    加速      : .............
 耐電撃: .............    耐地獄: ............+    耐麻痺    : .............
 耐火炎: ...+........+    耐因混: .............    透明体視認: ............+
 耐冷気: .............    耐カオ: .............    経験値保持: ............+
 耐毒  : .............    耐劣化: .............    警告      : ....+........
 耐閃光: .........+...    耐恐怖: +............    遅消化    : .............
 耐暗黒: .............    反射  : .............    急回復    : .............
 耐破片: .............    火炎オ: .............    浮遊      : .............
 耐盲目: .............    電気オ: .............    永遠光源  : .........+...
 耐混乱: .............    冷気オ: .............    呪い      : .............

             \)                  \)}=="~[(]]]                  \)}=="~[(]]]
             ab@                 abcdefghijkl@                 abcdefghijkl@
 邪悪 倍打 : ...    テレパシー : .............   追加攻撃    : .............
 不死 倍打 : ...    邪悪ESP    : .............   採掘        : .............
 悪魔 倍打 : ...    無生物ESP  : .............   赤外線視力  : .............
 龍 倍打   : ...    善良ESP    : .............   魔法道具支配: .............
 人間 倍打 : *..    不死ESP    : .............   隠密        : +.......+....
 動物 倍打 : ...    悪魔ESP    : .............   探索        : ........+....
 オーク倍打: ...    龍ESP      : .............
 トロル倍打: ...    人間ESP    : +............   乗馬        : .............
 巨人 倍打 : ...    動物ESP    : .............   投擲        : .............
 溶解      : ...    オークESP  : .............   祝福        : .............
 電撃      : ...    トロルESP  : .............   反テレポート: .............
 焼棄      : ...    巨人ESP    : .............   反魔法      : .............
 凍結      : ...    ユニークESP: .............   消費魔力減少: .............
 毒殺      : ...    腕力維持   : .............
 切れ味    : ...    知力維持   : .............   経験値減少  : .............
 地震      : ...    賢さ維持   : .............   乱テレポート: .............
 吸血      : ...    器用維持   : .............   反感        : .............
 カオス効果: ...    耐久維持   : .............   太古の怨念  : .............
 理力      : ...    魅力維持   : .............


  [オプション設定]

 保存モード:         ON
 小さいダンジョン:   ENABLED
 アリーナ:           ENABLED


  [帰還場所]

    鉄獄        :  21 階
    イークの洞穴:   5 階


  [クエスト情報]

《達成したクエスト》
  盗賊の隠れ家                        (危険度:  5階相当) - レベル 3 - 00:00:28
  もの言えぬ証人                      (危険度:  5階相当) - レベル 6 - 00:04:01
  ワーグを殱滅せよ                    (危険度:  5階相当) - レベル11 - 00:09:01
  オークの隊長『マウフル』            (  6階)            - レベル12 - 00:14:58
  ゴースト『Q』                      ( 12階)            - レベル14 - 00:31:42
  オークのキャンプ                    (危険度: 15階相当) - レベル16 - 00:38:19
  破滅のクエスト1                    (危険度: 15階相当) - レベル19 - 00:47:51

《失敗したクエスト》
  なし


 闘技場:  0勝


  [倒したモンスター]

13体のユニーク・モンスターを含む、合計537体の敵を倒しています。

《上位10体のユニーク・モンスター》
  南蛮の酋長『木鹿大王』                   (レベル 16)
  ウルファングの息子『ウルファスト』       (レベル 16)
  ゴースト『Q』                           (レベル 15)
  火の神『祝融』                           (レベル 14)
  丘オークの隊長『ゴルフィンブール』       (レベル 12)
  オークの隊長『マウフル』                 (レベル 12)
  『トラのホッブス』                       (レベル 10)
  『ボーシン』                             (レベル 10)
  サルマンの間者『ヘビの舌』               (レベル  8)
  『スメアゴル』                           (レベル  3)


  [プレイヤーの徳]

属性 : 大悪

[誉]の罪者
[識]の小徳者
[正]の小徳者
[勇]の罪者
[情]の敵
[忍]の迷道者
[調]の小徳者
[節]の具現者


  [キャラクタの装備]

a) 人喰いのメイス (2d4) (+6,+3) (+3隠密)
b) ドワーフの金属製スモール・シールド [8,+15] (+1) {+耐r酸}
c) 強力射のスリング (x3) (0.80turn) (+8,+6)
d) 強力投擲の火炎の指輪 [+9]
e) 警告の指輪
f) 耐酸のアミュレット {r酸}
g) 真鍮のランタン(11900ターンの寿命)
h) 鎖かたびら (-2) [14,+0]
i) エルフのクローク [4,+5] (+3隠密)
j) 光の鉄ヘルメット [5,+9]
k) ガントレット [2,+0]
l) 軟革ブーツ [2] {並}


  [キャラクタの持ち物]

a) 6服の スピードの薬 {!k}
b) 5服の ヒーローの薬
c) 28服の 重傷の治癒の薬
d) 21服の 致命傷の治癒の薬 {25%引き}
e) 14巻の ショート・テレポートの巻物
f) 9巻の テレポートの巻物
g) 4巻の 帰還の詔の巻物
h) 2本の トラップ感知のロッド
i) ドア/階段感知のロッド
j) 2本の 岩石溶解の魔法棒 (22回分)
k) 鑑定の杖 (9回分) {@1}
l) 財宝感知の杖 (19回分)
m) ドア/階段感知の杖 (15回分)
n) 19個の 松明(2500ターンの寿命) {@2}
o) 2つの 見習プリーストの死体


  [我が家のアイテム]

 ( 1 ページ )
a) 2服の 耐冷の薬
b) 邪悪存在感知の杖 (9回分)
c) 耐光耐暗の指輪
d) モルグルのレイピア (3d6) (-23,-14) [-4] {呪われている}
e) ☆白馬の王子様の鉛詰めメイス (3d4) (+7,+6) (+3赤外線視力) {+魅赤;麻明/竜(魅}
f) ブラックマーケットのエージェントの死体
g) 見習プリーストの死体
h) サルマンの間者『ヘビの舌』の死体
i) 2つの 見習超能力者の死体
j) 火の神『祝融』の死体
k) ウルファングの息子『ウルファスト』の死体 {賞金首}
l) 南蛮の酋長『木鹿大王』の死体


  [チェックサム: "3c7b248e0e551ce8ec"]

[ヴィーヤウトゥムノ] ブラック・ウーズ/Black ooze (L.Dark 'j')

=== Num:371  Lev:23  Rar:1  Spd:-20  Hp:6d8  Ac:6  Exp:7
それは奇妙に動く泥のようなものだ。
それは通常地下 23 階で出現し、幾分不規則に、かつ非常にゆっくりと動いてい
る。このモンスターを倒すことは 50 レベルのキャラクタにとって 約3.10 ポイ
ントの経験となる。それは魔法を使うことができ、魔力吸収の呪文を唱えること
がある(確率:1/11)。それは AC6 の防御力と 6d8 の体力がある。それはドアを開
け、ドアを打ち破り、弱いモンスターを倒し、アイテムを拾うことができる。そ
れはテレパシーでは感知できない。それは爆発的に増殖する。それは毒の耐性を
持っている。それは経験を積むと、ウボ=サスラの落とし子に進化する。それは恐
怖を感じない。それは侵入者を警戒しており、 100 フィート先から侵入者に気付
くことがある。それは一つのアイテムや財宝を持っていることがある。それは 2d6
のダメージで触って酸を飛ばす。

20

Romunqualy

鬼畜大佐『ロムンクァリィ』
だからまた思い出の記述が投げやりじゃないか、あったまきた(棒)

Udindae

兵器の悪魔『ウディンダイ』
ウーズとゼリー、どう違うんでしょうねえ?…

Romunqualy

鬼畜大佐『ロムンクァリィ』
中の奴の絵的書き分けとして、ウーズは繊毛状って決めたらしいわよ。
それにしてもこのHFO子駄目駄目である。

[ヴィーヤウトゥムノ] キメラ/Chimera (Yellow 'H')

=== Num:341  Lev:20  Rar:1  Spd:+0  Hp:13d8  Ac:15  Exp:100
ライオンとドラゴンと山羊が混じったような奇妙な生物だ。非常に変わった外見
をしていて、近寄りがたい雰囲気がある。
それは通常地下 20 階で出現し、普通の速さで動いている。このモンスターを倒
すことは 50 レベルのキャラクタにとって 約38.46 ポイントの経験となる。それ
は火炎のブレスを吐くことがある(確率:1/10)。それは AC15 の防御力と 13d8 の
体力がある。それはドアを打ち破ることができる。それに乗ることができる。そ
れは炎の耐性を持っている。それは経験を積むと、ゴーゴンキメラに進化する。
それは侵入者を幾分注意深く見ており、 120 フィート先から侵入者に気付くこと
がある。それは 1d10 のダメージで噛んで攻撃し、 1d3 のダメージで噛んで燃や
し、 1d3 のダメージで噛んで燃やす。

23

Udindae

兵器の悪魔『ウディンダイ』
普通だな!

Romunqualy

鬼畜大佐『ロムンクァリィ』
まあファンタジーで典型的で普遍的過ぎて
多少奇抜な合成ぶりもマンネリだわねえ。