------------------------------------------------------------ FHS patch (Funny-Honey-Spit patch) 蛇足メモ 作成者:Shiganai Sakusha ------------------------------------------------------------ ------------------------------------------------------------ 雑記 [にうきゃら掲示板(補助用)と連動している内容もあります。(こちらで書かれた内容が掲示板で解決とか)] ------------------------------------------------------------ 07.03.26-07.03.27 (FHSパッチver0.8.16b) むう、試験中にコボルドが生成位置から動かないからどうしたのかと思ったら、 浅い水たまりを避けようとしてたのか。 …周囲を浅い水たまりで囲まれてるから動けんな。 おまけに、投げてきた睡眠毒つきのオークの短剣で眠らされた途端に落ちたり。  #毒付き飛び道具が1本だけの時に起こるバグ。  #今までは毒付き飛び道具は大抵複数だったので発覚しなかった。 どちらも今の0.8.16にも関係するバグでした。 あまりにバグが多すぎるんで、バグ修正版のver0.8.16bをUp。 卵と生まれる怪物の相関バグはセーブファイルにも影響が出るものなので 入れられなかったけど、それ以外は一応直してあります。 …試験版の方まで直してupする余力はないです、ごめんなさい(_ _;)。  #怪物が錆びる靴を履いている時は、やはり水たまりを避けるようにした方がよいだろうか。 ------------------------------------------------------------ 07.03.25-07.03.25 ([Re:9b]FHSパッチver0.8.20(未公開)) [23:48追記] わわわ; 願う際に異常終了する事の有るバグなんてものが出たので 修正ファイルupしました。 ------------------------------------------------------------ 07.03.23-07.03.25 ([Re:9]FHSパッチver0.8.20(未公開)) よ、ようやく解決。 皆様お騒がせしました&有難う御座いました(_ _)。 ちなみに今回の原因と対処は oukanさんにご指摘頂き↓こんな感じ: [brass掲示板でのyoukaさんの投稿より] > mon.c の mondead() で生き残りの騎馬をマップ上に置く処理 (if (msvv) {…}) が > m_detach() よりも前にあるので、 > > 騎手死ぬ → 騎馬がマップに置かれる → > m_detach()が「騎手の位置の怪物」をマップから排除 → 騎馬がマップから排除される > → 騎馬、fmonチェインには存在するがマップには存在しない変な状態になる (中略) > if (msvv) {…} を m_detach() の後に移動すればOKでした。 なるほど、移植場所が間違ってたんで 騎馬のイメージどころか騎馬そのものがマップから消え去ってた訳ですね。 …自分のせいか; よく見たら、当初 if (msvv) {…} を挿入してた位置は FHSパッチで追加した箇所(特定アイテム等を残す処理)の真っ只中でした(汗)。  #…と言う事は、竜王出現コードもこの位置ではまずいのか。いそいそ。 ところで、騎手生成時には騎馬の友好判定も騎手に準じるべきだろうか。  #テスト中、騎馬だけ友好的という状況が何度もみられた。  #逆に騎手が友好的なのに騎馬が敵対的というのも、今の仕様では出てきそうな気が。 …って、きちんとsetmpeaceful()を移植すればいいだけの話ですね(^^;)。  #手抜きして移植していなかった。この為に使うのか。 ---- という訳でsetmpeaceful()も移植し、 試験版もようやくまともなのをUp。 改めて、皆様有難う御座いました(_ _)。 ---- P.S. > そのうち手がけてみたいzap処理の改造: とりあえず ・怪物の攻撃属性の並べ替え ・flash_types[]がどんなものになるかずらずらと書き連ね だけやってみました。 …zap用属性が総計30種類に(^^;)。  #後から並べ替え差し替えもするやもしれませんが。 explode.cにも影響するし、 一度に実装なんてしたら収拾つかなくなりそうなので 気が向いた時に1種類ずつ追加するつもりですけどね。  #spitパッチの毒液実装の頃の初心に戻って。 ------------------------------------------------------------ 07.03.21-07.03.22 ([Re:8]FHSパッチver0.8.20(未公開)) ども、自分の能力が追い付かないような要素を取り入れてしまって途方に暮れてるサクシャです(マッテ)。 元々まともなプログラミングスキルを持ってない身としては 今まである意味ブラックボックス扱いだった領域(ディスプレイ部分)に 手を出さざるを得ないのがちと辛いです。 他ヴァリアントや本家次verへの移植性を考えると、大幅な変更は本当は避けるべきなのですが、 今回の移植はそうしたこと抜きに行ってます。 「次ver以降は本家の原型からどんどんかけ離れたものになる」というのは、そういう意味です。 辛いけど。 なので和訳修正も気になる箇所が無くもないのですが、  #女店主だった場合の店主の台詞(特に追加サービスの分)とか。 自分のヘボ訳ではあまり役立てそうも無いし後回し。 そういえば、いまだに地形の雲が「曇」なのもちと気になってはいるけど 報告してなかったり。  #以前に「霧の曇」を報告した時には気づいてなかった。 ちなみに、多少はマシになったバグ修正の進捗状況: ---- 生き残った方に対するdisplace_mon()内で、 死亡したはずの怪物についてdisplace_mon()を再帰呼び出ししていたのが原因らしいことが判明 →とりあえず再帰呼び出し部に手を加え   「placing defunct monster image onto map?」エラーが出てたのだけは修正。 (処理中の怪物の幻影位置にいるのが、その怪物にとっての騎馬や騎手であった場合も、  再帰呼び出し対象から除外) まだ騎馬のイメージ再設置(座標設定?)がうまくいってない。 騎手を倒した後、姿の見えない騎馬に攻撃されるし、その騎馬のいるはずの地点に進入可能だったり。 ---- てな感じです。 ---- 話変わって、そのうち手がけてみたいzap処理の改造:  ・Mega spellの導入   使用箇所はかなり限定されるだろうけど、一応は入れておきたい。   特定聖器#invokeに限るとか。  ・今は10毎に区切られているzap種別を、20毎の区切りに変更。   これによりもう数種類のブレスを追加可能になる。   (元々spitパッチは、zapでは対応しきれない各属性の遠距離攻撃を    追加する為に作った物だけど、ブレスと違って毒液毎に固定ダメージに    なってしまうのが欠点なんですよね。(怪物の強さとは無関係)    追加した属性爆発も今の所は「物理爆発+マス毎に改めて属性処理」    という擬似処理でごまかしてますし)  ・プレイヤーによるものと怪物によるものとの区別は正負だけで判定。   同種別で同属性のzapなら絶対値が同じになるようにする。   (本家では、プレイヤーの振った杖の光線なら0〜9なのに    怪物の振る杖の光線は-30〜-39という、意味不明な割り振られ方をしている)  ・怪物のブレスは怪物の現在HPに準拠したものにするかも。   (Wizardly方式で現HPの1/2にするか、ある程度の乱数を含めるか) うーむ、どんどん本家からかけ離れたものになっていきそう。 でもとりあえずは目の前のでかいバグ(x)を何とかしないと。はあ。 ------------------------------------------------------------ 07.03.18-07.03.20 ([Re:7]FHSパッチver0.8.20(未公開)) 怪物の騎乗パッチ&プラエファメ等、一応移植完了。 一応、というのは、まだまだ未確認な点やら不都合やらがあるから。 特に乗馬関連。 怪物のjump能力の調整だとか アルマジロ等が騎乗状態の怪物に突撃した時の挙動とか その他諸々のFHSパッチ特有事象に対する細部調整は とりあえず後回しにするとして(いいのか?) 目下の問題は画面表示(ディスプレイ)処理。 怪物の幻影処理(GrundHackからもぎ取ってきた奴)と 真っ向からかち合ってるようなのです。 さすがに騎乗状態の怪物が「%」で表示されるなどという あほらしいバグは修正したものの、  #mapglyph()内の処理を追加し忘れてて死体として表示(^^;) 騎手を倒すとエラーメッセージが出て その後の(元)騎馬の表示がおかしくなる(表示されなくなる事がある)のは どうしたものかと。   placing defunct monster image onto map?(コボルド)--More--   プログラムに障害発生 - #quitしたほうがよさそうだ.  #↑怪物の幻影処理のひとつ place_monster_img()のエラーメッセージ。 place_monster_img()の呼び出し先を辿ると  place_monster_img() ← displace_mon() ← { place_monster()その他 } となっているので、place_monster()辺りに手を加える必要がありそうかなとは 思っているのですが… 色々混ぜこぜにしてるから、すり合わせも大変。  #でも出来る限り統合しておかないと先には進めない。 画面表示処理いじるのは苦手なんだけどなあ。 アイテム関係には直接影響しない箇所だろうから、 仮封印しといて先に回復の石その他のアイテムを実装し、 後から封印をといてゆっくり考えるのも手だろうけど。 いずれにしても自力で直せる見込みは今の所なし(- -;)(ぉ)。 ------------------------------------------------------------ 07.03.12-07.03.17 ([Re:6]FHSパッチver0.8.20(未公開)) そうそう、怪物の属性つき爆発処理を組み込みました。 結局、explode()を大改造するのではなく、 explode()側に爆発元の名称を送り込めるように改造。 今の所はAT_BOOM(怪物死亡時の自爆)にしか対応できませんが。  #AT_EXPLなら怪物の攻撃そのものが自爆攻撃となるけど未対応。 現在移植中の怪物の騎乗パッチではexplode()にも手が入るので、 移植が一段落したら大改造可能かどうかも再検討する必要があるでしょうが。  #手が加わった箇所が大改造内容と共用できそうなら、そうするかも。 ---- 現在は怪物の騎乗パッチ取り込み中。 まだまだ移植が半端なのでコンパイルにすらこぎつけてませんが。 一応、騎乗して登場する怪物として以下を追加。  ・(FHSパッチ新実装の)一部のオーク、ゴブリン    ワーグ乗りを多少増やす。  ・ヘルマスター    何に乗せるか迷ったけど、結局戦闘用の馬に。    (ナイトメアの様にもっとダークなのにしたかったけど適当な怪物が見つからず)  ・(騎乗スキルを持っている)冒険者クラスの怪物    騎士以外の騎乗姿は、ほぼ最終局面のみに限定。    一応、自キャラとの戦力差を埋める意味合いもあったり。    そして、自キャラがあまりに強すぎる場合は…(ニヤリ)        なお、騎乗スキルのないクラスをどうするかは未定。    洞窟人を虎だのライオンだのに乗せてみたかったのですが。    …スキル無関係に乗せてしまおうかなあ。     #とりあえず騎乗可能な種族にS_BATだけは追加してある。     #swarmには鞍を乗せられないようにしないとですが。 ---- 徒然なるままに、この先実装したいなと思っているもの(現時点での妄想)を書き連ねてみんとす。 ・プラエファメ この辺りはTNG3.4から目下取り込み中。 魔力の石&賢者の石は未定。 SLASH'EMの砥石と回復の石も興味はあるし。  #取り込むとしたら砥石/回復/魔力を一気に実装かなあ。 ・ロンギヌスの槍 RJNHは3.2ベースなのでかなりの追加変更が必要でしょうが、 いつかは3.4用対応にしたいものです。 ・その他の聖器 シルマリルをクエスト聖器化したくはあるのですが(とりあえずオーククエスト用)、 RJNH案だと強すぎる…さてどんな効果をもたせるか。 その他の聖器はとりあえず様子見。 ・銃器 brass方式で導入するか、 SLASH'EM方式で導入して強い銃器をコメントアウトするか、 それとも両方の処理を融合させるか、 いまだ決めてない状態。 無論、RJNHから移植予定なパレットガンの仕様にも関わってくる訳で。 種類としては以下の程度で。  ・リボルバーor拳銃  ・マスケット銃or同等の単発銃  ・散弾銃(SLASH'EM)  ・パレットガン 要するに基本は単発、1ターンに連射可能なのはパレットガンだけにするつもり。 あ、SLASH'EM方式ならロケットは導入するかもです。 主に怪物の攻撃手段として。 ・鍛冶屋 ・コバルト 鍛冶屋がどれだけのサービスを提供(実装)するかは未定。 少なくとも武器のメッキ(…だと重量変化が考慮されないから材質改質?)は含めたい所。 非レア材質(鉄製・合金製、木製等)の武器に限り、素材持ち込みでレア材質製に変換。  #これを、(レア材質を導入した)ファイアーソウルや炎の守りに対する  #(レア材質にしていない)ファイアブランドの長所の1つにしたい所。 コバルト実装は鍛冶屋実装時かな。 その時には他のレア材質の効果対象も再検討。 ・ridable golem 騎乗可能な、てか騎乗しない限り動かない鉄のゴーレム。 兵舎で指揮官が低確率で乗ってたりとか。 実装に当たっては怪物の騎乗パッチと、Webbパッチにあったゼンマイ仕掛けの人形の機構が欲しい所。 ・花畑 草地がターン経過で変化。 更にはとれるハーブを「実際の季節」と連動して変化させるとか。  #春だけ花が咲きハーブの花が取れてあとの月は雑草とか、  #咲くのは春だけど秋だけハーブの種が取れて他の月は雑草とか。 …WEBB_TREEを読み解いて応用する事になるのかなあ。 その時にはハーブの内訳も再検討しないと。  #木から取れるハーブもあるけど、地形としては草地の方が各段に多いだろうし。 ・種族追加 種族に関しては、ホビット導入および光のエルフ・ダークエルフ分割はありかも。 さすがに獣人や吸血鬼を今の状態で導入するのは…  #当然ながら、将来Nethack本家(3.5?)で導入されるならそれに準拠。 ・クエスト追加 と言っても沢山ありますが(ぉ)。 主に「他からの移植」と「新規追加」とに分かれるのでしょうが、 今の所は「現在日本語版がサポートされているヴァリアントからの移植」は自重中。 細かい点の移植を抜きにすれば、↑が一番楽なんですけどね。 その為のランダムクエストでもありますし。 という訳で、データは半分移植済みなれど SLASH'EMやTNGの追加職移植は自重中。 衛士とか、新規クエストとセットでなら炎の魔術師辺りとかは移植するかもですが。 Sillyの追加職は、できればスキルシステムが欲しい所。 次期Nethack本家にスキルシステム組み込まれたら考えようかと(ぉ)。 RJNHは上記のように課題も多いし(銃器とかロンギヌスとか) まだまだ「仏作って」状態になりそうだしなあ。 …新たにコックType2とか(厨房出入り制限うけてそうだけど) コックType3とか(魚屋だろ)を先行導入してしまうのは有り? (^^;) どちらも優先聖器が実装済みというしょーもない理由からですが。  #あー、その時は元祖コック案にある盲目特性をType2や3では変えないと。 ---- そういえば、以前にRJNH案であった「英雄の薬」、 TNGのSECOND_CHANCEを応用すれば実現可能なのだろうか。  #但し効果時間あり(Lvや強さに応じ効果時間減少)、時間内なら何度でも復活可能。 ---- あと、もう一つやってみたい事。 天使が剣を持つ要領で雪女郎辺りに刀を持たせ、 低確率で紅四剣に変化させたい。 じつはプラエファメ等の導入と共に、紅四剣の入手方法にも手を加え、 下賜もされず願いでも得られないようにする予定でして。 つまりは自然生成任せなのですが、 そもそも刀が自然生成されるって事がほとんど無いし(^^;)。 振り回す本人が周囲攻撃で自滅するのも何なので、 剣の持ち主な怪物に限っては、剣の祝呪に関わらず 周囲攻撃の自身への影響を無効化させておくとか。 更にはどの剣になるかを「実際の季節」と連動させたり。 …とも考えたけど、すでに属性による差別化が入ってたか。うーん。  #四剣とも無属性にしてしまう手も無いではないけど。 ------------------------------------------------------------ 07.03.07-07.03.11 ([Re:5]FHSパッチver0.8.20(未公開)) 実装の合間、気が向いた時には多少実地プレイをする事もあるのですが、 きらめきモールドに攻撃したペットが部屋の唯一の出入り口を塞いだ状態で麻痺してしまい いつまで経っても動かなかったので放棄したり、  #怪物に対するMP吸収の反撃効果がきちんと扱われていなかった。 雑兵オークの集団+パチモンをやっとの思いで倒したのに アイテムの上に移動したら異常終了したので 原因究明の為に放棄したり、  #オークの鎖かたびらが未識別の時に、materialパッチでのアイテム名表示が  #うまくいっていなかった。(FHSパッチ独自追加部分) ほとんどデバッグプレイと化してて全然進めないです(T T)。 閑話休題。 ---- NEWGEHENNOM、移植完了。 無論、単なるフルコピーで終わらせるつもりもなく、 独自階層の追加にかかる。 と言っても、地獄の雰囲気一杯な途中階が全く無くなるのも何なので 追加できたのはディスペーターレベルだけだけど。  #SLASH'EMでは他にもデモゴルゴン、イーノグ、ゲーリュオーンレベルがあるけど  #あまりにすし詰め状態で、大悪魔の階のすぐ次に別の大悪魔がいたりするし。 SLASH'EMから移植していたギルドレベルは分岐階に追いやる。 私にはyoukanさんほどに地形生成ルーチンを自在に操る手腕も技術も無いので SLASH'EMの特殊迷路生成ルーチンを更に拡大して移植。 壁だけでなく床もいじれるようにしました。 で、低確率で、地獄の途中階が特有の迷路になるように。(これをやりたかったのですよ) ディスペーターレベル近辺の階層だけは全部特殊迷路でごまかす(^^;)。 組んでもしばらくはコメントアウト、 いじる気になった時点で有効にしコンパイル開始。 おなじみ大量のプログラムミスを修正し、どうにか完了。  #迷路生成処理のミスで壁が全部縦になった迷路を見た時は噴き出したけど。 と思ったら、何故かdispater.levだけコンパイルで自動生成されていない。 他の自動生成ファイルをごっそり削除したり、 しまいにはフォルダごと素の状態に戻してFHSソースファイルを上書き移植しても駄目。   …gehennom.des内でdispaterマップをコメントアウトしていたのを忘れてた =□○_ 何とか解決し再度確認。 やけに沼や水地形が多いと思ったら、   …dungeon.def書き換えの際にアスモデウスレベルをコメントアウトしてた =□○_ 修正し再度確認した所、アスモデウス途中階で異常終了。 んー、mazexy()のエラー?   …階段って床(ROOM)以外の地形には生成されないんですね =□○_    #位置決めのmazexy()で全て弾かれる。    #道理でSLASH'EMでも迷路の床には手をつけてない訳だ。 これはmazexy()の方に手を加えました。  ・地面(GROUND)等の新地形の床にも設置可能に  ・浅い水たまり(PUDDLE)にも設置可能に  ・どうしても見つからない場合は通路(CORR)に設置したり、   氷を強引に床地形に変更してそこに設置したり。  #要するに、キャラクターが立てる場所をこれらで埋め尽くした迷路に対しても  #階段等を設置可能にした訳です。  #通常は問題なく床地形に設置できるでしょう。 と、色々ありましたが何とか成功。 ようやく懸案の一つが解決しました。 ---- 他にも特定種類の怪物に対する警戒処理表示を更に改定してみたり、 浅い水たまりに踏み込んだ時のメッセージを追加したり。 うーん、いつの間にかテレパシーの兜を装備しても 能動的テレパシー(盲目でなくても働くテレパシー)がつかなくなってるような。 何でだろ。 と悩んでたけど、Unblind_telepatの条件を (ETelepat & !Block_Telepat)としてた事に気づく =□○_  #正解は (ETelepat && !Block_Telepat) ------------------------------------------------------------ 07.02.28-07.03.06 ([Re:4]FHSパッチver0.8.20(未公開)) ただいまです。 エラー版とのdiffをとって確認しつつ 順次再移植再移植。 最終的に、NEWGEHENNOM以外はほぼ移植できました。 materialパッチのdesファイル読み込み機能の移植も今度は成功。 ふう。 あと、NEWGEHENNOMに混ざってた新地形も移植。 ついでに草地からは[l]ootで草を採集できるようにしてみました。 …あまり多量にハーブが採集できてしまってはまずいか? (汗) まあ大抵は雑草だし、じつは効果の無いハーブも混ざったりはするけど。 生成率がどれも同じだから、レアな薬のハーブもそれなりに採集できてしまう可能性があるなあ。 でもハーブを薬にするには例の薬が必要だから量産は… あ、しまった。店のサービスでも加工できてしまうのか。 しかも料金は加工前のハーブを基準に計算されてるじゃないかい。…安そうだ。 うーむ、この辺は直しておかねば。 クエストフロアに限っては、雑草しかとれないようにした方が良いのだろうか? ---- そうそう、とある新機能実装(移植)してみました。 エラー版で実装していながらこのメモには書いてなかったけど。 Dungeon Map Overview。 今まで走破したダンジョンの構成をおおまかに表示するというもの。 階数と、視認した祭壇&泉、特殊階への階段等を表示する程度ですけどね。 プレイ期間があいてしまった時の備忘録代わりにする為の物らしい。 和訳しきれてない箇所も有るけど、表示はこんな風:    運命の大迷宮: levels 1 to 14    1階:    泉1    2階:    祭壇1    4階:    流し台1    7階: [oracle]    泉多数    8階: <-現在地    泉幾つか    倉庫番への上り階段, level 7    10階: [bigrm]    泉多数    11階:    祭壇幾つか, 泉幾つか    12階: [kobold]    流し台1, 玉座1    14階:    泉多数    クエストへの魔法の入り口    --More-- 「施設を1つも見てない階」が表示されないのがちょっと気になるけど、他はよさげ。 ただ、今のFHSパッチだとほとんど意味を成さないような(ぉ)。 バージョンupの度に旧セーブデータがほぼ使用不能になるもんで。 という訳で、今はこの機能、いっちゃん意味のないヴァリアント…じゃなかったパッチに組み込まれております(^^;)。 ---- うーん、特定怪物探知の時にはグラフィックも無色にしたいけど なかなかうまくいかん。  #今は詳細名だけぼかした状態。 それをいじってる途中で気づいたからよかったけど、 なんか手元最新版で/コマンド使って視線の通ってない怪物を調べた時に 怪物の名前が表示されないと思ったら、 どうもGrundHackから移植した幻影処理関係のコードが原因だったようで。 複数の探知能力(通常の視覚だのテレパシーだの赤外線視覚だの)のそれぞれについて imageかどうかを切り分ける処理を加えてあるのはいいけど、 肝心のimageの定義が   boolean image = (x == mtmp->mix && y == mtmp->miy); 止まりってのは…  #ちなみにmtmp->mix, mtmp->miyは怪物のイメージの位置座標。  #幻影でない場合はイメージ位置と実際の位置とが一致しているから  # !image だけでは「幻影でない場合」を表す事はできない。 ---- そして、ゲヘナ移植もその他の移植もほっぽって PCのランク毎の呼称の分離化にかかる(^^;)。 動機は洞窟人クエストType2の処理に使いたかった為だけど、 今の種族クエストでも種族特有のランク名を使える事に気づき、 SLASH'EM旧版(0.0.5E4)から再び取り入れる事に。 JSLASHのも多少は参考にしたけど、 SLASH'EMで英名自体が追加調整されてたり 怪物名とかぶったり 和訳、もしくは英語そのものが気に入らなかったりで 結局かなり手を加える事に。 コード本体は基本的にはRANDOM_QUESTを参考にしたので、組むのは比較的楽でした。 ただ、見本も兼ねてデータだけ移植してる未実装職も含め全職業が分離対象なので 量が多い事多い事。 それに、うまく差し替え表示してくれないと思ったら、 表示処理のrank_of()にも手を加える必要があったり。  #rank_of()自体は他の冒険者等に対しても利用する処理なので、  #自分のランク呼称限定の別処理urank()を作ってしまったけど。 一応、成功。 これでまた一つ野望に近づいた!(ぉ) ---- で、試験版を差し替え公開。 いつまでもバグ版公開してられないしね。 ------------------------------------------------------------ 07.02.25-07.02.27 ([Re:3]FHSパッチver0.8.20(未公開)) 冬の終わり、活動停止前に一応の報告。 ・07.02.11版は以下の不具合。   materialパッチ関係のコード不備および他の理由(原因不明)により、yacc・flexを有効にしてコンパイルしようとするとエラーに。   何故かHealer.desとKnight.desのデフォルト地形に浅瀬(w)が選択できなくなっている。   階移動による強制抹殺が未修正(mon.c)。再移植で修正。   その他有るかもしれないがおそらく再移植中に修正されるであろうと予測。 ・復旧手順:   07.02.11版のコンパイル機能復旧->完了   あとはエラー版から順次再移植   materialパッチのdesファイル読み込みは切り捨て。鏡の盾再実装。ヴラドの塔内の水晶の鎧はsrcフォルダ内の処理でまかなう。   NEWGEHENNOMもとりあえず切り捨て。他が一段落してから再実装を考慮。   ついでに機能していないコード残骸(HONEY_DB_BOG、WEBB_TREE、WEBB_SKYLEVEL)も削除。 では、また春にでも。 ------------------------------------------------------------ 07.02.12-07.02.24 ([Re:2]FHSパッチver0.8.20(未公開)) 徒然なるままに実装・変更したものを書かんとす。 ---- > --*[追加]材質に黒燿石(obsidian),炎(flame)を追加 これに伴い、以前に実装した「黒燿石のガラス化処理」は白紙に。 また、宝石としての「黒燿石」も黒水晶に差し替え。 宝石と、それを材料にしたアイテムとで、価格の折り合いをつけるのも難しいですしね。  #特に魔法やら何やらでの加工が必須そうな代物でもないし、  #材料の一種として設定した以上は「小さな宝石を散りばめている」という解釈だけでは説明しにくいし。  #極端な話、そのアイテム砕いて売っぱらった方が金になるんではないかとか。  #…以前にネタにした事もあったなあ。 ---- > -JSLASH'EMから以下を移植 > --*怪物追加:幻影ドラゴン,漆黒ドラゴン > -Nephiさんのgolddragon patchを導入 > --*怪物追加:金色ドラゴン ドラゴンの子供のLvに関する問題を前回解決できたし、 もう1つの懸案も解決したので、これらを一気に実装。 他はともかく漆黒ドラゴンの鱗鎧の性能は鮮血ドラゴンとかぶるけど、 戦闘能力でそれぞれ特色を出してるからいいかなと。   漆黒:毒のブレス、レベルドレイン噛み付き   鮮血:レベルドレインの毒吐き(ダメージ無し)、通常噛み付き、尻尾攻撃  #鮮血の持っていたレベルドレイン噛み付きは、差別化の為に今回無くしました。  #そういえば、plainのドラゴンは他より弱いと思われがちでしょうが、  #一応は利点を持たせてるんですよね。 あと、今まで抜けていた双頭ドラゴンの分も合わせて 対応する竜王およびMapを追加。 これで幻影とplain以外は全種竜王を実装した事に。 そうそう、現在の竜王Mapは狭い建物が多かったので、 手を加えて多少は風通しを良くしときました(w)。 ---- で、上の話での「今回解決した懸案」というのはこれ。 > -GrundHack 0.1.0から以下を移植 > --*怪物の幻影効果の実装 GrundHackをはじめて知った時からずっと気になってたんですよね。 これも一応は3.4ベースなので、ソース差分とにらめっこしながら (いつものように大量のコンパイルエラー出しつつ)移植。 実際どんなものになるのかなと思ってたのですが、   凶悪。 幻影竜王を実装してなくてよかった…; そうそう、せっかくディスプレイサービーストも実装してるんだから ディスプレイサービーストやその皮にも幻影能力もたせないと。 ---- 他にも倉庫番の報酬選択制とか、まあ色々と実装したのですが、 現在の状況:   コンパイル不能。 発端は、materialパッチでdesファイルからの素材読み込みがうまくいかなかった事。  #上記倉庫番報酬の宝箱の素材が変化しなかった。  #これ自体はさほど影響はないが、同様に素材変更が必要なメデューサレベルの盾がまずい。  #(いざとなったら「鏡の盾」を再実装し、反射の盾とどちらか一方を銀製ベースにする手もあるけど) 半端な実装が原因らしかったので、この際だからと コンパイルに関係ありそうな処理(ゲヘナ生成処理等)も含めてbrassからごっそり移植。  #monsteed関係など、移植してないものもあるけど. で、現在はこんな感じ。 コンパイル時の表示をtxtファイルに書き出した場合、 ・コンパイルの最初の方で、画面にはなにか一部コンパイルに失敗してるようなメッセージ。  「C:\PROGRA~1\BORLAND\BCC55\BIN\YACC.EXE: 2 rules never reduced」 ・ずっと進めてdungeon.pdf辺りの処理で、画面上に以下のメッセージが出てコンパイル停止。  「dungeon.pdf : line 5 : syntax error」 ちなみにdungeon.pdf自体は自動生成ファイルだけど、 line 5というのはdungeon.defの冒頭行そのまま。  「DUNGEON: "The Dungeons of Doom" "D" (30, 5)」 なにか根本的に読み込み変換に失敗してるっぽい。  #当然ながらこの行を本家と同一(30->25)にしても駄目。 さて、どうしたものか。 ソースの各所を見直すいい機会にはなったけど、このままでは手も足も出ない。 どのみち一週間ほど活動停止しそうだし、とりあえず公開はしておいてまったり対策を練るかなあ。 該当箇所を封印するか、もしくはbrassベースに切り替えてしまって一切合切フルコピーするか(ぉ)。 ちなみに、今はまだgehennom.desは差し替えてないです。 それ以前の問題なんで。  #当初はcastle.desの願いの杖の行で引っかかったり  #bigroom.desのランダムアイテムの行で引っかかったりしていた。  #後の移植でこれらは多分解決した…と思う。(その段階までコンパイルが到達しないけど) ------------------------------------------------------------ 07.02.12-07.02.13 ([Re:]FHSパッチver0.8.20(未公開)) ---- 以前に書いた > L氏のパッチの中に、怪物に様々な爆発(炎の爆発とか)をさせるものがあったのですが、 explpde処理の変更そのものはあまり手間がかからないものの、 spitパッチやクロスボゥボルトの爆発処理(第七聖典やサザンクロス用)とのすり合わせに えらく手間がかかりそうな事が判明した為、保留中。 これより優先順位の高そうな懸案もごまんとあるし。 ---- で、隠れた懸案の1つだった「ドラゴンのLv」を解決しようと手をつけてみる。 ver0.8.16現在の状況:  ・ドラゴンの子供:Lv 4  ・若いドラゴン :Lv15  ・ドラゴン   :Lv18  が、各10種類(灰銀赤白橙黒血青緑黄)+双頭。 問題点:  ・ドラゴンの子供の種類が多すぎて、Lv4怪物の中でも結構な割合を占めてしまう  ・ドラゴンの子供と若いドラゴンのLv差が、若いドラゴンと成体のそれに比べ開きすぎている 特に問題なのは1番目。 浅い階層でドラゴンの子供が多数うろついたり、卵がよく出現したり… せめて子供のLvがもう少し上なら、生成率も少しは緩和されて見えるのだろうけど。  #同Lvの怪物だけでなく下位Lv怪物も自然生成される為。 同様にLv3に集中しているナーガの雛は、 実は特殊階以外では自然生成されないんですよね。 でもそれをやってしまうと「拾った卵から生まれたドラゴンを育てる」という楽しみが 減ってしまうだろうし。 なので、今回このような変更を目論んでみる。  ・ドラゴンの子供のLvを上げる  ・新たに「ドラゴンの赤ん坊(baby dragon)」を追加。但し無色で一種類だけ。  ・赤ん坊には何らかのフラグをつけ、成長後の体色をあらかじめ決めておく。   卵の時点での体色と、成長後の体色は同じになる。   自然生成された赤ん坊の場合は、子供になるまで成長させないと体色が判明しない。 で、実装にかかってみたのですが、 そもそも現行verの孵化処理が目茶目茶になってる事が判明(- -;)。 自分の生んだ卵から若いドラゴンが生まれたり、 願って得た赤色ドラゴンの卵からいきなり赤色ドラゴンが生まれたり。  #そもそも本家での親子の変換処理が、多段の成長を考慮してないのが原因なんですけどね。 その辺りも含めて力技で(ぉ)直していき、 最終的にはどうにか予定通りの成長をさせられるようになりました。  #厳密には「親が絶滅しているかどうか」のチェック処理が不完全ですが。 まあ、こんなイレギュラーな多段成長する卵生怪物は本家にはいないし FHSパッチでもドラゴン位しか… あ、ペットドラゴンやクモ類やガマ、ニワトリ等もいたか; ------------------------------------------------------------ 07.02.03-07.02.11 (FHSパッチver0.8.20(未公開)) 閑話。 次verの予定番号が0.8.20になっているのは、 本家や現行verと比べても原型を留めなくなりそうだからです。 既に原型とどめてないじゃんという突っ込みはさておいて。 閑話休題。 ---- もひとつ閑話。 So-Miyaさんの2007年2月8日 雑記より: > それにしても、(rock|iron|grass) piercer の訳語をなんとか > したいなぁ。 > (中略) > 英語を直訳すれば岩刺しとか、岩突きとかになるのかね。 > 棘(トゲ)とか錐(キリ)とか角(ツノ)とか槍(ヤリ)などを当ててもいいかも。 > しっくりこないけど。 私の場合はFHSパッチ時に「岩貫き」というのも検討したのですが、やはりしっくり来なくて。 別案として、岩鍾乳とか…微妙か。 あと話は違いますが、static blobの訳名について。 能力からすると電撃と関係深そうなので 静電気ブロッブとでも訳した方が良いのかもです。  #翻訳時には能力を見落としてた為、  #「静的な、静止の」といった側の訳を用いていた。 再び閑話休題。 ---- materialパッチ、移植してみました。 brassとL氏のパッチを見比べつつ取捨選択して実装。 素材の処理に関しては独自に追加してみたり。 聖器識別後の識別一覧への反映もしてみたり。 試験版として一応up。 今の所、持ち物一覧表示はこのようになります。 武器 a - {普通}+1 鉄の短剣 b - {普通}+1 木のクロスボゥ(予備携帯中) c - 53本の{普通}+2 鉄のクロスボゥボルト(装填中) d - 30本の{普通}+0 鉄のクロスボゥボルト i - ファイヤーソウルという名の炎の小剣 m - スノーイリュージョンという名の氷の小剣(右手装備) 鎧 e - {普通}+2 幻影のクローク(着用:外套) l - 粗末な青銅環の鎧 食料 f - 5つの{普通}クラム o - 食料 魔法書 h - 鉛色の書物 k - 画用紙判の書物 薬 g - マタタビの小瓶 j - バニラの小瓶 (end) 今の所、対象となるものは 本来の素材が鉄/合金/木製と設定されている武器防具、およびその他一部。 > --*[追加]材質に黒燿石(obsidian),炎(flame)を追加 もしてみました。 素材追加ダメージ処理は元々hates_material()でまとめてたので、それを流用。 氷の武器が火の怪物に追加ダメージを与えたりします。 一部のアイテムは日本語化の部分でちょっと細工しています。 さすがに「鉄の鉄環の鎧」とか「水晶の鋼鉄の鎧」とかでは変ですし(w;)。 ちなみに願いに関してはまだ不備があるかも。  #bronze orcish ring mailは願えても  #blessed bronze orcish ring mailが願えなかったり。 ---- 一方、JNetHck TNG3.4の虐殺取り消しの巻物バグ修正と共に 井出さん謹製の怪物生成数調整処理もとり込んではみたのですが… なんか試験時に最初の階以外で怪物が生成されないと思ったら、 どうも階移動と共に端から抹殺されていたらしい(ぉ)。  #廃墟となった店の入り口に店主の持ち物の山が。 #ifdef HONEY_FHSでまとめて記述してたのを慌てて分離し、 現在は封印中。 ------------------------------------------------------------ 07.01.02-07.02.02 ([Re:8]FHSパッチver0.8.16) 前回書いた時点のものをwizardモードで確認していた所、 新規階に移動する際に時々エラー落ち。 どうやらオークの兵舎を生成する際にエラーが生じているようなので、 その周辺を中心にメッセージ挿入とwizardモード確認を繰り返した所、 まあボロが出ること出ること。 ptrが空っぽの状態でもmonsndx(ptr)を呼び出そうとしてたり、 otmpが存在しない時点でotmpのnutritionやdelayを読み込もうとしてたり。 良く動いてたなこりゃ(汗)。 --- shallow-waterパッチをはじめとする様々なパッチを作成されているL氏のサイトを 久しぶりに覗いて見た所、   shallow waterパッチがバージョンアップしてた(^^;) 新地形「柱」を加えたTerrainパッチという物になってました。 移植済みの「浅い水たまり(shallow water)」に関する部分も一部バージョンUpしてたので、 まとめて再移植および再整備。 大地の巻物の効果処理がdrop_earth()として独立化していたので、 FHSパッチの追加部分もdrop_earth()に反映移植。 いやあ、追加分は極力#ifdefで切り分けてるから移植も楽だわ。  #自分でどこをいじってたかすぐ判るし。 他にもbrassのmaterial処理を独立パッチに仕立ててたり、 この方も色々と作られてるようです。 ところで、水を嫌うShai-Hulud(ロングワーム)というネタが追加されてたけど 元ネタは何だろう。  #googleでShai-Huludを検索しても  #ロックアーティスト名らしきものがずらずらと。 …と思ってたら、見つかりました。 「デューン」(F・ハーバート)という小説に登場する巨大な砂虫(サンドワーム)が元ネタぽいです。 …って、jdata.baseでのクリスナイフの説明にも引用されてる奴じゃん(^^;) 納得。 --- さて、昨年からちょこちょこ手を加えてた訳ですが、 念頭においていた事の1つに   怪物の絶滅を防ごう というものがあります。 例えばオークの大群をばんばん出してプレイヤーを圧倒しようとしても、 NetHackのシステムでは20体のグループを十数組も出すと絶滅してしまう訳で。  #怪物一種類につき255体まで。  #絶滅した怪物を更に生成しようとした場合、  #ランダムな(おそらく無関係の)怪物が生成される模様。 特殊部屋も増えましたし、リーダー怪物も部下を引きつれて登場しますし、 これらの為に一部の怪物達の出番が増えてるものですから、 ある程度システム側で留意しておかないと部下達の絶滅が早まりそうですからね。 部下になりうる怪物を増やしたり、 例え部下の一種類が絶滅していても、他の種類の部下を選択するようにしてみたり。 ほとんど名前を変えただけのよわっちい怪物を無秩序に増量実装しているように見えても ちゃんと意味はあるのですよ。  #特殊能力持ち怪物の比率が増えてる分を和らげるという意味合いもありますが。  #他はともかく狂犬系のdがちと多すぎるのは何とかしたいなあ。 --- JNH3.4.3-0.8への移植はほぼ完了していた(^^;)ので、 CVSの修正も反映したり、 JSLASH'EM-0.0.7E7F3-J0.1.5の修正を一部反映したり。 そしてFHSパッチ0.8.16として公開。 まだまだ組み込みたい/変更したいものも多いのですが、 一旦区切りをつけておかないと収拾つかなくなりそうで。 次回実装したい物の1つは洞窟人Type2。 元テキストのあった他のクエストとは違い、一から書き上げる事になるでしょうから 一筋縄ではいかないです。 2つ目は爆発処理。 L氏のパッチの中に、怪物に様々な爆発(炎の爆発とか)をさせるものがあったのですが、 これ、explode()に手を加えているんですよね。  #パラメーターとしてobjでもmonでも送れるように改造されている。 怪物のバリエーションを増やすという意味では大いに興味があるのですが、 爆発というのはSpitパッチの根幹を成す処理の一つでして…(- -;) 導入するとなると、Spitパッチの毒液処理を根本から組みなおす事になるでしょう。  ・explode()に直接関わるダメージ型爆発の毒液  ・色々処理を誤魔化してる状態変化爆発の毒液  ・他にも、うさだケーキとかとか そしてそこまで手を加えるのであれば、 いっその事explode.cそのものをSLASH'EM基準にしてしまうというのも手ですし。 そうなると、銃火器導入も本格的に視野に入るか…?  #但し威力と使い勝手はbrass並に弱めるかもしれません。  #もしくは先込め式単発銃程度の物を導入とか。  #手榴弾ガス弾はどうするか。ダイナマイトは有っても良いかもですが。  #パレットガンをどういう形で実装するかも考えねば。 --- その他、組み込みたいものとして  ・モンスター騎乗パッチ  ・materialパッチ  ・ゲヘナの変更 などなど… なんかAli氏のパッチデータベースにGrundHackなるものも投稿されてたし。  #中身を(つまみ見で)見たけど、  #これってゾンビやミイラが大量に登場すると絶滅し易くならないんだろうか。 brassも去年に新版が出てましたね。 新地形も色々あったけど、とり込みはやはり次回のお楽しみに。  #草地とハーブとDungeon Growthパッチの兼ね合いをどうしよう。  #ハーブ成長処理に関してはADOMのが一番凄そうだけど、  #自力で処理組める自身なし。 --- これらとは別に、聖器の命中率補正も何とかしたい所。 現在は、artifact.hでは設定しきれない追加効果の処理を artifact_hit()等で補っているのですが、 これだとspec_applies()に反映されず、結果的に命中率にも反映されないんですよね。 聖器の強化禁止処理も入れているものですから、 大多数の聖器は魔法強化によって命中率を上げる事もできない。 せっかく威力があっても全然当たらなくなるおそれが。 と思ってspec_applies()かどこかをいじろうと思ったけど、 面倒なので断念(ぉ)。 --- なんにしてもver0.8.16公開。 えらく間が空いてしまいましたが、これからも宜しくです。 ---- 06.06.18-07.01.01 ([Re:7]FHSパッチver0.8.16(未公開)) 年も変わり、明けましておめでとう御座います。 (太陰暦の方々御免なさい) 昨年はほとんど活動らしい活動もしていませんでしたが… これからやらなきゃならなそうな事は、新規開発を抜きにしても ・JNetHack3.4.3-0.8に対応(未だに0.7ベース)  できれば0.8以降のCVS修正にも対応したいけど… ・FHSパッチ ver0.8.16の公開を急ぐ  洞窟人Type2のクエスト文章にはなかなかかかれないので、  それ抜きでも様々なbugfix対応として出した方が良さそう。 ・Random Questへのbugfix反映  JNH3.4.3-0.8への対応もそうだけど、  FHSパッチでは対応・変更済みになっている箇所も反映しないと。 うーむ、結構難儀そうだ。 ---- 年末に思い立ったように実装再開してみる。 試験的に新クエストを組み込んでコンパイル。 …職業選択をした時点で落ちるなあ。 ランダム選択だと問題無いんだけど。 ソースコード書き間違いかと思い、あれこれ削ったりコメントアウトしたり 元ファイルに対して再移植や新たに書き込みしても変化せず。 途方に暮れていたのですが、どうやら   ファイルが多すぎてnhdatに入りきらなかった模様。(ぉぃ) コンパイル画面で最後の方に「200ファイル超えてるからうんぬん」と出てたのを見落としてました(泣) そういえば以前にyoukanさんも同じ状況に陥った話をしてたなあと思いつつ、 util/dlb_main.cのMAX_DLB_FILESを修正。 本家では200だったけど、とりあえず300に。  #250辺りで様子見した方が良かったのだろうか。  #その他にも色々と問題はあったんだけどね(ぉ)。  #実装のノウハウ忘れてるなあ。 それにしても、とうとう総ファイル数もオーバーフローするまでになりましたか。 思えば遠くに来たもんだ。 ゲヘナとかモンスター騎乗とかautothrust(だっけ?)とか brassのマテリアル処理とかHTMLダンプ(結局うまくいってないなあ)とか、 まだまだ組み込んでない物は多いというのに。  #内容理解して、多少なりとも自分でもいじれるようになるまでは組み込みたくないです。 ちなみに、新クエストの内容についてはノーコメント(w)。 細かい所は色々と調整する必要があるけど。 ---- で、新年にも色々といじっておりました。 考古学者Type2の冗長ソースを整理したり(Ar2とかArch2.desも不用に)、 新実装の不備な点を調整したり、 処理を分割した箇所に説明文をつけてみたり… やる事は他にも沢山(NetHackに限らず)有るのについついのめり込んでしまいそうに。 いかんいかん。 なんにせよ、今年も宜しくお願いします。 ---- 06.04.04-06.06.18 ([Re:6]FHSパッチver0.8.16(未公開)) メモ。 RJNH案ではでじこが闇の店主の座におさまっている訳ですが、 別バージョンで  えころじかるペンギン(ecological penguin) てのは有りだろうか。 閑話休題。 --- おもいっきり間が空いてしまいましたが、 なーんも進めてません と、いいたい所なのですが じつは6月に入ってから 飛行モード関係でぼろぼろとボロが出てきたので 大慌てで対処してたり(^^;) なんせこの辺りは  スーパーマント&シルフィード実装 → 箒の聖器に流用 → パワードスーツに流用(後に取りやめ) というようにばらばら実装してったので、 色んな所がつぎはぎ状態だったんですよね。 なので、 外套と武器の両方で飛行モードにしていると 何かあった時の落下処理が2度行われたり、 予備武器として携帯してても飛行モードonにできたり、 それを主武器に持ち替えるといきなり「飛行モード」表示が出たり、 予備武器のまま床に落としても飛行状態が継続したり(ぉぃ) 更にいうと、例えばシルフィードを手に持った状態でもa)pplyできるかも(ぉぃぉぃ) そのくせスーパーマントはa)pply一覧に表示されないし(ぅぉぃ)  #SUPER_MANTLEを単純にboolean換算してたのでオーバーフローしたものと思われます。  #(おそらく以前のリーダーのみの大群生成と同じ理由) とまあ、本格的な活動再開にはほど遠いけど、 ちょっとずつ活動再開は試みております。 本格再始動の予定は未定(- -;)(_ _)。 --- あー、いつの間にやら各種Win32バイナリ版をUpされてる方が。 本人がこんななので反応鈍くて御免なさい。 > サイト構成が分かりにくいので必要な情報に辿り着くのは大変? ごめんなさい =□○_ (後略。あとはサイトのだいありぃ?にて) > NetHack ランダムクエスト&戦士パッチfor3.4を適用したバイナリ そういえばこのパッチも去年からupdateしてないから その後も色々不具合修正してたはず。  #bugfix0002のオーククエストの柱の表示改善とか。 FHSパッチには組み込み済みな状態で日々改良(日々じゃないだろ)してはいるので (ただ一部はFHSパッチ用に改造してたかも)、 0.8.16の公開のメドがついたら反映するつもりではいるのですが。 気になるようでしたらFHSパッチの該当箇所から拾って…てのは無茶ですね(汗)  #テキスト状態で何MBあると思ってるんだ>自分 あ、あと戦士の二刀流、採用の方向で修正されたんですね。 FHSパッチだと剥奪の方向で修正してたけど、こちらも合わせるかな。 そういえば私事で恐縮ですが > HTML出力機能付き JNetHackのパッチ 何故かFHSパッチに組み込んでもまともに出力されなかったり。 (過去の蛇足メモでも1、2度触れていたはず) 原因は不明。FHSパッチだとあちこちいじり回ってるからなあ。 ---- 06.03.08-06.04.03 ([Re:5]FHSパッチver0.8.16(未公開)) お久しぶりです。 めっちゃくちゃ期間があいてしまいましたが、 FHSパッチに関してはあまり進んでいるものでもなく。 それでも多少は手直ししている箇所も有るので、 06.04.03版は出してみる。 前回の06.03.07版からの主な変更点は、 ・JNetHack3.4.3-0.8に対応 ・bugfix0219 怪物の持つ食料品が火やら電撃やらで挙動がおかしくなっていたので修正 ・初代オカモチを落とすと床にめり込むようにした(試験不充分) ・聖器追加:A・Mスーツ ・パワードスーツから飛行能力を剥奪(…したつもりだが、まだ各部に残る処理の残骸を   片付けきってないはずだから不具合出るかも) ・Castleパッチ等で追加した新地形にも浅い水たまりを配置 てな所でしょうか。(他は無かったよな) いまだ試験不充分な所も多いかと思われますがご了承下さい。  #毎回試験そこそこに出すのが悪いんだろ>自分 そういえば豆類の英名・和名も再検討してみたいなあ。 インゲン豆にするか大豆にすべきか、とか。 よさげな資料が見つかったんでゆっくり検討。 もっとも、一番やっておきたいのは洞窟人クエストtype2ですけどね。 ------------------------------------------------------------ →これ以前は別Fileにて。