(I'll suppose you're making a zelda game using game maker)
Of course it is possible, you just have to add variables to define these states:
//"create" event of the object:
status = "normal"; //or "broken", "thrown", etc.
HP=100;
(etc...)
So when you break a pot for instance you do:
//when breaking the pot, for instance, in the collision event of pot for a collision between pot and link when link is using the sword:
if(link.status=="using_sword")
{
status="breaking";
sprite=pot_breaking; //use a sprite that doesn't loop its animation
}
//"animation end" event of pot
if(sprite==pot_breaking)
{
sprite=pot_broken;
status="broken";
}
When you pick up an object you can check if there is a collision when you're pressing the key for picking up and use a variable to refer to this object:
object_picked_up=other.ID;
(object_picked_up).status="picked up";
link.status="picking up";
Whenever you move link you have to check if link is picking up something and move that object setting (object_picked_up).x and (object_picked_up).y relatively to link.x and link.y.
And when you throw you do:
(object_picked_up).status="thrown";
link.status="normal";
(object_picked_up).hspeed=8;//or another value, depends on link's direction and how you're implementing your game, gravity, etc..
(object_picked_up).vspeed=0;