Passive feats are easy - if you have the right tools.
I am hoping you have nwnx and some sort of event handling plugin.
On my server, I use a special version of nwnx_cool that I built with a hook that does onDamageEffectHandled
Basically allows me to accurately catch damage before it gets applied to the character. I can then negate the damage, or add more damage etc
So how does this turn into a passive feat.
Lets imagine I make a feat called 'Brimstone Blood' - where the bearer of this feat is actually immune to fire, and infact heals from the fire.
When damage is applied to the character/creature - the hook will fire.
I just need to determine within the hook - do we have a specific feat that affects the damage.
if(GetHasFeat(oPC, BRIMSTONE_BLOOD) == true)
{
effect eHeal = EffectHeal(FireDamage);
FireDamage = 0;
ApplyEffectToObject(oPC,DURATION_TYPE_INSTANT,eHeal);
bOverride = true;
}
This is somewhat pseudocode of what my hook does -
basically It assumes at first it will get through the entire hook without having to modify any damage.
But then it hits the 'if' statements.
If any of them result in modifications to damage - then the Override boolean is set to true (from false)
This then tells nwnx to read the new damage value from local vars on the character/creature, and set them before the hook finishes.
This sounds quite complex - but once you have it setup, its quite flexible.
Adding to the system is as simple as modifying a single script etc
I've done things using this system to make it so bosses can do 80% more damage, and certain damage types get negated completely etc
Doing something like that for a boss is as simple as saying
//oPC is actually the creature running the hook on themselves - so oPC being a boss, refers to damage received by the boss
if(GetResRef(oPC) == "boss_creature")
{
boss is being damaged, make the battle more difficult by reducing damage numbers by 50%
}
//oDamager could be the person/creature inflicting the damage
if(GetResRef(oDamager) =="boss_Creature")
{
boss did the damage - so increase it by 80%
}
One other system I hooked into this hook is a system I called
'Cursed with the Power' (I usually give RP names to the systems I develop for Worlds of Rhun)
Basically - God players on my server, are able to curse other players with magical powers which are not completely within their control.
I actually got the idea from Frozen and Once Upon a Time - the episodes with Elsa etc
Using the above hook, I was able to make it so players who are cursed (ie: have the cursed feat)
Receive no damage from their element- but receive 20% more damage from opposing elements.
Eg: Cold Immune, but fire weak.
The not being in control bit is implied by clumsy accidental bursts of power the player can do.
Eg: They can teleport using the power, but they have a chance of stumbling when they arrive at the destination, resulting in knockdown.
(Continuous use of teleport will reduce the chance of this occuring - as they become more experienced)
Other powers include shooting magical blasts of energy with the element of their curse.
Eg: A flame burst if they are cursed with magical fire.
Once again - inexperience in the power can result in accidental backfiring etc
Anyway- I kinda got off topic there.
But the system I described is a mix of passive and active feats.
(Well.. technically - the Feat is both - it is usable as an active feat, but it also has passive effects - processed by nwnx_cool )
I am unsure if the onDamageEffectHandler is hooked in linux anywhere - if it were, I would be very inclined to move to Linux.
Alas - a few months ago - I don't recall it existing anywhere in linux, so I kept using windows.