確かに緑スライムのスライム化攻撃とコカトリスの石化攻撃は ほとんど同じなのですが、スライム化するのは緑スライムによる 攻撃しかない(ないですよね?(^^;))のに対し、石化するのは コカトリスの攻撃以外にもありますので、残念ながらここは スライム化と同じ手法は使えないのです。
_ ずがーん。コカトリスの場合しか確かめていなかったよぉぉ。
_ ついに暖房登場なのであった。
_ 夕方の散歩は寒くて手がガチガチに。
_ 自前の毛皮をもつ柴わんこは平気な顔をしてテクテク歩く。
_ 途中で買い物から帰ってきた姉と出会う。
_ 姉が乗っている車が立ち去ると必死で追い掛ける。
_ 追い付くなんていくらなんでも無理だってば。
_ Xnp2 20031120 が登場。
_ Neko ProjectII 0.71 がベースになったそうです。
_ IA-32 エミュレーションがなくなったので使いたい場合は前のバージョンをどうぞ。
_ 公式マニュアルが登場したし、内容が古くなったので簡易マニュアルは消そうかなどと考えたり。
_ スラスラ読み終わる。
_ 構成は見事だけどポアロとヘイスティングスの関係はホームズとワトソンの域には達していない。
_ 何かヘイスティングスがネチネチしてる気がして好きになれない。
_ 彼の目を通してみるとポアロは奇妙な外国人という設定に嫌な奴という印象が加えられてしまう。
_ そんなに嫌なら一緒にいるんじゃねーよと思ってしまうことがしばしば。
_ 何か器が小さい相棒なんだよなぁ。
_ コンビを組ませるなら軽妙なやり取りのあるジャップ警部の方がよっぽど良かったような気がする。
_ いや、違う作家に同じものを求めちゃいけないか。
_ CVS 版での石化関連墓石表示の挙動調査。
ファイル名 | done関数のある行 | 処理内容 | テスト内容 | 墓石表示結果 | 結果 | 修正日 |
---|---|---|---|---|---|---|
dokick.c | 556 | 石化系の死体を蹴って死んだ場合 | コカトリスの死体を蹴ってみた。 | 靴無しでコカトリスの死体を蹴って石化した | 正常 | - |
dothrow.c | なし | 石化系の死体を素手でつかんで投げた場合 | コカトリスの死体を入手、素手で投げた。 | cockatriceの死体石化した | 異常 | 2003/12/03 |
dothrow.c | 951 | |||||
eat.c | 549 | 石化系の死体を食べて死んだ場合 | コカトリスの死体を食べてみた。 | コカトリスの肉を食べ石化した | 正常 | - |
end.c | 307 | 石化の直接攻撃で死んだ場合 | 大量のコカトリスを召喚し殴ってもらった。 | コカトリスの攻撃で石化した | 正常 | - |
mhitu.c | 2557 | 石化のにらみ攻撃で死んだ場合 | メデューサを召喚してにらんでもらった。 | のにらみでのにらみで石化した | 異常 | 2003/11/26 |
polyself.c | 1367 | |||||
timeout.c | 301 | 石化進行による死亡の場合 | 大量のコカトリスを召喚し石化進行を待ってみた。 | コカトリス石化した | 異常 | 2003/11/26 |
trap.c | 2819 |
_ mhitu.c の部分は eat.c を参考にして以下のようにすると"メデューサのにらみで石化した" と正常に表示されました。
Sprintf(jbuf, "%sのにらみで", jtrns_mon(mons[PM_MEDUSA].mname,-1));
_ dothrow.c と polyself.c と trap.c の三つの石化はどういう時に発生するのかサッパリわかりません。
_ あと、壁に向かってコカトリスの死体を投げて自分に当てた場合物体名(コカトリスの死体)が "cockatriceの死体石化した" という風に英語のままになります。
_ timeout.c の石化について。
case STONED: if (delayed_killer && !killer) { killer = delayed_killer; delayed_killer = 0; } if (!killer) { /* leaving killer_format would make it "petrified by petrification" */ killer_format = NO_KILLER_PREFIX; /*JP killer = "killed by petrification"; */ killer = "石化攻撃で"; } done(STONING); break;
_ 今まで上記のコードので if (!killer) 以降を必死にいじっていたんですが、困っていた石化進行は if (delayed_killer && !killer) の方に行くことを gdb で発見。
_ 今まで違うところを読んでいたんですねー。ということで以下のようにするとメッセージが正常に。
case STONED: if (delayed_killer && !killer) { #if 0 /* JP */ killer = delayed_killer; #else char buf[BUFSZ]; killer_format = KILLED_BY; Sprintf(buf, "%sの石化攻撃で", delayed_killer); killer = buf; #endif delayed_killer = 0; } if (!killer) { /* leaving killer_format would make it "petrified by petrification" */ killer_format = NO_KILLER_PREFIX; /*JP killer = "killed by petrification"; */ killer = "石化攻撃で"; } done(STONING); break;
_ 解決したのでよかったのですがここで疑問なのは if (!killer) の分岐です。
_ どういう場合にこっちのコードが動くんでしょうか。
_ どなたか教えてくださいな。
_ 死因表示を見ていくには topten.c の killer_format の動作についてちゃんと知る必要があるかも。
_ というわけで覗いてみました。
killer_format | 動作 |
---|---|
KILLED_BY_AN | 敵の名前 + 殺害方法*1 |
KILLED_BY | 敵の名前 + 殺害方法 |
NO_KILLER_PREFIX | 敵の名前 |
KILLED_SUFFIX | 敵の名前 + "に殺された" |
*1: 殺害方法は topten.c の char *killed_by_prefix[] にある。
_ うーむ。KILLED_BY_AN と KILLED_BY の違いって何だろう。
_ objnam.c に書いてある関数 an() を読んだらほとんどコメントアウトしてあってそのまま引数を返すようにされているし。
_
英語と日本語の違いで KILLED_BY_AN は不要なのかな?(憶測)
_ grep してみたら、どうやら KILLED_BY_AN は道具関連による死亡時に使うっぽいです。
_ で、ここまで調べたことが正しいとするとちょっと問題が?
_ 昨日見ていた石化関連のコードなんですが、if (!killer) の分岐を進むと killer_format が NO_KILLER_PREFIX に設定されているので殺害方法が表示されない(killed_by_prefix の "石化した" が呼ばれない)ので墓石に "石化攻撃で" だけが表示されるような気がします。
_ 単に "石になって死んだ" でいいような。
_ 少し前に 2ch NetHack スレッドで流し台に落ちて死んだ場合"流し台に落ちて"と表示されるといういう投稿がありました。
_ これも losehp()関数で done(DIED) が呼ばれるんですが NO_KILLER_PREFIX が設定されているので"死んだ" が表示されないので KILLED_BY に変更した方がいいみたいです。
_ あと、 2ch の投稿を元に polyself.c の未訳部分を見つけて訳してみました。
_ という訳で本日の成果(?)
_ パッチが採用されるかどうかはともかく、問題解決の糸口になれたらいいなぁなどとゴソゴソ思ってたり。
_ 6:00に姉と散歩。
_ その後抜けまくる夏毛に終止符を打つべくラバーブラシでブラッシング。
_ 固く丸めるとソフトボール大の毛玉が誕生。
_ 何かスマートになったなおい。
_ その後、昼前に姉が家に帰るのでお別れ。
_ 旦那さんと車で去っていくのをじっと見ている柴わんこ。
_ その後何か物足りなそうに部屋を歩きまわって妙に甘える。
_ 寂しかったのかな?
_ 流し台と訳の二つパッチが採用されました。:-D
_ 体力がないくせに風邪が治るのは早いようだ。
_ K&R の難しそうな雰囲気が怖い(?)人におすすめ。
_ ふむふむ。
_ saino さんの日記より。
_ 今週の金曜日 22:00 からテストだそうです。
_ ついに来ました。SKETCH SHOW の 2nd。格好良すぎ。
_ PLANKTON のテクノっぽさ、FLAKES の細野氏っぽい旋律に感動。
_ 高橋ボイスは今回もセクシー。教授も参加してます。
_ んでもって、NIGHT TALKER がノリノリになってます。
_ 音の作りは 1st の audio sponge に tronika の実験結果を調合したような感じ。
_ tronika に audio sponge のグルーヴ感が追加された浮遊感あふれるアルバムですな。
_ うまく表現できん。
_ さっさと Ogg に変換してファイルを CD-R にバックアップ。オリジナルは大切に戸棚へ保存。
_ のんびりプレイ。
_ 特に翻訳で気づいたこととか無かったなぁ。
_ Windows版のスコア表示の崩れを修正できたらすごいんだけど、無理無理。
_ 第一、動作に必要な NT 系の Windows 持ってないもん。持っていても直す力なんて無いし。:-(
_ r.g.r.n で度々話題になっている NetHack の翻訳版の話。
_ いまだに Spanish NetHack と JNetHack しか無いんですね。
_ そう思うと我々は幸せなんだなぁ。
_ JNetHack のコンパイル時に DEBUG を有効にしてみた。
_ プレイしづらいのですぐにやめる。
_ これは NetHack やバリアント開発の人用のオプションだから訳の表示がちゃんと動いているかどうかをまったり見ている私にはあまり関係ないオプションですな。
_ 御本人達による各楽曲の解説が読めて興味深いです。
_ ソースを読んだりいじって遊んだり。
_ 祖母の家のお留守番中に読み読み。
_ この本のおかげで JNetHack のメッセージ処理関連が読めているのです。
_ 古い作りの家は気密性がないので寒いよ。
_ でも夏はもんのすごく涼しくて快適。クーラー要らず。
_ 早朝 6:00 にお散歩。一時間ぐらいテクテク。
_ 誰もいないうえに足下が暗くておぼつかない。
_ 暗闇の散歩が楽しいのかテンションが上がりっぱなしの柴わんこ。
_ 走るな。
_ 天気が悪かったけど長めに歩いて 7:00 ぐらいに終了。
_ もう一度睡眠。(おいおい)
_ 二転三転するクライマックスなのであった。
_ 森崎君、君はいい人だよ。
_ 柴わんこもとい犬の体調についてネットでいろいろ情報を集めていたらやたら詳しいサイトを発見。
_ これはいいかも。ブックマークしようと思ってトップページに行くと・・。
_ やたらと獣医療を敵視して謎の水を勧める謎の人のサイトでした。
_ 犬の病気のページは獣医か!?と思うぐらいの内容に見えたのだが・・。
_ 微妙に引っ掛かった自分が嫌だぁ。読んだ内容を記憶から消すように努める。