Battledale_PRC8/_module/nss/jw_combsubs_inc.nss
Jaysyn904 7b9e44ebbb Initial upload
Initial upload.  PRC8 has been added.  Module compiles, PRC's default AI & treasure scripts have been integrated.  Started work on top hak for SLA / Ability / Scripting modifications.
2024-03-11 23:44:08 -04:00

136 lines
4.6 KiB
Plaintext

#include "jw_privates_inc"
//DETERMINE COMBAT ROUND SUB FUNCTIONS
int BashDoorCheck(object oIntruder = OBJECT_INVALID);
int DetermineClassToUse();
int GetAttackCompatibility(talent tUse, int nClass);
int MatchReflexAttacks(talent tUse);
int MatchFortAttacks(talent tUse);
object GetRangedAttackGroup(int bAllowFriendlyFire = FALSE);
object GetToughestMeleeAttacker();
object GetToughestAttacker();
//struct sSpellSelect(); // AnalyzeCombatSituation();
int GetAlliedHD();
int GetEnemyHD();
talent StartAttackLoop();
int UniversalSpellMatch(talent tUse);
//::///////////////////////////////////////////////
//:: Bash Doors
//:: Copyright (c) 2002 Bioware Corp.
//:://////////////////////////////////////////////
/*
Used in DetermineCombatRound to keep a
henchmen bashing doors.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: April 4, 2002
//:://////////////////////////////////////////////
/* int BashDoorCheck(object oIntruder = OBJECT_INVALID)
{
int bDoor = FALSE;
//This code is here to make sure that henchmen keep bashing doors and placables.
object oDoor = GetLocalObject(OBJECT_SELF, "NW_GENERIC_DOOR_TO_BASH");
if(GetIsObjectValid(oDoor)&&!GetPlotFlag(oDoor))
{
int nDoorMax = GetMaxHitPoints(oDoor);
int nDoorNow = GetCurrentHitPoints(oDoor);
int nCnt = GetLocalInt(OBJECT_SELF,"NW_GENERIC_DOOR_TO_BASH_HP");
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN))
|| (!GetIsObjectValid(oIntruder) && !GetIsObjectValid(GetMaster())))
{
if(GetLocked(oDoor))
{
if(nDoorMax == nDoorNow)
{
nCnt++;
SetLocalInt(OBJECT_SELF,"NW_GENERIC_DOOR_TO_BASH_HP", nCnt);
}
if(nCnt <= 0)
{
bDoor = TRUE;
if(GetHasFeat(FEAT_IMPROVED_POWER_ATTACK))
{
ActionUseFeat(FEAT_IMPROVED_POWER_ATTACK, oDoor);
}
else if(GetHasFeat(FEAT_POWER_ATTACK))
{
ActionUseFeat(FEAT_POWER_ATTACK, oDoor);
}
else
{
ActionAttack(oDoor);
}
}
}
}
if(bDoor == FALSE)
{
PlayVoiceChat(VOICE_CHAT_CUSS);
DeleteLocalObject(OBJECT_SELF, "NW_GENERIC_DOOR_TO_BASH");
DeleteLocalInt(OBJECT_SELF, "NW_GENERIC_DOOR_TO_BASH_HP");
}
}
return bDoor;
}
*/
//::///////////////////////////////////////////////
//:: Determine Class to Use
//:: Copyright (c) 2002 Bioware Corp.
//:://////////////////////////////////////////////
/*
Determines which of a NPCs three classes to
use in DetermineCombatRound
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: April 4, 2002
//:://////////////////////////////////////////////
/* int DetermineClassToUse()
{
int nClass;
int nTotal = GetCharacterLevel(OBJECT_SELF);
float fTotal = IntToFloat(nTotal);
int nState1 = FloatToInt((IntToFloat(GetLevelByClass(GetClassByPosition(1))) / fTotal) * 100);
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + GetTag(OBJECT_SELF) + "Class: " + IntToString(GetClassByPosition(1)) + " %" + IntToString(nState1));
int nState2 = FloatToInt((IntToFloat(GetLevelByClass(GetClassByPosition(2))) / fTotal) * 100) + nState1;
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + GetTag(OBJECT_SELF) + "Class: " + IntToString(GetClassByPosition(2)) + " %" + IntToString(nState2));
int nState3 = FloatToInt((IntToFloat(GetLevelByClass(GetClassByPosition(3))) / fTotal) * 100) + nState2;
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + GetTag(OBJECT_SELF) + "Class: " + IntToString(GetClassByPosition(3)) + " %" + IntToString(nState3));
int nUseClass = d100();
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + "D100 Roll " + IntToString(nUseClass));
if(nUseClass <= nState1)
{
nClass = GetClassByPosition(1);
}
else if(nUseClass > nState1 && nUseClass <= nState2)
{
nClass = GetClassByPosition(2);
}
else
{
nClass = GetClassByPosition(3);
}
MyPrintString("GENERIC SCRIPT DEBUG STRING ********** " + GetName(OBJECT_SELF) + " Return Class = " + IntToString(nClass));
return nClass;
}
*/