Tíquete #37745

忍者ヴォーパルの挙動調整の余地

: 2017-11-30 23:23 Última Atualização: 2017-11-30 23:23

Relator:
Dono:
Tipo:
Estado:
Aberto [Owner assigned]
Componente:
(Nenhum)
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Nenhum
Arquivo:
Nenhum

Details

hradish氏より報告された忍者のみの特別なヴォーパル処理について、 maxhpの値は本来モンスターの最大HPを目安にしていると思われるがFORCE_MAXが指定されているモンスターでない限り、大半が最大HPであっても即死処理に回る。

			else if ((p_ptr->pclass == CLASS_NINJA) && buki_motteruka(INVEN_RARM + hand) && !p_ptr->icky_wield[hand] && ((p_ptr->cur_lite <= 0) || one_in_(7)))
			{
				int maxhp = maxroll(r_ptr->hdice, r_ptr->hside);
				if (one_in_(backstab ? 13 : (stab_fleeing || fuiuchi) ? 15 : 27))
				{
					k *= 5;
					drain_result *= 2;
					msg_format(_("刃が%sに深々と突き刺さった!", "You critically injured %s!"), m_name);
				}
				else if (((m_ptr->hp < maxhp/2) && one_in_((p_ptr->num_blow[0]+p_ptr->num_blow[1]+1)*10)) || ((one_in_(666) || ((backstab || fuiuchi) && one_in_(11))) && !(r_ptr->flags1 & RF1_UNIQUE) && !(r_ptr->flags7 & RF7_UNIQUE2)))
				{
					if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_UNIQUE2) || (m_ptr->hp >= maxhp/2))
					{
						k = MAX(k*5, m_ptr->hp/2);
						drain_result *= 2;
						msg_format(_("%sに致命傷を負わせた!", "You fatally injured %s!"), m_name);
					}
					else
					{
						k = m_ptr->hp + 1;
						msg_format(_("刃が%sの急所を貫いた!", "You hit %s on a fatal spot!"), m_name);
					}
				}
			}

また、二刀流で命中率が極めて低かった時 右手の攻撃が全部外れた場合はまだ超隠密状態が維持されて左手の初撃で再度不意打ち判定があるので 数回の回避の後に不意打ちを食らう流れになる場合がある。

ミス! ドラコリッチにかわされた。 <x4>            
不意を突いてドラコリッチに強烈な一撃を喰らわせた!
再び敵の目にさらされるようになった。              
ミス! ドラコリッチにかわされた。                 
ドラコリッチを攻撃した。 <x2>                     
ミス! ドラコリッチにかわされた。 <x2>    

以上の修正について検討する。

Ticket History (1/1 Histories)

2017-11-30 23:23 Updated by: deskull
  • New Ticket "忍者ヴォーパルの挙動調整の余地" created

Attachment File List

No attachments

Editar

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