------------------------------------------------------------ FHS patch (Funny-Honey-Spit patch) 蛇足メモ 作成者:Shiganai Sakusha ------------------------------------------------------------ ------------------------------------------------------------ 雑記 [にうきゃら掲示板(補助用)と連動している内容もあります。(こちらで書かれた内容が掲示板で解決とか)] ------------------------------------------------------------ 06.02.28-06.03.07 ([Re:4]FHSパッチver0.8.16(未公開)) youkanさんクリアおめでとう御座います。 So-Miyaさんも着々と進まれているようで。  #パワードスーツは少し機能制限するかなあ。 So-Miyaさんのプレイ日記より、未解決の方: > 14Fに降りようとしたら画面の切り替わる前に以下のメッセージが。 > partly eaten food (160) more nutritious than untouched food (0)--More-- > プログラムに障害発生 - #quitしたほうがよさそうだ. オークの兵舎で食べかけの食料品を生成しようとしたか、 喫茶店の食料品にフラグつけ間違えたか、 又はそれらの処理が誤作動して変な食料品を生成しているのかもしれないです。 きっちりソース追って確認しないと。  →やはりオークの兵舎の食料品が問題だった模様。 ---- あと以前書いた: > NetHackではコンパイル時に各アイテムに番号が割り振られて一覧ファイルが生成されるのですが、 > 英語版での処理の関係か、「ガラス製の石類」にはこの番号が割り振られないんですよね。 > 今回は黒燿石を例外扱いする為にその辺り(一覧ファイル生成)に多少手を加えてます。 > ちょっとどのファイルをいじったか忘れてしまいましたが… いじった箇所が判ったのでメモ書き。 util/makedefs.c のdo_objs()。 除外条件の「ガラス製の石類」を 「ガラス製の“価値のない”石類」に変更したのでした。 ---- ロウ石の指輪やら石墨の指輪やらを入れてみる。 本当は宝石扱いにした方がいいんだけど、 激安(100Gとか)の宝石を入れても価格のバランス取りがなあ… あ、価値の無い石ころと同等の扱いにしても良いのか。  →なので不確定名をやめ、普通の石としての扱いに。 ---- > > 何せ以下のアイテム全てスキャンしなきゃならないみたいで。 > > (中略) > > obj_sanity_check()をもとに工夫してみるしかないのかなあ。 な、なんとか実装成功したみたい…=□○_ >  ・怪物の持ち物(OBJ_MINVENT) >  ・床の上のアイテム(OBJ_FLOOR) >  ・埋もれたアイテム(OBJ_BURIED) >  ・店内のアイテム(OBJ_ONBILL) は問題無し。 >   #入れ子になったアイテム(OBJ_CONTAINED)はどうなんだろう。 は、実はcheck_contained()という別処理が呼び出されてたので それをもとに実装。 一番苦労したのが >  ・PCの持ち物(OBJ_INVENT) なのです。 単純にアイテムを金貨に変化させるだけだと持ち物内に金貨がばらばらに並んだ状態になってしまい、 quitした時に   inven_inuse: !in_use gold in inventory--More--   プログラムに障害発生 - #quitしたほうがよさそうだ.--More-- なんてエラーメッセージが続出するし。 それならとu.ugoldに加えてからアイテムを消そうとしたのですが delobj()でもuseupall()でもエラー続出。 結局「アイテムを金貨に変化→obj_extract_self()→addinv()」でいけましたが。 怪物の持ち物については未だに金貨がばらばらに並ぶ状態ですが、 まとめるのめんどいしたいした影響も無さそうなので放っときます(ぉ)。 ---- ランスの聖器2種類実装。 1本はアリエッタの傘ですが(ぉ)。 でももう1本はやっぱり秩序になってしまうんだよなあ。 元ネタの持ち主がある意味騎士の鑑みたいな方ですから。 秩序槍のネタはないのに… 難しいものです。 ところで、   突然アリエッタの傘が開いてそのの攻撃を防いだ! …怪物名にmhis()は日本語版では使えないのですな =□○_ 今は、PCの見えない位置からの遠距離攻撃(とおぼしき状態)に対しても 防御効果が発動しているのも何ですが、とりあえずこのままで。 ---- と、上では書いたものの、 あれこれ実装していくとやはり不満も出てくるわけで。 其れは兎も角(「うさぎもつの」にあらず)、初代オカモチ実装にかかる。 SLASH'EMの武闘家のテクニックを移植してランダム発動させれば何とかなるかと思ったけど…  ・空中ダッシュ:攻撃時に移動させたくないので却下。  ・気功爆弾:自在に出せないのではかえって鬱陶しいと思われるので却下。  ・気功回復:この場面に限って言えば論外。 グランドスラムも改造に手間がかかりそうだったので保留。 で、残ったのは気功拳、精霊拳、連続攻撃の3つに。 気功拳の移植は簡単。 精霊拳はelement_hit()を流用(元々流用を考慮した造りにしている)。 問題だったのは連続攻撃。 回数分だけattack()を呼び出すようになっているので、 (attack()内で処理されている)聖器での攻撃中に呼び出すのはまずい。 なのでhack.cの該当箇所でattack()の代わりに連続攻撃考慮した処理を汲み込もうとしたけど、 うまく動かず断念。 おまけに素手ダメージにしたいのにuwepの取り外しや再装備がうまくいってないみたいだし。 結局、追加攻撃分のダメージを上乗せしてまとめて処理してしまう事にしました。 で、一応これが実装できたのでノクラフも実装。処理同じだしね。 ---- なんて言ってたのですが、ここで聖器の分類に不満が出てきました。 できればシミター辺りで実装したかったのに、曲刀類より小剣の方が極端に少ない。 それならとノクラフを無心の小剣で実装してみたけど、なんかしっくり来なくて。 革命の剣をサーベルで実装してしまったからなあ… 見直してみるとランスも秩序に2本入ってしまったし。 相変わらずフレイルは混沌偏重、対して混沌メイスは他より少ないし。 なので、この段階になって再び聖器の素アイテム・属性の大変更を行う事に。 ・ドラゴンランス   (秩序)ランス→(秩序)銀の槍  槍もなかったのでこのように変更。  本当は黄金の槍の方が素材ダメージ上乗せされて有効なんだろうけど。  可能なら「騎乗時はランス技能でも扱える槍」にしたい。   →騎乗時はランス同様に突撃が発動するようにしました。 ・ドラゴンベーン   (中立)小剣→(無心)幅広の剣  本家の仕様に戻した。  小剣も大型の的にあまり有効そうじゃないしね。  但し機能は従来のFHSパッチのを引き継ぎ。 ・コンフェット   (混沌)モーニングスター→(混沌)重ハンマー  スキルとしてはフレイル系からメイス系に。 ・革命の剣   (中立)鉄のサーベル→(中立)レイピア  スキルとしては曲刀類から小剣に。  新たにレイピアを実装。鉄製のエルフの小剣といった所。 ・ノクラフ   (無心)小剣→(中立)シミター  革命の剣の後釜に。 さてと、当面の問題として中立の対ドラゴン聖器をどうするか。 できれば長斧で実装し、愚者の伝説を無心に移動させたい所。 ---- FHSパッチでは、以前井出さんの作成されたパッチにより 怪物名やアイテム名に数字を使っても(システム側が)判別できるようになっているのですが、 今回それだけではまずい事例が発生。 The 1st Carrying Box が願えませんでした;  #個数か何かとして判定されてしまっていた模様。 今の仕様だと頭に数字を持ってきてはまずいか… 直そうにも一般アイテムのcarrying boxもあるからややこしい。 結局、第七聖典と同様に数字を入れないで(The First Carrying Box)運用する事に。 あともう1つついでにメモ。 Spirit of Knightsもまずかったので変えておかないと。  #of関係の処理をクリアしても、  #職業名がもろに入ってるしね。 ---- 毎度互換性のない状態ですが、試験版060307をUp。 今回のFHS試験版には新地形汲み込んでみました。 いつもながら借り物ですが、発想が面白いかと。 以前書いたように、 > 次の正式verの公開は、一応 > >   洞窟人クエスト Type2 > > の実現を目安にしてるけど、 ホントこの分だといつ出来るやら。 クエストのストーリー自体がスカスカになるのは避けたいのですよ。これに関しては。 ------------------------------------------------------------ 06.02.13-06.02.27 ([Re:3]FHSパッチver0.8.16(未公開)) 実装能力回復した時の為のアイデアメモ:  root of full healing 閑話休題。 ---- うーん、なかなか実装の気力が回復しないなあ。 今まで実装した物のメンテナンスをしながら気力回復を待ってはいるんだけど。 uhitm.cだかどれだかの毒液の処理がif文の羅列になってたのをswitch文に直したり、 同時に単発の毒液類をis_**_missile()で処理してたのをほぼ無くしたり(↑でしか使ってなかったし)、 聖器説明を「RJNH案参照」ではなくきちんと記述したり。 その過程で未実装だった機能に気づき実装したり。 内部をかなりいじってる割にはwizardモードによる徹底試験をする気も起こらないので、 未検証続出(かもしれない)という危険な状態なんですけどね。 ---- 一応、 > 実装能力回復した時の為のアイデアメモ: の実装にかかる。 >  機械式の瞬間移動の罠 は簡単だったけど、問題はroot of full healing。 これ、is_herb()であってnamed_herb()でありながら対応する薬がないので、 ハーブ関係の処理時にherb_mixtype()による薬品変換をそのまま用いるとまずい事が判明。  ・自分が食べた時(fprefx()、fpostfx())  ・怪物が回復の為に食べた時(use_defensive()等)  ・ペットの食事や、飼い慣らしの為に投げられたものを怪物が食べた時(dog_eat()等)  ・ゼラチンキューブ等が食した中に偶然含まれていた時(meatobj()、meatmetal()) これら全てに例外処理かませるのにえらい苦労しました(T T)。 一部はis_herb()やnamed_herb()の場合には処理を一緒くたにしてたのですが、 それだとまずい点があるので…  #まとめてm_heal()に送っていたのだが、実際のアイテムの他に  #対応する薬のアイテム番号(herbtyp)を一緒に渡す関係で、  #一緒くたの処理だとroot of full healingをm_heal()側で判定できなくなり回復しない。 それでもなんとか実装はしましたが… > 何せ以下のアイテム全てスキャンしなきゃならないみたいで。 > (中略) > obj_sanity_check()をもとに工夫してみるしかないのかなあ。 なんていう未知の領域の実装も控えてるからなあ。 先が思いやられます。 ------------------------------------------------------------ 06.02.05-06.02.12 ([Re:2]FHSパッチver0.8.16(未公開)) 実装能力回復した時の為のアイデアメモ:  機械式の瞬間移動の罠 閑話休題。 ---- > 現在ちょっとしたスランプ中(- -;)。 などと言ってばかりもいられない。 こういう時には懸案を減らすのが一番。 なので、以前から気になっていたSHOT_AMMOの実装にかかる。 効果は「矢玉生成と同時に速射」。 今までこれを実用化しなかったのは、1発目に発射した矢玉が床に落ちた後に エラー(“objects not free” だったかな)が出てしまっていた為。 一応、毒吐きではmultishotまがいの処理を既に実装しているのですが、 実際には単発での生成→投射を繰り返し行っているだけなんですよね。  #だから「*本目の**を〜」というメッセージは出ない。 違う方法はないかと模索してはみましたが、他に妙案があるでもなく。 結局は同じ方法で実装する事にしました。 ダミーの射出物を実装し、 それらが落ちた時に消滅させる処理を加え(よく忘れるんだよなこれが)、 あーだこーだ… で、打たせてみた所、 ダミーの投げ矢を竪琴の弓で「射た」事になってない事が判明し、 ammo_and_launcherの条件を修正したり。  #この状態では弓スキルが上がってほしいのに手裏剣スキルが上がっていた。 ゴリアテベーンにも同様の機能もたせようと思ったら 実際のプレイ時にダミーの石飛ばすとエラー続出するし。  #変更後に、コンパイル時の自動生成ファイルをきちんと削除してなかったのが原因らしい。 実装には結構手間がかかるものです。 ---- 聖器の分布状況txtを更新。  #以前、武器だけ武器聖器分類.txtでまとめ、  #その他に関してはこのtxtでまとめていたのを整理。  #またクエスト聖器も含めるようにした。 全体的に長剣や曲刀類が多いのは予想してたけど、 無心のメイス類が多いのは意外だった。 とは言ってもRJNH案では「家事道具」に入るような品がほとんどだけど。 それに改めて見ると、武具以外の装飾品って中立のクエスト聖器しかないのか。  #遠視の魔除け『エチオピアの目』と眼鏡『超世界の目』。 防具や道具類はあまり増やしすぎると収拾つかなくなるおそれがあるから とりあえず武器技能のバランスとりを考えよう。 個数のバランスはまた別に考えるとして。 06/02/06現在、武器技能で抜けがあるものといえば  *秩序の斧  *無心のフレイル  *秩序の槍類  *中立/混沌の長斧  *秩序以外のランス  *混沌/無心のつるはし  *無心の鞭  *無心の弓類  *何か手裏剣類  *中立/混沌のブーメラン a)この中で特に抜けを埋めておきたいのは   *秩序の槍類   *中立/混沌の長斧 b)次点で   *秩序以外のランス   *混沌/無心のつるはし   *中立/混沌のブーメラン c)あと、もう少し総数を増やしておきたいのが   *長斧   *六尺棒(家事道具でないもの) 辺りかな。 ランスはアリエッタの傘なら実装の見通しがたちそうだからいいとして、 長斧はルシファーラスターもサイレンスグレイブも実装にかなり苦労しそうな気が。 それを言うと愚者の伝説も…#invoke実装できるかなあ。 六尺棒も、ルーンブレイカーはSLASH'EMの怪物魔力システム(あったような)欲しいし レイジングハートはMegaspellだけでなく英語神託の表示機能が要りそうだし。 #コンパイル周りに手つける事必須。 #あー、おまけにwizard staffの移植や調整も考えなければならないのか。 #(パッチはあるけど内容読みきれてないし、魔力充填で爆発するような記述もあったような。) 槍も獣の槍は混沌、ゲイボルグは中立…うーん秩序に合いそうな槍がない。 無印聖器のアイデアも、そう頻繁に浮かぶものでもないしなあ。 むう。 ---- 愚者の伝説、#invoke機能実装に向けて色々調査中。 でも >  ・#invokeか何かで藁が兵士に変化 は実装もバランス取りも難しそうなのでとりあえず保留。 >  ・同じく#invokeか何かで「木の葉(ユーカリの葉とか)」が金貨に変化 は可能そうだけど、実装は思ったより大変そう。 何せ以下のアイテム全てスキャンしなきゃならないみたいで。  ・PCの持ち物(OBJ_INVENT)  ・怪物の持ち物(OBJ_MINVENT)  ・床の上のアイテム(OBJ_FLOOR)  ・埋もれたアイテム(OBJ_BURIED)  ・店内のアイテム(OBJ_ONBILL)   #入れ子になったアイテム(OBJ_CONTAINED)はどうなんだろう。 obj_sanity_check()をもとに工夫してみるしかないのかなあ。 あ、#invokeが金貨変化だけでは何なので、他の効果も当然持たせますけどね。 ---- So-Miyaさんのローグライク日記から。 > 猪とかを倒すとたまに毛皮を落すのだが、ヘビを倒しても毛皮を落すことがある。 し、しまった; 皮の条件処理にそのまま組み込んでたから、毛があるかどうかは判定してなかった;  #仔豚が毛皮を落とす可能性については  # 「生えてません?ブラシに使うような剛毛が」  #と言って誤魔化すつもりだったけど(マッテ) 「皮は残すけど毛皮は残さない」種族の判定も必要そうですね。  #多分種族で分ければ事足りそうな気がする。 ちなみに現在でも毛皮はデフォルトでは小型の怪物だけが落とすようにしているので、 > もしかしたらワニの毛皮とかも出るかもしれない。 ワニは(子供も含め)中型なので大丈夫です。 > 幻覚の薬を飲んでも幻覚の薬だと識別されない。 > vanillaだと識別されていたような・・・? あ、これはSLASH'EMの処理を移植してます。 幻覚状態だと識別したものをまともに記憶しません。 で、幻覚の薬自体も識別されないのはどうやらSLASH'EMの仕様のようです。  #bugトラッキングで質疑応答を見た覚えが。 うわわ; よく見たらグングニルがa)pply時の使用可能アイテム一覧に載ってない;  #getobj()の側で含めていないのが原因なので  #一覧にない状態でも強引にグングニルを選択すれば機能するけど。 鎖の鞭と薔薇の鞭も同じ症状が起きてそう。 ------------------------------------------------------------ 06.01.28-06.02.04 ([Re]FHSパッチver0.8.16(未公開)) えー、反応遅れてしまいましたが、 So-Miyaさんもプレイされてるようで。 有難う御座います(_ _)。 なお1月26日版だと「リーダー大量出現」という、この版固有のバグがありますので セーブデータは共用できませんが2月2日版へのアップデートをお勧めします(汗)。  #猪も子連れでない限りは単独で登場するのが本来の仕様です。 > 現時点で > 600種程度のモンスターの追加 > 400種近いアイテムの追加、 > 100種程度のアーティファクトの追加 > 1000を超える未識別名の追加・置換 > 16種の罠の追加 > 未識別名によるアイテム特殊効果の追加 > 職業別アイテム名の変換の拡張 > 種族クエストの追加 > 鉱山、城などに新規マップの追加 > ハーブの追加と錬金術の組合わせ > ブレスとアモの統合と細分化と拡張 > ・・・等々 > が行われているようです。 なるほど… こうして見ると、我ながらかなり実装したのだなあと 改めて実感。 ただ、このうち幾つかは誇大広告になってしまうかも。 > 1000を超える未識別名の追加・置換 防具の不確定名には似たようなのが多いですし、 > 400種近いアイテムの追加、 ゲーム中ではあまり意識されないアイテムも100種かそれ以上ありそうですし。  #インべントリに表示されない毒液類とか(多数)  #生成&効果処理用のダミーハーブとか(多数)  #罠射出用のダミーの射出物とか(これは少数)… 何にしても、Spitパッチとして実装開始してからもうじき2年。  #パッチもどきの手書きdiffを書いてた頃のを含めるともっと前からだけど。 プログラムの基礎知識も解析能力もメンテナンス能力もない人間ではありますが、 これからも粛々と実装を続けていきたい所存。 ---- と、上では書きましたが 現在ちょっとしたスランプ中(- -;)。 こういう時は簡単な実装でお茶を濁したり、 ぼーっと自分の書いたソース眺めてみたり。 で、目についた箇所を更に改良してみたり。 それにしても身が入らない入らない。 次の正式verの公開は、一応   洞窟人クエスト Type2 の実現を目安にしてるけど、 この分だといつ出来るやら。 漠然とした案はあるし、 漠然としたイメージもある程度出来てはいるけど、 現在は曖昧模糊としており形にならず。 元々文章は不得手なので、  ・その気になるのを待つか  ・強引に書く事に集中するか でもない限りは筆が進まないのですよ。 自然にその気になるのを待った場合、いい状態になるのはいつになるやら。 拙作小説の前半の更新履歴から類推すると、年単位で考えないと。 もう一方の方法はかなり危険。 そもそも拙作小説を完結までもっていく為に 強引に書く事に集中した反動が 今出ているんだろうしなあ。 さすがにあんな事、何度もしたくないです。 文章練る糧にしようと思って 気の向いた時にBardクエストの翻訳をやってはみたけど、 最後のセリフまで来て気力が尽きて放っぽりぱなし。  #まあ、どの道Bardのスキル組み込みの予定は無いので  #使い道がない訳ですが。 ---- ついでだからメモ書き。 現在、それなりの案なりイメージなりがある追加クエスト案は:  ・洞窟人クエスト Type2 (Q_HAJIMENINGENとは全く別物)  ・炎の魔術師クエスト Type2  ・氷の魔術師クエスト Type2 クエスト全体のストーリーの練り具合:  洞2≒炎2>>>>氷2 登場キャラの準備度:  リーダー: 洞2>>>>炎2=氷2  従者  : いずれも実装済み、もしくは即座に移植可能。  主要敵 : 炎2≧洞2>>>>氷2  ボス  : 炎2≧氷2>>>>洞2 Map:  どれも未作成 Q聖器:  いずれも実装済み、もしくは即座に移植可能。 敵キャラのそろい具合なら炎2なんだけど、 洞2はMapとボスとさえ揃えればjquest.txtは書き易い(イメージ出しやすい)気がする。 氷2は全体の流れがろくに固まってない。 ------------------------------------------------------------ 06.01.27 (FHSパッチver0.8.16(未公開)) あー、昨日のはあまりに手抜き過ぎなので補足。 FHS_history_testから色々抜き出し。 -オコジョ,白オコジョ,ミンク,テン -河イノシシ(の子供) -ハタネズミ,砂ネズミ,女郎グモ -縞ヘビ,アオダイショウ -カナヘビ えー、この辺りの怪物ははっきり言って弱いです、はい。 バランス取りの一環として特に特殊能力も持たせず、わざと弱めにしました。 ぶっちゃけ同LVの似たような怪物より強いのはいないです。 例外は以下の2つ。 -超巨大アリクイ, 巨大蟻を捕食するような怪物はどんなのかなと考えてたらこのように(w)。 勿論普通のオオアリクイも実装しましたけど。 あ、壁を掘る能力を追加する必要があったか。 -鬼類 赤鬼、青鬼…と色々います。ゲヘナ専用ですけどね。 それぞれ対応する耐性や属性攻撃をもたせてみたのですが、 中には不備もありまして。 -魔弾(AD_MAGM)の直接攻撃を追加 なのです。 ちなみに現在は黒鬼がいません。  #分解の直接攻撃がないんですよね。  #Webbパッチ群にはあったけど… --*特殊部屋の出現率を抑え気味に調整 これもバランス取りの一環。 特殊部屋の種類がたんまり増えてるんで、 とりあえず全体の出現率をSLASH'EMと同程度にしました。 なので特定の部屋が出る確率は抑えられてるかと。 ちなみに、祭壇部屋の確率はいじってないです。 -a trail of stinking clouds patch ("L"さん作)を移植: --*毒のブレスが軌道上に毒の雲を残すようになります. 毒耐性のあるPCにも目晦ましの効果があるから、だそうです。 --*[追加]副作用で,毒の噴射の軌道上や爆発の爆風上にも 毒の雲が残るようになっていたのを修正 これやっとかないとregion型毒液の立場無くなるし(w)。 --*[追加]炎/冷気/眠り/酸のブレスも軌道上に対応する雲を残すようになります. 電撃を入れなかったのは既に盲目効果が含まれているから。 分解を入れなかったのは十分強いから。 魔弾を入れなかったのは雲を残さないように思えたから。 と見ていったら、 -冷気属性のregion追加 --*マップ上の表示は「冷気の雲(白色の#)」となります これだけ抜けてた(笑)。 -動物の皮類の処理を変更 --*毛皮を実装 --*小型の怪物が毛皮を残すようにした --*種族によっては中型以上の怪物も毛皮を残す事があるようにした 今までは分厚い「皮」しかなかった訳ですが、 これで選択の幅が広がりそう。 --*一部の怪物の毛皮/皮の売買価格を上げた --*ワルキューレの初期防具が毛皮になる事があるようにした とりあえずこのように。 となると、聖器として 馬鹿高い価格と冷気耐性が売りの ミンクの毛皮『ミンクのコート』が必要? (w) -鏡の盾 「ガラス製の反射の盾」という案は以前からあったのですが、 ランダムクエストの方でイトラチアヤクを実装したのを機にこちらも実装。 で、これはあくまで黒燿石製の鏡なので、 -黒燿石および黒燿石製アイテムの材質を宝石からガラスに変更 としました。 --*但し黒燿石製の武器は壊れにくいです. --*また,聖器は壊れません. まあ、Q聖器が壊れたり黒燿石製の投げ槍(今は無いけど)が壊れたりしてたら 洒落になりませんから; ただここで困ったのが、黒燿石のコンパイルエラー。 NetHackではコンパイル時に各アイテムに番号が割り振られて一覧ファイルが生成されるのですが、 英語版での処理の関係か、「ガラス製の石類」にはこの番号が割り振られないんですよね。 今回は黒燿石を例外扱いする為にその辺り(一覧ファイル生成)に多少手を加えてます。 ちょっとどのファイルをいじったか忘れてしまいましたが… -分裂した怪物は「蘇生した怪物」と同等に扱うようにした -「蘇生した怪物」が死亡した時に,ランダムなアイテムを残す確率を下げた ぶっちゃけ敵増殖プレイ封じ。これが一番自然でスマートな方法かなと。 -JNetHack TNG 3.4から以下を移植: --*アイテム追加:虎の巻 新実装の「上達の指輪」を食べた時の効果が欲しかった物で f(- -)。 -"L"さんのmagic boomerangsパッチを導入(#define M_BOOMERANG) --*アイテム追加:魔法のブーメラン --*従来のブーメランの名称を「木のブーメラン(wooden boomerang)」に変更 何かに命中すると手元に瞬間移動して戻ってくるブーメランです。 最初は聖器限定にするつもりだったけど、結局通常品でも実装する事に。 ちなみに木のブーメランを魔法のブーメランに変化させたりその逆を起こしたり する手段はありますが、聖器は対象外です。  #敵をばかすか貫通するはずのブットバスブーメランが  #1体に当たった時点で戻ってきちゃ逆にまずいし。 手元に戻るスリング弾もあった方がいいのかなあ。 -***test中***- --*ゴシップハリセン(試験不充分、とりあえず機能だけはする模様) 公開した060126版では大体完成してると思います。 --*盗み/誘惑に対する防御処理の全面組み替え えらく苦労しましたが、少なくとも手元の版ではほぼ完了。 --*ツッコミハリセン(攻撃機能未設定) あー、これはまだです。 ---- で、今はツッコミハリセンを差し置いて、噴気孔をふさぐ手段を実装中。  #成功したら、掘る事による破壊は逆に封じようかと。 とりあえずコンパイルはできたけどどうなる事やら。 そういえばオーククエスト最下層のも手元版では処理したけど成功したかは未確認だったなあ。 ------------------------------------------------------------ 06.01.22-06.01.26 (FHSパッチver0.8.15d)) 手短に。 FHSパッチver0.8.15d(bugfix正式版)公開。 試験版も同時公開。 ------------------------------------------------------------ 06.01.18-06.01.21 ([Re:4]FHSパッチver0.8.16(未公開)) 近頃、 wikiも見やすいよう/扱い易いように整理しないとなあ。 などと、漠然と考えておりました。 Yukiwikiは他の所のと書式が違うものが多いし、 表内でリンクを貼ることも出来ないんですよね。 やはりhack@holicやSLASH'EM Wiki等と扱いを揃えたいもの。 一応、目をつけているのはPukiwiki(の派生品)なのですが… 設置できそうな方法は2つ。  1) sourceforgeに設置  利点:全く利用していないサーバースペースの有効利用。  欠点:メンテナンスが困難。     ファイルのUp等がものすごく面倒らしいし、     Up用の補助プログラムが新型機(XP)でしか動きそうに無い。      #扱うのがwikiなので、メインプログラムだけUpしてあとは放置      #(wiki上での更新に留める)というのも手ではありますが。  2) xreaに設置  利点:FTPが使えるのでファイル類のUpやメンテナンスが楽。     NetHackを扱っている初代機(98SE)からでもメンテナンス可能。     CGIとして設置する事も可能な模様。  欠点:現在のサーバースペースを圧迫する。     分量によっては他コンテンツ移動の必要もあり? うーん、一長一短だなあ。 …などと言っている時にまた新型機が故障(T T)。 ------------------------------------------------------------ 06.01.09-06.01.17 ([Re:3]FHSパッチver0.8.16(未公開)) 掲示板での、youkanさんのプレイ感想から幾つか。  #バグ報告以外から拾い出し。 (1) > 特殊攻撃を持った敵がかなーり増えているせいか死にまくりです。ボーパルバニーとか泣ける。 一応、特殊能力持たないのもそれなりに増やしてはいるのですが…やっばり不足気味かな(- -;)。  →と思ったけど、そういえば熊も猪もうさぎもカエルも特殊能力持ってるんでした f(- -)。   うーん、ファンタジー冒険もので出てきそうな一般動物はかなり実装済みだと思うし、   特殊能力もたずにあまり素早くない怪物(なので犬猫鳥虫は除外)となると   今現在思いつくのは鹿くらいかなあ。   それか、ちょっと品種を変えたの実装するか。    #ドブネズミに対する黒ネズミ(クマネズミ?)とか。    #EMの黒ネズミは特殊階用だったけど(絶滅対策か?)、FHSパッチでは一般怪物に。 あと、実は最近ようやく怪物の出現率の調整方法を理解できたので、手もとの版で大調整中だったりします(大汗)。  #brassの出現率確認コマンド(wizardモード用)移植してようやく気づいた。  #G_GENO等の箇所に書かれてた数字って、この調整用だったのですね。  #怪物1グループ辺りの最大出現数かと思ってました(滝汗)。 全部は覚えていませんが、とりあえず犬系の凶暴怪物だのイモリのゾンビだのが 出すぎだったのを直したり。 (2) > あとカノンの罠は結構即死級で踏むと泣ける。 今の所、1/5の確率で「呪われた砲弾」となり、ダメージが予測不可能になります。  #うさだケーキ並。落し穴は(罠壊したくないので)作らないけど。  #試しに最大最小ダメージ計算してみました。2〜256ダメージ(汗)。 やはりこの辺もっと緩めに調整した方がいいのかな(- -;)。 せめて呪われ砲弾の生成率を下げるとか。 罠自体も今は変化の罠より1つ浅い階で生成され得るし。 階によって爆発ダメージ値を調整するのも手かも。  #他の射出型の罠とは異なり、普段は「砲弾」を飛ばさず爆発だけ  #起こしている(落し穴は以下略)ので、  #trap.c内でダメージ調整は何とでもなる。 (3) > ノーム王の養蜂場は固定のpolymorph trapがとんでもない位置にあるので泣ける。 > 最下層がこれになったら放棄したほうがいいかも。 これですが、 >> 特殊階で種族指定のランダム怪物を生成する時,強すぎる怪物は生成を避けるようにする処理 で対処可能かと思ってたけど、もしかしたら対象が初期配置の怪物だけだったかもしれません。  #確かEMの鉱山でノールが配置されないようにする処理だったはず。 となると変化の罠の凶悪さは変わらない訳で。 > プラチナ・ゴーレムとか出てきましたよ…。 ぐはっ!(> <) ここここんな凶悪な仕掛け、ゲヘナのどこか辺りで充分ですよ(T T)。 鉱山の最下層に仕掛ける代物じゃないやうな(; ;)。 どうりで本家やEMでも採用されなかった訳だ。  #同じパッチの別Mapは採用されている。確か3.4.3で追加された3番目のMapだったかと。 該当の追加Mapは一時封印して、ゲヘナのあの階に仕掛けを転用してみますかね。  #追加Mapを手直しして復活させるかどうかは別途検討。 (4) > クッキー食べたらHP60から即死しました…。もうクッキーは無視することにしよう…。 捨てるくらいなら投げましょう :) という冗談(?)はさておき、 確かに特殊なクッキーも生成率案外ありましたっけ; かといって自然生成率は今以上には下げられないしなあ。  #元々占いクッキーが生成率10程度だから、  #特殊品それぞれの生成率を例え1にしても  #クッキー全体からみれば案外高い訳で。 今なら食べ物に「特別製の冠詞」をつける事が可能なので、 特殊なクッキーの扱いをそちらに移行するというのも手かもですが。  #これならベースとなる「クッキー」の生成率に関わらず  #個別に生成率を変更できますし。 あー、でも共通化してしまうと「特製マジカルクッキー」が出来なくなるか f(- -)。 どうしようかな…食べ物系で他に利用できそうな空きフラグあったかな…  #今は「特別製の冠詞」にはobj->speを流用。 今は新仕様(実験的仕様)の実装を先行させているので バランスや見栄えは三、もとい二の次になっている面もありますが、 それでもそれなりに調整はしてみます。 タイル埋めもしておかないとなあf(- -)。 でも井出さんのTNG方式(仮タイルで埋め尽くす)でさえ時間かかりそうな状態で; ---- 今まではglassesという英名は使えなかった(該当アイテムを願えなかった)のですが、 ようやく対処して使えるようになりました。 (1)まず魔除けの方がglassesではまずい事に気づき、とりあえずspectaclesに。   #実はこれでもまずいので(同名アイテムのspectaclesの願いに引っかかる)、   #最終的にはmeganeに(^^;)。 (2)「最後のesを取らないリスト」にglassesを追加。 (3)サングラス類の名称を変更したり追加したり。   (black sunglasses: 黒いサングラス:(一般品)   (red sunglasses:  赤いサングラス:   (brown sunglasses: 茶色いサングラス:(従来のgoggle)   (goggle:      ゴーグル:(ガラス製に) ちなみに一般生成されるのは相変わらずbrown sunglasses(旧goggle)です(w)。 ---- 現在の状況メモ書き。 とあるパッチを基に、考古学者クエスト Type2 (Ar2)の実装成功。  #略名としてAr3以降が有効かどうかは今後の課題。  #移植(流用)できそうなクエストパッチが見つかったらその時にでも(^^;)。 クエスト案を練って洞窟人クエスト Type2(Ca2)につなげたい所。  #祭式が変わってしまいますが… ------------------------------------------------------------ 06.01.05-06.01.08 ([Re:2]FHSパッチver0.8.16(未公開)) 結局、 > invent.c / fully_identify_obj(), 1861行目 > if (otmp->oartifact) discover_artifact((xchar)otmp->oartifact); > > ここを (xchar)→(int) に変更したところ、運命のオーブを鑑定して発見物一覧を開いても落ちなくなりました。 あと少しと言いう所だったのですな。 youkanさん、井出さん、有難う御座いました(_ _)。 これで新聖器の実装を続けられます。  #前回これを書いている時は本気で意気消沈してたからなあ。 という訳で、早速新聖器のネタを。 ・チェーンソード『ゴッドベーン』(中立or無心)  神のしもべに大ダメージ。  敵をバラバラにする事がある。  祭壇では下賜されない(される訳が無い)。 …むう、ボーパルブレードとかぶってしまうか。  #てか首数に関係無く切り刻めるだろうから、下手するとこっちの方が強くなってしまう。 「あくまでネタ」だったとはいえ、実用になりそうだったら実装したかったんだけど。 ボーパルと村正ある限りはやめた方が無難かな… 閑話休題。 ---- 掲示板でもちょっと書いた「武器以外の聖器」の分布状況。  #武器は以前にまとめたしね。  #蛇足メモ8の05.11.01-05.11.13参照。 以下、***がついているのはクエスト聖器。 ・兜/帽子:  *アンテナ『サテライトリンカー』(秩序)  *三角帽子『貴婦人の帽子』(無心)  ***知性の兜『聖なる冠』(秩序) 今の所、お嬢様神器以外は秩序に集中。 ・鎧/服:  *看護服『ナイチンゲール』(中立)  *ドラゴンの鱗鎧『竜王の鱗鎧』(混沌)  *鋼鉄の鎧『パワードスーツ』(無心) …あーしまった、ナイチンゲールは服類に変更されたんだっけ(> <)。 となると、中立の場合はナイチンゲール+適当なクロークという組み合わせが 可能になってしまうなあ。 ・クローク:  *天使の翼『シルフィード』(秩序)  *研究着『ニュートリノ』(中立)  *ローブ『スネークスキン』(中立)  *魔法を防ぐクローク『令嬢の外套』(無心) 以前はナイチンゲールもここに入ってたから「クロークは中立に集中」と書いたけど、 それほどでもないのか。 ・小手:  *器用さの小手『守りの小手』(武闘家専用)  *銀の小手『怒りの鉄拳』(武闘家専用)  *革の手袋『風穴』(僧侶専用) 現在の所、職業専用聖器ばかり。 案はもう1つあるけど、それも武闘家専用だし。 ・靴:  *素早さの靴『ウィスパーフィート』(観光客専用) 現在の所、観光客専用の聖器だけ。 ・盾:  *(該当なし) ・石/宝石:  *瑠璃『星の瑠璃』(無心)  ***ダイヤモンド『アーケン石』(秩序)  ***ディリジウムの結晶『幻の銀水晶』(秩序) どれもクエスト聖器か、入手が一筋縄ではいかない物ばかりだからなあ。 ・水晶球:  ***水晶球『探索のオーブ』(秩序)  ***水晶球『パランティアの石』(混沌)  ***水晶球『運命のオーブ』(中立) これはこれ以上増やす事もないでしょう(^^;)。 新クエストのクエスト聖器として追加されるならともかく。 ・その他:  *CD−ROM『ネットハックのソース』(中立)  *大きな猫の人形『招き猫』(無心)  *鏡『影の魔鏡』(無心)  ***幸せの石『アーリマンの心臓』(中立)  ***鏡『マーリンの魔法の鏡』(秩序)  ***眼鏡『超世界の目』(中立)  ***遠視の魔除け『エチオピアの目』(中立)  ***万能鍵『盗賊のマスターキー』(混沌)  ***クレジットカード『プラチナイェンダー印エクスプレスカード』(中立) とりあえず色々と。 うーむ、中立だと鎧とクロークを同時に聖器で揃えられるとは意外だった。 ニュートリノは運次第だとはいえ…  #でも看護帽と一緒に身につけようとすると,他の帽子はかぶれないのか。 それと、パワードスーツの使い勝手がどう評価されるかも気になるし。 武器でも防具でもない聖器をどれだけ揃えるかも問題なんだよなあ。 労せずしてあまりに多く入手できてしまうのも問題だろうし。 RJNH案や*bandのようにランダムユニークを登場させてその報酬にするなら、 苦労に見合った報酬になるんだろうけど。 現在はそれをしてない以上、入手を制限する方法が  ・クエスト聖器にする(願いで入手しにくくなる)  ・聖器に知性を持たせる(職業も決まっている場合,属性違いの他職は手に取る事も出来ない)  ・職業専用聖器にする(他職は手に取る事も出来ない)  ・特殊フロアの報酬にする(星の瑠璃はこの方式)  ・単に下賜されないものにする 程度だし。 今の所は気の向くままに粛々と実装を続けるかな。 ---- ちなみに、掲示板にも書いた事ですが。 今回の修正により、128個以上の聖器が実装可能になりました。 (一般聖器・クエスト聖器の合計数) 次の目安はucharの限度数(255)付近でしょう。 それを越えれば、もう限界数は問題にならないと思います。  #数千数万も実装するとは思えないし。 FHSパッチとしての実装数の見通しは、現在の所立っておりません。 さすがに武器数は現在の倍まではいかないと思ってますが…  #効果重複品や粗悪品が続出しそうですし。 見通しの立たない理由は、防具類とその他のアイテム。 アイデアが出にくかったり、実装が困難だったりというのもありますが… あれこれ無秩序に実装しておいて何ですが、   「ゲヘナ突入前に全身聖器で固めてその他のアイテム聖器も多数用意するのが当然」 といった事態は避けたいかな、と。 一応、私が思い描いてる聖器の扱いは  ・どんな物でも入手できれば嬉しい    (聖器間の使い勝手の良し悪しを極力排除)  ・無ければ無いで何とでもなる    (通常装備やその強化品でも冒険可能) といったものですが… 思惑通りにいくかどうか。 はてさて。 ---- youkanさんから幾つものバグ報告が(汗)。 近頃は実地プレイがほとんど出来てないから、 やはり色々と見過ごしがあるなあ;  # 実地プレイに入る前に重大バグ発見  # →慌てて直して次verを出す  #というパターンが多くて(- -;)。 バグ続きで済みませんです(_ _;)。 ------------------------------------------------------------ 06.01.04-06.01.04 ([Re:]FHSパッチver0.8.16(未公開)) メモメモ。 > うーむ、個人的には > init_artifacts() / save_artifacts() / restore_artifacts()の > 辺りで使われている > >   memset() > > てのが怪しいと睨んでるのですが… >  #ここでartidiscoを設定する時にサイズがcharの寸法分しか利用されてないとか。 うーん、memset自体はC言語の標準関数なのか。 それにこれ使ってるの(上の3つのうちでは)init_artifacts()だけだったし、 ここでは0を代入する為だけに使っているから問題ないのかな。 となると問題はセーブ・ロード関係で使ってそうなsave_artifacts() / restore_artifacts()か。  #これらがartidiscoへの書き込み、読み出しを行っている模様。    103 save_artifacts()で使われてるのはsave.cのbwrite()。 bwrite()はwrite()を呼び出して何かやってる模様。 さてwrite()の本体は…ないのかな?  #\util\dlb_main.cにWrite()というのがあったけど、多分違うでしょう。 まあ\include\wceconf.hでのextern設定らしきものを見ても (int, const void *, unsigned int)となってるので問題ないんでしょう、多分。 とりあえず問題ない事にしておこう。  #以下の問題を先に解決せよ。それでも改善されなかった場合はこの番号に戻る事。  #104に進め。    104 問題はrestore_artifacts()。 restore.cのmread()を読み出してるんだけど… 何故かmread()が2つあるし(機種依存なのか?) 今はどちらが使われてるか判らないけど、 少なくとも片方のmread()内では (genericptr_t) artidisco(mread()内部ではbufで置き換え) を もろに *(*(char **)&buf) と変換してくれてるし。 かと言って、聖器名の文字列等もここで扱われてるような気がするから うかつに手を出せないしなあ。  #105に進め。    105 …くぅ、難儀だ(T T)。 ここまで来ると、さすがにプログラム関係勉強してない身では手に負えないか? 今までは何かしら参考になるパッチ(orヴァリアント)があって それを本家(JNetHackやNetHack)と突き合わせて読み解きながら何とか対応してきたけど、 今回のに関しては参考になるものが何も無いからなあ。  #これほど多量の聖器を実装するパッチというのはさすがに無いのではないかと。  #RJNHもSLASH'EMも現verはこの域に達してないし。 その他の自作処理も、大抵は既存のものをどこかから引っ張ってきてベースにしてるし。 今の知識と既存のシステムだけを参考に処理してしまう手は無いわけでもないけど… アイテムor怪物の処理をそのままもぎ取って移植。  #おそらく1100やそこらではオーバーフローはしないはず。  #現にしてないし。 でも、これやると本当の大改造になりそう。 NetHackのシステムから外れた物になってしまいそうな。 うーむ。 間に合わせの方法として、一般聖器とクエスト聖器を分離するのも手かもですが。  #今の状態で18個の余裕ができる。  #また将来ランダムクエストにクエスト追加した時も  #全体数に悩まされる事が無くなる。 更には属性ごとに分離してしまえば、今の3倍以上は実装可能になる訳だから解決しそうなのですが。  #それでもoverflowするほどの数(400種以上)は、さすがに実装しないだろうと予測。 但しartilist.hやその周辺処理に相当するものを自力で実装しなきゃならないし、 obj->oartifactをそのまま参照してる箇所は2、300箇所位あるから… 間に合わせにしてはさすがに修正がきつすぎる(T T)。 とりあえず、今回実装した4つの聖器を#define HONEY_OVERFLOWED_ARTIFACT で封印。 根本的解決をみるまではこれで間に合わせます。  #機能は一応問題無いみたいだし。 これで、聖器数は公開版と同様の126に。 今の所はこれ以上の聖器実装は封印して、 それ以外の箇所に力を注ぐかな。  #聖器による各種効果の開発も継続。  #但し実行させる聖器は既存品との差し替えでしか実装できないけど。 さすがに今の自分の手には負えなさそう。 ---- とまで書いてたのですが、掲示板へのyoukanさんの書き込みに気づく。 うわ、discover_artifact()とundiscovered_artifact()もXCHAR_Pで処理してたのか。 これらを直してみる。 …駄目でした… ------------------------------------------------------------ 06.01.03-06.01.03 (FHSパッチver0.8.16(未公開)) > 聖器数、127越えたら処理にエラーが生じるように =□○_ この状況を打破せんと、 > ならばとobj->oartifactをint型やshort型に変更してみたけれど、それでも駄目。 > (中略) > 生成時にどこかの変数がcharで処理されていて引っかかってるのかもしれません。 を調査。 処理を順番に追って行って、artifact_exists()にたどりつく。      otmp->oartifact = (char)(mod ? m : 0); ここかぁ!(> <) mはint型(正確にはregister int型)なので、ここは素直に      otmp->oartifact = (mod ? m : 0); と変更。 「○○->oartifact = 」という処理は他にも2,3箇所あったけど、問題ない事を確認。 さて… wizardモードでヴァルキリー(battloid)を選択し、運命のオーブ(129)を願ってみる。   …成功! とりあえず識別して、発見物一覧を確認。   落ちた =□○_ むむ。 一筋縄ではいかなさそう。 どうもartiname(m)で落ちてそうだけど… -------- 途中経過。 STATIC_OVL xchar artidisco[NROFARTIFACTS]; -> STATIC_OVL int artidisco[NROFARTIFACTS]; に変更してみたけど、 生成時: artifact_exists():m=129 実物でも(冒頭にoartifactの数値を+-表示させてみた): 道具 e - +129{呪}運命のオーブ(0:10) なのに一覧表示させようとすると disp_artifact_discoveries()-127 ->落ち …ちょっと表示を変更してみる。 disp_artifact_discoveries()-- [0:-127] …i=0の時に m= -127 ? (- -;) 状況整理。 ・onames.h内ではART_ORB_OF_FATEはきちんと129に設定されている(コンパイル時に自動割り振り)。 ・アイテムそのものに対する聖器としての番号(obj->oartifact)は  127を越えても記録できるよう修正した。  現に運命のオーブでは129になっている。 ・日本語変換の為のjdata.hにも'A'--"運命のオーブ"その他はきちんと設定されている模様(コンパイル時に自動割り振り)。 ・なのに。  disp_artifact_discoveries()で  mは元々int型、artidisco[NROFARTIFACTS]はxchar型だったのをint型に変更済み。  その上で   m = artidisco[i];  とすると、mに-127が代入されてしまう。  つまりartidisco[]内に129ではなく-127が登録されてしまっている。 何だそりゃ。 うーむ、個人的には init_artifacts() / save_artifacts() / restore_artifacts()の 辺りで使われている   memset() てのが怪しいと睨んでるのですが…  #ここでartidiscoを設定する時にサイズがcharの寸法分しか利用されてないとか。 これは私の手には余るかも。 ------------------------------------------------------------ 05.12.19-06.01.02 (FHSパッチver0.8.15c) 明けましておめでとう御座います。 太陰暦の方御免なさい。 これ読んでる方がどの程度いらっしゃるかは存じませんが、 今年も宜しくです。 ---- サイト更新に追われる中、陰でFHSパッチも多少はいじってたのですが、 致命的なバグが出るわ出るわ(- -;)。 実はそのうち1つは自力で解決できないんじゃないかと、 裏では冷や冷やし通しでした。 > bugfix 0176 第七聖典/ストリングフェロー・ホーキ/シルフィードを装備したPCが >       回復魔法や回復系の杖の効果を受けると,処理が無限ループに陥る これは比較的簡単に解決した方。 というより、とある処理に流用しようとしたらそちらでエラーが出たので; countの回数で処理の最初の部分に戻るかどうか決めてるのに(一定値以下の時だけ戻す)、 そのcountを増やす処理にまでcount数による制限かけるなよ、自分… =□○_ > bugfix 0177 PCが主武器を持たずに小手を装備している時,(+コマンドで)魔法一覧を >       見ようとしたり魔法を唱えようとしたりするとゲームが異常終了する こちらはてこずった方。 怪しい所をざっと見ても判らず、今日までの修正は半ばあきらめてたけど、 ひょんな事から問題点が見つかって解決。 if(uarmg) { }の条件式内で、関係ないuwep読もうとするなって… =□○_ これらを修正したver0.8.15c、公開しました。 バグ続きで済まんす(; ;)。 ---- でも実は、もう1つ懸案が残ってるんですよね。 ふと気になって、新年になってから確認してみたら案の定。 聖器数、127越えたら処理にエラーが生じるように =□○_ 現在公開しているもの(ver0.8.15c)は問題ないのです。 聖器数が127以下に収まってますから。 問題なのは、現在の手元の試験版。 >  *竹槍『リボルター』 >  *殻竿『鳥追い』 >  *鉄のサーベル『革命の剣』 > > それに加え、SLASH'EMから正義の剣を移植する事に(^^;)。 これらを追加したら、総聖器数が130になってしまったのです。 obj->oartifactはchar型なのでオーバーフロー。 その為、まずイェンダーカード(128)が効果なしの代物に。 運命のオーブ(129)とエチオピアの目(130)は更に酷く、 wizardモードで願って入手しようとした途端に(該当職でも)力を浴びてゲームが落ちる。 ならばとobj->oartifactをint型やshort型に変更してみたけれど、それでも駄目。  #同じshort型のobj->otypは1100以上あり、int型として扱っても問題無く  #処理されているので、本来なら上限にかかる訳が無いのに。 生成時にどこかの変数がcharで処理されていて引っかかってるのかもしれません。 後で確認しないと。 ------------------------------------------------------------ 05.12.03-05.12.18 ([Re:07]FHSパッチver0.8.15b) 多頭の怪物に6回以上の攻撃をさせる方法を模索中。 先日のver0.8.15でも基礎部分は実装してみてましたが。 …って、これだと首を失ったトロルの攻撃回数がガタ落ちじゃん(汗)。  #多頭の怪物については攻撃回数の限界チェック(NATTK)を  #デフォルトの頭数に差し替えるようにしていたが、  #それだと頭数以上の攻撃回数をもつ怪物も、頭の数しか攻撃出来ないようになってしまう。  #  #例えば[武器][噛み付き][噛み付き]な双頭の怪物が  #[武器][噛み付き]までで攻撃処理をやめてしまうとか。 そこらを修正しつつ、 とりあえずwizardモード専用の八つ首ヘビを試験実装してみる。   おお、8回攻撃! とりあえずボーパルブレードで首を1つ落とす。   5回攻撃。 …あり?(- -;) なんかまだまだ見落としがありそう。 もうしばらくいじってみます。 ---- 続き。 …えらく色々いじり回し修正繰り返し、どうにか成功。 mhitm()に移植した時にmonsndxエラーが続出したりもしたけど、 それもどうにか解決。  #mhitm()の冒頭では(permonstの)paもpdも値なしかい(- -;)。 その後も攻撃回数の制御がままならなかったり色々あったけど、 最終的には何とかなりました。 基本の考え方はこうです。 まずは本家における処理は: ・元々、monst.c内では6回分の攻撃が設定されている ・i=0からi=NATTKだとmonst.c内にデータが書き込まれていないので(当然)、   代わりに最後の攻撃(NATTK-1)を確認 ・多頭の怪物で、首が2つ以上残っているなら特別処理に入る  ・i-1回前の攻撃が何であるかを確認。    但しこの時、i>=NATTKだと(同上)。  ・i回目の攻撃方法が頭数に依存するタイプであれば(噛み付きとか)、処理を進める   ・i回目とi-1回前の攻撃方法を比較し、     同じ種類であれば独自に回数を勘定。     違う種類であればリセット。   ・{i+1+(現在の頭数)}がNATTk以上ならmaxattkを置き換え。     (その後の置き換えの重複を防ぐようフラグも立てておく)   ・(先に独自に勘定した回数) > (現在の頭数)であれば、現在の頭数を越えた攻撃と     判断し、continue。(次のiの処理にかかる) ・これらをクリアしたたなら、攻撃処理に移る。 おそらく、変な設定をしてしまわない限りは大丈夫でしょう(^^;)。  #最後の攻撃だけに頭数依存の攻撃を割り振るとか。  #これをしてしまうと、iと(i-1)が必ず同じ攻撃になるから…  #  #…良く考えたら問題ないやん(; ^)。 ---- SLASH'EM 7E7F2 リリース。 とりあえず変更点を、理解できるる範囲内で翻訳読み取り。 で、FHSパッチにも幾つか反映。  #重要な変更や、先行して取り入れた方がよさそうな変更が  #含まれている可能性があるので手は抜けんのです。 でも今回、あえて入れなかったのもありまして。 具体的には(導入時に修正済みだった)qの怪物関係と、これ。 > ◆Fixed bug 1104713: Pet and Frozen food stores can charge >     (ペット専門店/冷凍食品店に充填サービスが含まれている) これの原因は両店とも「充填可能な品物を売ってないのに 店の分類がTOOL_CLASSだった」為なのですが、 FHSパッチでは  ・冷凍食品店は既にFOOD_CLASSになっているし  ・ペット専門店では(充填可能になった)モンスターボールを扱ってるし なので、改めて設定をいじる必要性がなかったり(^^;)。 ---- 無印聖器、増やしてみました。 以前書いた > ・極力追加したい聖器 > ・案があれば追加してもよい聖器 の中でも、とりあえず >  ・中立のフレイル を実装したくて。 聖器効果としても、現在は 「中立に2倍(レカエルブ・アルビル)」「混沌に2倍(正義の天秤)」はあっても 「秩序に2倍」がないし。 でもフレイルによさげな名称案ってなかなか無いんですよね… 天秤座ネタは上の2つで既に使ってるし。 とりあえず実装してみる。  *フレイル『ブレインストーム』(Brainstorm)   精神をもつ相手に対し2倍ダメージ.   精神をもつ相手を朦朧とさせる事がある. …レカエルブと効果がダブるので,実装後約30秒でボツ。 ではこのネタで…  *殻竿『リボルター』(Revolter)   秩序の相手に対し2倍ダメージ.   騎士,侍,および支配階級に対して2〜3倍のダメージ.   invokeにより争い効果on-off可能. うーむ、効果範囲が広すぎる。 それに「一揆」と言ったら竹槍でしょう(ぉ)。  #そもそも、いつかは聖器も実装するつもりで  #竹槍を先行実装したんだし。 という事で竹槍と殻竿の2つの聖器に分けてみたけど、 そうなると殻竿が秩序相手というのはどうにもイメージしにくい。 …結局、新規聖器が3つに分化。  *竹槍『リボルター』  *殻竿『鳥追い』  *鉄のサーベル『革命の剣』 それに加え、SLASH'EMから正義の剣を移植する事に(^^;)。 ちなみに革命の剣の元ネタは、革命がどうのというのがテーマらしい某作品より。中身良く知らないけど。 素武器は、小剣技能なレイピアとどっちにするか迷ったけど、スキル分布を考えてサーベルに。  #日本刀以外の曲刀ネタって案外思いつかなくて。 作品中には銘入りの剣も二振りほどあるようでしたが、どちらも採用せず無銘でいく事に。 オシリスの剣とかいう剣の方が強いようだけど何かピンと来ないし、 おまけにアンデッドスレイヤーの神名と重なりますしね。 もう1本の方? 一応「ディオスの剣」というらしいですが、   #invokeで HPを1d8回復 なんてギャグ以外のナニモノでもないんで却下(^^;);;;。 ---- そういえばピッチフォークの聖器ってどんなのになるんだろ。 jdata.baseで引用している『イワンの馬鹿』をもとに考えてみる。  ・対悪魔2倍(秩序以外の聖器で、他に効果付け加えるなら構わんでしょ)  ・装備すると知性が下がる  ・装備中は店主にふっかけられる  ・装備中は敵が攻撃をためらう事がある  ・#invokeか何かで藁が兵士に変化    下手に藁のゴーレムがいる階で使うと大量の兵士がわらわら(^^;)。  ・同じく#invokeか何かで「木の葉(ユーカリの葉とか)」が金貨に変化    1枚=1Gに変化するのなら有りかも。  ・治療は…欲張りすぎかなあ。 うーん、結構いいかも(ぇ)。 実装するにしても後回しだけど、とりあえず名称案の下調べだけでも。 えーと、DURAKEが英語のfoolにあたるらしいから、ならロシア語でのpitchforkは…   вилы pitch fork   Вилка тангажа hand、arm、tool…   рука рукоятка инструмент …大人しく英語使うかぁ(; ^)。 ---- mkroom.cでの特殊部屋の怪物生成処理のコードがぐちゃぐちゃになってきたので、 switch文を使って全面書き換え。 一応どうなってるかwizardモードで試験。 試験と言っても、怪物を探す薬を飲んでレベルテレポートで潜っていくという単純な物だけど。 牧場、オークの兵舎、庭園、蜂の巣などなど…   デビット宝箱動物園にようこそ! 52枚の金貨. え゛? 部屋の中はすっからかん。 …生成処理内での(struct permonst *)0って、省略しちゃいけなかったんですね… =□○_  #フェイルセーフ用かと思い生成処理自体を行わせていなかった。  #まさか動物園でランダムな怪物生成に利用してたとは。 他にも王家の墓のメッセージにも改善したい点が見つかったし。  #今回から中央に幽霊系が配置される事があるようにしたので、  #今のままだと「墓所の主は不在」というメッセージになってしまう。 ---- そうこうしている時に、突然多量のエラーメッセージ。 どうも怪物の生成に失敗したらしいけど。 確認してみると、ギルドMapでこの現象が起きている模様。 しかも,最後に表示された「生成に失敗した怪物数」から推測すると、 どうも機械化冒険者達のMapで起こっているような。 普通の冒険者Mapならともかく、機械化冒険者Mapなら最近も見たような気がしたのにと思いつつ、 ver0.8.15でも確認してみる。 …こっちでも起きるやん; =□○_ 比較用にとver0.8.14のソースまで引っ張り出すはめに。 …機械化冒険者を鉄製(の怪物)にしたのが原因かい… =□○_  #ver0.8.15でゴーレム扱いになるようにしたが、  #ゴーレムならば同時に設定すべきgolemhp()でHPの設定がなされない為,  #怪物自体の生成に失敗していた. あともう一つ、上の試験中に突然起きた迷宮崩壊。 一度だけで再現性もなく、どう扱えばいいのか対処に困りましたが、 とりあえずmkclass()に不適切な値を送ったのが原因らしいので、 自作の、しかも該当箇所で変数を送っているものを徹底調査。 …Platoon(小隊)処理が原因かい… =□○_  #怪物のクラス番号ではなく怪物毎の番号(値がオーバーフローする)を  #mkclass()に送ってしまうケースがあった為. ---- という訳で、セーブデータに影響のない(と思われる)範囲で 最低限の修正を施したver0.8.15b、緊急公開。 バグ続きでごめんなさい; ------------------------------------------------------------ 05.11.24-05.12.02 ([Re:07]FHSパッチver0.8.15) うぬぬぬぬ。 聖器のinvoke効果をもとに新たな巻物を実装してみたのですが、 水の満ち引きを間違えたり、 干上がらせる時に氷の地形が干上がらなかったり、 生成地形の選択がオーバーフローしてたのか岩壁を生成してたり、 生成中に足元の水たまりに落ち、はい上がった所を中心に続きの生成が行われたり、 水に落ちた時に巻物の文字が消えてたので白紙の巻物が手元に残り、 おまけに読んた事による識別済みチェックが入ったのが白紙の巻物だったり、 それを避ける為に先に巻物を消滅させたらinvoke処理の方にobjが回らず迷宮崩壊したり、 それを直しても迷宮崩壊するから何かと思ったら、途中でobjを消滅させた時は 最後にseffect()から0ではなく1を返さなければならなかったり、 まあぼろぼろとボロが出るわ出るわ(- -;)。 その後も、聖器のinvoke効果も含めてあれこれ修正。てか大改造。 メッセージ1つとっても、水が湧き出す場合は干上がらせる時とは違い、 「足元から水が〜」なメッセージは使用者が水中に落ちる前に表示しなければ ならなくて、えらく苦労したり。 ---- そんなこんなでしたが、なんとかver0.8.15公開。 木のゴーレム倒したら落ちるようなバグ、いつまでも放置しておけないですし。 ------------------------------------------------------------ 05.11.14-05.11.23 ([Re:06]FHSパッチver0.8.15[未公開]) ランダムクエスト用の追加クエスト案をメモ書き。  騎士その2(Q_KNIGHT2)  原典:Fate 原典に関してはとことん調査不足なのですが、 とりあえず守護騎士(?)達には「魔力の注入」が必要らしいという話を小耳に挟んだので… どうやって注入するのかは存じませんが、  初期装備:  +2 {祝福} 精神注入棒と名づけられた木刀  +0 {祝福} 学生服  +0 {祝福} 革の手袋  +0 {祝福} 革靴  +0 {祝福} 赤丸印のハチマキ  3-5個の {祝福} やきいも 何やらフェイトとゆーのは最燃(萌)え魔法少女のライバルらしいので、  宿敵:暗きもの(魔法使いの宿敵と共通) でもって、  Q聖器:運命のオーブ(The Orb of Fate) あと未定。 …いえネタですから(^^;)。 閑話休題。 --- にうきゃら掲示板(避難所)であれこれやり取りしつつ、 井出さんが作成された耳栓の実装テスト。 音の聞こえる聞こえないにはflags.soundokフラグが関係しているようだったので、 これの利用を試みる。 失敗。 そもそもゲーム内オプションで切り替え可能なフラグを 半恒久的に用いようというのが間違いなのですが。  #soundオプションがそれにあたるらしい。 となると、flags.soundokの関係する箇所すべてに手を加える必要がある訳で… 時間かかりそうだなあ. まあ、時間みながら進めてみます(実行する気かい>自分). --- そうそう、その他の実装について。 プレイ曜日の確認処理は以前作ってたけど、それの利用法を拡大してみました。 曜日によって特定の聖器が多少パワーUpします。 で、新たに季節の確認処理も作ってみたり。 ↑は既にbeta1に入ってますね. 抹殺の巻物、RJNHから移植してみました。 TNGの大量殺戮の巻物も参考にしたり、処理を変えたりしてみたけど。 応用で、革の小手『風穴』も実装してみる。 …と簡単に書いてはいますが、実際には   invokeの抹殺効果は強いかなと思い僧侶限定の聖器にしたり、   種族抹殺は強すぎると思って行わせないようにしたり、   更に抹殺の強さを制限する為に抹殺対象を「PCが感知している怪物」限定にしたり、   入力名の怪物が見える範囲内にいなかった時の為にdo_erasuer()に戻り値つけたり、   更に吸い込んだ怪物の特殊効果(死体の時の)の影響を被るように戻り値に手を加えたり(今は中身の処理を組んでいませんが)、   被呪時の効果を発揮させてしまうと半無限召喚アイテムと化してしまうのでやめにしたり。 結構色々いじっているのです. で、ここまで実装しておきながら、 やはり視界内の怪物複数吸い込みの方が良いのかなあと思ってみたりみなかったり(^^;)。 ---- ようやく実装のメドがついたので、店主の追加サービスでのかねてからの悲願 「ろうそく作成」の実装にかかる。  #本来考えてた蜜ロウの利用方法です. 他のサービスを参考にしつつ処理を組み,いざ試験。   どれをmake candleか?[mnyA-DFGIL-Q or ?*] う、のっけから和訳もれ。 しかも材料リストに食料品全部登場してるし。 そうした細部は後で直すとして、今はとりあえず加工を、と。   D - 6つの{普通}candle. …あら?(- -;) ろうそく化した後のアイテム名にも間違いは無いはずなのに、 なぜこれも和訳されてないんだろう。 不安を感じつつ識別。   D - 6つの{普通}wax candle. L - {普通}[19]magic candle. おいおい(汗)。 しかも魔法のろうそくの方には「特別製」フラグが残ってるし。  #[19]というのはwizardモード独自の表示ですが。 それに良く見ると、アイテム種別が「食料」のままのやうな(汗汗)。  #本来のろうそく類は「道具」です。 大いに不安を感じつつ点灯してみる。   wax candleの全てに火をつけますか? [yn] (n)   f - 5つの{普通}wax candle. wax candleは明るく燃えあがった! あ、一応火はつくんだ。 一歩動いて、と…   i - 2本の蜜蝋のろうそく(未払い,4ゴールド). wax candleは燃えつきた!   炎は消えた. …寿命1ターンかよ、をい! うーむ、やはりobj->otypだけを変更するのはまずいのか。 ワームの歯<-->クリスナイフの処理ではこうなってたから、いけるかと思ったんだけど… 素直にpoly_obj()使おう(ぉ)。 ---- 耳栓実装に伴い、 蜜ロウを耳栓代わりに使う事もできるようにしてみる。 なんか実際には   あなたは蜜の塊を耳につめる. とか、   あなたは蜜の塊をはずした. あなたは蜜の塊をはずした. とか色々やってましたが(^^;)。 Deafnessチェックも、上の方で述べた > flags.soundokの関係する箇所すべてに手を加える という強引極まりない力技で一応クリア。 ---- さてと、未だバランス悪そうなLv4怪物達をどうしよう。  #ドラゴンの子供が大量に移植された為、  #ドラゴンの子供が登場しやすくなっている(体感)。 11/23現在、通常階で登場し得る怪物に限定すると Lv4全体で63種類のうちドラゴンの子供は11種類。 その比率、約1/6。 これを1/7程度にできれば、Lv3怪物におけるナーガの雛と 大体同じ比率になり、少しは緩和されて感じる(と思う)んだけど。 その為には10種類以上のLv4怪物を投入しなきゃならん訳で。 あまり凶悪なのばかり入れる訳にもいかないし。  #例えば毒持ちの兇暴犬類達も結構凶悪かも。  #なのでこれ以上増やす訳にはいかない。 かといって代わり映えしない怪物ばかり追加するのも何だしねえ。 動物系も色々と実装してはみたけど、 犬類猫類昆虫類に頼らないようにすると(彼奴らも結構素早くて手強そうなのが多い) あと思いつくのでメジャーで未実装なのは鹿くらいのものです; 案ぼしう(T T)。 ------------------------------------------------------------ →これ以前は別Fileにて。