67 lines
2.5 KiB
Plaintext
67 lines
2.5 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Default: End of Combat Round
|
|
//:: NW_C2_DEFAULT3
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Calls the end of combat script every round
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: Oct 16, 2001
|
|
//:://////////////////////////////////////////////
|
|
#include "gsc_include"
|
|
#include "NW_I0_GENERIC"
|
|
void main()
|
|
{
|
|
ExecuteScript("prc_npc_combat", OBJECT_SELF);
|
|
|
|
if (!GetLocalInt(GetModule(),"X3_NO_MOUNTED_COMBAT_FEAT"))
|
|
{ // set variables on target for mounted combat
|
|
DeleteLocalInt(OBJECT_SELF,"bX3_LAST_ATTACK_PHYSICAL");
|
|
DeleteLocalInt(OBJECT_SELF,"nX3_HP_BEFORE");
|
|
DeleteLocalInt(OBJECT_SELF,"bX3_ALREADY_MOUNTED_COMBAT");
|
|
if (GetHasFeat(FEAT_MOUNTED_COMBAT,OBJECT_SELF))
|
|
{ // check for AC increase
|
|
int nRoll=d20()+GetSkillRank(SKILL_RIDE);
|
|
nRoll=nRoll-10;
|
|
if (nRoll>4)
|
|
{ // ac increase
|
|
nRoll=nRoll/5;
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectACIncrease(nRoll),OBJECT_SELF,8.5);
|
|
} // ac increase
|
|
} // check for AC increase
|
|
} // set variables on target for mounted combat
|
|
|
|
GSC_CheckDisarcionare(OBJECT_SELF);
|
|
if (GetIsDead(GetAttackTarget())) //see below
|
|
{ //..
|
|
ClearAllActions(); //..
|
|
DetermineCombatRound(); //..
|
|
} //..
|
|
else if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
|
|
{
|
|
DetermineSpecialBehavior();
|
|
}
|
|
else if(!GetSpawnInCondition(NW_FLAG_SET_WARNINGS))
|
|
{
|
|
DetermineCombatRound();
|
|
}
|
|
if(GetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT))
|
|
{
|
|
SignalEvent(OBJECT_SELF, EventUserDefined(1003));
|
|
}
|
|
//ExecuteScript("bug_armi",OBJECT_SELF);
|
|
}
|
|
/*Bio screwed up the A.I.-- big time. Attacking creatures--no re-evaluate of target
|
|
if it's <span class="highlight">dying</span>. There is a check in the DetermineCombatRound() function,
|
|
but it only does a "return;" if the target is dead or <span class="highlight">dying</span>. This means the
|
|
creature continues its current action of attacking. Digging around in Bio A.I.
|
|
is like swimming in tar now-- commented out, comment back in, moved this here,
|
|
moved this there, etc. For now, best to make the fix here as it's easy to track
|
|
and you can bet they will screw things up again in the A.I. files with patches or
|
|
expansions. Break, fix, break fix, break, fix, ad nauseam....
|
|
--Heed.*/
|
|
|
|
|