Ticket #4725

杖の光線が扉に吸収されたとき
Open Date: 2004-07-24 16:44 Last Update: 2004-08-11 15:17

Reporter:
Owner:
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
1

Details

敵の放った杖の光線が扉に吸収された場合、
『扉は息を吸収した!』
と表示されました。

ここは、『扉は電撃を吸収した!』となるべきだと
思います。
ただ、もとの英語版からのバグのようです。

また、杖の光線が全て『電撃』って表現されるのも
いまいちな気もします。

ちなみに該当箇所は、zap.c の zap_over_floor 関数内の

pline("扉は%s%sを吸収した!",
(type < 0) ? "" : "あなたの",
abs(type) < ZT_SPELL(0) ? "電撃" :
abs(type) < ZT_BREATH(0) ? "魔法" :
"息");

という部分です。

Ticket History (3/8 Histories)

2004-07-24 19:58 Updated by: None
Comment
Logged In: NO

ども、サクシャです。
一部補足を。

> 敵の放った杖の光線が扉に吸収された場合、
> 『扉は息を吸収した!』
> と表示されました。

こちらはTNG(もしくはFHSパッチ)独自のアイテム「毒の
杖」限定の現象かと思われます。
(毒の杖での表示についての私の意見は NetHack
Portalの掲示板に書かせて頂きました。)

JNetHack本家の杖に限っていえば、この点は問題無い
ようです。
 #眠りの杖、死の杖で確認。

> また、杖の光線が全て『電撃』って表現されるのも
> いまいちな気もします。

これは私も同意見です。
ですので『電撃』の代わりに『光線』とした方が良いかと
思われます。
 #ちなみに英語ではbolt。
2004-07-25 19:48 Updated by: ide
Comment
Logged In: YES
user_id=9391

井出です。

> JNetHack本家の杖に限っていえば、この点は問題無い
> ようです。
>  #眠りの杖、死の杖で確認。

これなんですが、自分が扉に向けて杖をふった場合では
ないですよね?

敵が杖をふって、それが扉にあたった場合が問題なのですが。

本家でも、use_offensive() at muse.c 内で、buzz() を
杖のタイプとして -30 から -39 の値で呼び出されるので、

> pline("扉は%s%sを吸収した!",
> (type < 0) ? "" : "あなたの",
> abs(type) < ZT_SPELL(0) ? "電撃" :
> abs(type) < ZT_BREATH(0) ? "魔法" :
> "息");

の部分で、『扉は息を吸収した!』となってしまうと
思うのですが。
2004-07-25 22:52 Updated by: None
Comment
Logged In: NO

ども、サクシャです。

> 敵が杖をふって、それが扉にあたった場合が問題な
のですが。
>
> 本家でも、use_offensive() at muse.c 内で、buzz() を
> 杖のタイプとして -30 から -39 の値で呼び出される
ので、

え?と思い、再確認してみました。
確かにそのようになっていますね…失礼しました(_ _)。

[参考:buzz()の付記]
/* type == 0 to 9 : you shooting a wand */
/* type == 10 to 19 : you casting a spell */
/* type == 20 to 29 : you breathing as a monster
*/
/* type == -10 to -19 : monster casting spell */
/* type == -20 to -29 : monster breathing at you */
/* type == -30 to -39 : monster shooting a wand */

 #これを見た当初は、杖だけZT_の対称状態から
 #外れているのが納得いかなかったのですが、
 #よく考えたら単なる正負では0の時(魔法の矢の杖)
 #に区別がつきませんね。

という事は、扉の方は英語版そのものの表示がバグと
いう事になりますね…
---
上記を踏まえると、簡単に済ませるなら

abs(type) <
ZT_SPELL(0) ? "光線" :
abs(type) <
ZT_BREATH(0) ? "魔法" :
type < -
29 ? "光線" : /*敵の杖の光線(-30から-39)
*/
"息");

のようになるでしょうか。

 #更に突き詰めれば、井出さんがNetHack Portal
 #掲示板で書かれてました「flash_types[] の利用」
 #も有りましょうが、その場合は±(20~29)の扱いに
 #気をつけないと。
 #(この箇所は爆発に対しても使われているので)
2004-07-26 02:07 Updated by: argrath
  • Resolution Update from None to Accepted
Comment
Logged In: YES
user_id=1120

確認しました。

"息"は英語版では"blast"なので、英語版のバグといえるのかどうか
かなり微妙かもしれません。

"bolt"が"電撃"というのはミスですね。
2004-07-26 03:01 Updated by: ide
Comment
Logged In: YES
user_id=9391

井出です。

> "息"は英語版では"blast"なので、英語版のバグと
> いえるのかどうか
> かなり微妙かもしれません。

確かにそうなんですが、自分がはなった杖の光線の場合は
"bolt" なんで、整合性の意味でバグといっていいのではないかと
思います。
2004-07-26 18:15 Updated by: argrath
  • File 1046: zap.c.diff is attached
  • Resolution Update from Accepted to Fixed
Comment
Logged In: YES
user_id=1120

"blast"の方はとりあえずr.g.r.n.にお伺いを立ててみました。

で、JNHでは英語版のバグはクラッシュしない限り独自には直さな
い方針なので、
"bolt"の方だけ修正しました。
2004-08-02 07:16 Updated by: argrath
Comment
Logged In: YES
user_id=1120

修正版(3.4.3-0.4)がリリースされたので閉じます。
2004-08-11 15:17 Updated by: argrath
  • Ticket Close date is changed to 2004-08-11 15:17
  • Status Update from Open to Closed

Attachment File List

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login