52 lines
2.6 KiB
Plaintext
52 lines
2.6 KiB
Plaintext
void main()
|
|
{
|
|
|
|
object oPC = GetItemActivator();
|
|
object oTarget = GetItemActivatedTarget();
|
|
location lLocation = GetLocation(oPC);
|
|
|
|
if (GetLevelByClass(CLASS_TYPE_WIZARD, oPC) >= 10)
|
|
{
|
|
if (GetTag(oTarget) == "BlackDiamond" || GetTag(oTarget) == "Ruby" || GetTag(oTarget) == "Sapphire" || GetTag(oTarget) == "Emerald" || GetTag(oTarget) == "Diamond"|| GetTag(oTarget) == "Citrine" || GetTag(oTarget) == "Iolite" || GetTag(oTarget) == "Pearl" || GetTag(oTarget) == "Peridot")
|
|
{
|
|
effect eEffect1 = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
|
|
effect eEffect2 = EffectVisualEffect(VFX_IMP_DUST_EXPLOSION);
|
|
effect eEffect3 = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL);
|
|
effect eEffect4 = EffectVisualEffect(VFX_IMP_GREASE);
|
|
effect eEffect5 = EffectVisualEffect(VFX_IMP_LIGHTNING_M);
|
|
effect eEffect6 = EffectVisualEffect(VFX_IMP_TORNADO);
|
|
effect eEffect7 = EffectVisualEffect(VFX_FNF_IMPLOSION);
|
|
|
|
CreateObject(OBJECT_TYPE_PLACEABLE, GetTag(oTarget), lLocation, TRUE);
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect1, lLocation);
|
|
DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect2, lLocation));
|
|
DelayCommand(2.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect1, lLocation));
|
|
DelayCommand(3.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect4, lLocation));
|
|
DelayCommand(4.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect3, lLocation));
|
|
DelayCommand(5.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect6, lLocation));
|
|
DelayCommand(6.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect7, lLocation));
|
|
DelayCommand(7.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect1, lLocation));
|
|
DelayCommand(8.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect5, lLocation));
|
|
DelayCommand(8.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect2, lLocation));
|
|
object oItemToTake1;
|
|
oItemToTake1 = GetItemPossessedBy(oPC, GetTag(oTarget));
|
|
//get the quantity stacked of a valid object, will be a positive integer if valid
|
|
// if the object is a stack, then reduce the quantity
|
|
// else just destroy the single item
|
|
if (GetItemStackSize(oItemToTake1) > 1) {
|
|
SetItemStackSize(oItemToTake1, GetItemStackSize(oItemToTake1)-1);
|
|
} else {
|
|
DestroyObject(oItemToTake1);
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SendMessageToPC(oPC, "Only a Wizard of 10 seasons may use the Staff of Mithangard");
|
|
}
|
|
}
|