# autopick.txt XAngband 仕様
#
# このファイルの一番最後は実際に使用できる設定ファイルの具体例になって
# います。このファイルを 'picktype.prf' という名前で
# lib\user\picktype.prf か ~/.angband/XAngband/picktype.prf として
# コピーすれば、そのまま自動拾いファイルとして使用することができます。
# (Unix の場合は ~/.angband/XAngband/ のみが使用可能。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' : 前にマッチする行を検索。(条件分岐を考慮しません)
#
#      設定は全て XAngband ディレクトリの中の lib\user\ の下か 
#      ~/.angband/XAngband/ の下に「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から3のとき、n冊目の魔法書が対象になります。
#    
#      〜の部分では、アイテムの種類を表す以下のようなキーワードが特別扱いになります
#      ・アイテム          : すべてのアイテムが対象になります。
#      ・武器              : 武器が対象になります。
#      ・防具              : 防具が対象になります。
#      ・矢                : 矢、クロスボウの矢、石、弾が対象になります。
#      ・光源              : たいまつやランタン等が対象になります。
#      ・魔法アイテム      : 巻物・スタッフ・ワンド・ロッドが対象になります。
#      ・がらくた          : 像等の役に立たないものが対象になります。
#      ・死体や骨          : モンスターの死体や骨が対象になります。
#      ・魔法書            : 魔法書が対象になります。
#      ・得意武器          : プリーストにとって特別に扱いやすい種類の武器が
#                            対象になります。
#
#      他に部位別の装備品を対象とするキーワード: 盾、弓、指輪、アミュ
#      レット、鎧、クローク、兜、籠手、靴 が使用できます。
#    
#      この後に区切り記号のコロン「:」を挟んでさらに文字列が続く場合は、
#      その文字列が名前の一部に含まれているアイテムが対象になります。
#      ここで、アイテムの種類を表すキーワード(アイテム、武器、防具等)
#      を使用しない場合は区切り記号は省略できます。また、文字列の頭に
#      記号「^」を入れるとそれはアイテム名の先頭部分に一致します。
#
#    ---------
#
#    光源:石	 // 名前に"石"を含む光源を拾う。「光源石」 は使用不可。
#    籠手:腕力の // 腕力のガントレットを拾うが、腕力の指輪は拾わない。
#    !ローブ	 // 名前に"ローブ"を含むもの(ローブ、グローブ等)を破壊。
#    !^ローブ	 // グローブは破壊しない。
#    !防具:^耐	 // 耐火、耐冷、耐電、耐酸の防具を破壊。全耐性は破壊しない。
#
#    ---------
#
#      また、行の最後に # で始まる文字列を書くと、鑑定したりアイテムの
#      上に立った瞬間に自動的にその文字列がアイテムに刻まれます。
#
#
#      各行の書式は次のようになります。
#
#         [! ~ ; (]
#         [[すべての] [収集中の]
#          [未判明の] [未鑑定の] [鑑定済みの] [*鑑定*済みの]
#          [アーティファクト] [エゴ] [上質の] [無銘の] [並の] 
#          [無価値の] [レアな] [ありふれた]
#          [ダイス目の違う] [ダイス目n以上の] [修正値n以上の]
#          [ユニーク・モンスターの] [読める] [読めない] [第一領域の] [n冊目の]
#          [アイテム|アーティファクト|武器|得意武器|防具|矢|魔法アイテム|
#           がらくた|死体や骨|魔法書|鈍器|盾|弓|指輪|アミュレット|光源|鎧|
#           クローク|兜|籠手|靴] :]
#         [[^]その他の文字列] [#自動刻み文字列]
#    
#      ☆ Tips
#      ☆   未鑑定の や ダイス目の違う 等のキーワードは一行に並べて書く
#      ☆   事で両方の制限を適用させる事が出来ます。
#      ☆   現在のバージョンではキーワードの順番も自由です。
#      ☆ 
#    
#    
#    ● 条件分岐の使い方
#    
#      自動拾いの設定は種族や職業、レベル等に条件を付けて設定すること
#      が出来ます。
#    
#      ☆ Tips
#      ☆   マクロ定義のファイル(プレイヤー名.prf 等)でも全く同じ書式で
#      ☆   条件分岐を使う事が出来ます。
#      ☆
#    
#      ・条件分岐の書式
#        ?:引数
#          引数が"0"なら以降の自動拾い／破壊の登録をスキップする。
#          引数が"1"なら以降の登録を行う。 引数が"0"以外は全て"1"と見なす。
#        (注意!)条件分岐を入れ子にすることは出来ません。
#    
#      ・ファイルの挿入の書式
#        %:ファイル名
#          lib\user\ファイル名 か ~/.angband/XAngband/ファイル名 を自
#          動拾いの登録ファイルとして読み込みます。
#    
#      ・使用可能な演算子
#        [EQU 引数１ 引数２ ...]
#          引数１と他のどれかの引数が等しいと"1"、どれも等しくないと"0"を返す。
#        [IOR 引数１ 引数２ ...]
#        [AND 引数１ 引数２ ...]
#          IORは引数の論理和、ANDは引数の論理積をとって真なら"1"、偽なら"0"を返す。
#        [NOT 引数]
#          引数が"1"なら"0"、"0"なら"1"を返す。
#        [LEQ 引数１ 引数２ ...]
#        [GEQ 引数１ 引数２ ...]
#          LEQは引数の大きさを「文字列として比較」して
#          引数１≦引数２≦...のとき"1"を返す。
#          GEQは引数１≧引数２≧...のとき"1"を返す。
#    
#      ・変数説明
#        $RACE
#          種族を英語名で返す。
#          Human, Half-Elf, Elf, Hobbit, Gnome, Dwarf, Half-Orc,
#          Half-Troll, Dunadan, High-Elf, Half-Giant, Klackon,
#          Kobold, Nibelung, Mindflayer
#          のどれか
#        $CLASS
#          職業を英語名で返す。
#          Warrior, Mage, Priest, Ranger, Paladin, Warrior-Mage,
#          Mindcrafter, Archer, Archaeologist
#          のどれか
#        $PLAYER
#          プレイヤーの名前を返す。ただし、' '(スペース)、'['、']'は
#          prefの制約でそのまま使えないため、'_'に置き換えて返す。
#          例: 名前が"[ Temp ]"ならば、$PLAYERは"__Temp__"を返す。
#        $REALM1
#          第１魔法領域(専門とする魔法領域)を英語名で返す。
#          Life, Sorcery, Musou
#          のどれか。魔法書を使えない場合は none になる。
#        $LEVEL
#          プレイヤーのレベルを２桁の文字列で返す。
#          "01","09","10","50" 等
#
#------------------------------------------------------------------
#
#    これ以下は具体的に使用可能な設定例です。
#    このファイルをpicktype.prfという名前でlib\user\ か 
#    ~/.angband/XAngband/ にコピーすれば自動拾いファイルとして
#    使用することができます。
#
#------------------------------------------------------------------

#
# 基本的な設定
#

未判明のアイテム

# 未鑑定名が、玻璃瓶、石、白熱灯、星、宝石 の光源は
# アーティファクトなので拾う。
未鑑定の光源:宝石#!!
未鑑定の光源:星#!!
未鑑定の光源:白熱灯
未鑑定の光源:石#!!
未鑑定の光源:玻璃瓶#!!

# *鑑定*済みのアーティファクトを一度床に落として拾うと耐性自動刻み'%'をする。
~*鑑定*済みのアーティファクト#%

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

収集中の薬
収集中の巻物
収集中のロッド
収集中の矢
(収集中のアイテム

# よく拾う物
鑑定のロッド#!k!!
全感知のロッド#@z0!k!!
スピードのロッド#!k!!

無敵の薬#!k
獲得#!k
経験の薬#!k
増強の薬#!k
*破壊*
抹殺

腕力の薬#!k
賢さの薬#!k
器用さの薬#!k
耐久力の薬#!k
知能の薬#!k
魅力の薬#!k

生命の薬#!k
体力回復#!k

# レベルが10以上なら破壊する例
#   条件分岐の判定は自動拾いファイルを読み込むときだけ行うので
#   レベルが10以上に上がった直後はまだ登録されていません。
#   '$'コマンドで読み込むかゲームを再開するとちゃんと読み込まれます。
#
?:[GEQ $LEVEL 10]
(!リンゴジュース
(!空のビン
(!水の入ったビン
?:1

# レベルが20以下なら自動破壊禁止で床に放置する例
# '('を指定する事で、マップ'M'コマンドで表示しないように指示します。
?:[LEQ $LEVEL 20]
(~のろまの薬
(~眠りの薬
?:1

# やや複雑な例
?:[AND [GEQ $LEVEL 20] [EQU $REALM1 Life Socery]]
(!空腹充足
(!食料
(!スライムモルド
(!エルフの行糧
?:1

#
# 高レベルで弱い装備品を全て壊す例。「無銘の〜」の使用には細心の注意が必要。
# 何もしないとドラゴン装備等も壊すので放置のコマンド文字'~'で守る必要があります。
#
?:[GEQ $LEVEL 40]
~無銘の防具:ドラゴン
~無銘の防具:エルフのクローク
~無銘の防具:影のクローク
~無銘の防具:ミラー・シールド
~無銘の武器:ダイヤモンド・エッジ
~無銘の武器:粉砕のメイス
(!無銘の武器
(!無銘の防具

?:[GEQ $LEVEL 20]
(!無銘の武器:(+0,+0)
(!無銘の防具:,+0]
?:1

#
#自分の魔法領域の魔法書に適切な自動刻みをする例。
#上級魔法書と下級魔法書の中間の優先順位に挿入する例として、
#未鑑定の武器、防具、矢を床に放置する設定を入れてあります。
#

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

# ここに上級魔法書よりは優先順位が低くて
# 下級よりは高くしたいものを書く。
# 例えば、
未鑑定のダイス目の違う武器
~未鑑定の武器
~未鑑定の防具
~未鑑定の矢

#
#  下級魔法書
#
# 職業と領域によってはわざと特定の魔法書を持たない事があるので、
# 既に持っていなければ放置。

収集中の魔法書
~第一領域の2冊目の魔法書#@mb!k
~第一領域の1冊目の魔法書#@ma!k

# その他の魔法書

# 専門外の下級魔法書はレベル30以上なら全て自動破壊する。
?:[GEQ $LEVEL 30]
(!読めない1冊目の魔法書
(!読めない2冊目の魔法書
?:1

# 戦士は上級魔法書を手動で破壊すると経験値になるので、拾う。
# 生命パラディンも生命以外の魔法書を手動で破壊すると経験値になる。
?:[IOR [EQU $CLASS Warrior] [AND [EQU $CLASS Paladin] [EQU $REALM1 Life]]]
読めない3冊目の魔法書
?:1

# その他の場合も上級魔法書は高く売れるので低レベルでは拾う。
?:[LEQ $LEVEL 29]
読めない3冊目の魔法書
?:1

