I'm confused. ${Bool[!${Me.Gem[1]}]} seems to be a check on if you have a Gem 1, which means if you're a caster, you will have a Gem 1, whether it has a spell in it or not, it always comes back as true.
What I am trying to do is have two checks, which can probably be rolled into one (i just have no experienced in coding, this is kind of my first jump in). The check is looking to see if there is an Abjuration spell in Gem 1, if there is a spell there but it is not an Abjuration spell, it will send a text explaining there isn't a Abjuration spell in Gem 1. The second check is if there is a spell at all in Gem 1, if there it no spell memmed to gem 1, it sends text explaining and ends the macro.
:Abjuration
/varset AbjurationSkill ${Me.Skill[Abjuration]}
/if (${Bool[${Me.Gem[1].Skill.NotEqual[Abjuration]}]} ) {
/cecho \ayGem Slot 1 \awdoes not have an \atAbjuration \awspell learned....\arskipping skill.
/delay 1s
/goto :Alteration
}
| The above goes TRUE when there is a spell in gem 1 but it is not Abjuration.
| It returns false if there is no spell there or when there is an Abjuration spell there.
| What I am trying to add is a check in case the gem slot is empty that will return TRUE only if it is empty.
/if (${AbjurationSkill}==${AbjurationSkillCap}) {
/cecho \atAbjuration \awmaxed...moving on to \atAlteration
/delay 1s
/goto :Alteration
} else /if (${Me.SpellReady[1]}) {
/cecho \ag${Math.Calc[${Me.SkillCap[Abjuration]}-${Me.Skill[Abjuration]}]} \atAbjuration \awskill ups to go.
/call HPCheck
/call ManaCheck
/cecho \awCasting \at${Me.Gem[1]}.
/target myself
/cast 1
/delay 1
/goto :Abjuration
} else {
/autoinventory
/goto :Abjuration
}