------------------------------------------------------------ FHS patch (Funny-Honey-Spit patch) 蛇足メモ File:honey***.diff ver.:ver*** 対応variant:JNetHack3.4.3-0.3用 作成者:Sakusha Shiganai ------------------------------------------------------------ ------------------------------------------------------------ 雑記 ------------------------------------------------------------ [04.07.23 これ以降は別ファイルにて。] ------------------------------------------------------------ 04.07.18-22 (FHS patch ver0.8.01 [未公開]) という訳で、てんやわんやしながらも18日にver0.8.00公開。  #いきなり飛んだのではなく、今までのバージョン表記がまずかっただけ。  #原型が“ハチミツ”パッチだからバージョン勘定も8進数にすべきだったのがいつの間にか…(^^;) しかし前回の特殊部屋設定中に、やはり乱数の隔たりがあるのをひしひしと感じたなあ。 何故か兵舎や蜂の巣がとんと出てこなくなったし、その割に蟻の巣や巨人の玉座の間は毎度の様に出てくるし… これはいよいよ努力してbrassの乱数関係解読して、移植させて頂かないと駄目なのかなあ。 忘れないうちにメモ書き: 特殊部屋:蟲毒部屋。 --- まずは米国黒鼠のメッセージを大幅改訂。 天使のようにしゃべりまくるようにしました。  #やり方はわかってきたから、気が向いたらいよいよチェインソードの実装にかかるかなあ。  #ソース内にメッセージ書き込むというhard wiredな実装しかできないけど。 その後、Burstパッチの不確定名表示を改良しようとするも大失敗。  #ようやく複種類のデータを{ }でくくる配列を理解できたけど、  #それをしたらバイナリィサイズが更に跳ね上がって =□○_  #おまけに、それの解消も兼ねて小手靴クロークで不確定名を共用しようとしたら  #一覧に「オークの盾外套」とか「〜の○○amnesia」とか… 気を取り直してdungeon growthパッチの導入にかかる。 使われていたのはSLASH'EMだったけど、製作者のサイトがあったのでそちらからも導入して比較。 ふむ、元の側は3.4.0用だったけど、比較してみるとほとんど変わり無し、か。  #SLASH'EM側ではmay_dig()の判定が一箇所に追加されているだけ。 一応移植してコンパイル。…「プロトタイプ宣言のない関数」警告がどかどか出るなあ。何じゃこりゃ。 なのでそれらを指定して警告をつぶす。  #xcharやxchar * の扱いに滅茶苦茶苦労したけど。 しかしこれで出るって事は、SLASH'EMでも同じトコの警告出てるって事だよなあ。直す気ないのか製作者チーム?  #確認してみたら他にも嫌になるほど警告出るし。  #一応、JSLASH'EMには修正ファイルとして投稿しておこう。 このパッチで何が起きるか具体的なものは確かめていないけれど、 どうやら木から果物が落ちたり、地面や水中にある植物類が時間と共に成長(増加)したり、 他にもいろいろ迷宮内の息づきを表現するものらしい。 …となると、今はとりあえず全種類のハーブを対象にしてたけど、 内訳を少し練り直した方がいいのかな…  #キイチゴの実を地面においても“果実の”数が増えたりはしないでしょ。 それに、今の状態だと成長条件は普通の地面か水中かの二択のように見えるから、 できれば湿地なんていう条件も加えてみたいなあ。  #ハーブ毎に個性を出せるから。 ->加えてみてテスト中。(一度、1歩歩いた途端に落ちるバグが…(- -;) >修正済み)   しかしこれって、もしかしてハーブの種類を増やすほど成長しにくくなる?   レンバス+仙豆を各20個近く食べて足踏みしてもほとんど増えないんだけど。    #dgn_growths()でハーブの種類を一覧の中からランダムに選択した後、    #マップのランダムな1箇所にそのハーブがあるかどうかを調べにかかる。    #その為、ハーブの一覧の中身が増えると「当たり」を引く確立が減る? ------------------------------------------------------------ 04.07.11-17 [Re:3](FHS patch ver0.992+? [未公開]) 今回、長いです。 --- > カーニバルレイ(仮称) 実装してみました。 この為に「酸の噴射」をThe Next Generationから移植、「毒の噴射」を新規追加。  #と言ってもそれぞれの光線名を追加しただけだけど。  #(処理自体は他の光線と共通に設定されていて、表示名だけが空白だった) 当初は発射位置指定がちぐはぐで、光線がすだれ状(^^;)になったり 光線がなかなか命中地点を通らなかったり(^^;);;;したけど、  #でもこういう本当の「乱舞」もいいかも。 それもなんとか修正して試験。   …かなり凶悪なんですけど…(((- -;))) 何せ一発一発のダメージは大した事ないとはいえ、 1/8の確率で死の光線が飛んでくるし、 1/8の確率で眠り光線で強制的に眠らされるし。 おまけに爆発と違って壁での反射があるから、 例えば通路で壁と垂直に光線が発射されたら、徹底的に反射光線を浴びまくる事になる訳で。 適切な防御手段が無いと脅威っすな。 ちなみに使用者も只じゃ済まないんですよね。 1/8の確率で放った者に向けて飛んでくるし。 今はほぼ8発かそれ以上光線を撃つ仕様になっているけど、 もう少し減らした方がいいのかな… (- -:) 生成率もマジカル花火より減らした方がいいような。 あ、これやcarnival_blastの「芯をずらした爆発/光線」は 独自の処理を作ってしまってもいいかも。  ->作りました。   同時に、今まで分散していた各種爆発毒の処理を、まとめてvenom_explode()で行える   ように変更(venom_explode()から従来の処理に振り分けているだけだけど)。   それと、粘液で扱っていた減速処理を独立させ、爆発型でも使える様に。   幽界の網もやってみようとしたけど…ダメージ処理が複雑な為結局断念。    #ダメージをHPとMPに振り分けたり、怪物に対してはMPダメージの代わりに    #mconfやmstunを与えたりしているからなあ… --- ぎゃーっ!! 地面に置いたクリスマスケーキほおばったら、迷宮が崩れた(> <;) この箇所ではいきなりアイテムを消滅させているので、それが原因らしい。 以前に直せたとばかり思ってたけど、まだバグが潜んでたか…  #以前は地雷の誘爆でケーキが消し飛んで二重消去になるのが原因かと思ってた。 でも食べ始めに効果発揮させないと意味ないし、効果を発揮させた以上 アイテムの数を減らさないといけないし(でないと無限使用できてしまう)… しかし改めていじってみると、useup()もobfree()も駄目だなあ。 どうやって直したものか。 …結局、otmp->quan -= 1L という単純な処理で解決(- -;)。 ->と、思っていたのですが…(続きは後ほど)  #蛇足:地雷の上に物置いて誘爆させると…  #細かすぎ(^^;)。 --- 折角新しい光線を実装したので、毒/酸の杖も実装してみる。 酸の方は、最近になって3.4ベースに移植されたThe Next Generationをもとに…   …杖として必要な色んな処理がすっぽ抜けてるじゃん =□○_ (例えばapplyとかengraveとか)   それに酸としての処理も実情に合ってないし。(耐性とか装備腐食処理とか) 3.2時代のを引っ張り出して確認してみたけど、どうやら元々zap.c辺りでしか扱っていないらしい。 半端すぎ。この時代から炎の杖などにはそれらの効果全て実装されてるのに。 他の杖を参考に、全部追加しましたよ。ええ。 ちなみに毒の杖も実装したのは、一つにはこの方が処理が共通化できて楽だったから(^^;)。  #攻撃属性(AD_****)との絡みで、毒の箇所だけ空けるより隙間無く詰めた方が計算しやすい様なのですよ。 挙動はJSLASH'EMの毒吹きの呪文を参考に。 …あわわ、自分に振った時のメッセージが変だ(> <;)。  #JSLASH'EMの翻訳時に、杖破壊と混同してた… --- Funnyパッチ、大量の不確定名はFunny-Burstパッチとして切り離してしまったので、原典回帰&新機軸を求める為に色々とイメージ主体の実装をしてみる。 オーク関係をいじったのはその一環。 しかしウルクハイって、指輪物語追補編ではサウロンの手の者もいたとか書いてあったように思うけど、NetHackのはサルマンの手先を意識してるんだろうなあ。 モルドール出身のウルクハイを出しても大丈夫なのだろうか…うーん。 アメリカクロネズミ? ああそれなら(検閲削除)  #人種問題でない事だけは明記しておきます。 --- 新たな特殊部屋「王家の墓」の実装に挑戦。同時に各種ミイラも追加。  #本当はオーガのミイラが欲しい所だけど…強さどうしよう。  #もっと直接攻撃の強いミイラも欲しい所だけど…ドラゴンのミイラなんて似合わないし  #ミイラ化しそうな敵で巨人以上に殴りの強いのってちょっと思いつかないなあ。  #  #あとはミイラ取りのミイラとか義理のマミーとか?(^^;) とりあえずコンパイル。 …玉座の位置が一定してないからファラオのミイラが登場しないなあ。  #玉座の位置にファラオのミイラを配置するようにしていた。 ならば蜂の巣も参考にして、玉座の位置に関わらず中央にファラオを配置するようにするか。 fill_zoo()での処理を前後させて、部屋寸設定(蜂の巣の処理)の後に玉座配置(玉座の間の処理)を持ってきて、王家の墓の場合は両方の処理を連続させて… で、再試験。   …玉座が部屋の入り口にあるぅ(爆笑)!   別の階だと岩の中に埋まってるぅ(大爆笑)!! しまった逆だったか(^^;)。  #tx,tyをいじくる為、玉座配置→蜂の巣の部屋寸設定という順番でなければ座標がバグるとは…。 これを直したら、玉座もきちんとファラオの足元に生成されるようになりました。めでたしめでたし。 …部屋の中央に玉座が来るけど、まあそれはそれで(^^;) オークの詰め所とかオーガのねぐらとかも用意しますかねえ。 --- で、オークの兵舎を実装し、JSLASH'EMからも幾つかの特殊部屋を導入してみました。 導入中に、ハーブの成長システムも見つけてしまったり。 うーん、これはぜひハーブパッチに取り込みたいけど、今はソースのどことどこに処理が追加されているか分からないなあ。  #とりあえずDRY/WET辺りが関係していそう。  #以前にもgrow patchなるものがSLASH'EMに入っていそうなのは分かっていたのですが、  #モールド限定かと思っていたのですよ。  #ALIページにこのパッチってあったっけ? パッチ状態で入手できれば、どの辺りが関係するか一目瞭然なんだけど… で、その確認中に、うさだケーキと死の杖でドラゴンの群れと戦っていたのですが… あれ?ダメージが火炎ダメージになってるなあ。  #意図していた仕様は「投げたら火炎ダメージ、○○た時には物理ダメージ」の  #はずだったんだけど。 まあそこらは後で確認するかと思いつつ戦闘継続。 と、いきなり出てきた数値入りメッセージ。 慌てて持ち物を確認してみると、   -1個のうさだケーキ? (滝汗) ままままずい、単にobj->quanを削っているだけだからこんな事になるのか(今回の雑記の前半参照)。 これは何が何でも直さないと。  どの道を取るかはまだ決めてないけどとりあえず思いつく対策案:  1[易?]:useup()を復活させ、とりあえず足元のケーキは食わせないようにする     「まあ!何て(お行儀が悪い/はしたない)!」  2[不明]:SLASH'EMの火器の処理が流用できそうならそれを使う     そういえばSLASH'EMの火器って、食ったらどういう処理してるんだろ。     爆発物もあったはずだけど。  3[難?]:inventに入っているかどうかで個数減数処理を変える     (しかし何を参考にすればいいやら) とりあえず、これの対策に専念してみますわ (T T)/  ->修正完了。   結局2は処理自体が存在しなかったので、pray.cで見つけた処理をもとに3の方法で修正。   むう、useup()とは別にuseupf() [床アイテム専用] があったとは。 あとは太鼓の処理を完成させるか…。 ------------------------------------------------------------ 04.07.07-10 [Re:2](FHS patch ver0.992+? [未公開]) > > > ハーブ そういえば、薬の場合はdocall()で仮の名をつけるケースもありましたね。 でもこれまで考慮すると複雑になりすぎて訳わからなくなりそう… 一応実装できる所からという事で、一部のハーブに個性を持たせてみたり。 そして > 怪物がハーブを能動的に利用 できるようにしました。 それと共に、怪物(ペット)が「食事として」食べた時にも、一部なりとも効果が出るように追加。 ちなみに従来は、ペットが食事により被る効果は「変化」「LVアップ」「HP完全回復」の3種類だけでした。 今回は、とりあえず「変化」「LVアップ」のハーブにそれらの効果を持たせ、 更に「食べた物の回復量に応じたHP回復+盲目治療」を追加。  #というより、muse.cでの薬やハーブによる怪物の回復処理を独立させて共用。 よく見たらこの辺の処理は、魔法では別口になってるんですな。さてどうしよう。 他の効果も実装しようと思えばできるけど、今の所は様子見。  #uhitm.cやmhitm.cで怪物に与えうる効果なら実装は楽。  #でもハーブで効果が発揮されるなら死体でも発揮されるべきかと。  #例えばマタタビで酔っ払わせるなら、こうもりの死体でも酔わせるのが自然。  #同様の理由で、ペットが透明になったり混乱したり眠ったり加速/減速したり…むう。 --- 一方、explodeの改善はそれほどきっちり行ってないです(^^;)。 各状態異常処理の関数名がvenom_**()とmake_**()がごっちゃになってたのをvenom_**に統一(病気以外)したり、 各状態異常処理にPCによるものかどうかの判定を加えて、PCによるものなら怪物を怒らせてみたり、 expl_dmgtype()で爆発毒の種類判定をする時に、独自の数値を返してしたのをAD_****に準じるようにしたり、 どうにか穴掘り効果だけは分離して独立関数にしてみたり。 う、carnival_blast()に爆心地点での穴掘り追加してみたら、マジカル花火でも穴があくように(汗)。 これは修正しておかないと… あ、訳のわからん状態だったholywoodの処理、錬金とハーブの処理をもとに修正しました。 --- さてと、これで実用になるかな… と、思ってたら。 JNetHackのbug fix #4591で、薬の名称の処理方法ががらりと変わってる! あわわ(@ @;)  #jtrnsobj.datにて、薬の名称の後部の「薬」の文字がごっそり削られている。 どどどどうしよう、3.4.3-0.3が出た以降はbugfixはあまり反映させてなかったけど(ぉぃ)、 これは組み込まないと駄目か…? 合わせるとなると、Honeyパッチじゃ現在は不確定名が「小瓶」、確定名が「薬」だからなあ。 処理部を確認して対応しないと。 それに改定箇所の詰め合わせもまた作っておかなきゃな。 嗚呼、また個別移植か…?  #Win用GNUによるpatchあては、当たらない箇所が確認しづらい(当てそこねたファイルが2つ以上  #あったら、最後の記録以外は消えてしまう)のと、個別にパッチ抜き出すのが結局手間な事があり、  #こういう時には信頼性が低い。 ->結局、本家ファイルの状態で変更箇所のdiffをとって、手作業で現在のパッチ付きファイルに移植or反映。 ------------------------------------------------------------ 04.07.**-06 [Re](FHS patch ver0.992+? [未公開]) >   食料品はまともに不確定名を表示してくれない(T T) うわ、そういえば今回は不確定名を有効にしていなかったか(汗)。 でもこの辺りは以前に散々振り回された部分だから、出来れば二度と触れたくないんだよなあ。  #綾波使いさんはこの辺りの解決案をお持ちなのだろうか。  #クッキーにもフラストレーションにも関係する所だし。 閑話休題。 --- よし、 > > ハーブ の実装色々と成功! …済みません、SLASH'EMのデバッグもせずにハーブ実装に集中してました。  #自分が翻訳加えた箇所でぼろぼろボロが出ているような…(- -;)。  #So-Miyaさんお手を煩わせてしまって御免なさい(_ _;)。 --- で、ハーブの実装状況。  各種ハーブの作成。具体的には「薬の不確定名」=「ハーブの正式名」。   #最初はorangeが入ってたのでコンパイル時に「二重定義だ」と怒られたけど(^^;)。  ハーブの名前から、対応する薬を割り出す――成功。  逆に、特定の薬の効果をもつハーブを選択生成――成功。  各ハーブに、対応する薬の効果を(弱めて)持たせる――成功。  食べたハーブの効果が判明した場合、対応する薬を識別済みにする――成功。  雑草を含めた、又は含めない、ハーブのランダム生成――成功。  薬師の持つ初期の薬類を、一定確率でハーブ類に変更――成功。 ここまで出来たのも、SLASH'EMの宝石錬金術とRJNHの生成物差し替え技術があったからこそ。 先人達の技術に感謝。 現在は、怪物がハーブを能動的に利用するようにできないか検討中。 ------------------------------------------------------------ 04.07.02- (FHS patch ver0.992+? [未公開]) > ・力25でPCに岩を投げさせたり壁を掘らせたり 試しに、力25の戦士にthrows_rocks()の能力を持たせてみる。  #戦士を選んだのは、独立パッチとして確立しているので  #後からのキャラ変更時の手本にできるかと思ったから。 おお、岩を押しても動かない状態の時に、岩の場所に移動して拾ってくれるのか。 続けて同様にtunnels()の能力も持たせてみる。わざとneedspick()はつけず。   …石壁かじってるよ(- -;)     #しかもかじり続けてたらいつの間にか満腹になってたし。 あとこのままだと岩や石像を破壊できないか。 つるはしのルーチン流用するにしても別処理させるにしても、色々改造する必要がありそうだなあ。  #該当状態のPCをhard_puncherとして登録するのがいいかな? そうそう、この状態で倉庫番に行ったらえらく楽だった(動かない岩に重なったり、 その後別方向に抜ける事ができる)ので、その点は対策しないと。 満足行く状態にするまで時間かかりそう… --- > ハーブ 一応、正式名を「能力獲得の薬草」等にすれば、descその他は解決しそうな気がします。 ただ、現在唯一にして致命的な問題:   食料品はまともに不確定名を表示してくれない(T T) 蜜類の時にもあった問題。何が枷になってるってんだよ… #死体の名前が不確定名だと困るとかそんな理由からかもしれないけど。 薬の不確定名の「ステビア(の小瓶)」等を冠したアイテムを作るのも手だけど、 Funnyパッチの不確定名&ジンの増加方針と真っ向からぶつかるしなあ… あ、そういえば今の状態だと酸の薬に薬草を#dipしようとしても出来ない(「面白い…」)けど、 こちらは簡単に直せるでしょう、多分。 --- 上記の続き。発想を転換してみたらうまくいきそう。 うーん、でもこのままだと例の新規ジン達が活躍できないなあ。 基本はうまくいったから、これから先実用化するまでにしなきゃならん事:  ・各ハーフに効果をもたせる  ・#dipしたらハーブを消費するようにする 可能なら手を伸ばしてみたい事:  ・薬の不確定名の効果をいじる。新規ジン達の再登場をもくろんで。  ・できれば摘んだらしおれるとか、水に#dipしたら元気になるとか(でも再度根付いたりはしない)、   摘んだら低確率で蜂が飛んでくる(^^;)とか。  ・できれば専用部屋とか。少なくとも薬師のクエストマップには登場させなきゃ駄目でしょ。 自分の力ではホントに出来るかわからん空想:  ・「空瓶」の導入。ハーブを空瓶に#dipすると薬に。なお自然生成はされないが、薬を飲んだら空瓶が残る。 1つ1つの内容を考えると、案外いろいろ作業や調整がいるなあ f(- -)。 --- あと、余裕があれば爆発系処理の改良も手がけたい所。  ・一部毒液で合成されてしまっている効果(砲弾の穴掘りとか風の対空効果とか水の撃墜とか)の分離。   別にプログラムをSLASH'EM準拠にするつもりも無いけど、分離できればした方が何かと扱い易そう。  ・できればexpl_dmgtype()の改良とか。今は独自の数値を送っているが、AD_****なりitemNo.なり送るようにした方がいいかも。 ------------------------------------------------------------ 04.06.25-07.01 (FHS patch ver0.992+? [未公開]) SLASH'EMの作業のかたわら、こちらも少しずつ > > ファイルのどの部分をいじったかファイル単位で > > コメントを変更者の名前とともに書いて みたり、巨大化しすぎたFHSパッチのカチ割りを試みてたり。 具体的には: ・翼/マント関係 ・バイナリィファイルの分量が跳ね上がる原因だった、Funnyパッチの  「そのジャンルのアイテム数の数倍〜十数倍に及ぶ多量の不確定名」   (但し薬の不確定名の問題もあり、Funnyパッチの使用を前提とする) などを別パッチとして分離しようかと。 最近思いついた新機軸も入れてみたいものですが、さてうまくいくかどうか… ・カーニバルレイ(仮称)。命中地点に向けて各種光線を乱舞させる。ぶっちゃけマジカル花火の光線版。 ・力25でPCに岩を投げさせたり壁を掘らせたりしてみたい。 ところで「既存の配列から一定数の単語を抜き出して並べた新たな配列」を、ゲームプレイ毎に設定する事は 可能でしょうか? >識者の方々  #具体的には「そのプレイでの薬の不確定名を並べた配列」を作りたい。  #勿論、該当プレイ中はずっと保持。  #これが出来れば、その配列を流用した“ハーブ”を登場させる事ができる…かも。  #(ハーブを何らかの手段で加工すると該当の不確定名の薬になる) しばらくはSLASH'EMとの並行作業になりそうなので、次回のupはかなり先の事になるかもしれません。 ------------------------------------------------------------ 04.06.21-24 (FHS patch ver0.992) 只今、半分気が抜けた状態です f(- -)。 暑さのせいもあるかも。 たま〜に新案の実装(チェーンソードとかフレームトーチとか新職業「パーマン」とか)を考える時もあるけど、どうも新しい事に挑戦するだけの気力が沸かず。 前回AD_SGLDの反撃実装に失敗したんで七尺の大イタチもお蔵入りだし。 なので今回のverは細かい箇所の調整に終始。 ちょっとまずい点が見つかったのでそれの修正も兼ねてます。 アイテム等のテーブルはいじっていないので、ver0.991のセーブデータがそのまま使えるはずです。 --- So-Miyaさんの日記04.06.21より。 > JSlash'EMパッチもファイルのどの部分をいじったかファイル単位で > コメントを変更者の名前とともに書いておかなきゃいけないんだろうなぁ。 むう、FHSパッチやCastleパッチもあちこち書いておく必要があるのかな。 すさまじい量になりそうだけど… (- -;) 次回以降(これ以上何か追加実装した時)に検討します。 今のverに注意書きだけつけて新verを名乗る訳にもいかないので… --- ちなみに今回の変更に含まれるコレ、 >蛸、ナメクジ、蔦系怪物の身体各部の名称をより正確に表示するようにした まあ各怪物がjelly_parts[]に分類されるようにしただけなんですけどね。 ------------------------------------------------------------ 04.06.15-20 (FHS patch ver0.991、Castle patch ver0.991) medusaマップ、移植はさっくり終了。新規マップ設定にかかる。 基本は鉄砲魚と蛸の毒液対空砲火。あと青銅のゴーレムなども配置。 あれやこれやといじって何とかそれなりの形に。 コンパイルして色々直してさあ確認。   …水中にいるゴーレムが動かないよ=□○_ よく見てみたらゴーレム類ってM1_SWIM持ってないし。 水中行動するには泳げなくちゃ駄目なのか… せめて水中から毒液吐ければ良かったんだけど、泳げない怪物はそれも出来ないみたい。むう。  #小島に立たせて固定砲台にする事なら出来そうだけど。 ->という訳で、新たに水中用ゴーレム作ってしまいました(^^;)。  でも単にCastleパッチに加えただけだとパッチ当ての時に競合してしまう恐れが大なので、  FHSパッチの方はゴーレムを最初から登録しておく事に。  (FHSパッチをまとめたのもその為。初期は各パッチのかみ合わせに無駄な時間とられてたし) --- 他いろいろ。 不確定名の処理部がもっとスマートになるようまとめ中。この辺は以前何度か失敗した末に個別処理にしたという経緯がありまして…。 それでも共通化の為に少しずつ各部の改良を進めてました。今回はそれを足がかりに徐々に統合。 とりあえず防具類を一箇所にまとめる事に成功。 それと共に兜の不確定名をいろいろ追加。指輪や魔除けや杖から流用したり、例の資料から兜だけ先取りして(と言ってもあまり無かったけど)「丸い兜」等を追加したり。 水系毒液に強制撃墜機能を追加。それと一緒に翼やメッセージ関係も色々修正。 試験してみたら落ちる落ちる… 一回の落下で何度も水に浸からなくていいから(- -;)  #命中時に受ける事があるwater_damage()内で、翼に対して(飛行中かどうかにかかわらず)強制的にwing_power_off()をかけていた。  #一方、wing_power_off()内には強制落下fall_down()が組み込まれている為、  #水上で受けると、パワーoff→水中落下→落下時の水濡れでパワーoff→再び水中… といういや〜なループに… いろいろ直して再試験。落ちる落ちる…ゲーム自体が(- -;);;;  #stun判定にて効果が無かった時に表示するレジスト文の挿入位置が原因でした。  #PCが浴びた時にも怪物の分まで表示しようとした為に多分mtmp周りで引っかかってた。 AD_SGLDの反撃を実装しようとしたけど失敗。むう。 ------------------------------------------------------------ 04.06.13-14 [Re:2] (FHS patch ver0.99、Castle patch ver0.99) 今更ながら、英語版コンパイルのマップ文字化け、 sys/winnt/defaults.nhのIBMgraphicsオプションを無効にする事で解決(^^)。 argrathさん、youkanさん、改めまして有難う御座いました。 今回試したのは本家NetHackですが、多分brassやSLASH'EMも同様にできるでしょう。 閑話休題。 --- Reまでに書いた事以外に追加したのはほとんど鉄砲魚関係、かな。 ちなみに今回から、城塞パッチを一般用とFHSパッチ用に分けました。 NetHackでは該当怪物が実装されていない箇所にはランダムな怪物が配置されるようだけど、 堀の上に陸の怪物放り出されても困るしクラーケン配置されても困るし。 FHSパッチ、これで現在実装できそうなアイデアはほとんど入った、かな… しかしシルフィードの防御効果とか#invokeとか、ホントにどうしよう。 --- と言いつつSLASH'EMのメデューサマップの移植とか考えてたり(^^;)。 ------------------------------------------------------------ 04.06.10-12 [Re] (FHS patch ver0.99[未公開]) 翼の実装、継続中。 >  ・装備中に[a]pplyで浮遊(アーティファクトなら飛行)on/off >  ・水に濡れると一定時間飛べなくなる これは実装しました。 同時にstun系毒液も、水弾系統として実装。 今の仕様だと濡れれば濡れるほど#invoke時間も延びるけど、それはそれで面白いかと(w)。 ちなみに他の効果は未定。この辺りは今はほとんど聖なる冠のコピーだけど、何が似合うでしょか?>識者 #invokeの効果も未定。「一定時間無敵(但し飛行モード強制解除)」というのも考えたけど、何かあまりしっくりこないし… で、今現在一番の悩みは   翼関係の名称が和訳されない(T T) 事です。 翼の実装をはじめた当初は単なるjtrnsobj.datの更新忘れかと思ってたのですが、入れ替えてもうまくいかない。 魔除けやクロークの不確定名の時はうまくいったのに… wing of - とか - wing とか、後ろにsつけたり外したり色々やっても駄目。 objnam.cでクローク関係の所に手を加えても駄目。 延々とこれで引っかかっております。めげそう… ->と思ったらjtrnsobj.datでの対応箇所にコロン付け忘れてた(T T)。  丸一日以上つぶした苦労って…(T T) --- ちなみに翼以外では: 状態異常系の爆発(type2)について、爆発の中心にいる者に対しては効果発動率が2倍になるように変更。 効果を受ける確率が1/4->1/2に上がったり、状態異常がより長時間になったり。 直撃した以上はそれなりの効果受けてもらわないとね。 ちなみにこの変更に伴い、一部の毒液で通常の発動率が1/3->1/4に落ちてます(計算の都合上(笑))。 翼の項でも触れた通り、stun系毒液を水弾系統として実装。 朦朧効果もありますが、装備が水で濡れます。下手に水球(爆発型)の直撃を食らうと、持ち物全部水浸しになる事も。  #錆の毒液の意味が薄れないよう確率検討中。 吐く怪物として、とりあえず鉄砲魚を実装(前からやってみたかった)。 蛸の時は見送ってたけど、Castleパッチで城の堀に追加したいな。でもそれだと本家用/FHS用の2つのファイルを用意しなきゃならない?  #Castleパッチは現在は統合する気なし。分離運用できる唯一のパッチだから。 陸上の敵はまだ実装してないけど、やはりナーガ系に吐かせたい。  #名前はどうしよう。水ナーガ? 河ナーガ? あー、「水でlamplitが消える」とか「翼での浮遊(飛行)能力を打ち消す」とかの効果をまだ追加してなかったなあ。  #空中の敵を一瞬でも叩き落す事はできないものか。  #カマイタチに入れたかった機能だけど、こちらのほうが似合いそう。 第七聖典にapplyと#invoke効果を追加。元がユニコーンの角だっていう話だし。 但しapplyも無条件ではありませんが(w)。  #欠点も持たせるのが最近楽しい。 しゃべる機能を仮に加えてみたら、apply後に色々噂話してきた。そうか、この機能は実装されてたのか(^^;)。 でも口調が気に入らなかったのでとりあえず削除。必須機能でもないし。 指輪の材質、硬いのがどれだけあるか確認してみたら 従来  8/27 (全指輪に対する比率29.6%) 新規 (14+2)/100 (同上 16%) …しまった少なすぎる(汗)。  #ちなみに14+2の内訳は「硬いの14種、柔らかいけど『ほこりに書く』以外ができる物2種」。 これを従来のとほぼ同率にするには… …硬い指輪ばかり8種も追加しなきゃならんのか=□○_ ->追加しましたとも、ええ。 ------------------------------------------------------------ 04.06.06-09(FHS patch ver0.99[未公開]) 現在、「翼」系アイテムを実装しようと悪戦苦闘中。 最終的にはこんな感じにしたいのですが…  ・クローク扱い。天使の翼(秩序)、妖精の翼(中立)、悪魔の翼(混沌)とか。   [->04.06.09 とりあえず天使の翼にしぼって実装]  ・装備すると必ず呪われる(RJNH案の[強呪]があればその方がいいが、とりあえず自属性の翼はprayでは呪いは解けない)  ・装備中に[a]pplyで浮遊(アーティファクトなら飛行)on/off  ・水に濡れると一定時間飛べなくなる  ・一定確率で反射とかzap完全回避とか散乱(本人中心に爆発起こして散らす…難しい?)とか。  ・アーティファクトは天使の翼『シルフィード』を予定    #職業「家政婦」は多分秩序だろうから。 で、現在その前段階として、スーパーマントに浮遊on/off機能をつけている所です。 まず防具のapplyとか、lit/unlit(浮遊時は光る)の表示等は成功。 でもその後が難しい。 浮いたように見えて浮いてなかったり、一瞬浮かんですぐさま墜落したり、 マントを外しても輝きが消えなかったり、 外してなお浮遊能力が継続したり何もメッセージが出ずに着地してたり。  #前回の仕様ならobjects.cにてLevitation属性を追加すれば済んだのですが、  #今回のはLevitation属性を常時賦与する訳にはいかないのです。 一応、6/8時点では、単体での扱いはほぼ満足行くものになりました。 他の浮遊装備との兼ね合いが次の課題です(- -;)。  #現在は他の浮遊アイテムの方を外すと強制的に降りてしまう。 あ、また失敗。 [->04.06.09 成功したぁ (; ^)] --- 一方で、毒液類の方も少しずついじってます。 単発ダメージ系の毒液のダメージを上げたり、  #従来の酸の毒液は2d6ダメージ(期待値7)、サイコロ1つで同じ期待値にしようとすると1d15が必要。  #当初は特殊効果を考えてダメージかなり抑えてたけど、現在は特殊効果無しの毒液もあるので。 カノンの罠でたまに飛んでくるものの命中率を格段に上げたり、  #ACが低いPCにも命中し易いように。 黒鍵のダメージ処理を再見直ししたり怪物が放った時の分にも対応させたり。 うーん、やはり虹の矢のアイテム破壊バージョンも作るかなあ。  #分解はともかく、火に冷気に電撃に酸にと色々浴びせてみたい気もする。 それと、stun系はなおも悩み中。 感電系にしようかとも思っていた矢先、「翼」の仕様(水に弱い)からすれば水球をぶつけるのも手かもと思ってみたり。 うーん悩む… ------------------------------------------------------------ 04.06.05(FHS patch ver0.98) > 日本語版bug fix #4410 argrathさん: > > Re:怪物のはまった落し穴を#untrapした時 > 普通日本語で「差しのべる」のは手ですよねえ。 それもそうですね=□○_ 変身時に手と腕にあたる箇所ってどんな呼び方してたっけ… あ、投稿時に見かけた他の2つのbug fixも行っておきました。 今回はそれ以上の変更ファイル確認は無し。 ------------------------------------------------------------ 04.05.28- 06.04 (FHS patch ver0.972->0.98[未公開]) 小ネタ。 戯れに落し穴にはまった鬼ガマを助けようとしたら、   「あなたは腕に鬼ガマを差し延べた.」 …手乗りガマ?(^^;)  #本家の和訳文でmon_nam(mtmp)とbody_part(ARM)が入れ替わってるようで。  #バグ報告しとかないと。 閑話休題。 --- > よって「不確定名の数値を他の数値にすり替える」事はできても、 > 「不確定名の文字列自体を別の物にすり替える」事は出来そうに無いと判明。 え、ええと… これ成功してしまいました(^^;)。 アイデアのきっかけは以前覗いたbrassのmaterialパッチ。  #youkanさんご自身の作なのでしょうか?なかなか確認の機会も無く… まずは小手から入って成功。その後は色々追加拡張しつつクローク→薬→靴の順で。 ちなみに当初は登場済みの不確定名の判別にいちいち変数を用意してました。変数の数がアイテム数に比例するのでいくら何でもまずいだろとは思ってたのですが、かといってここを配列にしたら途端に立ちあがらなくなってた(正確にはキャラのランダム設定でyを入力した途端にフリーズ(無限ループ?))ので… と思ってたら、比較対象にすべきobjects[jj].oc_wldamを0から数えてた(汗)  #jjの最低値はアイテムの番号であって0ではない。 で、実装中にもぽろぽろバグ発見(汗) 護りの効果が出ない(はずの)型のdjinni_bottleを飲んでも護りを与えられたり(if文の条件式の書き間違い)、 登山用装備をつけた状態で落し穴の底に下りた時、穴底の数本の投げ矢のうち1本だけ拾ってたり。 まあ色々と直しつつ実装を進めてますが、現在一番気になるのはコンパイル後のfileサイズがふくれ上がる事。ver0.971+Castleパッチ戦士パッチその他諸々で2030kBちょいなのに、今の物はFHSパッチだけで2.2MB越えてます…  ->#靴も加えたら2.5MB越えたよ(滝汗)   #さすがに小手靴クローク100種類ずつに指輪128種魔法書200種[従来名含む]程も用意したら   #データもふくれるか(- -;) OBJ_DESCR(obj)そのものに手を加えているのが原因でしょうか。 あの手この手で処理を簡略化できないかと試してますが失敗の連続です(; T)。  #実はholywood周りでも大量に使ってるんですよね、OBJ_DESCR(obj)での比較。  #ここも処理をまとめようとすると初期無限ループに陥るし… あとは配列をまともに記憶させてるのも原因でしょう。  #本家がどうやってアイテムデータを圧縮しているか知らないけど  #とても手をだせるレベルじゃなさそう。 ちなみに対象とするのは「不確定名によって材質の変化しない種類のアイテム」だけです。  #材質まで含めたりして処理が混乱するのを避ける為。  #(それでも不確定名と色の食い違いには注意する必要あり) --- そうそう、布製靴/小手は廃止しました。泣く泣く。  #(鉄製の)ミトンや軍手が出ても違和感無いなら別ですが。  #力の小手とか蹴り上げ靴とか。 その代わりに(裏地が)布張りのものや、糸で縁をかがったものを不確定名として追加。 でも布張りはともかく縁かがりは少し量が多すぎるかも。どうしよう。 --- 新アイテムが全く無いのも何なので、心の向くままにスーパーマントを実装。 更に中立の兜をRubbish JNetHackから移植。 ついでに(^^;)混沌/秩序の兜も実装。 変更した点は:  ・クエストの故郷レベルでの挙動を、逆属性の兜に準じるようにした  ・装備者の属性と同じ兜をかぶった時は何も起きず、ACを更に1下げるようにした  ・英名を変更(長かったんで後ろの " alignment"を削除) ホントは同属性なら魔法防御のボーナスも与えたかったんだけど、防具の魔法防御値がどこで扱われているかとんと分からず断念。 でも今のままだとドワーフの兜と同等でしか無いし… スペルレジスト効果に差し替えて実装しようかなあ。  #これなら手さばきの小手でいじった箇所の近くにあって理解できたので。 --- FHSパッチの基本コンセプトは「基礎固め」なので、他のvariantで出来てるものの移植はあまり考えてないのですが… それでも「この機能があれば」と思うものはぽつぽつと。   brassでは店サービスとかmaterialパッチとかRocketstateとか。    #蜂の巣で蜜蝋を入手してIzackさんに蝋燭作ってもらうとか。   SLASH'EMでは吸血鬼とか旧版の種族PCとかライトセイバーとか松明とか。 RJNHを3.4.3ベースに移植できるだけしてしまうのも一興かもですし。 ちなみに実装しようと思えば、思いつく聖器だけでも  ・紅四剣(「周囲状態異常攻撃」は実装可。アニメーションと入手方法にこだわらなければ)  ・ストリングフェロー(brassのRocketstateとRJNHの転倒処理(バナナの皮の奴)を組み合わせれば…)  ・斬鉄剣(SLASH'EMのライトセイバー辺りを参考に) 辺りは実装できそうな気がします。 ------------------------------------------------------------ 04.05.26-27 [Re:3] (FHS patch ver0.971) kokaさんの日記に出てたランダム命名パッチにちょっと興味。*band用だけど。  #今まで*bandはアイテムや怪物関係のテキストを拾い読みしてただけ。 get_rnd_line がナニモノなのか、google検索でヒットした板倉さんの日記で確認。 むう、これが*bandの中枢の一角をなすスクリプトか。  #どうやってtxtファイルから目的行を抜き出すのか、前から疑問に思ってたのです。 理念は分かるような気がする。プログラムの方はあまり解読できてないけど。 NetHackへの応用も考えたけど、それよりもPeriで出来ないかなあ。 掲示板等のCGIでのランダム選択時にサーバーの負荷を減らせるかも。  ->と思ったら、もしかしてランダム値を複数回発生させなければならない?   どちらがサーバーに優しいのだらうか。うーむ… --- >  ・SLASH'EMから射撃時の自動武器持ち替え機能移植 これは結局訳がわからなくなって断念。 >  ・薬の不確定名を配列等で割り振れないか(これが出来れば追加効果の賦与された不確定名の出現率を固定化できるので) 考えてみれば、小手なら総数も少ないし色も固定だし、一番簡単なのではないか。 という事で実装試験。 結果、差し替えや重複排除の構文自体は何とかなったものの   文字化けしやがる(泣)。 調べてみた所:  ・oc_descr_idxはshort型。つまり数値渡し。  ・char型(文字列)のoc_descr[]自体はコンパイル時に自動生成? よって「不確定名の数値を他の数値にすり替える」事はできても、 「不確定名の文字列自体を別の物にすり替える」事は出来そうに無いと判明。 やはり今までの様に(char *)0なダミーアイテムをobjects.cに羅列させるしか無さそう。 なかなかうまくいかないなあ、はあ… ------------------------------------------------------------ 04.05.25-26 [Re:2] (FHS patch ver0.971[未公開]) 生半可な知識と半端に好奇心で色々と調べては投げ出し手を出しては失敗し調べ途中で放り出し。  ・薬の不確定名を配列等で割り振れないか(これが出来れば追加効果の賦与された不確定名の出現率を固定化できるので)  ・声による警告機能  ・状態異常の確実な治療(仙桃で利用)  ・特定不確定名アイテムの配色のランダム変化  ・SLASH'EMから射撃時の自動武器持ち替え機能移植  ・その他あれやこれや 今の所、ものになったのは配色変化だけ。 --- いきなり異常終了するバグ発見。まず前回バージョンでは起きない事を確認。  ・修行僧が物を投げたら(投げた物のグラフィック表示前に)強制的に落ちる  ・野蛮人が素手で攻撃したらかなりの確率で落ちる dothrow.cかuhitm.c辺りが怪しいと睨んだものの、素手や食糧投げに関する箇所をいじった覚えもほとんど無く、どの辺りが問題なのか見当もつかず。素手にまで問題が出ているのだからと、uhitm.cの改変箇所を眺めたがとんとわからず、本家本元のファイルまで遡って1箇所ずつこつこつと移植… 怪しい箇所が見つかったので修正。同時に、処理のおかしそうな所も色々修正。  #小手の不確定名による素手ボーナスがMonk限定になってたとか色々。 で、野蛮人の素手攻撃による異常が起きなくなった事を確認。やれやれ。   …と思ったら、   修行僧の投げ異常が解決してない!(T T) さすがにこれ以上個別移植する気力もなく、そこらじゅうにplineを埋め込んで引っかかる箇所のいぶり出し。 と、dothrow.cでの小手の不確定名による処理のif文でコケている事が判明。でも条件に特に不審な点も見当たらな… …あった。   objects[**->otyp].oc_skill(投げた物のスキル判別)の時に   **にuwep(装備している武器)を入れちゃいかんでしょ(- -;) 道理で,小手装備&素手(uwepが無い)の時に落ちる訳だよ… 修正しときました。 --- そうそう、他には「幻覚状態の時の\コマンド(発見アイテム一覧)の表示を変更」てのもあります。  #最初は全ての品に対して適用していたけど、しつこい気がして確率1/2に変更。  #技術上の制約で(^^;)不確定名側でなく正式名称側に冠詞(?)がつきますが。 ちなみにランダムに表示される言葉に特に意味は無いので(Funnyを謳う以上はネガティブなのは避けたいけど)、英語版を作りたい方は日本語の事など気にせず気の向くままに追加して下さいな(笑)。  #o_init.cにありまする。 --- 仙桃実装。当初予定から変更した点は以下の通り。  ・呪われていると何か1つ状態異常を被るようにした(ユニコーンの角と同じ)  ・能力値の回復効果は無し(実装部で異常終了するので削除)  ・祝呪により酔う期間を変えた そして、桃と仙桃については、アンデッドだけでなく銀に弱い怪物も恐れるようにし… …ようと思ったけど、移動等との整合性がとれなくなるので断念(; ;)。  #そもそも移動フラグを追加できなかったからアンデッド限定にしたんじゃないか(T T) ------------------------------------------------------------ 04.05.21-24 [Re] (FHS patch ver0.971[未公開]) 怪物案メモ書き。  蛍(firefly):光源持ち(周囲を明るく照らす)。  火蛍(fire-fly):火系毒液を放つ。光源持ちなのは同様。  虹蛍(rainbowfly):マジカル系毒液を放つ。光源持ちなのは同様。 あとネタとして竜蛍(dragon-fly)とか。いやdragonflyはトンボか…竜蜻蛉? しかしどの程度の強さにすれば良いか見当ついてなかったり。 ->一応実装してみました。強さはこれで良いのか不明だけど。 --- 整理しなくなって久しいRJNH案ですが、 たまにパッチ作成時に覗いてみて、実装できそうなものが無いか物色しとります。 で、水煙/火炎/避雷のクロークをさっくり実装。 …あ、まだ怪物が装備した時の効果を実装してなかった(^^;)。 聖堂騎士のクロークはとりあえず便利過ぎそうな気もしないでも無いので保留。  #RJNH以外だとマジックベーンの利点が薄れそうな。 かえって鎧にしてしまった方がいいのかな。呪いは防げるけど重いとか、それ自体が装備時に必ず呪われるとか(^^;)。 ->その後、怪物の効果も実装。…するも、怪物については炎/冷気/酸を耐性で防いだ時にアイテム破壊が起きない事が判明。  #PCは耐性があっても効果を受ける(処理を継続する)が、怪物は耐性で防ぐと同時にbreakで処理を抜けてしまう。  #あと雷は何故か怪物のアイテムも破壊する(盲目処理を後の方で行う為らしい)。 この辺り、PCと同じになるように変更しました。 --- > 巻物ラベル 実を言うと、自分が考えてた差し替え案は   「マザーグースの題名から取る」 でした。 でも調べてみると、どうも日本で有名なものがなかなか見つからない。  #『ロンドン橋落ちた』とか『10人のインディアンの子供』とかの類が  #ざくざく見つかれば良かったんだけど。 しかも下手をすると名前が長くなりすぎる可能性も。 これなら日本で親しまれている童謡を基にした方がいいのかなとも思ってみたり。 英名をどうするかが問題だけど。 調べて見つかるのか、それとも自分ででっち上げるか、はてさて… --- large hobbit(w)実装。  #ネタにあらず。指輪物語由来の由緒有る種族也。 で、出現時の装備をホビットと同じにしようと思って確認したら…   ホビットってスリング持ってても石持ってないじゃん(; ^) こんなスカタンな設定、即座に修正しましたとも。ええ。 ------------------------------------------------------------ ->これ以前は別Fileにて。