63 lines
1.7 KiB
Plaintext
63 lines
1.7 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Olander's AI
|
|
// nw_c2_default5
|
|
// by Don Anderson
|
|
// dandersonru@msn.com
|
|
//
|
|
// OnPhysicalAttacked
|
|
// Original script by Fallen
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "oai_inc_ai"
|
|
|
|
void main()
|
|
{
|
|
if (GetAttemptedAttackTarget() != OBJECT_INVALID || GetAttackTarget() != OBJECT_INVALID) return;
|
|
object oAttacker = GetLastAttacker();
|
|
|
|
/******************************************************************************/
|
|
//: CUSTOM ATTACKED ADDITONS BELOW HERE
|
|
|
|
|
|
//Custom Scripts you Need to Execute
|
|
ExecuteScript("oai_cust_atck", OBJECT_SELF);
|
|
|
|
|
|
//: CUSTOM ATTACKED ADDITONS ABOVE HERE
|
|
/******************************************************************************/
|
|
|
|
//Trolls
|
|
if(GetBattleCondition(OAI_ROLE_TROLL)) TrollAttacked();
|
|
|
|
if(GetBehaviorState(NW_FLAG_BEHAVIOR_OMNIVORE) || GetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE))
|
|
{
|
|
OAI_DetermineSpecialBehavior(oAttacker);
|
|
}
|
|
else if(GetIsObjectValid(oAttacker)
|
|
&& !GetFactionEqual(oAttacker)
|
|
&& !GetIsDM(oAttacker))
|
|
{
|
|
if(OAI_GetIsAlly(oAttacker))
|
|
{
|
|
ClearPersonalReputation(oAttacker, OBJECT_SELF);
|
|
ClearAllActions(TRUE);
|
|
DelayCommand(1.2, ActionDoCommand(OAI_DetermineCombatRound()));
|
|
}
|
|
else OAI_DetermineCombatRound(oAttacker);
|
|
}
|
|
|
|
//Shout Attack my target, only works with the On Spawn In setup
|
|
SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);
|
|
|
|
//Shout that I was attacked
|
|
SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
|
|
|
|
if(GetSpawnInCondition(NW_FLAG_ATTACK_EVENT))
|
|
{
|
|
SignalEvent(OBJECT_SELF, EventUserDefined(1005));
|
|
}
|
|
}
|
|
|