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:
@@ -102,7 +102,19 @@ void main()
|
||||
DelayCommand(6.0, ExecuteScript("prc_onhb_indiv", oPC));
|
||||
}
|
||||
|
||||
/* PC_damage code to support oni's scripts
|
||||
// Check for Morality Undone expiration
|
||||
if(GetPersistantLocalInt(oPC, "MoralityUndone_Expire") > 0)
|
||||
{
|
||||
if(GetTimeSecond() >= GetPersistantLocalInt(oPC, "MoralityUndone_Expire"))
|
||||
{
|
||||
int nShiftAmount = GetPersistantLocalInt(oPC, "MoralityUndone_ShiftAmount");
|
||||
AdjustAlignment(oPC, ALIGNMENT_GOOD, nShiftAmount, FALSE);
|
||||
DeletePersistantLocalInt(oPC, "MoralityUndone_Expire");
|
||||
DeletePersistantLocalInt(oPC, "MoralityUndone_ShiftAmount");
|
||||
}
|
||||
}
|
||||
|
||||
/* PC_damage code to support oni's scripts
|
||||
* If HP is over 1 apply the damage and let
|
||||
* the OnDying deal with the consequences
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,27 @@
|
||||
|
||||
//::////////////////////////////////////////////////////////
|
||||
//::
|
||||
//:: prc_shadolord.nss
|
||||
//::
|
||||
//:: Handles Shadow Sight & Shadow Blur
|
||||
//::
|
||||
//::////////////////////////////////////////////////////////
|
||||
//::
|
||||
//:: Created by: Jaysyn
|
||||
//:: Date: 2026-05-28 13:54:50
|
||||
//::
|
||||
//::////////////////////////////////////////////////////////
|
||||
//::
|
||||
//:: Shadow Sight - Gains Darkvision and Ultravision in
|
||||
//:: darkness.
|
||||
//::
|
||||
//:: Shadow Blur - In darkness gains the benefit of Blur
|
||||
//;: spell (20% concealment at night or in
|
||||
//:: a Darkness spell).
|
||||
//::
|
||||
//:: Shadow Discorporation - When reduced to 0 or fewer HP,
|
||||
//:: (NOT IMPLEMENTED) has a chance to teleport away.
|
||||
//::
|
||||
//::////////////////////////////////////////////////////////
|
||||
#include "prc_feat_const"
|
||||
#include "prc_class_const"
|
||||
#include "prc_spell_const"
|
||||
@@ -36,18 +59,50 @@ void Discorp(object oPC,int iEquip)
|
||||
|
||||
}
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
//Declare main variables.
|
||||
object oPC = OBJECT_SELF;
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
//:: Declare main variables.
|
||||
object oPC = OBJECT_SELF;
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
object oArea = GetArea(oPC);
|
||||
|
||||
int iShadow = GetLevelByClass(CLASS_TYPE_SHADOWLORD, oPC);
|
||||
int nNight = !GetIsDay();
|
||||
int nTopside = GetIsAreaAboveGround(oArea);
|
||||
int nOutside = !GetIsAreaInterior(oArea);
|
||||
|
||||
effect eLink;
|
||||
effect eVis;
|
||||
|
||||
if (iShadow && nNight && nTopside && nOutside)
|
||||
{
|
||||
//:: Create visual feedback effect link
|
||||
eVis = EffectVisualEffect(VFX_DUR_ULTRAVISION);
|
||||
eVis = EffectLinkEffects(eVis, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE));
|
||||
eVis = EffectLinkEffects(eVis, EffectVisualEffect(VFX_DUR_MAGICAL_SIGHT));
|
||||
eVis = EffectLinkEffects(eVis, EffectIcon(EFFECT_ICON_ULTRAVISION));
|
||||
|
||||
//:: Link Ultravision and visual feedback into base effect
|
||||
eLink = EffectLinkEffects(eLink, EffectUltravision());
|
||||
eLink = EffectLinkEffects(eLink, eVis);
|
||||
if(DEBUG) DoDebug("prc_shadowlord >> Setting up Ultravision");
|
||||
|
||||
if (iShadow > 1)
|
||||
{
|
||||
//;: Add concealment for level 2+ Shadowlords
|
||||
eLink = EffectLinkEffects(eLink, EffectConcealment(20));
|
||||
if(DEBUG) DoDebug("prc_shadowlord >> Setting up Concealment");
|
||||
}
|
||||
|
||||
int bDiscor= GetHasFeat(FEAT_SHADOWDISCOPOR, oPC) ? 1 : 0;
|
||||
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, 6.0f);
|
||||
|
||||
}
|
||||
|
||||
//:: Shadow Discorporation was never finished
|
||||
/* int bDiscor= GetHasFeat(FEAT_SHADOWDISCOPOR, oPC) ? 1 : 0;
|
||||
|
||||
if (GetLocalInt(oPC,"ONENTER")) return;
|
||||
if (bDiscor>0) Discorp(oPC,GetLocalInt(oPC,"ONEQUIP"));
|
||||
|
||||
|
||||
}
|
||||
if (bDiscor>0) Discorp(oPC,GetLocalInt(oPC,"ONEQUIP")); */
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user