Initial upload.
Adding base PRC 4.19a files to repository.
This commit is contained in:
105
trunk/smp/phs_s_augury.nss
Normal file
105
trunk/smp/phs_s_augury.nss
Normal file
@@ -0,0 +1,105 @@
|
||||
/*:://////////////////////////////////////////////
|
||||
//:: Spell Name Augury
|
||||
//:: Spell FileName PHS_S_Augury
|
||||
//:://////////////////////////////////////////////
|
||||
//:: In Game Spell desctiption
|
||||
//:://////////////////////////////////////////////
|
||||
Divination
|
||||
Level: Clr 2
|
||||
Components: V, S, M, F
|
||||
Casting Time: 1 minute
|
||||
Range: Personal
|
||||
Target: You
|
||||
Duration: Instantaneous
|
||||
DM Spell
|
||||
|
||||
An augury can tell you whether a particular action will bring good or bad
|
||||
results for you in the immediate future.
|
||||
|
||||
The base chance for receiving a meaningful reply is 70% + 1% per caster level,
|
||||
to a maximum of 90%; this roll is made secretly. A question may be so
|
||||
straightforward that a successful result is automatic, or so vague as to have
|
||||
no chance of success. If the augury succeeds, you get one of four results:
|
||||
|
||||
<20> Weal (if the action will probably bring good results).
|
||||
<20> Woe (for bad results).
|
||||
<20> Weal and woe (for both).
|
||||
<20> Nothing (for actions that don<6F>t have especially good or bad results).
|
||||
|
||||
If the spell fails, you get the <20>nothing<6E> result. A cleric who gets the
|
||||
<20>nothing<6E> result has no way to tell whether it was the consequence of a
|
||||
failed or successful augury.
|
||||
|
||||
The augury can see into the future only about half an hour, so anything that
|
||||
might happen after that does not affect the result. Thus, the result might
|
||||
not take into account the long-term consequences of a contemplated action.
|
||||
All auguries cast by the same person about the same topic use the same dice
|
||||
result as the first casting.
|
||||
|
||||
This is a DM spell, and only a DM can determine if a result will be one of
|
||||
the 4 above. Make sure a DM knows what you asked. Everything but the result
|
||||
is automatic.
|
||||
|
||||
Material Component: Incense worth at least 25 gp.
|
||||
|
||||
Focus: A set of marked sticks, bones, or similar tokens of at least 25 gp
|
||||
value.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Spell Effects Applied / Notes
|
||||
//:://////////////////////////////////////////////
|
||||
Automatic stuff, apart from the result.
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jasperre
|
||||
//::////////////////////////////////////////////*/
|
||||
|
||||
#include "PHS_INC_SPELLS"
|
||||
|
||||
void main()
|
||||
{
|
||||
// Spell hook check.
|
||||
if(!PHS_SpellHookCheck()) return;
|
||||
|
||||
// Check for material componant
|
||||
if(!PHS_ComponentExactItemRemove(PHS_ITEM_INCENSE_25, "Incense worth 25GP", "Augury")) return;
|
||||
|
||||
// Check for spell focus
|
||||
if(!PHS_ComponentFocusItem(PHS_ITEM_MARKED_STICKS_25, "Marked sticks or similar worth 25GP", "Augury")) return;
|
||||
|
||||
//Declare major variables
|
||||
object oCaster = OBJECT_SELF;
|
||||
object oTarget = GetSpellTargetObject(); // Should be OBJECT_SELF.
|
||||
int nCasterLevel = PHS_GetCasterLevel();
|
||||
// - 70% + 1% per caster level, to a maximum of 90%;
|
||||
int nPercent = 70 + PHS_LimitInteger(nCasterLevel, 20);
|
||||
|
||||
// Make sure they are not immune to spells
|
||||
if(PHS_TotalSpellImmunity(oTarget)) return;
|
||||
|
||||
// Delcare effects
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_MAGICAL_VISION);
|
||||
|
||||
// Alery DM's
|
||||
PHS_AlertDMsOfSpell("Augury", PHS_GetSpellSaveDC(), nCasterLevel);
|
||||
|
||||
// d100 % roll - needs to be under nPercent (71 to 90)
|
||||
if(d100() <= nPercent)
|
||||
{
|
||||
// PASS
|
||||
// Send message of pass
|
||||
SendMessageToAllDMs("Augury: Result: PASS. Allow Meaningfull Reply");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Send message of fail
|
||||
SendMessageToAllDMs("Augury: Result: FAIL. No meaningfull reply");
|
||||
}
|
||||
|
||||
// Signal event
|
||||
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_AUGURY, FALSE);
|
||||
|
||||
// Apply effects
|
||||
PHS_ApplyVFX(oTarget, eVis);
|
||||
|
||||
// Also play animation - pray
|
||||
PlayAnimation(ANIMATION_LOOPING_MEDITATE);
|
||||
}
|
Reference in New Issue
Block a user