2.) I'm not sure how easily this could be done in data: honestly I can only think of a good way to do it via triggers, and even then it'd be limited... there's a default behavior for invulnerability, it sets the incoming damage fraction to 0. The trick is counting the damage that would have been done.
3.) Explain more about your buff actor? If you had an continuous animation, like terran burning building effect, you can go into the event list for that actor and add Behavior.YourBehavior.On : Create, and Behavior.YourBehavior.Off : Destroy.
I'm having a terrible time getting buff effects specifically. If I want a roar ability that slows nearby enemies, the enemies need some sort of effect on them to show they are slowed. I have the AoE slow working properly, but I cannot get a buff to appear properly.
Create an Actor called RoarSlowBuff or something, Actor Type: Model, Based On: Model Animation Style Continuous. In the Actor Events + field, create the following actor events
and remove any others that might be there by default, like
You only need the first 2 Events.
Just choose the proper Art - Model in the Actor. and it should show up on the affected units that have the Slow Behavior.
You might also want to modify the Hosting - Host Site Operations + field of the actor to something like SOpAttachOverhead. This changes the general position of where the buff animation will play... if you select SOpAttachCenter or SOpAttachOrigin, it will play it at the unit's center/feet, depending on the unit's attachment points. Best bet: SOpAttachOverhead.
You set the model on that actor for the buff, yeah? You're sure your behavior is on? :) I do the exact same thing he mentioned, works great for me.
The force amount doesn't seem to do jack. THe work around is to create a persistent which applies the force repeatedly for an amount of time, so that units will continue to move out of the area. I think the tutorial I linked does it that way, and I as well have had to do that. Also be sure to lift units before pushing them, but again, in the tutorial...