------------------------------------------------------------ FHS patch (Funny-Honey-Spit patch) 蛇足メモ 作成者:Shiganai Sakusha ------------------------------------------------------------ ------------------------------------------------------------ 雑記 [にうきゃら掲示板(補助用)と連動している内容もあります。(こちらで書かれた内容が掲示板で解決とか)] ------------------------------------------------------------ 07.05.07-07.05.07 (Random Questパッチ 07.05.07版) てみじかに。 > *Random Quest > **07.05.07版 > -makemon.cにおけるswitch文内の記述ミスを修正 NettHack PortalのForumを拝見して気づきました; ご免なさい(_ _;)。  #ぶっちゃけ原因は、FHSパッチ側で修正した物を  #Random Questパッチ側に転写した際の転写ミス。  #こうした混乱があるから本当は複数のパッチは扱いたくないんだけど… ------------------------------------------------------------ 07.05.04-07.05.06 (Random Questパッチ 07.05.06版) Random QuestもJNetHack3.4.3-0.9対応版を公開。 ちなみに、前回版で追加していた 戦士クエストType2やら男性戦士やらは、今回コメントアウト。 こーゆーぶっ飛んだのはFHSパッチ限定に留めておこうかと(^^;)。 ---- にうきゃら掲示板(避難所)に、久々に他の方からのプレイ報告が。  #表向きは落ちついてご返事しているように見えるでしょうが、  #そのじつ裏では感涙して小躍りしてたり。 そしてバグ報告も。 > 招き猫 > (中略) > そうしたらその後、どの敵も倒す度にゴールドを出したので(階移動しても効果は失われませんでした) …う、RJNHHからFHSパッチに移植する際にも色々いじったのが悪さしてそう(汗)。 じつはRJNHでの招き猫の処理は、怪物が死亡した際の処理の中で 「招き猫を所持しているか否か」をチェックしているだけなんですよね。 処理も単純で間違いも無くせるけど、怪物が死ぬたびに持ち物全てチェックする事になって 効率が悪そうです。 で、FHSパッチに移植した際には、招き猫の祝呪の状態をフラグで管理するように 変更していたのです。 その際に、招き猫の祝呪が変化した場合に対しては色々と注意を払って処理を組んだのですが、 招き猫自体を手放す可能性には当時は頭が回らなかったようで(汗)。 考えてみれば、所持しているだけで効果を発揮する聖器があるのだから、 招き猫を手放した際のチェックもそれらと同じ場所で行えば良さそう。 ------------------------------------------------------------ 07.04.28-07.05.03 ([Re2-7]FHSパッチver0.8.20) JNetHack3.4.3-0.9が出ましたので、 FHSパッチの正式版もそれに合わせてバージョンup。  #正式版と試験版の両方を一度に対応させるのは  #手間もかかるし混乱も招き易い。  #ただでさえヘマが多いんで、不安要素は極力取り除いておかないとf(- -)。 鱗の扱いについては、とりあえずこの状態で様子見かな。 brassでもまた違った方式になりそうですし、そちらが出てから再検討。  #実は盾に特殊効果を持たせるのはRJNHの方針からも外れるんですよね。  #とはいえ、武器聖器に耐性色々持たせるのでは*bandと同じになってしまいそうですし。  #(GrundHackにあった「エゴ装備」の要素を検討対象にしていない理由の1つでもあります) そういえば今のFHSパッチのドラゴンベーンに賦与している効果は 文字通り「ドラゴンブレスだけを」切り裂くものなんで、 この辺りの再検討もその時に。 …う、Random Questの方はまだ0.9に対応させてなかったか。 ------------------------------------------------------------ 07.04.27-07.04.27 ([Re2-6]FHSパッチver0.8.20(未公開)) 手短に。 試験版を更新。 それと、 >  #追加した特殊部屋の文字指定がどうなってるかも後で確認しないと。 >  #初期は律儀に追加してたと思うけど後の方のはどうだったやら。 現在の版でもそれなりに追加はされてました。店舗はからっきしだったけど。 とはいえ、追加されてる中にも重複する物があったりしたので割り振り直し。 …1文字しか使えないから、使えそうなアルファベットや記号がほとんど埋まってしまったなあ。 ------------------------------------------------------------ 07.04.23-07.04.26 ([Re2-5]FHSパッチver0.8.20(未公開)) [Argrathさんwrote in にうきゃら掲示板(補助用):] > 環境変数SHOPTYPEとかはどうでしょうか。 おお、このような物があったとは。 有難う御座います。 一応、頂いたtxtファイルの該当箇所をこちらにもコピー。 _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ 環境変数 ~~~~~~~~ NetHack はデバッグモードでは特別な環境変数を読み込みます(このためにはゲー ム開始前にコマンドラインで 'set VARIABLE=value', 'export VARIABLE=value'な どのプラットホームの文法に従った形で環境変数を設定する必要があります)。 SHOPTYPE: これは以下のリストから一つの文字を選んで設定します。 通常の「部屋と通路」型の階では毎回ここで指定された特別な 部屋が生成されます(通常は生成されない場合も生成されます)。 g or G 雑貨屋 [ 防具屋 ? 巻物屋 ! 薬局 ) 武器屋 % 食料品店 = 宝石店 / 杖屋 ( 道具屋 + 書店 z or Z 動物園 m or M 墓地 (m)orgue) b or B 蜂の巣 t, T or \ 玉座の間 (\ は \\ とエスケープする必要があるかも) s or S バラック a or A アリの巣 c or C コカトリスの巣 l or L レプラコーンホール _ 寺院 } 沼 その他の文字はランダムな店(のみ)が通常の比率で発生します。 SPLEVTYPE: 複数のパターンがある特殊レベルに対して特定のパターンを出現させ るために、レベルデザインを指定します(カンマ区切りで複数指定で きます)。指定できるのは以下のものです: bigrm-1 〜 bigrm-5 medusa-1 または medusa-2 minetn-1 〜 minetn-7 minend-1 〜 minend-3 soko1-1 または soko1-2 〜 soko4-1 または soko4-2 例えば、SPLEVTYPE に "minetn-4,bigrm-5" と設定すると、 学生街と楕円形のビッグルームが出現します。 WIZKIT: この変数はゲーム開始時に読み込むファイル名を指定します。 このファイルには1行に1つ、願いの文法で物の名前を書いておきます。 指定した物を持った状態でゲームを開始します。 (要するに、^Wコマンドを予め実行します。) _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ コピーここまで。 無論、上記の変数はwizardモード用です。  #但しWIZKITは、本家バグリストに迷宮崩壊バグが載ってた物だと思うので  #今は使わない方が良さそう。 私はいつもwizardモードはbatファイルで起動しているのですが、 Windowsだと   set SHOPTYPE=+   nethack -u wizard -DX と、起動前の箇所に行を追加すれば良いようですね。 但し、迷路生成後に特殊部屋を無理矢理押し込んでいるのか、 通常とは違った形の部屋(「出入り口が複数ある店」等)が生成される可能性もありますが。 今まで謎だった、特殊部屋に対し文字指定をしていた箇所の意味もこれで判明。 さて、特殊部屋試験用に残してたコードを消しますか(^^;)。  #追加した特殊部屋の文字指定がどうなってるかも後で確認しないと。  #初期は律儀に追加してたと思うけど後の方のはどうだったやら。 ---- うーむ、 >  #R/Sでは鱗一式だけでなくバラの鱗(few dragon scales)も存在し、 >  #何枚かまとめて強化すると盾または鱗一式に変化。 実装にかかってはみたけど、なかなか難儀です。 >  #どうせなら鱗一式という物を無くして、 >  #数枚まとまった物はいきなり盾または鎧に この辺や、ドラゴンが複数の鱗を残す辺りは何とでもなるのですが、 怪物の装備に対する耐性判定というものもあるもんで。 得られる耐性がアイテムに固定的に付与(oc_oprop)されてなかったり、 複数の耐性をそれぞれ考慮しなければならなかったり。 あーだこーだと引っ掻き回して組んではみましたが、 これで良いのかどうかは自信ないです。 一応、猫美さんの懸案のひとつ > 着たまま反映させることがどうしても出来なくてあきらめました。(;_;゚~ は解決した、かもしれません。  #着脱に関わる箇所すべてにおいて耐性チェックを挿入。  #強化加工の度に金色ドラゴンの装備が光ったり消えたりしますが(^^;)。  #(装備部位の違いで再装備しない可能性もあるので、ある意味仕方が無い) 防具加工強化に関わるものとして ・3.4における従来の方法 ・brassでの吸魔の怪物の処理 ・brass R/Sでの店舗追加サービス が揃ってたので、まとめて取り入れて改造。 防具の強化は、巻物の処理をench_armors()として分離しそちらに統一。 武器の強化は、既存のchwepon()にちょっと手を加えて流用。 指輪の強化だけはそのまま(^^;)。 ついでに何か仕込む事も出来なくは無いですが… 竜皮製のメイド服や竜鱗のトレイに萌える方なんて存在するのだらうか(^^;);;;  #いらっしゃるのであればR/Sのトレイ移植も検討するのですが。 あと、ドラゴンの鱗鎧を着てドラゴンに変化した時は ドラゴンの盾なども一緒に肌に融合するようにしました。(変化中のAC修正に多少ボーナス) 鱗の色を気にせず融合してしまいますが(ぉ)。 そういえば、武器はともかく防具類の性能は未だにほぼ3.4のままなんですよね。 (materialパッチ以外の調整としては、ドラゴン鎧の重量を増やした程度か?) 重い鎧等も何とかした方が良いのでしょうが… ---- などと言いつつとりあえずコンパイルしてみたら、 怪物の吐いたオーロラの矢が壊れた途端に迷宮崩壊(汗)。   extract_nobj: object lost むむ。 そういえば棘飛ばしを実装した際に 毒液その他の生成処理を分離記述したり 連射処理を変更したり brassのetherialフラグを追加したりしてたっけ。 何かがどこかでかち合ってしまってるのか? この点の検討はとりあえず脇に置いといて、 鱗の加工動作の確認にかかる。 また崩壊(汗汗)。    addinv: obj not free むむむ。 余った鱗の処理がうまくいってないのかな。 では盾に最低限必要な枚数だけ揃えて…   あなたの黄色ドラゴンの鱗は融合し固くなった!   あなたの黄色ドラゴンの盾は一瞬銀色に輝いた. あなたの盾は砕け散った! むむむむむ; じゃあ普通の防具を強化した場合はどうだろう?   巻物を読むと,それは消えた. あなたの鉄の胴丸は一瞬銀色に輝いた.   あなたの鎧は塵となり床に落ちた! あうっ!(> <;) …あれこれ見直す必要がありそうです(- -;)。 ------------------------------------------------------------ 07.04.16-07.04.22 ([Re2-4]FHSパッチver0.8.20(未公開)) brassの、怪物の装備を簡単に表示できる処理を移植。 以前にゲヘナ処理やら新地形やら移植した時に一緒くたに一部だけ移植してて すっかり忘れてたんですけどね(^^;)。 で、確認してみても全然表示されないと思ったら、 [;]コマンド限定だったのですね。(てか初めて知ったぞこんなコマンド) [/]コマンドでも同様に表示するようにしました。 閑話休題。 ---- 前回挙げていた回避効果と、対応聖器を実装。 結局、遠距離回避&反撃の処理は新たに組んだものの、 近接回避の方はblock_attk()を流用する事に。  #以前にサテライトリンカーとか愚者の伝説とか  #アリエッタの傘とかの為に作っていたもの。 なので、近接回避の時には反撃は発動しません。  #これ自体をattack()等の中に割り込ませている為、  #ちと処理がごちゃつきそうだったので断念。 最初は聖器の強化値+α(祝福で上下)がrnd(20)以上なら回避するようにしてたけど、 これじゃちと強すぎだったので調整。  #現在の仕様だと聖器の強化値は+5〜+8程度で固定。  #下手をするとアリエッタの傘並みの回避性能を発揮してしまう。 対応聖器の片方には武器落とし効果も追加。 むう、クリーバーも再実装した事だし、バルクケレドを秩序に持っていっても いいのかもしれないけど(呼び名もドワーフ語だし) 混沌の武器落とし/武器破壊聖器をどうしたものか。 ---- TNG3.4から空瓶を移植しました。 以前から検討はしてたのですが、 店でのハーブ加工サービスに制限をつけるにはやはり必要だろうと。 これにより、店でハーブを薬に加工する際には、同じ数の空瓶も必要になります。  #瓶が足りない時は瓶の本数だけ作成。  #ちなみに、1本だけの指定加工は現在でも可能です。 まあ、いつもながら実装の際には   どれにpour the potionか? とか、   瓶が無くても加工してしまう とか、   薬ではなく乾し肉だの食料だのが出来あがる とか、色々やらかしてた訳ですが(^^;)。 でもwizardモードで試してみても、なかなか薬屋が出現しないのが悩み所。  #コンパイル前に部屋の生成率をいじり店が毎階出るようにして、  #3、4回ほどwizardモードで全階総ざらいで確認したのに一軒も出ず =□○_  #(店舗ごとの生成率の方をいじるの忘れてた) ハーブ加工サービスの制限つけは今回ので一段落したけど、 店舗の出現率自体がかなり運に左右されるのはなあ。 薬屋はそうそう出現しないし。 そういえば現在はハーブ加工サービスが薬屋に限られてるけど、 食料品店でも扱って良いのではないだろうか。 花屋で加工できないというのも妙だし。  #ちなみに追加店では、薬屋扱いな店は喫茶店、  #食料品店扱いな店は花屋/冷凍食品店/軍用食取扱所。  #→という訳で食料品店にも追加。 それと、空瓶を用いた自力作成の手段はどうしよう。 錬金術を導入するつもりは無いけど、以前から考えてた薬品作成器具(仮)とか。  #缶詰作成器具のように、ハーブを薬に加工する。  #器具の充填数を増やすには、空瓶を器具に対してapply(^^;)。 ---- あちこちさ迷い歩く最中、Nethack brass R/Sなるものを発見。 brassを更に改造されてた方がいらしたとは驚き。  #サイト自体は以前にも二度は訪れた事があるらしい。  #趣味用リンクをまとめたtxtファイルの二箇所にURLが(汗)    #youkanさんにご紹介を…とも思ったけど、  #どうやら以前にbrass掲示板で質問されてた方のようなので見送り。 新たな聖器とか、 ドラゴン装備の耐性が強化値によって変化(強化)される等、 色々と興味深い要素もあり目から鱗。 思い切り強さがインフレしている部分もありますが(^^;)。  #特に天使は、RJNHではユニーク扱いされそうな雰囲気のもの  #(レベル30以上とか)も一般怪物として存在したり。 とりあえずは聴診器の聖器を頂く事に。 正直言って、聴診器の聖器という発想は無かったです(^^)。<目から落ちた鱗の一部 薬師の優先聖器としても良さそう。 ただ、持ち歩くだけで様々な効果を発揮するのはちょっと便利すぎるかも… と思ってた所で、なら装備品にしてしまえと閃く。 幸い、耳装備として既に耳栓もありますし。  #耳栓つけた状態で聴診器を扱おうとするのも  #(聞こえる聞こえない以前に行為自体が)確かに変だし(^^;) また、兜扱いだったアンテナも耳装備に変更。 これでは単なる飾りになってしまうので、アンテナにも聴診器と 同じ機能を持たせました。 結果的にサテライトリンカーも同様の扱いになる訳ですが、 さほど影響は無いでしょう。…多分; 耳栓(聴覚障害)についても、今までは目立ったプラス効果が無かったけど、 誘惑や魅了に抵抗する効果を試験的に追加。  #耳に蝋を詰めてセイレーンの歌声に抵抗した逸話もある事ですし。  #正確には、敵の行ったこれらの攻撃がほぼ不発に終わる。  #但し完全ではない。 あと、ブーメラン聖器のThunder birdも拝借。 実装済みなFirebirdの中立電撃版にしたので、 名前はちぢめて(Thunderbird)威力も調整したけど。 そのうち、ドラゴンの鱗の扱いも検討してみたい所。  #R/Sでは鱗一式だけでなくバラの鱗(few dragon scales)も存在し、  #何枚かまとめて強化すると盾または鱗一式に変化。  #どうせなら鱗一式という物を無くして、  #数枚まとまった物はいきなり盾または鎧にしてしまうというのも考えてみたりみなかったり。 ------------------------------------------------------------ 07.04.13-07.04.15 ([Re2-3]FHSパッチver0.8.20(未公開)) 武器スキルを一部見直してみました。 まずはスリングのスキルが弓類と一緒になっていたのを再度分割。(クロスボゥはそのまま)  #スリング聖器案って他にどんなのがあるかなあ。 あと、「叩き棒」スキルを追加。 JSLASH'EMでは「ハエたたき」スキルになってる奴。  #改めてskills.hを見てみると、「頭部の平たい棍棒」をこれに分類しているらしい。 SLASH'EMにはハエたたきしか無いけど、 FHSパッチでは該当しそうなものが幾つもあるから名称変更。  ・今回「叩き棒」スキルに変更したもの:モップ,特製モップ,箒,おたま,ふとんたたき,ハリセン  ・移植した物:ハエたたき  ・新たに実装した物:櫂 ご覧の通り、RJNHでは「家事道具」スキルに分類されてたものがほとんど。 今まではメイス類と六尺棒に分けて割り振ってたけど、 今回ようやくまとめるメドがつきました。 …でも鈍器類の聖器の個数バランスがまた崩れるなあ。  ・叩き棒:     秩序2(Laiceps Niksud,Stringfellow Houki)     中立0     混沌0     無心5(Cooking of Devoting Wife,Bsikeslayer,Gossip Harisen,Tukkomi Harisen,Ojousamahamajo) 叩き棒が秩序と無心に集中してたのが丸判り。  #今の所はほとんどがメイドロボ関係だし。 それと、真っ当な六尺棒聖器が激減。 メイスはまだ許容範囲だけど。  ・メイス類:     秩序2(Remmah Dluks,Escaliborg)     中立2(Mjollnir,Pendulum of Balance)     混沌2(Bat from Hell,Confetto)     無心1(Skullcrusher)  ・フレイル:     秩序1(Libra of Justice)     中立1(Fowler)     混沌2(Rekaerb Arbil,Regina Lux)     無心0  ・六尺棒:     秩序0     中立1(The Staff of Aesculapius)     混沌2(Staff of Moon,The Tentacle Staff)     無心1(Twinklestar) 秩序の六尺棒は皆無になったし、その他の属性でもクエスト聖器が半数を占めてるから微妙。 ---- それではと、未実装の聖器案を見直してはみたものの… 今の所、artifact.hでコメントアウトしてある鈍器類は…  ・Raising Heart: レイジングハート:(秩序,魔術師の杖or星のロッド)  ・Runebreaker: ルーンブレイカー:(中立,ルーンのロッド)  ・Nyoibou: 如意棒:(混沌,六尺棒) むう、六尺棒聖器しか無いうえに、どれも早期実装は難しそうだ。 jtrnsobj.datに抜き出してある残りの案を眺めてみても、 # DEFERRED Lv3: difficult, or balanced [実装困難、もしくは現在の聖器入手方式ではバランスがとれそうにないため見送り中]  ・Winblows: ウィンブロウズ:(無心,重ハンマー?)  ・Azell's Magicstar: アゼルの妖撃杖:(中立or混沌?,メイス)  ・Mary Marvel: メアリーマーベル:(?,モップ) # DEFERRED Lv4: I have no idea, or no skill yet... [機能案なし、もしくは実装できるだけの(私の)スキル無し]  ・Staff of Star: 星の杖:(混沌,星のロッド) # DEFERRED Lv5: I hope that these matters are left to proposers (^^;) # (difficult to make messages of remarkable imagination, and systems.) [ごめんなさいワタシじゃ到底お力になれそうもありませぬゆえ発案者に丸投げ(ぉ)]  ・Ikarikun calls me: 碇くんが呼んでる:(混沌or無心?,星のロッド)  ・Konoerinae Virga: コノエリーナエ・ウィルガ:(秩序?,モップ) むむむ、尚更難しそうなものばかり。 やっぱり従来案にとらわれずに、思いついたのを地道に実装していくしかないかなあ。  #剣以外の聖器は多少意識的に追加していかないと剣ばかりになってしまう。 一応、現時点でも2つは案があるのです。どちらも叩き棒ですが。 ・案その1:名称未定(仮)[混沌、ハエたたき]  原典は、勇敢なちびの仕立て屋(The brave little tailor)。  一応原典読みました。…絶対混沌だなこりゃ。  機能としても > 対巨人関係の(中略) > ジャイアントキラー(ハエたたき)の実装を、とか(こら(^^;))。  をそのまま使ったものかどうか。(対象が虫でもいいような気もしてきた)  後は知性があって文字の読めそうな相手を恐れさせる効果と、  争いのon-offだけで充分でしょ。  (武器を手放した時は即座に争いをoffにしないとだけど。今の仕様はどうだっけ)  ちなみに読めます。 ・案その2:櫓削りの木刀[中立、櫂]  原典は、巌流島の決闘で使われたといわれるアレ。   #櫂を実装したのはこの為。  侍ならば両手剣スキルで扱うようになります。   #職業ごとの叩き棒スキルのランクもSLASH'EMを参考にしたのですが   #侍だと入門者止まりですし。  武器攻撃を受け流し即座に反撃する事がある(離れていても関係無し、但し飛び道具は除く)。  人間型で自分と同程度前後の生物の頭をかち割る事がある。  (自分が人間大(MZ_MEDIUM)ならMZ_SMALLからMZ_LARGE辺りまで)  …うーん、相手を苛立たせるのはどう表現しよう。  「武器攻撃を受け流し〜」は、武闘家用の小手なり六尺棒なりの聖器にも応用できるかも。  …ふむ、中立辺りの六尺棒聖器の抜けを埋めるのにもいいかな。  これはちと真面目に検討してみよう。 そういえばNetHack Patch Databaseにあった聖器"Clarent"も実装保留中だっけ。 ---- という訳で、まずは遠距離からの武器攻撃の受け流しから始めようかと思ったのですが、 長柄武器による攻撃も投げたり蹴ったりした物も、その他の理由によって飛んできた物も 皆一緒くたにthitu()や thitmonst()で処理されてるのですね(- -;)。 一応、切り分けしておくか… ------------------------------------------------------------ 07.04.12-07.04.12 ([Re2-2]FHSパッチver0.8.20(未公開)) あう; > 試験版 07.04.11版→07.04.12版への差し替えファイル (LZH圧縮) > ■11日版に古いobjnam.hが同梱されていたのを修正。 > ■怪物に対する能力回復のハーブの効果が抜けていたのを修正。 ドタバタ続きで済みませぬ(_ _;)。 ジャイアントキラーの原典はゆっくり探すか。 ------------------------------------------------------------ 07.04.04-07.04.11 ([Re2-1]FHSパッチver0.8.20(未公開)) むう、前回一部実装した > NephiさんのEnhanced Artifacts patch だけど、 対巨人関係のをジャイアントスレイヤーに組み込んだのはやり過ぎか? いや、機能に文句はないのですが、 どうせならもっと原典に即したものにしたい気も。 つまり、今のジャイアントスレイヤー(両手剣)とはまた別に ジャイアントキラー(ハエたたき)の実装を、とか(こら(^^;))。 閑話休題。 ---- 結局、m_heal()を大幅書き換え。 アイテム毎の回復用の各数値はobject.cのようにまとめてしまいました(でももう少し単純)。 その他もほぼ解決。 > ・発見物一覧の表示名がおかしくなる事がある,ような気がする obj_typename()に武器や食料品等の条件を書き加えて解決。  #他の種類のアイテムについても一気に片付けようとしたけどそちらは失敗。  #ま、後は影響なさそうな分野のものばかりだし、このままでいっか。 >  もともと不確定名差し替えはあまり安定してないからなあ。 >  安定性を高める方法も無いではないけど…今のherbパッチの方式だとダミーの薬がもう2種類は必要か。 この辺の不安定さ解消も兼ねて、ついでに新たな薬類を実装。 回復量が多い代わりに、HP回復と最大HP上昇の効果だけしか持たない回復薬です。 追加した薬は3種類だけど、飲料以外のハーブ名は結局入らなかったのが残念。 > ・ランダムハーブを願うとランダムな食料品が生成される >   名前つきハーブを願えるようにした副作用。 > (中略) >   "baseherb"だとどうなるのだろう。…駄目か。 これはobjnam.cの該当箇所に"baseherb"も追加する事で解決。  #"food detection"等が "food"で引っかからないようにしている近辺。 > ・聖器が劣化しないようにした為に、アサメの如く問題なくEngraveできてしまう。 >  せめて途中で引っかかって刻む手が止まるようにしたかったけど、今の所うまくいっていない。 う、こっちは手付かずのままだった。 いそいそ。 ------------------------------------------------------------ 07.03.28-07.04.03 ([Re2-0]FHSパッチver0.8.20(未公開)) す、数千語ですか…(^^;) > youkanさんの掲示板より 確かにデータベースの分量がすさまじい事になりそうな。 全角文字1文字毎になるから、FHSパッチと単純にどちらがサイズ大きくなるかは判らないけど。 検索に要する時間(ほぼ一瞬で終わるとしても)も半端じゃないような。 ちなみに、各ヴァリアントのbinaryフォルダのサイズを適当に調べてみました。 英語版での比較用に、手元にあったbrassバイナリィを。(順位データ等が多少混ざってる) ・NetHack brass 06.09.23版         :2727kB - α こちらは自分でコンパイルした、混ざりっ気のないバイナリィ(コンパイル直後の状態)。 (Windows98SE、BCCコンパイル) 物が古かったり本家vanillaのが手元に無かったりするのが何ですが。 ・JNetHack3.4.3 + Random Quest 3.4.3-0.8用 :5722kB ・Jslashem-0.0.7E6F3-J0.0.11        :6485kB ・JNetHack3.4.3 + FHS patch ver0.8.16    :7321kB …と書いてるうちに完成したようで。 お疲れ様です。 閑話休題。 ---- 実地プレイしてみたら、3階にいきなり招き猫が落ちていた。 こんな事もあるんだなあ。  #漫然としたプレイで結局死んだけど。 現在のverでは武具の聖器の自然生成率を半分にしてるけど 聖器自体の総数が何倍にも増えてるから 結構生成され易いんでしょうね。 て、武具以外の聖器については生成率どうしてたっけ。 閑話休題。 ---- NephiさんのEnhanced Artifacts patchに触発され、 おもむろにグリムトゥースを毒武器として復活させてみる。 ただ、混沌の短剣は本数が多いので 素武器をビル・ギザルムに変更。  #混沌短剣は現在4本(スティング、カルカー、凍結の刃、ミドガルズ蛇の牙)。  #小剣というのも考えてはみたけど。 毒とはいっても、静神の水蛇やサーペンツタンとは違い 毒が落ちたら即座に塗り直される→結果的に毒塗り状態を保つ、という方式です。 各種毒パッチも導入してるんで、塗られる毒も即死毒に限らないし。 まあほとんど実装済みの所にちょっと追加するだけだから簡単簡単 …と思ってたのですが、さにあらず。 vanillaでの毒武器は飛び道具に限られています。 なので先日の試験版(大多数の武器に毒を塗れるようにした)では SLASH'EMから以前移植してコメントアウトしていた接近戦用毒処理を有効化しておいたのですが、 FHSパッチにおける各種追加用素をこちらに適用するのをすっかり忘れてまして。 各種毒の効果や乙女の守護者による防御効果が接近戦には全く反映されていない有様。  #どの毒も従来の毒(防御効果を無視した即死毒)として扱われてしまう。 しかもvanillaの表示方式では 聖器が識別済みだと毒が塗られていても表示されない仕様だったり。  #vanillaにはそもそも毒を塗れる聖器が存在しないので  #バグとはいえないのですが。 そんなこんなで結構な手直し。 =□○_ ---- さて、これで残る廃止聖器といえばクリーバーとオーガスマッシャー。 一応、両方とも後継聖器が有りますけどね。  #クリーバー     → ラブリュス、バルクケレド  #オーガスマッシャー → 鬼切丸 仮にクリーバーを復活させようとした場合。 とりあえず、そのまま復活させても意味が無いから何らかの強化が不可欠。  #後継斧は威力が同じで、特殊能力が追加されている。 新たな能力を編み出すか、単にダメージを上乗せするか。 ダメージ2倍というのも考えたけど、全怪物対象だと旧グレイスワンダーの二の舞だなあ。 合計3種類(ドワーフの戦斧を含めれば4種類)になる戦斧の聖器をどの属性に割り振るかも問題。 ラブリュスは(ミノタウロスが中立なため)なるべく中立を維持したい。 バルクケレドを秩序に持っていくと、ソードブレーカーと機能がかぶってしまう。 無心のトロルスベーンを移動させるのも何だし、 秩序の斧にするのも微妙だし。 かといって秩序に斧聖器が無い状態を維持するというのも… …つるはしの一般聖器は秩序にしか無いから、別に秩序斧にこだわる必要はないのかな。 まあ、急ぐ物でもないのでゆっくり考えてみますか。  #->死体を残す生ある怪物に対しダメージを上乗せするようにしました。  # 属性は今の所混沌で。 オーガスマッシャーは…ほっとこ(マッテ)。 ---- あと、どうしようか迷ってるのが 聖器の強化の扱いについて。 ええ、未だに迷っているのです。 現在のFHSパッチでは「基本的に+0の状態で固定」なのですが、 果たしてこれで良いのかどうか。 最近は、これを*bandやCrawlのように 「基本的に+nの状態で固定」しようかと考えたりもしています。 例えば生成時に+5〜+8程度にして後は固定し、 称号と共に下賜される武器に関しては更に+2されるとか。 この場合、強化値減少効果に対する処理を新たに組み込む必要があったり、  #現在は+0基準なので、下がる方への対策はほとんどしていない(はず)。 聖器の命中率処理も再考する必要がありますが。  #vanillaでは相手が効果対象である場合に限り命中率が上昇するが、  #現在のFHSパッチではどの相手に対しても命中率上昇が有効になっている。 …と思っていろいろ確認してたら、 竜王の鱗鎧がもろに無力化の影響を受ける事に気づいた(汗)。  #->実装してみました。 ---- 話は変わって、ハーブについて。 現在の方式も試行錯誤の末に組み上げたものですが、 もっとスマートに処理する方法は無い物かと。 当時より、色々と処理や表示方法も理解できてきてますし。 現在は、例えば「月桂樹」という“正式名”をもつハーブと 「月桂樹の小瓶」という“不確定名”をもつ薬(正式名は「○○の薬」)とを あれこれ相互変換して処理しているのですが、  #いちいち文字列そのものを読み取ってるので無駄が多そう。 例えばハーブ類の正式名を「○○のハーブ」としてしまい 不確定名の「月桂樹」は薬と同じものを表示するとか。 もしくは不確定名シャッフルの時に、薬とハーブは同じ並び順にするか。 更にはハーブ類は「ハーブ」ただ一種類にしてしまうとか。 この場合はcorpsnm辺りに薬のアイテム番号を記憶させ、 アイテム名の表示や実際の効果処理の時は薬の名称を逆に読み取る。 …んー、でもこれをやってしまうとハーブの色の処理が難しくなるか。 あと、ハーブ類を薬と同数用意する方式だと 以下のものをどう扱うかが問題。 ・不確定名はあるけど対応する薬のないハーブ ・「コーヒー」等のダミー飲料(喫茶店の商品生成処理で多用) 対応する薬の無いハーブは3種類ほど欲しいから… ...herb of worthless(無価値の)/useless(役に立たない)/nothing(単なる) ? (^^;) じゃなかった、6種類必要なのか。 ...herb of senseless(無意味な)/no effect(効果のない)/neither good nor herm(毒にも薬にもならない) ? (^^;);;; ダミー飲料の方は正式名にしておいた方が処理し易いから、 今の方式を堅持した方がいいのかな。 (薬の不確定名を読みとり、同じ名前のものが見つかればそれを配置) そうか、となると今の処理も完全に無くしてしまってはまずいのか。 ちなみに内部処理での名称は、可能なら今のような HERB_OF_** ではなく HRB_** にするつもり。  #ようやくこの辺の自動番号割り振り処理のカラクリの一端が判りかけてきた。 …あーしまった、ハーブ名を確定名で扱ってる処理には Dungeon Growthやtreefruit、草地からの摘み取り等もあったか。 逆にこちらは変換かけるなり、該当するハーブを分類してフラグつけるなり する必要があるなあ。 結構手間がかかりそうだ。 ---- 久しぶりにknow_enchantment()に手を入れてて思った事。 この処理を拡張していき、 *bandやCrawlのようにアイテムの説明を表示させた方が親切だろうか。 まあ、今の私じゃテキストからの読み込み処理等どうすればいいのかさっぱりですが;(ぉ)。 あと、それとは無関係に思った事。 怪物が死亡時にランダムなアイテムを残す仕様は、蘇生怪物に限らず制限した方がいい? (その代わり「事前に」持たせるアイテムを増やしておくとか) ---- などと上では書きつつ、ハーブパッチ大改造に手をつける(ぉ)。 全体仕様をまとめもせずに その場その場で細部をつめたり変えたりするもんだから 多分無駄も多い仕上がりに。 とりあえず動けば後から改良スリム化も可能とばかりに、動かす事優先で。 で、試験してみたら なんかハーブを願うたびに変な名前のついたアイテムが出現(T T)。 防具名だのレンズだのと(和訳変換がうまくいかないので英語名)もう滅茶苦茶。 ランダム名のシャッフル方式に問題があるのかと思い、その周辺&最小限必要な箇所だけ 素の本家ソースに移植して試してみたら、そちらでは問題なし。 ならば不確定名処理に問題があるのかと思ったのですが… これとは別に名前つきハーブを願う事ができないという不具合も起こってたので  #今までと違い正式名に「herb of -」が入っていない為。 こちらを修正(objnam.cのwrp[]やwrpsym[]に追加をする)した所、 名前つきハーブの方は不確定名も正式名も問題なく表示される事が判明。 だったら何故、ランダムハーブの方はうまくいかないんだろうか(T T)。 生成時点でランダムな名前つきハーブに変換されるから、出来上がるものは 同じでなければいけないのに… と思いつつ生成処理を見直してみて、 weed_to_herb()を直してなかった事に気づく =□○_  #簡単に言えば一定範囲内のアイテム番号を割り振る処理なのですが、  #ハーブ類のアイテム番号は400〜500番台の辺り。  #  #でも旧来の変数が残ってたので、範囲が WEED -(マイナス) HIBISCUS で処理されていた。  #  #ちなみにWEEDは変更ないけど、HIBISCUSは別種の変数として  #新たに番号を割り振っていたのです… "3" を(爆)。  #(weedより前に位置するアイテムをほぼ全て網羅するんじゃ、滅茶苦茶にもなるよなあ(- -;)。  # 武器、防具、装飾品、道具、あと食料品のほとんど…(- -;);;;) とにかく大きな不具合が解消されたので、ほっと一息。 まだ多少残ってるけど。 ・発見物一覧の表示名がおかしくなる事がある,ような気がする   原因不明。ハーブに限らないようだけど何なんだろう。   同じ名前が二種類以上のアイテム種別にまたがってるものに起きてるような気もするけど。    #スミレ(violet)を「紫の石(violet)」と表示したり    #聖器の素アイテム表示が「短剣類」になったり。    #obj_typename()のアイテム名表示方法はxname()と根本的に違ってるのかなあ。 ・Dungeon Growthでハーブ以外の植物(にんじん等)が成長しない   herb_info への追加や該当植物へのフラグ付けが間に合っていない為。   後で何とかします。 ・ランダムハーブを願うとランダムな食料品が生成される   名前つきハーブを願えるようにした副作用。   自然生成は問題無いと思うけど、試験がしにくくてかなり不便に。   ランダムハーブの名称を"herb"ではなく"random herb"としても駄目。   "baseherb"だとどうなるのだろう。…駄目か。   herb of **とするか、全く違った英名をつけるしかないのかなあ。 ・ジンや幽霊の入った小瓶の不確定名がおかしくなる事がある、かもしれない。  直ったかどうかは不明。  もともと不確定名差し替えはあまり安定してないからなあ。  安定性を高める方法も無いではないけど…今のherbパッチの方式だとダミーの薬がもう2種類は必要か。  喫茶店のメニューに含まれるものなら無駄がないし、飲料とハーブの両方を用意できるものが欲しいから  ココアと…マテ茶? (マテ) ・あとメモ書き。  効果の無いハーブは食べても識別されないようにしないと(^^;)。 herbパッチ以外の不具合もメモ書き。 ・聖器が劣化しないようにした為に、アサメの如く問題なくEngraveできてしまう。  せめて途中で引っかかって刻む手が止まるようにしたかったけど、今の所うまくいっていない。 それと、何故かハーブの不確定名調査処理がターン毎に入ると思ったら、 Dungeon Growthでの成長判定を行ってたみたい。 さすがにこれはこれ以上簡略化する方法が思いつかないなあ。 ---- という訳で、サイト開設6周年ですが なんも用意できず間に合わずにFHSパッチと格闘しております。 今のところはもうちょいいじりたいので試験版は公開せず。  #せめてジンや幽霊の小瓶の不確定名差し替え処理は組み替えたい。 ------------------------------------------------------------ →これ以前は別Fileにて。