Hi,
First of all, this is for vanilla.
I have set up a party bot consisting of a main (me playing) and bots that have me on follow, in party settings.
Everything is working fine, he heals all party members, but is not healing himself based on my configured conditions (flash heal or shield). He is buffing himself with Power Word:Fortitude tho.
This is my current fight class:
<?xml version="1.0" encoding="utf-16"?>
<FightClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FightClassGeneralSettings>
<FightClassName>Fight config name</FightClassName>
<Range>30</Range>
<FramePerSecond>25</FramePerSecond>
</FightClassGeneralSettings>
<FightClassSpells>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>CSharpCode</ContionType>
<Param xsi:type="FightClassConditionString">
<Value>Lua.LuaDoString<bool>(@"for i=1,25 do local dt, da, dty = UnitDebuff('player',i); if dty == 'Magic' then TargetUnit('player'); return true end end")</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>Mana</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>BiggerOrEqual</Type>
<Value>200</Value>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>Dispel Magic</SpellName>
<Priority>11</Priority>
<IsBuff>true</IsBuff>
<CombatOnly>false</CombatOnly>
<CheckIfSpellUsable>false</CheckIfSpellUsable>
<CheckSpellDistance>false</CheckSpellDistance>
<CheckIfView>false</CheckIfView>
<Timer>2000</Timer>
<LockFrame>false</LockFrame>
<CastOnSelf>true</CastOnSelf>
<CastOn>player</CastOn>
</FightClassSpell>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>CSharpCode</ContionType>
<Param xsi:type="FightClassConditionString">
<Value>Lua.LuaDoString<bool>(@"for i=1,25 do local dt, da, dty = UnitDebuff('party1',i); if dty == 'Magic' then return true end end")</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>Mana</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>BiggerOrEqual</Type>
<Value>200</Value>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>Dispel Magic</SpellName>
<Priority>10</Priority>
<IsBuff>true</IsBuff>
<CombatOnly>false</CombatOnly>
<CheckIfSpellUsable>false</CheckIfSpellUsable>
<Timer>2000</Timer>
<TargetFriends>true</TargetFriends>
<CanMoveDuringCast>Yes</CanMoveDuringCast>
<LockFrame>false</LockFrame>
<CastOn>party1</CastOn>
</FightClassSpell>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>TargetDistance</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>Smaller</Type>
<Value>30</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>TargetBuff</ContionType>
<Param xsi:type="FightClassConditionStringBool">
<Name>Power Word: Fortitude</Name>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>CSharpCode</ContionType>
<Param xsi:type="FightClassConditionString">
<Value>ObjectManager.Me.InCombatFlagOnly == false</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>Buff</ContionType>
<Param xsi:type="FightClassConditionStringBool">
<Name>Drink</Name>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>Buff</ContionType>
<Param xsi:type="FightClassConditionStringBool">
<Name>Food</Name>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>Power Word: Fortitude</SpellName>
<Priority>7</Priority>
<CombatOnly>false</CombatOnly>
<TargetFriends>true</TargetFriends>
<CastOn>party1</CastOn>
</FightClassSpell>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>CSharpCode</ContionType>
<Param xsi:type="FightClassConditionString">
<Value>ObjectManager.Me.InCombatFlagOnly == false</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>Buff</ContionType>
<Param xsi:type="FightClassConditionStringBool">
<Name>Power Word: Fortitude</Name>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>TargetUnit('player');CastSpellByName("Power Word: Fortitude", onSelf);</SpellName>
<Priority>6</Priority>
<IsBuff>true</IsBuff>
<CombatOnly>false</CombatOnly>
<NotSpellIsLuaScript>true</NotSpellIsLuaScript>
<LockFrame>false</LockFrame>
<CastOnSelf>true</CastOnSelf>
<CastOn>player</CastOn>
</FightClassSpell>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>HealthPercent</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>SmallerOrEqual</Type>
<Value>75</Value>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>TargetUnit('player');CastSpellByName("Flash Heal", onSelf);</SpellName>
<CombatOnly>false</CombatOnly>
<CheckIfKnow>false</CheckIfKnow>
<CheckIfSpellUsable>false</CheckIfSpellUsable>
<CheckSpellDistance>false</CheckSpellDistance>
<LockFrame>false</LockFrame>
<CastOnSelf>true</CastOnSelf>
<CastOn>player</CastOn>
</FightClassSpell>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>Buff</ContionType>
<Param xsi:type="FightClassConditionStringBool">
<Name>Power Word: Shield</Name>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>Buff</ContionType>
<Param xsi:type="FightClassConditionStringBool">
<Name>Weakened Soul</Name>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>Power Word: Shield</SpellName>
<Priority>4</Priority>
<LockFrame>false</LockFrame>
</FightClassSpell>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>TargetHealthPercent</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>SmallerOrEqual</Type>
<Value>60</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>TargetDistance</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>Smaller</Type>
<Value>40</Value>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>Greater Heal</SpellName>
<Priority>3</Priority>
<CombatOnly>false</CombatOnly>
<TargetFriends>true</TargetFriends>
<CastOn>party1</CastOn>
</FightClassSpell>
<FightClassSpell>
<FightClassConditions>
<FightClassCondition>
<ContionType>ManaPercent</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>BiggerOrEqual</Type>
<Value>5</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>TargetHealthPercent</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>SmallerOrEqual</Type>
<Value>75</Value>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>TargetBuff</ContionType>
<Param xsi:type="FightClassConditionStringBool">
<Name>Renew</Name>
</Param>
</FightClassCondition>
<FightClassCondition>
<ContionType>TargetDistance</ContionType>
<Param xsi:type="FightClassConditionNumber">
<Type>Smaller</Type>
<Value>40</Value>
</Param>
</FightClassCondition>
</FightClassConditions>
<SpellName>Renew</SpellName>
<Priority>2</Priority>
<IsBuff>true</IsBuff>
<CombatOnly>false</CombatOnly>
<TargetFriends>true</TargetFriends>
<CastOn>party1</CastOn>
</FightClassSpell>
</FightClassSpells>
</FightClass>