Oh, right, my way didn't address the inventory. Have the command look at a player.shirton attribute of a Boolean type, then respond. The wear command/verb can change the flag from false to true and a remove or take off will set it back to false. The shirt never has to exist. A "look at shirt" command will respond to cover a player wanting to look at a shirt even if it does not exist.
not in inventory, but will give a response as if you are wearing a shirt if player.shirton is checked in the player description.
msg ("Your a hunk for sure.")
if (player.shirton = true) {
msg ("You have on an awesome shirt you bought on sale at Kmart.")
}
Of course, if you want the shirt to show in the room and when taken not show in inventory: you would have to move the shirt to a hold room on the "Take" option of it's verb drop down list. and you can just say that you took it. and from then on have scripts check the player.shirton to control its Boolean flag.
A script command will also allow you to look at an objects description attribute if it is in a holding room if you want to do that.