--- 自動拾いエディタの基本操作 ---

「自動拾いエディタ」は「自動拾い/破壊」の設定を書くための専用のテキス
トエディタです。

ゲーム中に 「_」キーを押すか、オプション画面で「(P) 自動拾いエディタ」
を選択するとエディタ画面に入ります。

基本的に普通のテキストエディタですから、カーソルキーや Home、End、
PageUp、PageDownの各キーでカーソルを移動して、自由に文字を入力するだけ
で設定を書き変える事ができます。

設定を終了するには ^W を押してください。変更は自動的にセーブされます。
また、^Q を押すと設定変更を取りやめて何もセーブせずに終了します。

ESCキーを押すとメニューが開きます。
+----------------------------+
| a) ヘルプ                  |
| b) セーブ無しで終了     ^Q |
| c) セーブして終了       ^W |
| d) 全ての変更を破棄     ^Z |
| e) 編集                 ▼ |
| f) 検索                 ▼ |
| g) カーソル移動         ▼ |
| h) 色々挿入             ▼ |
| i) 形容詞(一般)の選択   ▼ |
| j) 形容詞(特殊)の選択   ▼ |
| k) 名詞の選択           ▼ |
| l) 拾い/破壊/放置の選択 ▼ |
+----------------------------+
ここで、 a〜l のキーを押すとコマンドを実行するか、またはサブメニュー
(▼と表示されている行)を開きます。

行の右端に「^Q」や「^Z」と表示されているコマンドは、メニューを開かずに
^Qや^Zを押す事で直接実行できます。



--- カット&ペースト ---

似たような行を沢山書きたい時や、行の順番を入れ換えたい時にはカット&ペー
ストが便利です。
「e) 編集 ▼」サブメニューを開くと、
+----------------------+
| a) カット         ^X |
| b) コピー         ^C |
| c) ペースト       ^V |
| d) 選択範囲の指定 ^G |
| e) 行の残りを削除 ^K |
| f) 1文字削除      ^D |
| g) バックスペース ^H |
| h) 改行           ^J |
| i) 改行           ^M |
+----------------------+
このようなコマンドがあります。

テキストの選択範囲はシフトキーを押しながらカーソルキーを押す事で選択で
きます。選択された文字は黄色で表示されるので思い通りの部分が選択できた
事を確認してから「^X」でカットするなり、「^C」でコピーするなりしてくだ
さい。

ただし、変愚蛮怒の使用環境によってはうまくシフト+カーソルを認識できな
いかもしれません。その場合は「^G」を押した後でカーソルを移動する事で選
択範囲を指定できます。



--- 自動拾いにアイテムを登録 ---

1行に1つずつアイテムの名前を書く事で、そのアイテムを自動的に拾うように
設定されます。

例えばスピードの薬と食料を常に集めているならば、

スピードの薬
食料

と書くだけです。自動拾いエディタはテキストエディタなのでキーを入力すれ
ばそのまま書き込まれます。必要ならEnterキーを押して改行してください。
ここで、今「スピードの薬」と書いた行にカーソルを合わせると、画面下に
--------------------------------------------------------------------------------
全てのアイテムで、名前が「スピードの薬」を含むものを拾う。全体マップ('M')で'M'を
押したときに表示する。
--------------------------------------------------------------------------------
このように設定内容の説明が表示されます。
もしあなたが空腹充足の魔法を知っていて、食料はもはや必要無いのならば、
行の先頭に自動破壊を意味する文字「!」を書き込みます。

スピードの薬
!食料

そうすると、画面下の説明文は以下のようになります。
--------------------------------------------------------------------------------
全てのアイテムで、名前が「食料」を含むものを破壊する。全体マップ('M')で'K'を押し
たときに表示する。
--------------------------------------------------------------------------------

最後に「^W」(つまり、コントロールキーを押しながら W キー)を押して エディ
タを終了すれば設定は終わりです。

エディタの中で何か間違った操作をしてしまった場合は「^Q」を押すと設定変
更を取りやめて何もセーブせずに終了できるので安心です。



--- 持ち物の名前を挿入 ---

例えば、あなたが沢山のアイテムを街に持ち帰って鑑定した時、
リンゴジュース、スピード・モンスターの魔法棒、減毒の薬、噂の巻物、
等々、あなたが必要としないガラクタを沢山見付けたとしましょう。

あなたはこれら全ての物に興味が無いので自動破壊に設定する事にします。前
項までで説明した方法だとこれらのアイテムの名前を一字一句間違えないよう
に自分で入力しなければなりませんが、不要な種類のアイテムが見付かる度に
名前を書き込むのは面倒です。

そんな時はESCでメニューを開き「h) 色々挿入 ▼」を選択してみましょう。
+------------------------------------------+
| a) 選択したアイテムの名前を挿入       ^I |
| b) 自動破壊されたアイテムの名前を挿入    |
| c) 条件分岐ブロックの例を挿入            |
| d) マクロ定義を挿入                      |
| e) キーマップ定義を挿入                  |
+------------------------------------------+
この中の、「a) 選択したアイテムの名前を挿入 ^I」が役に立ちそうです。こ
のコマンドはメニューの中で「a」を押すか、メニューを開かずに「^I」を押
せば実行できます。

そうすると、このようにアイテムを選択するメニューが現れます。

(持ち物:a-f,'(',')', '/' 装備品, '-'床上, ESC) どのアイテムを登録しますか?
     +-------------------  a) , 7つの 食料                               3.5 kg
     | a) ヘルプ           b) ! 5つの 油つぼ                             2.5 kg
     | b) セーブ無しで終   c) ! リンゴジュースの薬                       0.2 kg
     | c) セ+------------  d) ! 減毒の薬                                 0.2 kg
     | d) 全| a) 選択した  e) ? 噂の巻物                                 0.2 kg
     | e) 編| b) 自動破壊  f) - スピード・モンスターの魔法棒 (6回分)     0.5 kg
     | f) 検| c) 条件分岐
     | g) カ| d) マクロ定義を挿入                      |
     | h) 色| e) キーマップ定義を挿入                  |
     | i) 形+------------------------------------------+
     | j) 形容詞(特殊)の選択   ▼ |
     | k) 名詞の選択           ▼ |
     | l) 拾い/破壊/放置の選択 ▼ |
     +----------------------------+

ここで「c」を押して、リンゴジュースの薬を選択すると、この名前が自動拾
いエディタに書き込まれます。他の3つについても同様に繰り返すと、

^リンゴジュースの薬
^減毒の薬
魔法アイテム:^噂の巻物
魔法アイテム:^スピード・モンスターの魔法棒

この様になります。それぞれの行の先頭に自動破壊を意味する「!」を書き加
えれば設定完了です。


ところで、巻物と魔法棒については「魔法アイテム」というキーワードが自動
的に付加されました。画面下の説明を読むと以下のように書いてあります。
--------------------------------------------------------------------------------
全ての巻物や魔法棒や杖やロッドで、名前が「噂の巻物」で始まるものを拾う。全体マッ
プ('M')で'M'を押したときに表示する。
--------------------------------------------------------------------------------

他にも色々な種類のキーワードが補助的に付加される事があります。



--- 定型のキーワードを入力 ---

例えば、まだ鑑定していないブーツを全て「〜を拾いますか? [y/n]」の確認
付きで自動拾いしたいとします。自動破壊を指定する文字は「!」で、放置を
指定する文字は「~」で、単に名前だけを書けば自動拾いなのですが、確認付
きで拾うのってどんな文字だったっけ?

答えを先に言うと、

;未鑑定の靴

と書けばいいのですが、自動拾いエディタを使えば全てのキーワードを覚えて
いなくてもメニューから選択するだけで入力できます。

 「k) 名詞の選択 ▼」           →  「r) 靴」
 「i) 形容詞(一般)の選択 ▼」   →  「b) 未鑑定の」
 「l) 拾い/破壊/放置の選択 ▼」 →  「d) 「;」 (確認して拾う)」

の順番に選択すれば完了です。
この時、画面下の表示は以下のようになります。
--------------------------------------------------------------------------------
未鑑定のブーツを確認の後に拾う。全体マップ('M')で'M'を押したときに表示する。

--------------------------------------------------------------------------------

他にも多数のキーワードがあるので手当たり次第に色々選択して実験してみま
しょう。画面下の表示でちゃんと解読してくれるので安心です。一通り実験し
てみたら、Deleteキー や Backspaceキーを押して余計なキーワードは削除
してしまいましょう。

ちなみに「ダイス目0以上の」等の中の数字は自分で書き変えて使います。



---  複数の行を同時に変更  ---

シフト+カーソルキーで複数の行を選択してからメニューを選ぶと、同時に複
数の行にキーワードを付け加える事ができます。例えば先程の例の4行を選択
(シフト+下向きカーソルキー を3回押す)して、

^リンゴジュースの薬
^減毒の薬
魔法アイテム:^噂の巻物
魔法アイテム:^スピード・モンスターの魔法棒

この様にしてからメニューで
「l) 拾い/破壊/放置の選択 ▼」 → 「b) 「!」 (自動破壊)」
の順番に選ぶと一度の操作で

!^リンゴジュースの薬
!^減毒の薬
!魔法アイテム:^噂の巻物
!魔法アイテム:^スピード・モンスターの魔法棒

と書き変えられます。他のキーワードも同様です。



---  条件文  ---

自動拾い/破壊の設定はプレイヤーの種族/職業/レベル等で条件付きで設定す
る事が出来ます。

エディタのメニューから
「h) 色々挿入 ▼」 → 「c) 条件分岐ブロックの例を挿入」
を選ぶと、条件式のひな型が挿入されます。

?:[AND [EQU $RACE Human] [EQU $CLASS Warrior] [GEQ $LEVEL 05]]
?:1

「?:」という記号で始まる行が条件式です。この例だと1行目で「人間の戦士
でレベルが5以上ならば」という条件を指定し、2行目の「?:1」では条件を解
除してデフォルトの状態(常に条件式の値が1、つまり常に「真」) に戻してい
ます。

この2行の間に書き込んだ設定行はこの条件が満たされるキャラクターに対し
てのみ有効になります。例えば人間メイジに対しては

?:[AND [EQU $RACE Human] [EQU $CLASS Warrior] [GEQ $LEVEL 05]]
!^リンゴジュースの薬
!^減毒の薬
!魔法アイテム:^噂の巻物
!魔法アイテム:^スピード・モンスターの魔法棒
?:1

の様に暗い色のテキストで表示され、設定が無効になっている事が明示的に判
ります。

条件式は自由に編集できます。例えばもっと条件を緩くして「全ての戦士」と
いう条件にしたい場合には Deleteキー等で余計な条件を削除して、
?:[EQU $CLASS Warrior]
という風に編集してください。

カット&ペーストを活用して楽に編集しましょう。(参照)



---  エディタ無しで自動破壊登録  ---

アイテムを自動破壊に登録する作業はさらに簡単な方法があります。
アイテムを壊すコマンド(「k」または「^D」)で手元のアイテムを選択し、

本当にスピード・モンスターの魔法棒 (5回分) を壊しますか? [y/n/Auto]

という風に質問された時に、シフトキーを押しながら「A」を押します。
以上で完了です。簡単でしょう?これだけで

(!魔法アイテム:^スピード・モンスターの魔法棒

という設定が自動拾いの設定ファイルの最後に書き込まれます。

この方法で自動登録された設定は、その時にプレイ中のキャラクターが死亡す
るまでの期間だけ有効です。つまり、ゲームの序盤だけしか興味が無いアイテ
ムは、次のキャラクターの序盤で自動破壊を解除する等の複雑な事を一切考え
ず、不要になり次第どんどん登録してしまえば良いのです。例えばトラップ感
知の巻物は、トラップ感知のロッドを拾った段階で不要になりますね。

装備品についても利用する事ができます。この時は装備品が
(1)鑑定されていない場合
(2)鑑定されていて無銘(並と上質)の場合
(3)鑑定されていてエゴ(高級品)の場合
のいずれかによって自動登録される内容が異なります。
具体的には以下の表のような関係になります。

選択したアイテム                自動登録される内容
--------------------------      ---------------------------
ダガー (1d4)(未鑑定の場合)  →  (!未鑑定の武器:^ダガー
ダガー (1d4) {並}           →  (!無銘の武器:^ダガー
ダガー (1d4) (+0,+0)        →  (!無銘の武器:^ダガー
ダガー (1d4) {上質}         →  (!無銘の武器:^ダガー
ダガー (1d4) (+3,+2)        →  (!無銘の武器:^ダガー
ダガー (1d4) {高級品}       →  (!エゴ武器:ダガー
焼棄のダガー (1d4) (+5,+5)  →  (!ありふれたエゴ武器:^焼棄の


自動登録された設定を取り消したり編集する場合は、自動拾いエディタを使い
ます。一番最後に追加されているので、Endキーで移動すると便利でしょう。
自動登録の内容は自動拾いエディタの中では赤い文字で表示されます。

例えばこのようになります。
--------------------------------------------------------------------------------
?:$AUTOREGISTER
# *警告!!* 以降の行は自動登録されたものです。
# 後で自動的に削除されますので、必要な行は上の方へ移動しておいてください。
(!無銘の武器:^ダガー
(!魔法アイテム:^トラップ感知の巻物
(!^スライムモルド
--------------------------------------------------------------------------------
この赤い文字表示は自動登録された内容が有効期限付きである事を示す警告で
す。つまり、現在プレイ中のキャラクターが死亡して次のキャラクターを始め
た時にはこの赤い文字の部分だけが全て削除されます。


もし有効期限をキャンセルして、次以降のキャラクターでも永久に(再びあな
たが編集するまで)同じ設定を使いたい時は、必要な設定行を
「?:$AUTOREGISTER」という行より上に移動してください。

例えば、「(!^スライムモルド」の行にカーソルを移動して、カット(^X)を実行
し、次に「?:$AUTOREGISTER」の行より上にカーソルを移動してペースト(^V)
を実行すれば、以下のように行の順番が入れ換わり、「(!^スライムモルド」が
白い文字に変わります。
--------------------------------------------------------------------------------
(!^スライムモルド
?:$AUTOREGISTER
# *警告!!* 以降の行は自動登録されたものです。
# 後で自動的に削除されますので、必要な行は上の方へ移動しておいてください
(!無銘の武器:^ダガー
(!魔法アイテム:^トラップ感知の巻物
--------------------------------------------------------------------------------
これで、スライムモルドの自動破壊のみ次以降のキャラクターでも登録された
ままになります。有効期限が定められているのは赤い文字で表示された行だけ
なのです。




====  自動拾い/破壊設定の書式仕様  ====

ユーザーディレクトリに"picktype.prf"又は "picktype-<名前>.prf" という
ファイルを作って各行にアイテムの名前を書くと、変愚蛮怒にそのアイテムを
自動的に拾ったり破壊するように指示する事ができます。

この設定ファイルは以下のタイミングで読み込まれます。
●ゲームを始める時。
●自動拾いエディタを終了した時。
●レベル/魔法領域/種族のどれかが変わった時。
●「$」コマンドを使った時。(外部のエディタで設定を書き変えた時に使用)

設定ファイルの具体例は (picktype.txt) を参照してください。


--- 自動拾い/破壊の基本書式 ---

基本的に、名前の一部にファイルに書いた文字列が含まれていれば、そのアイ
テムを自動的に拾います。ただし行の先頭に…、

「!」がついている場合はそのアイテムを自動的に破壊します。
「~」がついている場合は拾いも破壊もせずに床に残します。
「;」がついている場合は拾う前に確認メッセージが出ます。
「(」がついている場合は全体図「M」コマンド中での表示を抑止します。

picktype.prf の先頭から順番に優先的に評価するので、不要なものの破壊の
設定の下にその他のアイテムを拾う設定を書いたり、比較的高級なアイテムを
放置する設定の下にその他の低質なアイテムを破壊する設定を書くのが便利な
方法です。

自動拾いや破壊や放置として設定されたアイテムは、「(」で抑止されない限
りダンジョンの全体図「M」コマンドの中でその位置と名前を表示する事がで
きます。設定コマンドの説明のダンジョンの全体図を表示を参照してください。


--- 特別なキーワード ---

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

・すべての〜        : すべてのアイテムが対象になります。
・収集中の〜        : 既に同じ種類の物を持っているアイテム
・未判明の〜        : 効果の分からないアイテム
・鑑定済みの〜      : 鑑定されているアイテム
・*鑑定*済みの〜    : *鑑定*されているアイテム
・ダイス目の違う〜  : 殺戮の武器等でダイスの目が通常と異なるアイテム
・ダイス目n以上の〜 : ダイス数×面数が n 以上のアイテム
・修正値n以上の〜   : 能力修正値が(+n)以上のアイテム
                      能力修正が無い場合は他の数値が+n以上なら対象になります。
・無価値の〜        : 価値のない(売却できない)アイテム
・アーティファクト〜: 判明しているアーティファクト
・エゴ〜            : 判明しているエゴ装備
・上質の〜          : {上質}の装備
・無銘の〜          : 非エゴ, 非アーティファクトの装備
・並の〜            : {並}の装備
・レアな〜          : ドラゴン防具等の珍しいベースアイテムの装備
・ありふれた〜      : ドラゴン防具等以外の普通のベースアイテムの装備
・賞金首の〜        : 賞金首の死体または骨
・ユニーク・モンスターの〜: ユニーク・モンスターの死体、骨、彫像
・人間の〜          : 人間の死体または骨(悪魔魔法で使用)
・読めない〜        : 専門としない魔法領域の魔法書
・第一領域の〜      : 第一領域の魔法書
・第二領域の〜      : 第二領域の魔法書
・n冊目の〜         : nが1から4のとき、n冊目の魔法書

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

・アイテム          : すべてのアイテムが対象になります。
・武器              : 武器が対象になります。
・得意武器          : プリースト/修行僧/魔獣使い/練気術師/騎兵/忍者にとって、
                      特別に扱いやすい種類の武器が対象になります。
・防具              : 防具が対象になります。
・矢                : 矢、クロスボウの矢、石、弾
・魔法アイテム      : 巻物・杖・魔法棒・ロッド
・がらくた          : 折れた棒や像等の役に立たないものが対象になります。
・死体や骨          : モンスターの死体や骨
・魔法書            : 魔法書、武芸の書、歌集

他に部位別の装備品を対象とするキーワード:
 盾、弓、指輪、アミュレット、光源、鎧、クローク、兜、籠手、靴
が使用できます。

この後に区切り記号のコロン「:」を挟んでさらに文字列が続く場合は、その
文字列が名前の一部に含まれているアイテムが対象になります。ここで、アイ
テムの種類を表すキーワード(アイテム、武器、防具等) を使用しない場合は
区切り記号は省略できます。また、文字列の頭に記号「^」を入れるとそれは
アイテム名の先頭部分に一致します。具体的には以下のように解釈されます。

光源:石          // 名前に"石"を含む光源を拾う。「光源石」 は使用不可。
籠手:腕力の      // 腕力のガントレットを拾うが、腕力の指輪は拾わない。
!ローブ          // 名前に"ローブ"を含むもの(ローブ、グローブ等)を破壊。
!^ローブ         // グローブは破壊しない。
!防具:^耐        // 耐火、耐冷、耐電、耐酸の防具を破壊。全耐性は破壊しない。

また、行の最後に # で始まる文字列を書くと、鑑定したりアイテムの
上に立った瞬間に自動的にその文字列がアイテムに刻まれます。


--- 厳密な書式 ---

各行の厳密な書式は以下のような順番です。未鑑定の や ダイス目の違う 等
のキーワードは一行に並べて書く事で両方の制限を適用させる事が出来ます。
現在のバージョンではキーワードの順番も自由です。

 [! ~ ; (]
 [[すべての] [収集中の]
  [未判明の] [未鑑定の] [鑑定済みの] [*鑑定*済みの]
  [アーティファクト] [エゴ] [上質の] [無銘の] [並の] 
  [無価値の] [レアな] [ありふれた]
  [ダイス目の違う] [ダイス目n以上の] [修正値n以上の]
  [賞金首の] [ユニーク・モンスターの] [人間の]
  [読めない] [第一領域の] [第二領域の] [n冊目の]
  [アイテム|アーティファクト|武器|得意武器|防具|矢|魔法アイテム|
   がらくた|死体や骨|魔法書|鈍器|盾|弓|指輪|アミュレット|光源|鎧|
   クローク|兜|籠手|靴] :]
 [[^]その他の文字列] [#自動刻み文字列]



===  条件式の書式仕様  ===

全てのユーザー設定ファイルは、種族や職業、レベル等に条件を付けて設定す
ることが出来ます。特に自動拾いやマクロの設定に利用すると便利です。


---  条件分岐の書式  ---

?:引数

   引数が"0"なら以降の自動拾い/破壊の登録をスキップする。
   引数が"1"なら以降の登録を行う。 引数が"0"以外は全て"1"と見なす。

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


---  使用可能な演算子  ---

特別な文字列といくつかの引数のリストを'['と']'で囲むと演算子として
の働きをして、結果が真 "1" であるか、 偽 "0" であるかを返します。

[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
   魔法領域を英語名で返す。
   Life, Sorcery, Nature, Chaos, Death, Trump Arcane, Craft, Daemon,
   Crusade, Music, Kendo
   のどれか

$REALM2
   第2魔法領域を英語名で返す。

$LEVEL
   プレイヤーのレベルを2桁の文字列で返す。
   "01","09","10","50" 等


---  ファイルの挿入の書式  ---

%:ファイル名
   「lib\user\ファイル名」 か 「~/.angband/Hengband/ファイル名」 を自
   動拾いの登録ファイルとして読み込みます。



--
Updated    : Hengband 1.7.0