Updated TLK for PRC8 update

Updated TLK for PRC8 update.  Added placeable house blueprints.  Updated NWNxEE.  Full compile.
This commit is contained in:
Jaysyn904
2024-08-31 20:38:17 -04:00
parent 8a5d80a2ea
commit 37b68cf6b6
1458 changed files with 27093 additions and 4211 deletions

View File

@@ -24,6 +24,26 @@ struct NWNX_Damage_DamageEventData
int iPositive; ///< Positive damage
int iSonic; ///< Sonic damage
int iBase; ///< Base damage
int iCustom1; ///< Custom1 damage
int iCustom2; ///< Custom2 damage
int iCustom3; ///< Custom3 damage
int iCustom4; ///< Custom4 damage
int iCustom5; ///< Custom5 damage
int iCustom6; ///< Custom6 damage
int iCustom7; ///< Custom7 damage
int iCustom8; ///< Custom8 damage
int iCustom9; ///< Custom9 damage
int iCustom10; ///< Custom10 damage
int iCustom11; ///< Custom11 damage
int iCustom12; ///< Custom12 damage
int iCustom13; ///< Custom13 damage
int iCustom14; ///< Custom14 damage
int iCustom15; ///< Custom15 damage
int iCustom16; ///< Custom16 damage
int iCustom17; ///< Custom17 damage
int iCustom18; ///< Custom18 damage
int iCustom19; ///< Custom19 damage
int iSpellId; ///< The spell id associated with the damage or -1 if not known.
};
/// @struct NWNX_Damage_AttackEventData
@@ -44,10 +64,33 @@ struct NWNX_Damage_AttackEventData
int iPositive; ///< Positive damage
int iSonic; ///< Sonic damage
int iBase; ///< Base damage
int iCustom1; ///< Custom1 damage
int iCustom2; ///< Custom2 damage
int iCustom3; ///< Custom3 damage
int iCustom4; ///< Custom4 damage
int iCustom5; ///< Custom5 damage
int iCustom6; ///< Custom6 damage
int iCustom7; ///< Custom7 damage
int iCustom8; ///< Custom8 damage
int iCustom9; ///< Custom9 damage
int iCustom10; ///< Custom10 damage
int iCustom11; ///< Custom11 damage
int iCustom12; ///< Custom12 damage
int iCustom13; ///< Custom13 damage
int iCustom14; ///< Custom14 damage
int iCustom15; ///< Custom15 damage
int iCustom16; ///< Custom16 damage
int iCustom17; ///< Custom17 damage
int iCustom18; ///< Custom18 damage
int iCustom19; ///< Custom19 damage
int iAttackNumber; ///< 1-based index of the attack in current combat round
int iAttackResult; ///< 1=hit, 3=critical hit, 4=miss, 8=concealed
int iAttackType; ///< 1=main hand, 2=offhand, 3-5=creature, 6=haste
int iSneakAttack; ///< 0=neither, 1=sneak attack, 2=death attack, 3=both
int iAttackResult; ///< 1=hit, 2=parried, 3=critical hit, 4=miss, 5=resisted, 7=automatic hit, 8=concealed, 9=miss chance, 10=devastating crit
int iWeaponAttackType; ///< 1=main hand, 2=offhand, 3-5=creature, 6=extra(haste), 7=unarmed, 8=unarmed extra
int iSneakAttack; ///< 0=neither, 1=sneak attack, 2=death attack, 3=both
int iAttackType; ///< 65002=Attack of Opportunity, 65003=Riposte or a FeatID like KnockDown or some other special attack.
int bKillingBlow; ///< TRUE if the hit is a killing blow
int iToHitRoll; ///< The to hit roll of the attack
int iToHitModifier; ///< The to hit modifier of the attack
};
/// @struct NWNX_Damage_DamageData
@@ -66,13 +109,32 @@ struct NWNX_Damage_DamageData
int iNegative; ///< Negative damage
int iPositive; ///< Positive damage
int iSonic; ///< Sonic damage
int iCustom1; ///< Custom1 damage
int iCustom2; ///< Custom2 damage
int iCustom3; ///< Custom3 damage
int iCustom4; ///< Custom4 damage
int iCustom5; ///< Custom5 damage
int iCustom6; ///< Custom6 damage
int iCustom7; ///< Custom7 damage
int iCustom8; ///< Custom8 damage
int iCustom9; ///< Custom9 damage
int iCustom10; ///< Custom10 damage
int iCustom11; ///< Custom11 damage
int iCustom12; ///< Custom12 damage
int iCustom13; ///< Custom13 damage
int iCustom14; ///< Custom14 damage
int iCustom15; ///< Custom15 damage
int iCustom16; ///< Custom16 damage
int iCustom17; ///< Custom17 damage
int iCustom18; ///< Custom18 damage
int iCustom19; ///< Custom19 damage
int iPower; ///< For overcoming DR
};
/// @brief Sets the script to run with a damage event.
/// @param sScript The script that will handle the damage event.
/// @param oOwner An object if only executing for a specific object or OBJECT_INVALID for global.
void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner=OBJECT_INVALID);
void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner = OBJECT_INVALID);
/// @brief Get Damage Event Data
/// @return A NWNX_Damage_DamageEventData struct.
@@ -87,7 +149,7 @@ void NWNX_Damage_SetDamageEventData(struct NWNX_Damage_DamageEventData data);
/// @brief Sets the script to run with an attack event.
/// @param sScript The script that will handle the attack event.
/// @param oOwner An object if only executing for a specific object or OBJECT_INVALID for global.
void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner=OBJECT_INVALID);
void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner = OBJECT_INVALID);
/// @brief Get Attack Event Data
/// @return A NWNX_Damage_AttackEventData struct.
@@ -97,6 +159,7 @@ struct NWNX_Damage_AttackEventData NWNX_Damage_GetAttackEventData();
/// @brief Set Attack Event Data
/// @param data A NWNX_Damage_AttackEventData struct.
/// @note To use only in the Attack Event Script.
/// @note Setting iSneakAttack will only change the attack roll message and floating text feedback. Immunities and damage will have already been resolved by the time the attack event script is ran.
void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data);
/// @brief Deal damage to a target.
@@ -105,7 +168,7 @@ void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data);
/// @param oTarget The target object on whom the damage is dealt.
/// @param oSource The source of the damage.
/// @param iRanged Whether the attack should be treated as ranged by the engine (for example when considering damage inflicted by Acid Sheath and other such effects)
void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, object oSource=OBJECT_SELF, int iRanged = FALSE);
void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, object oSource = OBJECT_SELF, int iRanged = FALSE);
/// @}
@@ -113,9 +176,9 @@ void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner=OBJECT_INVAL
{
string sFunc = "SetEventScript";
NWNX_PushArgumentObject(NWNX_Damage, sFunc, oOwner);
NWNX_PushArgumentString(NWNX_Damage, sFunc, sScript);
NWNX_PushArgumentString(NWNX_Damage, sFunc, "DAMAGE");
NWNX_PushArgumentObject(oOwner);
NWNX_PushArgumentString(sScript);
NWNX_PushArgumentString("DAMAGE");
NWNX_CallFunction(NWNX_Damage, sFunc);
}
@@ -127,20 +190,40 @@ struct NWNX_Damage_DamageEventData NWNX_Damage_GetDamageEventData()
NWNX_CallFunction(NWNX_Damage, sFunc);
data.oDamager = NWNX_GetReturnValueObject(NWNX_Damage, sFunc);
data.iBludgeoning = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iPierce = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iSlash = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iMagical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iAcid = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iCold = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iDivine = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iElectrical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iFire = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iNegative = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iPositive = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iSonic = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iBase = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.oDamager = NWNX_GetReturnValueObject();
data.iBludgeoning = NWNX_GetReturnValueInt();
data.iPierce = NWNX_GetReturnValueInt();
data.iSlash = NWNX_GetReturnValueInt();
data.iMagical = NWNX_GetReturnValueInt();
data.iAcid = NWNX_GetReturnValueInt();
data.iCold = NWNX_GetReturnValueInt();
data.iDivine = NWNX_GetReturnValueInt();
data.iElectrical = NWNX_GetReturnValueInt();
data.iFire = NWNX_GetReturnValueInt();
data.iNegative = NWNX_GetReturnValueInt();
data.iPositive = NWNX_GetReturnValueInt();
data.iSonic = NWNX_GetReturnValueInt();
data.iBase = NWNX_GetReturnValueInt();
data.iCustom1 = NWNX_GetReturnValueInt();
data.iCustom2 = NWNX_GetReturnValueInt();
data.iCustom3 = NWNX_GetReturnValueInt();
data.iCustom4 = NWNX_GetReturnValueInt();
data.iCustom5 = NWNX_GetReturnValueInt();
data.iCustom6 = NWNX_GetReturnValueInt();
data.iCustom7 = NWNX_GetReturnValueInt();
data.iCustom8 = NWNX_GetReturnValueInt();
data.iCustom9 = NWNX_GetReturnValueInt();
data.iCustom10 = NWNX_GetReturnValueInt();
data.iCustom11 = NWNX_GetReturnValueInt();
data.iCustom12 = NWNX_GetReturnValueInt();
data.iCustom13 = NWNX_GetReturnValueInt();
data.iCustom14 = NWNX_GetReturnValueInt();
data.iCustom15 = NWNX_GetReturnValueInt();
data.iCustom16 = NWNX_GetReturnValueInt();
data.iCustom17 = NWNX_GetReturnValueInt();
data.iCustom18 = NWNX_GetReturnValueInt();
data.iCustom19 = NWNX_GetReturnValueInt();
data.iSpellId = NWNX_GetReturnValueInt();
return data;
}
@@ -149,19 +232,38 @@ void NWNX_Damage_SetDamageEventData(struct NWNX_Damage_DamageEventData data)
{
string sFunc = "SetDamageEventData";
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBase);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSonic);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPositive);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iNegative);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iFire);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iElectrical);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iDivine);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iCold);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAcid);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iMagical);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSlash);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPierce);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBludgeoning);
NWNX_PushArgumentInt(data.iCustom19);
NWNX_PushArgumentInt(data.iCustom18);
NWNX_PushArgumentInt(data.iCustom17);
NWNX_PushArgumentInt(data.iCustom16);
NWNX_PushArgumentInt(data.iCustom15);
NWNX_PushArgumentInt(data.iCustom14);
NWNX_PushArgumentInt(data.iCustom13);
NWNX_PushArgumentInt(data.iCustom12);
NWNX_PushArgumentInt(data.iCustom11);
NWNX_PushArgumentInt(data.iCustom10);
NWNX_PushArgumentInt(data.iCustom9);
NWNX_PushArgumentInt(data.iCustom8);
NWNX_PushArgumentInt(data.iCustom7);
NWNX_PushArgumentInt(data.iCustom6);
NWNX_PushArgumentInt(data.iCustom5);
NWNX_PushArgumentInt(data.iCustom4);
NWNX_PushArgumentInt(data.iCustom3);
NWNX_PushArgumentInt(data.iCustom2);
NWNX_PushArgumentInt(data.iCustom1);
NWNX_PushArgumentInt(data.iBase);
NWNX_PushArgumentInt(data.iSonic);
NWNX_PushArgumentInt(data.iPositive);
NWNX_PushArgumentInt(data.iNegative);
NWNX_PushArgumentInt(data.iFire);
NWNX_PushArgumentInt(data.iElectrical);
NWNX_PushArgumentInt(data.iDivine);
NWNX_PushArgumentInt(data.iCold);
NWNX_PushArgumentInt(data.iAcid);
NWNX_PushArgumentInt(data.iMagical);
NWNX_PushArgumentInt(data.iSlash);
NWNX_PushArgumentInt(data.iPierce);
NWNX_PushArgumentInt(data.iBludgeoning);
NWNX_CallFunction(NWNX_Damage, sFunc);
}
@@ -170,9 +272,9 @@ void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner=OBJECT_INVAL
{
string sFunc = "SetEventScript";
NWNX_PushArgumentObject(NWNX_Damage, sFunc, oOwner);
NWNX_PushArgumentString(NWNX_Damage, sFunc, sScript);
NWNX_PushArgumentString(NWNX_Damage, sFunc, "ATTACK");
NWNX_PushArgumentObject(oOwner);
NWNX_PushArgumentString(sScript);
NWNX_PushArgumentString("ATTACK");
NWNX_CallFunction(NWNX_Damage, sFunc);
}
@@ -184,24 +286,47 @@ struct NWNX_Damage_AttackEventData NWNX_Damage_GetAttackEventData()
NWNX_CallFunction(NWNX_Damage, sFunc);
data.oTarget = NWNX_GetReturnValueObject(NWNX_Damage, sFunc);
data.iBludgeoning = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iPierce = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iSlash = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iMagical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iAcid = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iCold = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iDivine = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iElectrical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iFire = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iNegative = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iPositive = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iSonic = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iBase = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iAttackNumber = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iAttackResult = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iAttackType = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.iSneakAttack = NWNX_GetReturnValueInt(NWNX_Damage, sFunc);
data.oTarget = NWNX_GetReturnValueObject();
data.iBludgeoning = NWNX_GetReturnValueInt();
data.iPierce = NWNX_GetReturnValueInt();
data.iSlash = NWNX_GetReturnValueInt();
data.iMagical = NWNX_GetReturnValueInt();
data.iAcid = NWNX_GetReturnValueInt();
data.iCold = NWNX_GetReturnValueInt();
data.iDivine = NWNX_GetReturnValueInt();
data.iElectrical = NWNX_GetReturnValueInt();
data.iFire = NWNX_GetReturnValueInt();
data.iNegative = NWNX_GetReturnValueInt();
data.iPositive = NWNX_GetReturnValueInt();
data.iSonic = NWNX_GetReturnValueInt();
data.iBase = NWNX_GetReturnValueInt();
data.iCustom1 = NWNX_GetReturnValueInt();
data.iCustom2 = NWNX_GetReturnValueInt();
data.iCustom3 = NWNX_GetReturnValueInt();
data.iCustom4 = NWNX_GetReturnValueInt();
data.iCustom5 = NWNX_GetReturnValueInt();
data.iCustom6 = NWNX_GetReturnValueInt();
data.iCustom7 = NWNX_GetReturnValueInt();
data.iCustom8 = NWNX_GetReturnValueInt();
data.iCustom9 = NWNX_GetReturnValueInt();
data.iCustom10 = NWNX_GetReturnValueInt();
data.iCustom11 = NWNX_GetReturnValueInt();
data.iCustom12 = NWNX_GetReturnValueInt();
data.iCustom13 = NWNX_GetReturnValueInt();
data.iCustom14 = NWNX_GetReturnValueInt();
data.iCustom15 = NWNX_GetReturnValueInt();
data.iCustom16 = NWNX_GetReturnValueInt();
data.iCustom17 = NWNX_GetReturnValueInt();
data.iCustom18 = NWNX_GetReturnValueInt();
data.iCustom19 = NWNX_GetReturnValueInt();
data.iAttackNumber = NWNX_GetReturnValueInt();
data.iAttackResult = NWNX_GetReturnValueInt();
data.iWeaponAttackType = NWNX_GetReturnValueInt();
data.iSneakAttack = NWNX_GetReturnValueInt();
data.bKillingBlow = NWNX_GetReturnValueInt();
data.iAttackType = NWNX_GetReturnValueInt();
data.iToHitRoll = NWNX_GetReturnValueInt();
data.iToHitModifier = NWNX_GetReturnValueInt();
return data;
}
@@ -210,20 +335,40 @@ void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data)
{
string sFunc = "SetAttackEventData";
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAttackResult);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBase);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSonic);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPositive);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iNegative);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iFire);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iElectrical);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iDivine);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iCold);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAcid);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iMagical);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSlash);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPierce);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBludgeoning);
NWNX_PushArgumentInt(data.iSneakAttack);
NWNX_PushArgumentInt(data.iAttackResult);
NWNX_PushArgumentInt(data.iCustom19);
NWNX_PushArgumentInt(data.iCustom18);
NWNX_PushArgumentInt(data.iCustom17);
NWNX_PushArgumentInt(data.iCustom16);
NWNX_PushArgumentInt(data.iCustom15);
NWNX_PushArgumentInt(data.iCustom14);
NWNX_PushArgumentInt(data.iCustom13);
NWNX_PushArgumentInt(data.iCustom12);
NWNX_PushArgumentInt(data.iCustom11);
NWNX_PushArgumentInt(data.iCustom10);
NWNX_PushArgumentInt(data.iCustom9);
NWNX_PushArgumentInt(data.iCustom8);
NWNX_PushArgumentInt(data.iCustom7);
NWNX_PushArgumentInt(data.iCustom6);
NWNX_PushArgumentInt(data.iCustom5);
NWNX_PushArgumentInt(data.iCustom4);
NWNX_PushArgumentInt(data.iCustom3);
NWNX_PushArgumentInt(data.iCustom2);
NWNX_PushArgumentInt(data.iCustom1);
NWNX_PushArgumentInt(data.iBase);
NWNX_PushArgumentInt(data.iSonic);
NWNX_PushArgumentInt(data.iPositive);
NWNX_PushArgumentInt(data.iNegative);
NWNX_PushArgumentInt(data.iFire);
NWNX_PushArgumentInt(data.iElectrical);
NWNX_PushArgumentInt(data.iDivine);
NWNX_PushArgumentInt(data.iCold);
NWNX_PushArgumentInt(data.iAcid);
NWNX_PushArgumentInt(data.iMagical);
NWNX_PushArgumentInt(data.iSlash);
NWNX_PushArgumentInt(data.iPierce);
NWNX_PushArgumentInt(data.iBludgeoning);
NWNX_CallFunction(NWNX_Damage, sFunc);
}
@@ -232,22 +377,42 @@ void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget,
{
string sFunc = "DealDamage";
NWNX_PushArgumentInt(NWNX_Damage, sFunc, iRanged);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPower);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSonic);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPositive);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iNegative);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iFire);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iElectrical);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iDivine);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iCold);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAcid);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iMagical);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSlash);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPierce);
NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBludgeoning);
NWNX_PushArgumentObject(NWNX_Damage, sFunc, oTarget);
NWNX_PushArgumentObject(NWNX_Damage, sFunc, oSource);
NWNX_PushArgumentInt(iRanged);
NWNX_PushArgumentInt(data.iPower);
NWNX_PushArgumentInt(data.iCustom19);
NWNX_PushArgumentInt(data.iCustom18);
NWNX_PushArgumentInt(data.iCustom17);
NWNX_PushArgumentInt(data.iCustom16);
NWNX_PushArgumentInt(data.iCustom15);
NWNX_PushArgumentInt(data.iCustom14);
NWNX_PushArgumentInt(data.iCustom13);
NWNX_PushArgumentInt(data.iCustom12);
NWNX_PushArgumentInt(data.iCustom11);
NWNX_PushArgumentInt(data.iCustom10);
NWNX_PushArgumentInt(data.iCustom9);
NWNX_PushArgumentInt(data.iCustom8);
NWNX_PushArgumentInt(data.iCustom7);
NWNX_PushArgumentInt(data.iCustom6);
NWNX_PushArgumentInt(data.iCustom5);
NWNX_PushArgumentInt(data.iCustom4);
NWNX_PushArgumentInt(data.iCustom3);
NWNX_PushArgumentInt(data.iCustom2);
NWNX_PushArgumentInt(data.iCustom1);
NWNX_PushArgumentInt(0);// Padding for Base Damage
NWNX_PushArgumentInt(data.iSonic);
NWNX_PushArgumentInt(data.iPositive);
NWNX_PushArgumentInt(data.iNegative);
NWNX_PushArgumentInt(data.iFire);
NWNX_PushArgumentInt(data.iElectrical);
NWNX_PushArgumentInt(data.iDivine);
NWNX_PushArgumentInt(data.iCold);
NWNX_PushArgumentInt(data.iAcid);
NWNX_PushArgumentInt(data.iMagical);
NWNX_PushArgumentInt(data.iSlash);
NWNX_PushArgumentInt(data.iPierce);
NWNX_PushArgumentInt(data.iBludgeoning);
NWNX_PushArgumentObject(oTarget);
NWNX_PushArgumentObject(oSource);
NWNX_CallFunction(NWNX_Damage, sFunc);
}