Amon_PRC8/_module/nss/gaunt_ruby.nss
Jaysyn904 c5cffc37af Initial Commit
Initial Commit [v1.01]
2025-04-03 19:00:46 -04:00

54 lines
1.8 KiB
Plaintext

#include "prc_class_const"
void main()
{
object oPC = GetItemActivator();
object oItemToTake1 = GetItemPossessedBy(oPC, "Ruby");
location lLocation = GetLocation(oPC);
effect eVis1 = EffectVisualEffect(VFX_IMP_HEAD_HOLY);
effect eVis2 = EffectVisualEffect(VFX_IMP_HEAD_MIND);
effect eVis3 = EffectVisualEffect(VFX_DUR_GLOW_LIGHT_PURPLE);
int iDruidic = GetLevelByClass(CLASS_TYPE_DRUID, oPC)
+ GetLevelByClass(CLASS_TYPE_SHAMAN, oPC);
int iDivine = GetLevelByClass(CLASS_TYPE_CLERIC, oPC)
+ GetLevelByClass(CLASS_TYPE_ARCHIVIST, oPC)
+ GetLevelByClass(CLASS_TYPE_FAVOURED_SOUL, oPC)
+ GetLevelByClass(CLASS_TYPE_HEALER, oPC);
if ((iDivine >= 10) || (iDruidic >= 10))
{
if(GetIsObjectValid(GetItemPossessedBy(oPC, "Ruby")))
{
if (GetItemStackSize(oItemToTake1) > 1)
{
SetItemStackSize(oItemToTake1, GetItemStackSize(oItemToTake1)-1);
}
else
{
DestroyObject(oItemToTake1);
}
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis1, oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oPC);
object oTarget=GetFirstFactionMember(oPC, FALSE);
while (GetIsObjectValid(oTarget))
{
EffectHeal(GetMaxHitPoints(oTarget));
oTarget=GetNextFactionMember(oPC, FALSE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis1, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
}
}
else
{
SendMessageToPC(oPC, "You must have a Ruby to use this function.");
}
}
}