Initial upload.

Adding base PRC 4.19a files to repository.
This commit is contained in:
Jaysyn904
2022-10-07 13:51:24 -04:00
parent 646eb01834
commit 1662218bb4
22441 changed files with 1274376 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
//::///////////////////////////////////////////////
//:: Name Calm Emotions
//:: FileName sp_calm_emotions.nss
//:://////////////////////////////////////////////2
/** @file Calm Emotions
Enchantment (Compulsion) [Mind-Affecting]
Level: Brd 2, Clr 2, Law 2
Components: V, S, DF
Casting Time: 1 standard action
Range: Medium (100 ft. + 10 ft./level)
Area: Creatures in a 20-ft.-radius spread
Duration: 1 round/level
Saving Throw: Will negates
Spell Resistance: Yes
This spell calms agitated creatures. You have no
control over the affected creatures, but calm emotions
can stop raging creatures from fighting or joyous ones
from reveling. Creatures so affected cannot take
violent actions (although they can defend themselves)
or do anything destructive.
**/
//////////////////////////////////////////////////////
// Author: Tenjac
// Date: 8.10.06
//////////////////////////////////////////////////////
void DoConcLoop(object oPC, float fDur, int nCounter);
#include "prc_alterations"
#include "prc_inc_spells"
#include "prc_add_spell_dc"
void main()
{
if(!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_ENCHANTMENT);
effect eAoE = EffectAreaOfEffect(AOE_PER_CALM_EMOTIONS);
int nCasterLvl = PRCGetCasterLevel();
float fDur = RoundsToSeconds(nCasterLvl);
int nMetaMagic = PRCGetMetaMagicFeat();
if(nMetaMagic & METAMAGIC_EXTEND)
{
fDur += fDur;
}
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAoE, OBJECT_SELF, fDur);
object oAoE = GetAreaOfEffectObject(GetLocation(OBJECT_SELF), "AOE_PER_CALM_EMOTIONS");
SetAllAoEInts(SPELL_CALM_EMOTIONS, oAoE, PRCGetSpellSaveDC(SPELL_CALM_EMOTIONS, SPELL_SCHOOL_ENCHANTMENT), 0, nCasterLvl);
//Get the number of rounds
int nCounter = (FloatToInt(fDur) / 6);
//Start conc monitor
DelayCommand(6.0f, DoConcLoop(OBJECT_SELF, fDur, nCounter));
PRCSetSchool();
}
void DoConcLoop(object oPC, float fDur, int nCounter)
{
if((nCounter == 0) || GetBreakConcentrationCheck(oPC) > 0)
{
PRCRemoveSpellEffects(SPELL_CALM_EMOTIONS, oPC, oPC);
}
else
{
nCounter--;
DelayCommand(6.0f, DoConcLoop(oPC, fDur, nCounter));
}
}