The return values of CraftItems and UseSkill() are not working properly when cast is canceled. If you Craft or Cast something, and cancel it by moving for example, both will return true.
if (CraftItems(tradePackID, 1))
{
Log("Successfully crafted Tradepack.", Color.Green)...