Is it possible to have a usable, placeable object that can only be damaged or destroyed by fire or acid attacks ... i.e. - immune to all other types of damage or attacks?
I'm looking to restrict the way a player can harm this placeable to either fire or acid based spells, fire or acid arrows, or fire or acid grenades. I've having a heck of a time figuring out how to approach the scripting for this concept.
Scripting for the OnDamage event let me easily narrow down the damage taken to what (if any) was fire or acid damage - after the fact. However, I discovered from the Lexicon that I cannot *heal* placeables (to restore non-fire or non-acid damage hit points).
Is it possible to do something like this ... and if so - any pointers would be very much appreciated.
Placeables and Applying Damage Type Immunities
Débuté par
Guest_Chrysoli_*
, juin 30 2011 06:56
#1
Guest_Chrysoli_*
Posté 30 juin 2011 - 06:56
Guest_Chrysoli_*
#2
Posté 30 juin 2011 - 08:41
Yes, it's possible. You don't need the ondamaged event at all. Just apply DamageImmunity effects to it (or damage resistance, or both).
Here's a sample function that takes a placeable object for its imput - you can tweak it however you like:
Funky
Here's a sample function that takes a placeable object for its imput - you can tweak it however you like:
void ProtectPhylactery (object oPhyl) {
/* make sure the phylactery has some immunities */
effect eLink = EffectDamageResistance(DAMAGE_TYPE_BLUDGEONING, 20);
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_PIERCING, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_SLASHING, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ACID, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_COLD, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_FIRE, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_SONIC, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_MAGICAL, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_NEGATIVE, 20));
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_DIVINE, 20));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_ACID, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_COLD, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_ELECTRICAL, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_FIRE, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_SONIC, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_MAGICAL, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_NEGATIVE, 25));
eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_DIVINE, 25));
eLink = ExtraordinaryEffect(eLink);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPhyl);
eLink = ExtraordinaryEffect(EffectImmunity(IMMUNITY_TYPE_DEATH));
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPhyl);
}
The above also makes it immune to instant death effects.Funky
Modifié par FunkySwerve, 30 juin 2011 - 08:41 .
#3
Guest_Chrysoli_*
Posté 01 juillet 2011 - 04:18
Guest_Chrysoli_*
Thank you so much. That's as simple as that - without the fire or acid immunity boosts and it's what I'm looking for. I feel a little sheepish right now - I should have known this - in fact - I believe I did know this was - some years back. Oh boy, this is getting a little scary how the mind can draw such a complete blank!
Thank you again!
Thank you again!





Retour en haut






