54 lines
1.8 KiB
Plaintext
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.");
|
|
}
|
|
|
|
}
|
|
}
|