------------------------------------------------------------ FHS patch (Funny-Honey-Spit patch) 蛇足メモ 作成者:Shiganai Sakusha ------------------------------------------------------------ ------------------------------------------------------------ 雑記 [にうきゃら掲示板(補助用)と連動している内容もあります。(こちらで書かれた内容が掲示板で解決とか)] ------------------------------------------------------------ -2013.06.09 (FHSパッチver0.8.25a) …えーと、度々済みません。 昨日の今日ですが修正版をUp。 ver0.8.25aとなります。  ・bug 0503 庭園を生成する際の部屋の選択処理に誤りがあり,また生成時にゲームが異常終了する さすがに落ちるのはまずいんで(汗)。  #ちなみに落ちていたプロセス(一部は想像):  # ・mkgarden()では部屋指定も指定無し((struct sroom *)0)も可能にしている  # ・指定無しの場合は外部分離したchoose_garden_sroom()にてランダムな部屋を選ぶ  #   …はずが、choose_garden_sroom()側のミスで無意味に計算を  #   繰り返した挙句にNULLを突き返す  # ・受け取る側のmkgarden()でも、この期に及んでNULLのままだとは想定しておらず  #  安全処理が無いまま落ちる  #  #0.8.25aでは、既存の部屋選択処理(pick_room())に手を加えて使用。  #(但しpick_room()そのままだと、扉1つの部屋でなければ選択率が落ちるので  # その箇所をちょっと改造) ------------------------------------------------------------ -2013.06.08 (FHSパッチver0.8.25) はぅ、記述ミスが(> <) いや、Upしているファイル自体は問題ないのですが、 配布ページの方でファイルへのリンクミス、 bugfixページの冒頭でver記述ミス、といった感じに細々と…(w;) 直しておきました(_ _)。 ------------------------------------------------------------ -2013.03.07 (FHSパッチver0.8.25) まず最初に。 どうもサイト6のサーバー(land.to)がまともに機能しているのか怪しいので、 NetHack関係のページもサイト5に移動しました。 ファイル類はそのままではUpしきれなくなったので、専用にUploaderを借りてそこにUp。  #Sourceforgeは出鱈目に重くレイアウトも滅茶苦茶になっていて使い物にならなさそう。 閑話休題。 ---- いやあ、とある所に麒麟入手(できるかもしれない)イベント組み込んでいたのですが、   神の使いとして扱っているために   鞍をつけられない のですな(w;)。 #つける際に強制的に失敗することに気づいた。 ま、これはこれでいいか。 閑話休題。 --- …さすがにブランクが長すぎて、トラブルへの対処方法をすっかり忘れてます(- -;)。 えーと、突然コンパイル失敗するようになったけど、 追加地形に関するdesファイルのsyntax errorってどう対処したっけ。 …という訳で、掲示板の過去ログから以前教わったものを引っ張り出して転載。 どこに書かれていたかも忘れかけてたもので(マッテ)。 ----------------------- > [162] Re: 新地形移植 投稿者:youkan 投稿日:2005/02/08(Tue) 17:57 > > > うろ覚えで適当なことを書いてしまったので、確認してまとめ直しました。 > > ---- > > yacc/lex を用意。Win32用なら↓とか。 > http://hp.vector.co.jp/authors/VA010446/toolbox1/ > 実行ファイルにパスを通しておく。面倒なら borland\bcc55\bin とかに一緒に放り込んでおく > > Makefile.bcc >  デフォルトでは DO_YACC, DO_LEX がコメントアウトされているので、有効に戻す >  YACC, LEX に用意した yacc/lex の実行ファイル名をセット >   上のものなら YACC = yacc, LEX = flex > > util\lev_main.c >  what_map_char() に新規マップ地形の処理を追加 > > util\lev_comp.l >  91行目に desファイルの MAP〜ENDMAP 内に書けるシンボルの定義があるので >  ここにも新規マップ地形用のシンボルを追加 > > 以上でできました。 > > ---- > > リリース版では lev_yacc.c と lev_lex.c(lev_flex.c) を sys\share にコピーし戻して > Makefile.bcc の DO_YACC, DO_LEX を再度コメントアウトして元に戻しておくと > 親切かもしれません。(と言いつつやったことありませんが…) ----------------------- 転載終わり。 で、その通りにコンパイルし直してみる。 …まだエラーが =□○_ 結局、現在公開中の試験版(これは問題なくコンパイル)から utilフォルダのファイルを全て移し直し、なんとか成功。 全ファイルの冒頭につけていた年号を書き換えたのが何か悪さしたようです。 #後に、util/lev_flex.cはいじらなくてよさそうなことが判明。 …その後色々といじっているうちに、 yacc/flexを有効にするとまたエラーが(- -;)。 あれこれいじり回した結果、原因判明。 そもそも、  > yacc/lex を用意。Win32用なら↓とか。  > http://hp.vector.co.jp/authors/VA010446/toolbox1/  > 実行ファイルにパスを通しておく。面倒なら borland\bcc55\bin とかに一緒に放り込んでおく ↑これを新PCのbcc55に入れてなかったのが原因でした =□○_ ---- でもって、誰も待ってないような気もしますが 今更ながらにver0.8.25リリース。 試験版から更に変更した箇所は大体以下の通り。 >-Copyrightの表記を変更 >--NethackやJNetHackの記述にならい『Copyright (c) [名前], [名前], [年号]』と表記するようにした このため、手をつけたファイルはほぼ全部書き変わっています(- -;)。 >-英語でもコンパイル可能なようにJNetHackの処理をconfig.hで設定可能にした(但し不完全) >--config.hで#define JPを規定,和文メッセージやJNetHack特有処理等を分離 これは、JNetHackのソース中は和訳方法の関係で 英語でのコンパイルがしづらかったので、その対策用に書き換えたものです。 ちなみにJNHだと  /*JP  [英文]  */  [和文] とか  #if 0 /*JP*/  [英文]  #else  [和文]  #endif とかになってます。 これを以下のように書き換え。  #ifndef JP /*0*/  [英文]  #else /*JP*/  [和文]  #endif /*JP*/ こうしておけば、config.hの方で #define JP の有効/無効を切り替えられます。 一応、英語版に無理矢理放り込んでコンパイル確認。 その過程で分離ミスや、FHSパッチ追加分の英文などをどっちゃり補完したり修正したり。 …メッセージ数千箇所のうち、まだ英語に訳せていない箇所が200箇所ほど残っているけどいいよね (^^;) ただ、英語ではまだまともに動きません。 >--但し現在の所は以下のように動作不完全なため使用不可 >---Makefileを英文用に書き換える必要あり >---FHSパッチで変更していないファイルは分離処理もしていない(英語版ファイルを用意する必要有り) >---コンパイル時にsrc/o内のファイルが残っていると失敗する >---実際のプレイ時にpline()(一行メッセージ)が全く表示されない マップ文字化けは覚悟の上だったのですが、 一行メッセージ(大部分これ)が表示されないとは予想外(- -;)。 一応htmldumpで出力したhtmlファイルにはメッセージも記録されているのですが… 時間かければ対処できないこともないのでしょうが、今のところはやめておきます。 またの機会に。 ---- 試験版からの変更点、あとは箇条書きで抜き出し。 +-得点リストにおける精霊階の表記を「*番目の精霊階」に変更 +--精霊界の順序がランダムに設定されることに対応. +-通路等の天井(rock above)の和訳を「上方の岩」から「石の天井」に変更 +--「岩が上方の岩から落ちて」くるといった表記を避けるため. +-地面(ground)や草地(grassland),絨毯(carpet)の上にも墓石が立つようにした +--Sticks to snakesを強化 +---術者の足元や持ち物にある棒を変化させ,より強力なor数多くのヘビを造り出します. +---変化可能な棒がある場合は,虫の召喚よりも優先的に唱えてきます. +-盗み攻撃の処理を調整 +--盗み攻撃として扱われるAD_**を統一 +--AD_CNGWの専用処理が発動しない時にはAD_SEDUに準ずるようにした +-L氏のmonster spell patchより以下を移植 +--Drop Boulder:[術士系魔法]目標の頭上に岩や鉄球を落とします. +--[追加]丸太が落ちてくることもあります. +-ジェダイの初期装備に食料品を追加 +-薬を混ぜたとき,毒薬と病気の薬の両方が出来得るようにした +-運命の大迷宮に,以下のような部屋が登場するようにした +--特殊部屋「王の間」 +--暗い森 -回廊をもち内壁が取り払われている部屋は,取り払われた内壁の四隅に柱が立つようにした +--但し島と森の周囲には柱は立ちません. +-メッセージ関係 +--シャツの文字を追加(「今年の漢字」に追加) +--玉座に座った時の効果を一部調整 +--ドワーフとエルフが会話した際に無視される確率を下げた +--一部のメッセージ和訳を「回り」->「周り」に変更 +--その他色々追加,調整 +-シルフィード等の飛行可能なアイテムを装備している場合,上空から落ちても死なないようにした ---- というわけで、ようやく正式版リリース。 ------------------------------------------------------------ 2011.04.03-2011.10.04 ([Re:4]FHSパッチver0.8.24a) うーむ、久しぶりにいじってみたけど 未だにバグが潜んでたかorz という訳で試験版更新。 ほとんどはJP部分の変更と、若干の英訳抜け追加なんですけどね。 完備できれば英語版への切り替えがある程度容易になるとは思うのですが、 先は長い… ------------------------------------------------------------ 2011.03.12-2011.04.03 ([Re:3]FHSパッチver0.8.24a) 気づいてみれば、いつの間にやら当サイトも10周年。 これからもよろしくお願いします。 とはいえほとんど放置状態ですが =□○_ ちょっと目新しいものに手を出してみようかなと思ったのですが、 色々調べてみたら、必要ツールだけでもあれこれと… こ、これはなかなか難しそうだ =□○_ ---- 試験版公開。 ------------------------------------------------------------ 2011.02.13-2011.03.11 ([Re:2]FHSパッチver0.8.24a) 地震状況報告。 長い揺れで余震も多かったですが、とりあえず私の家はほとんど被害無し。  #軽くてすわりの悪い置物(卓上カレンダーとか)が幾つか倒れたり転げ落ちた程度。  #海から離れているため津波の心配も無し。(ここまで水がくるなら東京23区の幾つかが先に水没するはず) ただ、一時CATV回線が元から遮断されました =□○_ WebもTVも、さらには電話も使用不能。 停電が無かったのが幸い。 回線復旧したため、状況報告代わりにこちらをUpした次第。 皆様…大丈夫でしょうか。  #地震直後の速報で震度7がぽんと出されるだけでも異常さが伺えます。 閑話休題。 以下は書き溜めていた文章になります。 ---- Color Alchemyをアレンジして導入できないかと、色々机上で空論練ってみたり。 閑話休題。 ---- タイル版のランス表示の不具合ですが、 どうやら騎士に限りランスのタイルが正常になる事もある模様。 単なるtridentとtwo-handed tridentが存在するために読み違いが起きているようなのですが、 それにしてはflailとtwo-handed flailではこのような読み違いは起きていないんですよね。 単なるtridentを名称変更すれば解決しそうなのですが、よい案も無く…このまま。 それとは別に、地形タイルに関して幾つか手直ししてみました。 幾つかの地形で、明るい状態と暗い状態の色合いが逆転して見えていたのでそれも改善。 ついでに「地面」は、明るい時に限り全面が茶色っぽく見えるようにしました。(「床」はそのまま) あとタイル表示の大きな不具合としては、   Map上で彫像が表示されない(真っ黒) 事ですかね。 =□○_ 表示シンボルを怪物のものに差し替えてるのが原因でしょうけど、 なにせタイル関係の内部処理に関してはほとんど謎で(ブラックボックス状態) どう手をつけたものやら… ---- 怪物専用の魔法を幾つか追加してみる。 僧侶系魔法が少なめなので、今回は主にそちらを。 -怪物専用の術士系魔法を調整 --Create elemental:術者の周囲にある素材をもとに,精霊や怪物を造りだします. --Phantasmal killer:目標に恐ろしい幻影の怪物を見せます.意思の弱い者はショック死することがあります. -怪物専用の僧侶系魔法を調整 --Holybell  :聖なる鐘を目標の頭部にぶつけます. --Transpond wounds:術者の受けているダメージを目標に移し変えます. --Contagion:目標をランダムな病に冒し、能力値のうち1つを下げます.~ (注意:ステータスの「病気」にかかる訳ではありません) ただ、特定条件下での差し替え魔法として働くものも多いため、 魔法のランクの最高値はほとんど上がっていません。 Phantasmal killerは死の宣告より弱めですし(でも即死系なのでうかつに追加できない)、 僧侶系魔法はHolybell以外は中級程度のランク。 今回はCrack earthやHell visionのランクを上げましたが、 やはりSummon elmだの死の宣告だのより上位の魔法を考えるのはなかなか難しいです。  #現在は僧侶系のSummon elmと術士系のSummon monstersを同レベルに揃えている。 しかも僧侶系は、ただでさえ上位のダメージ魔法が充実しているので…  #GeyserとかFire pillarとかLightningとか。 バランス無視してパワーインフレさせるのなら幾らでもできますが、 一応は抑えつつ抑えつついろんな効果を追加してみたいので。 かといって特殊攻撃てんこ盛りにしすぎるのも何ですし…難しい。  #今までの実装でも既に抑えなぞ無い様なものかもしれませんが、それはそれで(^^;) ---- ジェダイ対応の第一弾として、ローブの仕様をbrass準拠に変更。 クロークではなく鎧として扱われるようになります。 ローブの聖器は…スネークスキンがあったか。 素アイテムを守りのローブにしておこう。 新たなローブも作ってみようかと思ったけど案なし。 天女の羽衣…むしろ聖器になりそうだ。 robe of forceとか…ジェダイを意識したものになるのかな。 Eastern robe(巫女用)…作りません。 テクニックについては、Ctrl-[S]pecial teck などとしてまとめてみようか検討中。  #SLASH'EMだと M-[t]ecknique だけど、vanillaだとM-tはターンアンデッドに割り振られている。  #逆にターンアンデッドの方をテクニックに組み込んでしまうという手も要検討。 そのときにはジェダイだけでなく戦士系のテクニックも多少検討してみても良いかもしれない。 ---- そういえばローブの仕様変更の際に、もう1ついじった箇所がありました。 -防具について,生成率(prob)の初期値合計を変動式にした --vanillaでは,一つのカテゴリーのアイテムは生成率の合計が1000でないとコンパイルできません. --これを,防具についてはコンパイル時に合計をARMOR_PROBSの値として保存するようにしました. (see util/makedefs.c) 今までは、なにか防具を追加した時には  ・追加した防具の生成率を上げた分だけ、他の防具の生成率を削る  ・追加した防具は自然生成されないようにする(生成率0) のいずれかを強いられていたのですが、 他のアイテムならともかく防具については鎧やら兜やら盾やらを全部ひっくるめて 生成率を1000に合わせる必要があったため、いちいち調整するのがかなり大変だったもので。  #クロークや手袋などは生成率が元から1桁しかないものも多かったり。 そういえば、道具もかなりひどい事になってたような。(楽器類がどれも生成率2程度とか) ------------------------------------------------------------ 2011.02.12-2011.02.12 ([Re]FHSパッチver0.8.24a) > そういえばタイル版の起動試験のときに、ランスの穂先が三叉だったような。 ver0.8.24a タイル版にて再確認。 以下はobjects.cにおける並び順。 普通は、表示ずれが起こるのは用意されたタイルに不備があった時なのですが… アイテム 用意されたタイル 実際に表示されているタイル javelin javelinのタイル javelinのタイル trident tridentのタイル tridentのタイル two-handed trident two-handed tridentのタイル !!tridentのタイル lance lanceのタイル !!two-handed tridentのタイル dagger daggerのタイル daggerのタイル …なんだこりゃ。 two-handed tridentとlanceだけ用意されたタイルが使われないって… さすがに直しようが無いので放っときます。 ------------------------------------------------------------ 2011.02.11-2011.02.12 (FHSパッチver0.8.24a) そんなこんなで、直せるだけ直したver0.8.24aと 新たな試験版を公開。 正式版の方は元バージョン(ver0.8.24)セーブファイルの互換性を極力もたせようとしているので、 そのままでは修正できない箇所はどうしても出てしまいますが…  #例えば今回の場合は「スパイダーボムの呼吸」や「機械化冒険者のHUMANフラグ」は修正していません。 一方、試験版の方はセーブファイルの互換性をもたせるのは難しいです。 なにせ今回Upするファイルは  ・正式版ソース  ・正式版の本家とのdiff  ・正式版の前verとのdiff  ・正式版バイナリィ(TTY版)  ・正式版バイナリィ(タイル版)  ・試験版ソース  ・試験版の本家とのdiff  ・試験版の前verとのdiff これに加えて前回の試験版をbugfixしたものを出すのはさすがに無茶です。 今回はあきらめました。 そういえばタイル版の起動試験のときに、ランスの穂先が三叉だったような。 他のアイテム表示にずれは見られなかったように思うけど…後で確認しないと。 ------------------------------------------------------------ 2011.02.10-2011.02.10 ([Re:3]FHSパッチver0.8.25(未公開)) あれこれ直し中ですがとりあえず。 > 死の谷の階段を上がると城に着かず、おかしな状態になる。 > その場で'>'を押したらなぜかsunless seaに出たので一応ゲームは再開できた 原因判明。 城のマップの1つ(castle-5)で、非正常な下り階段を設置しようとしてゲームが崩壊する。 #Lethe patchのものをそのまま持ってきていた >> 飛行中に磁力の罠にかかって浮遊状態 > >#wing_power_off()に、落下処理を省略できるモードを追加する必要あり 既に追加されてるやん… =□○_ 修正時にCloak_off_core()からまわる分を見落としてたのか。 > シルフィード装備のせいか、インキュバスの誘惑を受けるとクラッシュ とりあえず、それより前の方にある   #undef VS_SEDUCE_3 を削除すれば動くようになります。  #見直してみると、vs_steal()用のがあちこちに散らばってるなあ。  #根本的に解決するにはobj.hなりなんなりで一括指定したほうがよさそう。 ジェダイに関しては、vanilla準拠にしようとするとやはり色々無理があるか。  #当初は他の職業と共にRandom Questパッチに一括組み込みも考えていた。 ------------------------------------------------------------ 2011.02.06-2011.02.09 ([Re:2]FHSパッチver0.8.25(未公開)) うわぁぁぁぁ(> <;) youkanさんごめんなさい、去年10〜11月辺りのFHSパッチリプレイblogにようやく気づきました(_ _;) とりあえず直すべき点をメモ書き。 かなり重大なものもあります。 文章も口調も滅茶苦茶ですがご容赦を。 ---- > 聖域の扉なし&魔除けなしバグは Is_sanctum() が聖域でも FALSE を返すのが原因。 > 聖域のマップ名を "sanctum" から "sanct" に変更したのに、dungeon.c の level_map[] では > 旧名の "sanctum" のままになっているため。 #dungeon.cだけでなくdungeon.hやdecl.hなども含めて洗いなおす必要あり # #…そもそも、あれは一見ではマップの表示名だとしか読み取れないのですが(- -#) # #(desファイル展開時のlevファイル名をさすなら"bigrm"であるべきなのに # # "bigroom"になってる時点で…) > 死の谷の階段を上がると城に着かず、おかしな状態になる。 > その場で'>'を押したらなぜかsunless seaに出たので一応ゲームは再開できた #未確認。ただ根っこは上記と一緒かもしれません。 > 箱の罠にかかると全部毒針の効果になる #箱に設定される罠自体は問題なし。それをchest_trap()で読み取る際にバグあり。 # 誤: int cttyp = (otmp && otmp->corpsenm); # 正: int cttyp = (otmp ? otmp->corpsenm : 0); > ギルド『神々の黄昏』で襲ってくる敵を倒すとなぜか殺人鬼扱いされる #おそらく「機械化冒険者」のタイプのMapであったと思われます。 #機械化冒険者にM2_HUMANがついており、しかも「冒険者以外の人間」として殺人鬼の対象になっていた > シルフィード装備のせいか、インキュバスの誘惑を受けるとクラッシュ #未検証。 #誘惑妨害処理を洗いなおす必要あり(処理を組んだ後から戦闘関連の修正も入っているだろうし) > 当然ハーブ入手のために草地の多いマップでは画像のような#loot祭りになってしまう > わけですが、これはいいのだろうか…。 #いちおう現在は仕様通り(織り込み済み)。 #牧場の仕様ともあわせて再検討しないと。(現在は、平和な牧場は草地が報酬として織り込まれている) #当時は技術が無く断念していたが、特殊Mapの草地からは(ほぼor全く)雑草しかとれないようにする等の #処置はやはり必要か? (上記の階層指定をきちんと機能させれば可能なはず) > 飛行中に磁力の罠にかかって浮遊状態 #wing_power_off()に、落下処理を省略できるモードを追加する必要あり #(外部で落下処理を行うことは想定されていなかったはず) #この省略モードはdosinkfall_core() → Cloak_off_core() → wing_power_off()の流れの中で #機能するようにする(Cloak_off_core()のgently_fallで指定) > a)pplyするたびに「充填するか?」 > ジェダイ念動力が未実装 #やはりteckを実装する必要がありますよね… #他職業の分まで追加するつもりは無いですが。 #(衛士の分は、衛士実装の際に追加するかも) > ブラスターではなく両手剣とかで襲ってくるストームトルーパーを #ぜんぜん実装案が固まっていない銃器。 #候補は3つ。 # A:brass準拠。ショットガンもbrass方式に準じたものを作る。SLASH'EMからは爆弾関係だけ持ってくる。 # B:SLASH'EMのコードから、必要な銃器だけ抜き出して実装。 # C:SLASH'EMのコードほぼ丸写し。銃器の種類はゲーム内での生成だけ制限。(つまり願いで得るのはOK) > ジェダイの鎧の布製品制限はSLASH'EMでは実質ローブ類のみとして機能しているのですが、 > FHSパッチではローブはvanilla仕様(クローク枠)なので、防具の選択は > 迷彩服・学生服・看護服・メイド服と不思議なことに #こ、これは… どうしよ =□○_ ---- バグと言うわけでもないのですが、以下の記述も気になったので少し調べてみました。 > 「武器飛ばし」の魔法を頻繁に使ってくる #FHSパッチでは、怪物の魔法選択にかなり手を加えてて #「空撃ち」がほとんどor全くない状態ですからねえ。 #状況に合わない魔法が選択された場合、別の魔法への切り替えが頻繁に行われます。 # #当初は、通常は選択されない魔法に限定されていた(HurtとかFisticuffsとか)。 # #さすがにダメージ魔法一辺倒というのも何なので、魔法追加のたびにいじってます。 # #シディアス卿のレベルからすると、ほとんどの術士系魔法が使用可能なようなので #彼が「武器飛ばし」の魔法を選択する場合をスボイラー的に拾い出してみる。 # #・「武器飛ばし」を直接選択 #・「水たまり」を選択したが、足元が床(地面etc)でも通路でも無いとき #・「棘」を選択したが、足元に撒き菱以外の罠があるとき #・「防具破壊」を選択したが、PCが防具を装備できない怪物に変化しているとき # #…ぶっちゃけ、階段戦法をとるPC相手には武器飛ばしの頻度が高まりますね。 #あえてこのままにしておくかな。それとも防具破壊との二者択一にするか。 # # #…そういえば、ライトセイバーは武器ではなく道具扱いでしたね。 # #普通の武器であれば「武器壊し」として発動しているところです。 # > 「眩暈」の魔法 #の方は…vanillaと大体一緒か。 ------------------------------------------------------------ 2011.02.05-2011.02.05 ([Re]FHSパッチver0.8.25(未公開)) あ、昨日公開した試験版20110204ですが、 もしかしたら試験が不十分かもしれません。 =□○_ 特にターンテーブル関係。  #あまりに作業が散発的で、手をつけるたびに前にやったことを忘れかけてます。 機械的/魔法的な罠をwizardモード時のwishで得られるようにしないと。 ------------------------------------------------------------ 2010.10.13-2011.02.04 (FHSパッチver0.8.25(未公開)) 明けましておめでとうございます(遅) ども、サクシャです。 サイト移転後、おもいっきり放置状態でごめんなさい。 一応、FHSパッチも散発的にいじってはいたのですが、 このメモさえも全然書いていなかったので、いつ頃どこに手を加えたのやら =□○_ とりあえず、FHS_history_test.txtの記述から 手をつけたとおぼしき順番に並べてみます。 ---- -城レベル以外でも,歩哨が弓やクロスボゥを所持して登場することがあるようにした これにより、兵舎辺りでも弓兵が混ざるようになります。 -Hell Patchから以下を移植 --怪物追加:マモン 初期のD&D(AD&D?)にもマモンはいたらしいので。 -コボルドレベルを廃止しMapを削除 特殊レベルにするまでもないので、さっくりと廃止。  #特殊レベルにはローディオス砦への魔法の入り口が生成されないぽい。 -NetHack--から以下を移植 --怪物追加:コボルドの女王クルーエラ その割にはこちらも追加してみてたり。 コボルドの王クルーと一緒に出現します。  #和訳変換のシステムを応用すれば、  #女性型のKingが"Queen"と表示されるようにできるのかもしれないけど。 え、どこに出現するかって? -特殊部屋「王の間」追加 -回廊をもち内壁が取り払われている部屋は,取り払われた内壁の四隅に柱が立つようにした ver0.8.24で追加した処理も含めて、色々といじってます。 -怪物専用の術士系魔法を調整 --Create elemental:術者の周囲にある素材をもとに,精霊や怪物を造りだします. まずは地形から水/火/土の精を生成する処理を作りました。 後に岩やら彫像やらも変化対象に。 厄介者の召喚よりは魔法のレベルが低めです。 素材が必須なのに加え、基本的に1体ずつしか生成しないようにしていますし。  #風の精を生成対象にしなかったのもそのため。  #空間ある限り無限に生成なんて洒落にならん。 -turn tableの和名を「回転盤」→「ターンテーブル」に変更 -機械式/魔法式のターンテーブルを追加 以前にdasoku_FHS_patch14.txtで書いていた妄想を具現化 f(^^;)。 -噴気孔から噴き出す蒸気の雲の基本ダメージを低めにし,階層が深くなるほどダメージが増えるようにした 何箇所かにあった、蒸気の雲が地面等から噴き出す処理を 一つにまとめた際に威力も調整。 噴気孔なんかだと、同じ場所に幾つも雲が重なったりしますし。 -WEBB_AMBER_FOSSILSの仕様を一部変更 --従来:蘇生処理の際に一定確率で虫が蘇生 --変更後:琥珀の生成時に一定確率で「虫が封じられている」琥珀を生成 Create elementalの処理に彫像などの処理を追加した際に、 どうしても従来方式では矛盾が生じることが判明したもので。  #初期チェックと実際の生成処理とで食い違いが出るとまずい。  #間違えて何度「床」から土の精を生成してしまったことか… ちなみに、茶褐色のガラスの中にも 「虫が封じられている」ものがあるので悪しからず(w)。  #正確には「中に虫の姿が見える」なんですけどね。(つまり実物とは限らない) ------------------------------------------------------------ 2010.07.21-2010.10.12 ([Re:9]FHSパッチver0.8.24) この蛇足メモを書くのも久しぶり。 前回からかなり時間が過ぎてしまいましたが、 何もしていなかったわけではなく、 サイト移転だのメールアドレス変更だのといったゴタゴタはおいといて、  #今回から配布サイトが変わります。  #実はお知らせメール等も未だに出せていないのですが。 夏の間は猛暑でだれていましたが、それでも色々と(前回の試験版から)変更しております。 以下、FHS_history_test.txtから抜き出した変更点。順不同。 ---- ○アイテム関係 +-ゲヘナに施設生成の巻物で祭壇を生成した時は,祭壇の属性が無心になり易いようにした +-金属製の防具は,脆い素材によるACペナルティを受けてもAC0にならないようにした[materialパッチ] +--(オークの盾(通常は鉄製,AC1)が青銅製になった時にAC0になってしまうのを回避) +-鎮痛キノコを食べたときに記憶喪失が起きる確率を大幅に下げた(他の効果はそのまま) +--毒への耐性を得るのと同程度の確率で起きるようになります.  鎮痛キノコを多少なりとも使いやすくできればと。 +-記憶喪失の巻物を読んだ時の効果を改善 +--混乱した状態で読んだ時の効果が一部追加されます. +--巻物が祝福されていた場合,読んでも記憶を失わないことがあります.  記憶喪失の巻物を多少なりとも使いやすくできればと。 +-NetHack brass R/Sから以下を移植 +--二刀流の時にも二度攻撃が発動するようにする処理 ○聖器関係 +-聖器追加:天雷,迅雷,遠雷,轟雷,星の杖  雷シリーズは、今まで不足気味だった   ・雷の聖器   ・効果がシンプルな聖器   ・和風の聖器   ・各属性において該当スキルの武器が少なかった聖器  を一気に補完することを目論見んだものでして f(^^;)。   #以前問題だった「長柄武器の遠隔攻撃では聖器の属性攻撃が発動しない」問題も   #brassからAUTOTHRUST等を導入した際に改善済み。  星の杖は、yzhackのスターリングインフェルノに触発されて実装。  差別化のために特殊効果も付与してみましたが…何を付与したっけ? (マッテ) +-聖器削除:ライフスティーラー  FHSパッチでは初(?)の、追加済み聖器の削除。  さすがに「使われないこと」を前提とした聖器をそのままにしておくのも何ですし。   #そういう意味では、北辰はちょっとまずかったかも。   #冷気はアンデッドに効かないし。 +--ヴラドはランダムな混沌の武器聖器を所持するようになります.  で、代わりにこれを実装したのですが…  なぜか普通の武器しか装備しないので不思議に思っていたら     串刺し公ヴラドの装備:         武器     a - {普通}鉄製のメイス(右手装備)     鎧     b - 風穴という名の{呪}一対の詰めもの入りグローブ(着用:腕)     (end)  というように職業専用防具が含まれていたり(汗)、   #偶然にも使用キャラが混沌の僧侶だったため、   #風穴も生成可能な聖器となっており、その属性も混沌になっていた。     串刺し公ヴラドの装備:         武器     a - {呪}光沢のある鉄製の長剣(右手装備)     b - 調和の振り子という名の{呪}銀製のメイス     鎧     c - {普通}黄金製の王冠(着用:頭)     (end)  というように銀武器が含まれていたり(汗汗)。  モンスター用/自然生成用の聖器もPCへの下賜聖器と同様に  扱っていたのが原因と判明し、その辺りを色々と手直し。  …ヴラドが『一打ちで七つ』を振り回す可能性は未だに残ってますけどね(w;)。 +-識別済みの聖器も素材名を表示するようにした +-素材変化のリストを調整 +-棘付きの棍棒の基本素材を木材 -> 鉄に変更 +-トゥインクルスターの素材をミスリル -> 合金に変更 +-月の杖の素武器を鳶口 -> ベック・ド・コルバンに変更 +-職業優先聖器を整理  杖関係を色々細かく変更しています。  それもこれも、こちらとの差別化を図るため。 +-yzhackから以下を移植 +--聖器追加:烏漆の弓 +--聖器追加:スターリングインフェルノ +---[変更]素武器をミスリル製の星のロッドに変更 +---[変更]悪魔にはダメージ2倍,それ以外の全ての相手には追加ダメージが1d10+5に +---[追加]装備中は願いのメッセージが若干変化するようにした  はい、公開からあまり日の経っていないyzhackから拝借したものかどうか迷ったのですが、  結局頂いてしまいました(_ _)。  最初はスターリングインフェルノだけだったんですけどね。  烏漆の弓の方も、色々検討した末に  「侍も得られる弓聖器」である点を考慮し実装。   #桔梗の霊弓は混沌であり、侍の優先聖器でもないので、   #秩序の侍には下賜されない。 ---- で、最近は主にマップのほうをいじっておりました。 ○マップ関係 +-地形の'iron bars'の和訳を「鉄棒」->「鉄格子」に変更 +-ヴラドの塔の2階・3階の構造を変更  3階のヴラドの部屋を広めにしました。  後、多少の仕掛けを追加。 +-ディスペータの階層を一部変更し,運命の大迷宮と同様の特殊部屋が登場し得るようにした  運命の大迷宮タイプのフロア生成処理を分離し、任意のマップで使用可能にしました。  ディスペータの階層(正確には途中階)でしか使っていませんが。 +-水のレベルの怪物を一部差し替え,Mapを1種類に統合 +-デルファイの信託所の泉を変更 +--泉の配置が十字だけでなく斜め四方にもなり得るようにした +--魔法の泉が生成され得るようにした  賢者が生成される際に、自動的に周り四方に泉が配置されるようにしました。   #「人口の庭園」で用いた「四方に泉を配置する」処理を応用。  上下左右方向になるか斜め方向になるかはランダム。 -運命の大迷宮に,以下のような部屋が登場するようにした --部屋の外周が堀/沼地/溶岩で囲まれた部屋 --部屋の外周に床/地面/草地/絨毯の回廊をもつ部屋 +---部屋の内壁が鉄格子になっていたり,内壁が取り払われたりしている事もあります. +--中央に島がある部屋  brassのrandom vaultのひとつを、desファイルに頼らず再現しようとしたのですが、  結局はJohn Harris氏のISLAND(from Level terrainパッチ)に近いものに。 ---- その後も細かく修正し、ver0.8.24として公開。 …といっている端から修正していたり。  #島の宝箱に(深い階で追加される)追加の宝を納める処理で落ちた。  #サイト公開告知前でよかった。 …へろへろっす =□○_ ------------------------------------------------------------ 2010.07.11-2010.07.21 ([Re:8]FHSパッチver0.8.24(未公開)) ヴラドの特殊能力に、槍の罠と同様の特殊効果を追加しようかと思ったけど取りやめ。 閑話休題。 ---- スリング弾を、矢玉と同様に強化可能にしてみました。  #普通の石類は相変わらず強化不能。 ちなみにスリング弾は銀などにも材質変化します。 これでスリングが使いやすくなるとよいのですが。 ---- 案メモ書き。 何とかしてモノにしたいもの幾つか: ・Firearms(銃器類)  ずーっと懸案になってますが…  brass方式、SLASH'EM方式、RJNH方式あり。 ・Mega spell  こちらもずっと懸案になってますが…  爆発の範囲を広げたり、光線系呪文を充実させたり。 ・Flipped Levels  特殊階のマップの上下左右が反転し得るようにするパッチ。  SporkHackやUnNetHackに導入されてたような。 ・Color Alchemy  薬の混合を「三原色」と「明度」で扱うパッチ。  これもSporkHackだかUnNetHackだかに導入されてたような。 Color Alchemyについては独自の追加案(できたらいいな)も書いておきますか。   ・ハーブは2系統に分ける     ・現実世界(or架空)の植物類。主に治療効果をもつものや毒草など。      初期装備でハーブを持たせる時はこちらになりそう。     ・無名のハーブ類。花びら、種、実、葉、樹皮、根といったもの。      色名をつけて「赤い花びら」「水色の葉」等にする。      素の状態で効果を持たせるかは未定。     ・できれば「雑草」はこのまま残したいところ。   ・薬の未識別名は色などによるvanilla方式(Color Alchemy対応)に戻す。   ・色と明度による混合は、ハーブ(や宝石)を薬に浸した時に限り適用する。     #薬同士を混合する時は従来の方式を適用。     #これにより、レベルアップの薬などを量産できてしまう事態は多少抑えられるはず…   ・店の追加サービスで加工した場合は、ハーブそのままの色が出る。   ・ハーブ(や宝石)を薬に浸した場合は、浸した薬の色と明度による影響を受ける。    また花びらを用いると「明るい」色に寄り、樹皮や根を用いると「暗い」色に寄る。    実や葉を用いると明度は変わらず。種はどうしよう。    あと宝石もどうするか。(透明か不透明かで明度を変える?) 問題は、未識別名の追加にどれだけ対応できるか。 FHSパッチだと薬が幾つも増えてますし。 ---- その後、D++さんのご報告による不具合を修正しつつ 2010.07.20版を… バグひとつ見落としてた(T T) 2010.07.21版をup。 ------------------------------------------------------------ 2010.06.20-2010.07.10 ([Re:7]FHSパッチver0.8.24(未公開)) #ifndef JP の処理、do_wear.cまで完了。 むう、ランダムクエストのバージョンUp(再分離)は これが一段落してからにしようかと思ってたけど、 この調子だといつ終わるかわからないなあ。 ---- youkanさんもblogにて書かれておりましたが、 vanillaにおける不確定名の処理は、その都度文字列を確認しているのですよね。 FHSパッチでも、はにふぁにバースト(Honey Funny Burst)辺りで 不確定名の処理を色々と拡張してはいるのですが、 見返してみたところ、処理方式がてんでばらばら(- -;)。 基本の読み取り方式(chk_worn_desc_core())は、やはり文字列の直接確認。 魔法書や指輪については色々と新たな試みもなされてはいるのですが… oc_oc1やoc_oc2に代入したり、 追加の不確定名処理(oc_wsdamとoc_wldam)の変数を流用したり。 さすがにこれは何とかしないと。 という訳で、不確定名の処理もろとも全体を練り直し、 順次新方式に差し替えていきました。  ・特殊な不確定名の効果についてはoc_oc2に変数を代入するようにする。   (従来oc_oc2を使っていたものについては、武器類(ダメージボーナスで使用)を除き    適当に移動させる)  ・代入する変数はobjclass.hで直接定義。  ・shuffle()[o_init.c]時にoc_oc2もシャッフル対象とする。   (不確定名効果以外でこの箇所を使う「武器類」は基本的に    シャッフル対象とならないので問題なし) youkanさんの方式とは(多分)違い、変数をいちいち定義する必要がありますが これはこれで利点もあります。  ・複数の不確定名に同じ効果を割り振るのが楽  ・シャッフル対象にならないアイテムに対しても同じ効果を割り振るのが楽 不確定名自体も色々調整したり差し替えたり、和訳を変更したり。 正式名と不確定名を区別しやすくする試みもしてみています。 今までのものと併せ、今回の修正後は以下の通り:  兜: 変化なし  小手: 変化なし  靴: 正式名「靴」,未識別名「ブーツ/シューズ」  指輪: 正式名「指輪」,未識別名「リング」  魔除け: 正式名「魔除け」,未識別名「お守り」  眼鏡: 正式名「メガネ」,未識別名「眼鏡」  薬: 正式名「薬」,未識別名「小瓶」  巻物: 変化なし  魔法書: 正式名「魔法書」,未識別名「書物」  杖: 正式名「杖」,未識別名「ワンド」 基本的に正式名はJNetHackを踏襲し、不確定名の方をいじるようにしてあります。  #なので杖は、現在は正式名が「ワンド」になっているのを今回の修正で差し戻し。  #眼鏡だけは完全に新カテゴリーにしているせいもあり、正式名の方が片仮名に。 もっとも、統一されていないものも一部存在します。 巻物は不確定名が「『○○』と書かれた巻物」となっているので、特に変える必要もないかと。 兜については案も無くそのまま。 そういえば小手も正式名を「小手」、不確定名を「手袋」としようとしたけど 革の手袋などがあったんでそのままにしてたっけ。 …これらも不確定名を「ヘルメット」「グローブ」に変えるべきか?  →変えました。 ---- 以前に考えていたヴラドの特殊攻撃案のメモを発掘。 案と言っても毒の処理に関するメッセージ周りのメモ書き程度でしたが、 色々と整備して実装しました。 仕掛け槍や長い杭でPCを串刺しにしてきます。  #元々「長い杭」はこのために実装したアイテムですし。 最初は至近距離限定にしていたのですが、PCとの距離とは無関係に発動するように調整。 ---- 未だに出ていたrn2(0)エラーに業を煮やし、 撲滅のため新たにrn2_withchk()を作成。  #rn2(0)エラーが出たときに、エラーメッセージの中に指定文章が挿入される。  #ソース上のどの位置でその処理が行われたかの尻尾をつかむための処置。 変数に定数値を入れていない箇所は片端からこれに差し替え。 …3000以上もあるrn2()に音を上げて、実際には(怪しい箇所もあった)artifact.c辺りまでしか 組み込みませんでしたが。 で、実際にwizardモードで出鱈目に階移動等を繰り返してみる。   rn2(0) attempted (elinible n)   プログラムに障害発生 - #quitしたほうがよさそうだ. これかあ! (> <;)  #ランダム聖器を生成する際に、未出の聖器を抽出して選ぶ処理でした。  # nが0個の時にも条件によってはすり抜けてしまう事があったようで。 ---- yzhさんのb/u/c prefix patchを早速導入。 どうにか、現在のFHSパッチ表記にも対応できるようにしました。  #そのFHSパッチ表示をうまく機能させるのにえらく苦労しましたが(- -;)。  #(メッセージ中とインベントリ内で表示が違う) どたばたしてしまいましたが、ランダムクエストver2.0.0と共にUp。 結局、role.cだけ先行してJPを処理しました。 ------------------------------------------------------------ 2010.06.19-2010.06.19 ([Re:6]FHSパッチver0.8.24(未公開)) 正式版の方も0.8.23b修正版に差し替え。 ------------------------------------------------------------ 2010.05.25-2010.06.18 ([Re:5]FHSパッチver0.8.24(未公開)) ---- > bug 0456 シンボルがゴーレムのものでない一部の怪物(生ける鉄の鎖や >      メタルナメクジ,兵馬俑陶馬など)を石化させると,岩のゴーレムに変化する 案外色々いたもので、個別に対処… ・「ゴーレム」として扱わないようにした(or元々扱っていなかった):  揺り馬バエ  メタルナメクジ  機械化冒険者連中 ・変化しないよう石化抵抗を持たせた:  ばんぺいくん ・石化後の怪物を新たに用意:  兵馬傭陶馬 ・まともに石化させて機能停止させる(予定):  スパイダーボム  害虫駆除人形 ・岩のゴーレムになってもいいや:  兵馬傭陶兵  ブリキの兵士 ・どうしよう:  生ける鉄の鎖  張り子の虎  赤べこ さてと、残った鎖と張り子の虎と赤べこをどうするべ。 ---- バグ修正版を出すか一気にバージョンUpするか迷っていたのですが、 ひどいバグが見つかった為、修正版+試験版更新で早急に対処することに決定。 …直す端からひどいバグが後から後から見つかった為、早急でもなんでもなく 今までかかってしまいましたが(泣)。 以下、配布ページでの20100618版の説明丸写し: ---- ※変更点の詳細はfhs_docフォルダのFHS_history_test.txtを参照  ・各種bugfix  ・ジェダイの跳躍が#jump時に機能するようにした  ・ディスペータの館の構造を一部変更  ・Dark roomの有効無効を切り替えるオプション追加(UnNetHackより)  ・PCがフラックに変化できないようにした  ・L氏のWater Splashing patchを移植   (…自作の水地形処理とほぼ全面差し替え。もっとも、移植パッチもほとんど原形を留めていませんが。)  ・怪物追加:石の戦馬,害虫駆除人形,チェシャバグ  ・アイテム追加:対閃光防御メガネ(NetHack brassより)  ・一部のアイテムの名称を変更(NetHack brass準拠に)    ・各種の長柄武器の不確定名    ・「魔眼封じ(gaze blocker)」を「魔眼封じのメガネ(lenses of gaze protection)」に  ・Tシャツの文字・プリントシャツの柄を追加    ・各種の背番号のついたTシャツ    ・将棋/チェスの駒柄のプリントシャツ(Tシャツからは将棋の駒を削除)  ・竜王の鱗鎧を着用している時は,#monsterコマンド(Meta-M)でブレスを吐けるようにした  ・呪われた塩水/塩辛い草を飲食した時は即座に吐くようにした  ・その他色々 ※FHS_history_test.txtにない各種調整:  ・今まで最小限のソースだけ配布していたのを、全ソース一括配布に切り替え。  ・config.hに #define JP を定義。   JP の有効無効により和訳部全てを英語に切り替えられるよう(になったらいいなと)書き換え中。  ・select_rwep()を全面書き換え。    ・怪物が攻撃力を直接比較して飛び道具を使用するようになります。     (近接武器用の select_hwep() で用いた処理方式をこちらにも導入)    ・怪物のエルフやオークは自種族製の弓を優先的に使うようになります。    ・怪物が普通の卵を投げてくるようになります。(bug 0468修正のついでに追加)  ・特殊部屋「庭園」に、柱が整然と並ぶ人工的庭園を追加。 ---- 丸写し終わり。 JPを定義することにより、ソース全面書き換えの様相を呈しております。  #意外なことに今まで本家では定義されていなかった。  # #if 0 /*JP*/ 〜 #endif などで英語部分を無効にする方式。 いつ終わるやら、そもそもうまく切り替えできるのやら。 まあ、作業自体は今までの自作箇所の見直しにもつながるので良いのですが。 英訳抜けの箇所も適当に補完したり。 補完しきれなかった分は、とりあえず   (* please translate *) ↑これで済ますようにします。(w) そういえば、今まで手をつけていなかった 英語版の quest.txt などにも手をつけなければならないのか…。 戦士とか巫女とかの日本オリジナルの職業クエストの訳はどうしよう。 ----   %Cc Fig 00001   あなたは,いつの間にか見覚えのある場所に立っている事に気がついた.   間違いない,ここは%Hだ.      目の前にはクリスタルの城がある.   %lのもと,%gたちが集う美しい城だ.   あなたが旅立った時もそうだった.      しかし何かが違う.今目の前にそびえ立つ城は,激しい戦闘があったかの   ように殺伐としていて,まるで廃虚のようだ.      何があったのだろう?   %lの元へ急がねばと本能的にあなたは感じた.   %E   %Cp Fig 00002   もう一度,あなたは%Hに戻った.   %E ---- ↑こうしたものを全部訳さなきゃならんのか… ----   %Cc Fig 00001   Fig 00001:   Quest Leader - %l   Quest Guardian - %g   Homebase - %H      (* please translate *)   %E   %Cp Fig 00002   Fig 00002:%H (* please translate *)   %E ---- ↑これでいいや。(w) ------------------------------------------------------------ 2010.04.10-2010.05.24 ([Re:4]FHSパッチver0.8.24(未公開)) はう… 一時、メインPCが動かなくなっていました。  #グラフィックボードがおかしくなったのか、起動しても画面真っ黒。 ほとんどの事はサブPCでも出来るので、そう深刻ではなかったのですが、 サブPC内のデータがろくに更新されていなかったので、 自サイトから逆輸入(ダウンロード)するなどして再整備。 でも前回公開した試験版より後の作業は反映されていなかった為、 備忘録代わりにこの蛇足メモに色々追記。 2日後、ふとメインPCの電源を入れると…復帰! ここぞとばかりにメインPCの各種データをサブPCにも移行し、 データや環境の整合性をとる。 …その過程で蛇足メモの備忘録が上書きで消えてました…(泣) 閑話休題。 ---- 試験版より後の作業の1つ。 > …あー、この前いじった怪物の水濡れ処理についても > L氏が何やらパッチ作ってたのか。 Water Splashing patch(quaff.diff)というもので、内容は以下のような感じです。  ・水に弱い怪物を各種設定(鉄の怪物、火の怪物、ロングワーム)。   水地形はもちろん、薬瓶の水やら泉・流し台の水やらを浴びたり、   流し台の水や薄まった薬などを飲んだりした時にもダメージを受けるようになる。   鉄のゴーレムは、水を浴びると一発で壊れたりする。  ・水の精は、水を浴びるとHPが回復する。(栄養は得られない)  ・火の怪物は、火のついた油などで栄養を得られる。  ・一部のドラゴンは、ブレスが対応している薬を飲むと魔力回復。(ブレスの燃料)  ・新攻撃法方AD_WATR追加。水を浴びせる「だけ」。   水に弱い怪物には致命的だが、それ以外の直接ダメージはなし。 この和訳と移植をしました。(無論、色々手直し改造しつつ) 現在のところは、このパッチで扱われている部分と扱われていない部分とが つぎはぎになっている状態。 扱われていない部分は、今なお自作のコードが有効になっています。 で、両方を統合しようとしたのですが… L氏のパッチでは怪物に対する水濡れ処理が ろくに扱われていないのですね(- -;)。 drown()に追加されている程度。minliquid()等には無し。 FHSパッチでの追加地形に対しても反映しなければならないし、 塩水に対する扱いもどうしたものやら。 一筋縄ではいかないようで…難儀です。 ---- とまあ、色々ごたごたしていて書くのが遅れてしまいましたが。 某墓堀に潜伏している荒らし、どうしましょう。 ・とにかく内容を消しまくる。ネタだろうが情報だろうがお構いなし。   #人様の書いたネタを(たとえ自分が理解できなくても)無下にするな。 ・消すだけで追加の書き込みは皆無。ま、荒らしに創造性を求めるのは無意味ですね。 ・特に悪質なのは、これらを更新履歴に「残らないように」やっている事。  人の目に触れないように改変するって、何様のつもりだこいつ?   #墓堀の場合は編集のたびに「タイムスタンプを変更しない」に   #チェックを入れる必要があるので、意図的にやっているのは確実。 最近の幾つかのページは無言で現状復帰しましたが、まだ荒らされたままの所は多いです。 気づいただけでも兄者関係とか、金貨とか、攻略情報コラムの判別方法とか。  #例えば兄者に関しては、ページ自体は残していますが(削除履歴からの発覚を恐れているのでしょう)、  #他ページからのリンクを抹消しまくっている形跡あり。狡猾で悪質。 先述の通りどたばたしているので、虫干しのためにここに書いてみます。  #こんな辺鄙な場所に書いて、どれだけの方の目に触れるかは分かりませんが。 とりあえず気づいた方による対策を期待。 現実世界の害虫のように一発駆除できれば楽なのですが… ------------------------------------------------------------ 2010.03.30-2010.04.09 ([Re:3]FHSパッチver0.8.24(未公開)) > ・職業数が15を超えるとエラーが生じる >  (今回ジェダイを追加したため、職業数が16になった) > ・vanillaそのもののプログラムのどこかに原因がある >  (Random Questを無効にしても起きているため) > > …ほんと、直せるのだろうか =□○_ …なんとか直しました。 =□○_ Crawlの種族選択処理を参考に多段化。ほぼ該当個所作り直し。 おまけに一旦完成させた後で、yn_function()が大文字に 対応していないことに気づいたり(泣)。  #泣きながら対処。 ちなみに今回対応したのはWindowsのテキスト表示だけです。 タイル形式の方は(少なくともWindowsのは)表示形式が違うため問題ないことを確認済み。 UNIXやMacに関しては…そのうち。  #基本の考え方は同じはず。動作確認はできないけど。 どのみち多段化は(実際にやるかどうかは別として)ランダムクエストに全職業を 入れようとした場合には、避けて通れない道ですから。 とりあえず、正式版の最小ソースと一緒に(御免なさい(_ _;))、現在の試験版を公開。 ジェダイのテクニック関係がほとんど機能していないうえ、 ソースが修正だらけでぐちゃぐちゃな状態ではありますが… ------------------------------------------------------------ 2010.03.29-2010.03.29 ([Re:2]FHSパッチver0.8.24(未公開)) 追記。 ・win/tty/wintty.c をJSLASH'EMのものに差し替えても駄目。 ・win/tty/wintty.c の tty_player_selection()にて /*JP Sprintf(pbuf, "Pick a role for your %s", plbuf); */ Sprintf(pbuf, "%s職業を選択してください.", plbuf); end_menu(win, pbuf); n = select_menu(win, PICK_ONE, &selected);  の直後にnを表示するpline文を挿入してみたけど、  そのpline文の文字さえ表示されずに落ちる (T T)。 select_menu()はPCの機種によっても処理が違うようで 中身がしっちゃかめっちゃかになってるし、 SLASH'EMのものとの違いは今の所見当たらないし… どうしろと (T T)。 ------------------------------------------------------------ 2010.03.07-2010.03.29 ([Re]FHSパッチver0.8.24(未公開)) むう、色々実装や移植はしたけど、 現在エラーが出る状態です。 ---- とりあえず、エラー前に前回から実装したものといえば: -武器に致死性の毒が塗られている場合の表示を変更 --(従来)「毒付きの」→(新)「致死毒付きの」 -武器の毒の種類に汚染毒を追加 --武器を病気の薬に浸すことにより,汚染毒付きの武器となります. --毒の効果を受けると耐久力が下がります.また致死毒と同様に即死する事があります. -毒付き武器による状態異常の効果時間を増加 毒薬実装の際に、病気の薬は武器に塗れないように変更されたのですが、 今回ふたたび塗れるようにしました。 塗った時の効果は病気攻撃ではなく、従来とほぼ一緒の即死系。 これで、SLASH'EMのトイレのような細菌性の毒に対しても対処できるようになりました。 また、ランダムな毒が塗られた時にも即死系の毒になる確率がUp。 -ゲーリュオーンの館の構造を一部変更 -ゲーリュオーンの館の周囲の地形を変更 今まではゲーリュオーンの他の階層と違い、館の周囲が単なる迷路だったもので。 あと館自体も構造に多少手を加えたり、 宝箱や護衛を新たに配置したり。 -Lethe patchから以下を導入 --イーノグレベル(全面差し替え) イーノグの館については、Lethe patchのマップの出来が良さそうだったので そのまま移植。 -一部の防具に不確定名を追加 --プラグスーツ一式,野戦装備一式,司令官装備一式(紳士肌着/革靴は除く) --防衛軍装備一式 -冒険開始時に全防具が識別済みになる職業でも,一部の近代的防具は対象外となるように変更 ジェダイパッチ移植に伴い、この辺の名称(不確定名)も大幅改定。  #ジェダイパッチにおいては、プラスティール製の防具が該当。 今までは不確定名もなしに一目で判別できていましたが、 これからは特定職業でない限り最初は未識別となります。  #防衛軍装備の場合、具体的には男性の戦士が該当。  #プラグスーツやら野戦装備やらの場合、具体的には公務員…あ、実装してないか。 ---- で、ライトセーバーも実装したことだしと ジェダイパッチを移植。 移植自体はうまくいったように見えたのですが… 現在、職業を選択するとゲームが落ちます(泣)。 ・開始時に  「キャラクターの種族,職業,性別,属性を適当に選んでよろしいですか?[ynq]」  で[y]esを選べばエラーにならない   #これでジェダイが出てくれるかどうか、ジェダイが選択されたら落ちるのか…は   #未検証。 ・上記で[n]oを押すと職業選択の一覧が出るが、  そこでどの職業を選択しても(たとえ「*- 適当」を選択しても)  選択直後に落ちる ・ジェダイパッチを無効にしてコンパイルした場合は問題なし …うーむ。 ジェダイパッチ移植の際に何か問題が起きていることは間違いないんだけど… ・移植ミス? ・職業名表示に何かバグがある? ・職業数などがどこかでオーバーフローしている? ・…etc. …原因を絞りにくいなあ。 とりあえず、移植後のジェダイパッチだけを切り出して vanillaなり前verなりに移植して動作確認するかなあ。 ---- 続き。 ふと思いついて、確認のために巫女パッチの方を無効にしてみる。 …落ちずに通る。 ということは、やはり職業数もしくはクエスト数が どこかでオーバーフローを起こしてるという事か。 …直せるのだろうか =□○_ 更に今度はRandom Questの方を無効にしてみる。 あちこち手直ししないとコンパイル通らなかったけど(- -;)。 …状況は変わらず。 ・Random Quest無効、ジェダイ有効、巫女無効 -> 職業選択可能 ・Random Quest無効、ジェダイ有効、巫女有効 -> 職業選択直後に落ちる  #実際にはクエストのテキスト読み込みに失敗するので、キャラクター作成後に  #(開始時のメッセージを表示できないために)マップだけ表示して落ちてしまいプレイ不可。  #今回はキャラ生成時の確認試験なので、これでもいいけど。 うーむ、となると ・職業数が15を超えるとエラーが生じる  (今回ジェダイを追加したため、職業数が16になった) ・vanillaそのもののプログラムのどこかに原因がある  (Random Questを無効にしても起きているため) …ほんと、直せるのだろうか =□○_ でも、SLASH'EMだと職業数19なんですよね。 どこを直しているのやら。 ------------------------------------------------------------ →これ以前は別Fileにて。