there's a whole bunch of them, yes

basically, what you do is write another function, BEFORE the rock's action.
for example:

function rock_event()
{
...
}

then inside your the_rock action, the first three lines should be:
my.enable_entity = on;
my.enable_block = on;
my.event = rock_event;

what this does is: first you make it "vulnerable" to entity and block colision. this will only work with ent_move (or the never version, c_move), which you use, so that's fine. so, now you tell it to run it's "event" function every time it hits an entity or a block. then, in the third line, you tell it what that event function is.
now, inside the function rock_event you put something like this:
if(event_type == event_entity)
{
...
]
if(event_type == event_block)
{
...
}

instead of the "..." you put in what you want to happen (like changing the direction of flight of the rock etc) if the thing that happened (event_type) is that it hit a block (event_block) or if it hit an entity (event_entity) while moving.
hope that's understandable...?

Micha


~"I never let school interfere with my education"~
-Mark Twain