//:://///////////////////////////////////////////// //:: Default On Attacked for Commoners and Defenders //:: NW_C2_DEFAULT5 //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* If already fighting then ignore, else determine combat round */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Oct 16, 2001 //::////////////////////////////////////////////// #include "inc_utility" #include "NW_I0_GENERIC" void main() { object oAttacker=GetLastAttacker(); //If a PC is attacking a commoner or defender they are a criminal. Go to jail when you die. if (GetIsPC(oAttacker)) SetLocalInt(oAttacker,"lv_criminal",1); if(!GetFleeToExit()) { if(!GetSpawnInCondition(NW_FLAG_SET_WARNINGS)) { if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget())) { if(GetIsObjectValid(GetLastAttacker())) { if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) { AdjustReputation(GetLastAttacker(), OBJECT_SELF, -100); SetSummonHelpIfAttacked(); DetermineSpecialBehavior(GetLastAttacker()); } else { if(GetArea(GetLastAttacker()) == GetArea(OBJECT_SELF)) { SetSummonHelpIfAttacked(); DetermineCombatRound(); } } //Shout Attack my target, only works with the On Spawn In setup if(!PRCGetHasEffect(EFFECT_TYPE_SLEEP)) { SetFacingPoint(GetPosition(GetLastPerceived())); switch (d10()) { case 1: SpeakString("GUARDS!", TALKVOLUME_SHOUT); break; case 2: SpeakString("HELP! HELP!", TALKVOLUME_SHOUT); break; case 3: SpeakString("BY THE GODS! WHAT ARE YOU DOING?!", TALKVOLUME_SHOUT); break; case 4: SpeakString("YOU WON'T GET AWAY WITH THIS!", TALKVOLUME_SHOUT); break; default: SpeakString("SEND HELP! I'M BEING ATTACKED!!!", TALKVOLUME_SHOUT); break; } } SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK); //Shout that I was attacked SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK); } } } else { //Put a check in to see if this attacker was the last attacker //Possibly change the GetNPCWarning function to make the check SetSpawnInCondition(NW_FLAG_SET_WARNINGS, FALSE); } } else { ActivateFleeToExit(); } if(GetSpawnInCondition(NW_FLAG_ATTACK_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(1005)); } }