ive tried it out with this script but nothing happens when they hit each other

Code:
#include <acknex.h>
#include <default.c>

#define id skill100
#define powerup 1

SOUND* sound = "gem.wav";
ENTITY* gem;
ENTITY* player_box;

function test()
{
	snd_play(sound,100,0);
}

action player_move()
{
	player_box = my;
	my.id = powerup;
	my.emask |= (ENABLE_IMPACT);
	while (1)
	{
		c_move(me, nullvector, vector((key_cuu-key_cud)*10*time_step, 0, (key_cur-key_cul)*10*time_step), GLIDE);
		wait (1);
	}
}

action gem_action()
{
	gem = my;
	my.emask |= (ENABLE_IMPACT);
	if (event_type == EVENT_IMPACT)
	{
		if (you) if (you.id== powerup) 
		{
			test();
		}
	}
}

function cam()
{
	while (1)
	{
		camera.x = - 300;
		camera.z =  450;
		camera.tilt = -30;
		wait (1);
	}
}

function main()
{
	level_load ("level.wmb");
	cam();
}