EffectPetrify()

Creates an effect that will petrify a creature.

effect EffectPetrify();

Description

Returns an effect that will petrify a creature. The creature receives an EffectParalyze and the stoneskin visual effect is also applied (VFX_DUR_PROT_STONESKIN).

Petrified should act as if paralyzed, so creatures cannot move, (and shouldn't be able to communicate) and have 3 Dexterity, and all the penalties for prone creatures (lack of dodge AC, attackers get attack bonuses).

Petrify doesn't make it harder to kill you or another, because it provides no protection (as in, no damage reduction), just paralysis and the VFX.

The target this effect is applied to must be a creature for it to work. This effect cannot be applied instantly, only temporarily or permanently.



Remarks

Petrified creatures do just become statues. Bioware uses a wrapper for applying its own petrify, which will bring up a death panel with "Exit" and "Wait for Help" options, but no respawn option, as it isn't actual death.

You should always really use the wrapper in the file x0_i0_spells against PC's or monsters in a spell. It works a lot better that way.

Effect functions are Constructors, which are special methods that help construct effect "objects". You can declare and link effects, and apply them using an ApplyEffectToObject() Command. Once applied, each effect can be got separately via. looping valid effects on the target (GetFirst/NextEffect()). See the Effect Tutorial for more details.


Known Bugs

Before 1.60, DM's who were possessing creatures who were petrified got stuck, because of the message popping up saying "Death". It is now fixed.


Version

1.62

Example

// Sample code for applying petrify (petrifiesis?) to a target

void main()
{
    // This is the Object to apply the effect to.
    object oTarget = OBJECT_SELF;

    // Create the effect to apply
    effect ePetrify = EffectPetrify();

    // Create the visual portion of the effect. This is instantly
    // applied and not persistent with whether or not we have the
    // above effect.
    effect eVis = EffectVisualEffect(VFX_IMP_HEAD_ODD);

    // Apply the visual effect to the target
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
    // Apply the effect to the object   
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePetrify, oTarget);
}

See Also

functions: EffectParalyze | Petrify
categories: Effects Functions
constants: VFX_DUR_* Constants


 author: Charles Feduke, editors: Jasperre, Mistress, additional contributor: Jasperre