ff_u_att_feedbk

Handle an attack event.

Variables

ENABLE__FF_U_ATT_FEEDBACK: (string) (opt-in) Set to "Y" to enable unit.

cf: ff_u_att_feedbk, ff_u_att_plc, ff_u_feedback

Source code

// @code

#include "ff_i_core"

const string ENABLE__FF_U_ATT_FEEDBACK = "ENABLE__FF_U_ATT_FEEDBACK";


// -----------------------------------------------------------------------------

//! @brief Restore default combat feedback messages for oPC.
//! @param oPC A player character.
void SetFeedback(object oPC);
void SetFeedback(object oPC)
{
  if (!GetIsPC(oPC))
    return;

  // 61939,,,"You cannot damage your target with your currently equipped weapon!"
  NWNX_Player_SetTlkOverride(oPC, 61939, "", TRUE);

  NWNX_Feedback_SetFeedbackMessageHidden(NWNX_FEEDBACK_COMBAT_WEAPON_NOT_EFFECTIVE, FALSE, oPC);
  NWNX_Feedback_SetCombatLogMessageHidden(NWNX_FEEDBACK_COMBATLOG_COMPLEX_ATTACK, FALSE, oPC);
  NWNX_Feedback_SetCombatLogMessageHidden(NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE, FALSE, oPC);
  NWNX_Feedback_SetCombatLogMessageHidden(NWNX_FEEDBACK_COMBATLOG_SIMPLE_DAMAGE, FALSE, oPC);
}


// -----------------------------------------------------------------------------

void main()
{
  object oModule = GetModule();
  if (!GetModuleFlag(ENABLE__FF_U_ATT_FEEDBACK, FALSE))
    return;

  string sEvent = GetCurrentEvent();
  if (sEvent == ON_REGISTER)
    SubscribeToEvent(ON_BEFORE_ATTACK_TARGET_CHANGE, __FILE__);
  else if (sEvent == ON_BEFORE_ATTACK_TARGET_CHANGE)
    SetFeedback(OBJECT_SELF);
}