#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."); } } }