Okay got it working. Moved the code into your state manager instead of a separate script, works now. Checked for a typo in my using/include commands a billion times, didn't find anything. Renamed LeaderCleanse to Player_LeaderCleanse and changing the using/include commands, didn't change anything. Really don't get why my script isn't getting accessed. You sure there's no other step to activate the script?
Thanks for the tip on the OnDamage function, too. Had it just as (_,_DMG,_Char_) but it wasn't working for the above reason. Thought the first parameter was damage source.
Edit: Got it completely working! Woot! Simple, if kind of brute-forcing it. The skill applies a status, LeaderCleanse, to the cleansee, and then it just finds the source of this status. Seems like CharacterGetStatusSourceCharacter didn't work with 4 parameters.
I could try doing a _Status as a variable (though not sure if it would be a Float, or Float3, or what), and then ask if that status is = to BURNED or CHILLED, and that'd probably be more efficient, though not sure if that would cleanse multiple statuses.
Really satisfying to get this working and to use in game.
EVENT StatusCleanse
VARS
FLOAT:_DMG
CHARACTER:_Char
ON
OnCharacterStatus(__Me,CONSUME,LeaderCleanse)
ACTIONS
IF "c1&c2"
CharacterHasStatus(__Me, CHILLED)
CharacterGetStatusSourceCharacter(__Me,CONSUME,_Char)
THEN
CharacterRemoveStatus(__Me, CHILLED)
CharacterApplyStatus(_Char, CHILLED, 1, 1)
ENDIF
IF "c1&c2"
CharacterHasStatus(__Me, BURNED)
CharacterGetStatusSourceCharacter(__Me,CONSUME,_Char)
THEN
CharacterRemoveStatus(__Me, BURNED)
CharacterApplyStatus(_Char, BURNED, 1, 1)
ENDIF
IF "c1&c2"
CharacterHasStatus(__Me, FROZEN)
CharacterGetStatusSourceCharacter(__Me,CONSUME,_Char)
THEN
CharacterRemoveStatus(__Me, FROZEN)
CharacterApplyStatus(_Char, FROZEN, 1, 1)
ENDIF
IF "c1&c2"
CharacterHasStatus(__Me, WEAK)
CharacterGetStatusSourceCharacter(__Me,CONSUME,_Char)
THEN
CharacterRemoveStatus(__Me, WEAK)
CharacterApplyStatus(_Char, WEAK, 1, 1)
ENDIF
// And so on for each debuff you want to cleanse.