2026/05/28 Afternoon update
Updated damagtypes.2da for CEP3 reserved rows. Added and setup Darkvision icon. Added and setup Ultravision icon. Added spell icon for Thicket of Blades. Fixed Blacklight, Cloud of the Archeai, Darkness, Deeper Darkness, Damning Darkness, Utterdark, Grasping Shadows, Dawn and Dusk and Child of Shadow and Light for Telflammar Shadowlord's Shadow Blur and Shadow Sight abilities. Updated Blacklight's TLK entry. Created a constant for Shadow Discorporation. Fixed Shadow Time never ending on the targets. Updated prc_inc_combat to use monk iterative progression if warranted. Updated PRCGetIsRealSpellKnownByClass() to handle Sublime Chord better. (@Lightbeard) Added class heartbeat script for Shadowlord to handle Shadow Blur and Shadow Sight. Added ShadowlordEffects() to prc_inc_spells. Added constants for new damagetypes. Completely rewrote Verminlord's Vermin Domination. Fixed duration for Empathic Feedback. Fixed Morality Undone to not break characters over a server reset.
This commit is contained in:
@@ -2725,7 +2725,41 @@ int X2GetSpellCastOnSequencerItem(object oItem, object oCaster, int nSpellID, in
|
||||
// * This is our little concentration system for black blade of disaster
|
||||
// * if the mage tries to cast any kind of spell, the blade is signaled an event to die
|
||||
//------------------------------------------------------------------------------
|
||||
void X2BreakConcentrationSpells()
|
||||
void X2BreakConcentrationSpells()
|
||||
{
|
||||
//end Dragonsong Lyrist songs
|
||||
DeleteLocalInt(OBJECT_SELF, "SpellConc");
|
||||
|
||||
if(GetPRCSwitch(PRC_PNP_BLACK_BLADE_OF_DISASTER))
|
||||
{
|
||||
//this is also in summon HB
|
||||
//but needed here to handle quickend spells
|
||||
//Disintegrate is cast from the blade so doesn't end the summon
|
||||
|
||||
// Determine the correct tag based on PRC switch
|
||||
string sTargetTag = GetPRCSwitch(PRC_PNP_BLACK_BLADE_OF_DISASTER) ? "prc_bbod001" : "x2_s_bblade";
|
||||
|
||||
// Loop through all summoned associates
|
||||
int i = 1;
|
||||
object oAssoc = GetAssociate(ASSOCIATE_TYPE_SUMMONED, OBJECT_SELF, i);
|
||||
while(GetIsObjectValid(oAssoc))
|
||||
{
|
||||
string sTag = GetTag(oAssoc);
|
||||
// Use case-insensitive comparison
|
||||
if(GetStringLowerCase(sTag) == GetStringLowerCase(sTargetTag))
|
||||
{
|
||||
if(GetLocalInt(oAssoc, "X2_L_CREATURE_NEEDS_CONCENTRATION"))
|
||||
{
|
||||
SignalEvent(oAssoc, EventUserDefined(X2_EVENT_CONCENTRATION_BROKEN));
|
||||
}
|
||||
}
|
||||
i++;
|
||||
oAssoc = GetAssociate(ASSOCIATE_TYPE_SUMMONED, OBJECT_SELF, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* void X2BreakConcentrationSpells()
|
||||
{
|
||||
//end Dragonsong Lyrist songs
|
||||
DeleteLocalInt(OBJECT_SELF, "SpellConc");
|
||||
@@ -2747,7 +2781,7 @@ void X2BreakConcentrationSpells()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} */
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// being hit by any kind of negative effect affecting the caster's ability to concentrate
|
||||
|
||||
Reference in New Issue
Block a user