Hmm.... you could name the unit that will be firing the smoke shell... then use this in a trigger:
condition: unitname ammo "smokeshell" < x
where x is the number of smokeshells he starts with... since the AI never fire smoke unless you tell em to... (in my experience) you can count on him having the full amount until you tell em to fire one off... if the player will be firing smoke, just give em a limited number..