Updated TLK for PRC8 update
Updated TLK for PRC8 update. Added placeable house blueprints. Updated NWNxEE. Full compile.
This commit is contained in:
170
_module/nss/codi_userdef.nss
Normal file
170
_module/nss/codi_userdef.nss
Normal file
@@ -0,0 +1,170 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name codi_userdef
|
||||
//::
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
NPC OnUserDefined event script caller to run
|
||||
CODI AI & PRC events.
|
||||
|
||||
May need to actually disable most of this for
|
||||
the CODI AI.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jaysyn
|
||||
//:: Created On: 20240331
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
const int EVENT_USER_DEFINED_PRESPAWN = 1510;
|
||||
const int EVENT_USER_DEFINED_POSTSPAWN = 1511;
|
||||
void main()
|
||||
{
|
||||
//:: Declare major variables
|
||||
int nUser = GetUserDefinedEventNumber();
|
||||
int nFireDamage = 0;
|
||||
int nAcidDamage = 0;
|
||||
int nColdDamage = 0;
|
||||
int nDivineDamage = 0;
|
||||
int nElectricalDamage = 0;
|
||||
int nPositiveDamage = 0;
|
||||
int nNegativeDamage = 0;
|
||||
int nMagicalDamage = 0;
|
||||
int nSonicDamage = 0;
|
||||
|
||||
string sResRef = GetResRef(OBJECT_SELF);
|
||||
|
||||
effect eSleep = EffectSleep();
|
||||
effect eSlow = EffectSlow();
|
||||
|
||||
if(nUser == EVENT_HEARTBEAT ) //HEARTBEAT
|
||||
{
|
||||
if(sResRef == "ra_troll001" || sResRef == "TROLL_FEDORLA")
|
||||
{
|
||||
if(GetLocalInt(OBJECT_SELF, "nSubDual") > 0)
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nSubDual", GetLocalInt(OBJECT_SELF, "nSubDual") - 5);
|
||||
|
||||
if(GetLocalInt(OBJECT_SELF, "nSubDual") < GetCurrentHitPoints(OBJECT_SELF))
|
||||
{
|
||||
RemoveEffect(OBJECT_SELF, eSleep);
|
||||
}
|
||||
//SpeakString("My Subdual is now " + IntToString(GetLocalInt(OBJECT_SELF, "nSubDual")));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(nUser == EVENT_PERCEIVE) // PERCEIVE
|
||||
{
|
||||
|
||||
}
|
||||
else if(nUser == EVENT_END_COMBAT_ROUND) // END OF COMBAT
|
||||
{
|
||||
|
||||
}
|
||||
else if(nUser == EVENT_DIALOGUE) // ON DIALOGUE
|
||||
{
|
||||
|
||||
}
|
||||
else if(nUser == EVENT_ATTACKED) // ATTACKED
|
||||
{
|
||||
|
||||
}
|
||||
else if(nUser == EVENT_DAMAGED) // DAMAGED
|
||||
{
|
||||
//:: Handles swarm immunity to physical weapons
|
||||
if(sResRef == "ds_minkankswrm01" || sResRef == "ds_locustswarm01")
|
||||
{
|
||||
int nTotalDamage = GetTotalDamageDealt();
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_FIRE) > 0)
|
||||
{
|
||||
nFireDamage = GetDamageDealtByType(DAMAGE_TYPE_FIRE);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_ACID) > 0)
|
||||
{
|
||||
nAcidDamage = GetDamageDealtByType(DAMAGE_TYPE_ACID);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_COLD) > 0)
|
||||
{
|
||||
nColdDamage = GetDamageDealtByType(DAMAGE_TYPE_COLD);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_DIVINE) > 0)
|
||||
{
|
||||
nDivineDamage = GetDamageDealtByType(DAMAGE_TYPE_DIVINE);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_ELECTRICAL) > 0)
|
||||
{
|
||||
nElectricalDamage = GetDamageDealtByType(DAMAGE_TYPE_ELECTRICAL);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_MAGICAL) > 0)
|
||||
{
|
||||
nMagicalDamage = GetDamageDealtByType(DAMAGE_TYPE_MAGICAL);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_NEGATIVE) > 0)
|
||||
{
|
||||
nNegativeDamage = GetDamageDealtByType(DAMAGE_TYPE_NEGATIVE);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_POSITIVE) > 0)
|
||||
{
|
||||
nPositiveDamage = GetDamageDealtByType(DAMAGE_TYPE_POSITIVE);
|
||||
}
|
||||
|
||||
if(GetDamageDealtByType(DAMAGE_TYPE_SONIC) > 0)
|
||||
{
|
||||
nSonicDamage = GetDamageDealtByType(DAMAGE_TYPE_SONIC);
|
||||
}
|
||||
|
||||
|
||||
int nSubDmg = nTotalDamage - (nFireDamage
|
||||
+ nAcidDamage
|
||||
+ nColdDamage
|
||||
+ nDivineDamage
|
||||
+ nElectricalDamage
|
||||
+ nMagicalDamage
|
||||
+ nNegativeDamage
|
||||
+ nPositiveDamage
|
||||
+ nSonicDamage);
|
||||
|
||||
int nActDmg = (nFireDamage + nAcidDamage
|
||||
+ nColdDamage
|
||||
+ nDivineDamage
|
||||
+ nElectricalDamage
|
||||
+ nMagicalDamage
|
||||
+ nNegativeDamage
|
||||
+ nPositiveDamage
|
||||
+ nSonicDamage);
|
||||
|
||||
effect eHeal = EffectHeal(nSubDmg);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, OBJECT_SELF, 0.0f);
|
||||
|
||||
}
|
||||
}
|
||||
else if(nUser == 1007) // DEATH - do not use for critical code, does not fire reliably all the time
|
||||
{
|
||||
|
||||
}
|
||||
else if(nUser == EVENT_DISTURBED) // DISTURBED
|
||||
{
|
||||
|
||||
}
|
||||
else if (nUser == EVENT_USER_DEFINED_PRESPAWN)
|
||||
{
|
||||
|
||||
}
|
||||
else if (nUser == EVENT_USER_DEFINED_POSTSPAWN)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//:: Execute the PRC NPC OnUserDef script
|
||||
ExecuteScript("prc_npc_userdef", OBJECT_SELF);
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user