It seems to work except for beholders. they plow right through and your done (I run it on a PW and hardcore so when your petrified your stuck unless someone can help, and many of my players are loners)
so I wanted to make a ring of protection from petrification but me and effect stacking and removing are difficult for my fragile mind.
thus i have (tagbased script)
/////////////////////////////////////////////////////
#include "x2_inc_switches"
void main()
{
object oPC = GetPCItemLastEquippedBy();
int nEvent = GetUserDefinedItemEventNumber();
if (nEvent == X2_ITEM_EVENT_EQUIP)
{
effect eEffect1 = EffectSpellImmunity(SPELLABILITY_TOUCH_PETRIFY);
effect eEffect4 = EffectImmunity(EFFECT_TYPE_PETRIFY);
effect eEffect2 = EffectSpellImmunity(SPELLABILITY_GAZE_PETRIFY);
effect eEffect3 = EffectSpellImmunity(SPELLABILITY_BREATH_PETRIFY);
effect eEffect3 = EffectSpellImmunity(SPELLABILITY_BREATH_PETRIFY);
effect eStoned1 = SupernaturalEffect(eEffect1);
effect eStoned2 = SupernaturalEffect(eEffect2);
effect eStoned3 = SupernaturalEffect(eEffect3);
effect eStoned4 = SupernaturalEffect(eEffect4);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStoned1, oPC);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStoned2, oPC);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStoned3, oPC);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStoned4, oPC);
return;
}
else if (nEvent == X2_ITEM_EVENT_UNEQUIP)
{
object oPC = GetPCItemLastUnequippedBy();
effect eStoned = GetFirstEffect(oPC);
while (GetIsEffectValid(eStoned))
{
if (GetEffectType(eStoned) == EFFECT_TYPE_SPELL_IMMUNITY|| GetEffectType(eStoned) == EFFECT_TYPE_IMMUNITY)
RemoveEffect(oPC, eStoned);
eStoned = GetNextEffect(oPC);
}
}
}
now I know this also removes all other immunitys on given character...but thats another story
so could you all maybe help me understand why it doesnt work for beholder rays..I feel like my players might pillage and burn my town
help..





Retour en haut






