All pastes #79949 Raw Edit

Stuff

public text v1 · immutable
·published 2006-07-05 22:14 UTC
rendered paste body



#include "x2_inc_switches"

  void main()
{
    int nEvent = GetUserDefinedItemEventNumber();
    if(nEvent != X2_ITEM_EVENT_ACTIVATE) return;

    object oPC   = GetItemActivator();
    object oItem = GetItemActivated();
    object oTarget = GetItemActivatedTarget();

    // ...insert code here...

    // Get the distance, and check it
    if(GetDistanceBetween(oPC, oPartyMember) <= 10.0)
        // We alway use the SAME object for the GetFirst/Next faction
    // member calls - always define it first. Here it is the first PC.
    // Get the first PC party member
        object oPartyMember = GetFirstFactionMember(oPC, TRUE);
        // We stop when there are no more valid PC's in the party.
        while(GetIsObjectValid(oPartyMember) == TRUE)

        // Do something to party member


    // This is the Object to apply the effect to.
        object oTarget = oPartyMember;

    // Create the effect to apply
        effect eSaveInc = EffectSavingThrowIncrease(SAVING_THROW_TYPE_ALL, 1);

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

    // Apply the visual effect to the target;
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPartyMember);
    // Apply the effect to the object
        ApplyEffectToObject(ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSaveInc, oPartyMember, TurnsToSeconds(3));

        // Get the next PC member of oPC's faction.
        // If we put anything but oPC into this, it may be a totally
        // unreliable loop!
        oPartyMember = GetNextFactionMember(oPC, TRUE);
    }
}