OSDN Git Service

盗む打撃を持つモンスターのテレポート判定に関する変更と修正.
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 14 Dec 2003 04:50:11 +0000 (04:50 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 14 Dec 2003 04:50:11 +0000 (04:50 +0000)
* 殴られる側にオーラがある場合, 殴る側/殴られる側の両方がプレイヤーか
  ら見えている場合のみテレポートしないようになっていたので, この仕様
  を破棄. テレポートできる場合はオーラでテレポートを妨げない.
* 殴る側がオーラで死んだ場合に, 死んでからも "笑って逃げた" メッセー
  ジが出る可能性があったバグを修正.
* モンスター対モンスターで盗みテレポートが発動する場合は直ちに攻撃を
  止めるのではなく, 対プレイヤー同様に1ターンで使える打撃を全て使って
  からテレポートするように変更.

src/melee2.c

index f0b915a..d038388 100644 (file)
@@ -1510,11 +1510,6 @@ static bool monst_attack_monst(int m_idx, int t_idx)
                /* Hack -- no more attacks */
                if (!method) break;
 
-               if (blinked) /* Stop! */
-               {
-                       /* break; */
-               }
-
                if (method == RBM_SHOOT) continue;
 
                /* Extract the attack "power" */
@@ -2044,7 +2039,6 @@ msg_format("%s
                                                {
                                                        if (see_either)
                                                        {
-                                                               blinked = FALSE;
 #ifdef JP
                                                                msg_format("%^s¤ÏÆÍÁ³Ç®¤¯¤Ê¤Ã¤¿¡ª", m_name);
 #else
@@ -2071,7 +2065,6 @@ msg_format("%s
                                                {
                                                        if (see_either)
                                                        {
-                                                               blinked = FALSE;
 #ifdef JP
                                                                msg_format("%^s¤ÏÆÍÁ³´¨¤¯¤Ê¤Ã¤¿¡ª", m_name);
 #else
@@ -2098,7 +2091,6 @@ msg_format("%s
                                                {
                                                        if (see_either)
                                                        {
-                                                               blinked = FALSE;
 #ifdef JP
                                                                msg_format("%^s¤ÏÅÅ·â¤ò¿©¤é¤Ã¤¿¡ª", m_name);
 #else
@@ -2186,27 +2178,24 @@ msg_format("%s
                if (m_ptr->invulner) m_ptr->invulner = 0;
 
 #ifdef JP
-mon_take_hit_mon(m_idx, m_ptr->hp + 1, &fear, "¤ÏÇúȯ¤·¤ÆÊ´¡¹¤Ë¤Ê¤Ã¤¿¡£", m_idx);
+               mon_take_hit_mon(m_idx, m_ptr->hp + 1, &fear, "¤ÏÇúȯ¤·¤ÆÊ´¡¹¤Ë¤Ê¤Ã¤¿¡£", m_idx);
 #else
                mon_take_hit_mon(m_idx, m_ptr->hp + 1, &fear, " explodes into tiny shreds.", m_idx);
 #endif
 
-
                blinked = FALSE;
        }
 
-
        /* Blink away */
-       if (blinked)
+       if (blinked && m_ptr->r_idx)
        {
                if (see_m)
                {
 #ifdef JP
-msg_print("Å¥ËÀ¤Ï¾Ð¤Ã¤Æƨ¤²¤¿¡ª");
+                       msg_print("Å¥ËÀ¤Ï¾Ð¤Ã¤Æƨ¤²¤¿¡ª");
 #else
                        msg_print("The thief flees laughing!");
 #endif
-
                }
                else if (known)
                {