PRC8/nwn/nwnprc/trunk/smp/phs_s_identify.nss
Jaysyn904 6ec137a24e Updated AMS marker feats
Updated AMS marker feats.  Removed arcane & divine marker feats.  Updated Dread Necromancer for epic progression. Updated weapon baseitem models.  Updated new weapons for crafting & npc equip.
 Updated prefix.  Updated release archive.
2024-02-11 14:01:05 -05:00

72 lines
2.2 KiB
Plaintext

/*:://////////////////////////////////////////////
//:: Spell Name Identify
//:: Spell FileName PHS_S_Identify
//:://////////////////////////////////////////////
//:: In Game Spell desctiption
//:://////////////////////////////////////////////
Divination
Level: Brd 1, Magic 2, Sor/Wiz 1
Components: V, S, M/DF
Casting Time: 1 hour
Range: Touch
Targets: One touched object
Duration: Instantaneous
Saving Throw: None
Spell Resistance: No
The spell determines all magic properties of a single magic item, including
how to activate those functions (if appropriate), and how many charges are
left (if any).
Identify does not function when used on an artifact.
Arcane Material Component: A pearl of at least 100 gp value, crushed and
stirred into wine with an owl feather; the infusion must be drunk prior to
spellcasting.
//:://////////////////////////////////////////////
//:: Spell Effects Applied / Notes
//:://////////////////////////////////////////////
Identifies the target object, if not done so already.
Gem is used, a real gem of the name Pearl, worth 100 gold or more.
//:://////////////////////////////////////////////
//:: Created By: Jasperre
//::////////////////////////////////////////////*/
#include "PHS_INC_SPELLS"
void main()
{
// Spell hook check.
if(!PHS_SpellHookCheck(PHS_SPELL_IDENTIFY)) return;
//Declare major variables
object oCaster = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
// Check for Arcane 100gp of pearls
if(!PHS_ComponentItemGemCheck("Identify", 100, "Pearl")) return;
// Check target - must be an item
if(GetObjectType(oTarget) == OBJECT_TYPE_ITEM &&
!GetIdentified(oTarget))
{
SetIdentified(oTarget, TRUE);
SendMessageToPC(oCaster, "You have identified the properties of the item, " + GetName(oTarget));
}
else
{
// Not something valid to identify!
return;
}
// Delcare effects
effect eVis = EffectVisualEffect(VFX_IMP_MAGICAL_VISION);
// Signal event
PHS_SignalSpellCastAt(oTarget, PHS_SPELL_IDENTIFY, FALSE);
// Apply effects
PHS_ApplyVFX(oTarget, eVis);
}