The last component of the effect instruction is the vel vector, which is the initial direction of the particles.
I don't know your particle function "funkenspezial" but if they have the move flag etc. they might just move to the nullvector which is (0,0,0). Not sure though.
What you can do: set temp to the difference between the target and the temp vektor and use it as vel vector.
Code:
IF(mouse_left == 1)
{
	VAR temp[3];
   temp.x = mouse_pos.x; 
   temp.y = mouse_pos.y;
   temp.z = 100000;
	vec_for_screen(temp,Sicht);
   c_trace(my.x,temp,ignore_me | ignore_you | USE_POLYGON | Activate_Shoot | Get_Hitvertex);
   
   ent_create("Schussloch.tga",target,Schussloch);
   snd_play(Bolter_schuss,50,0);
   
   vec_diff(temp.x,target.x,temp.x);
   effect(funkenspezial,300,target,temp);
   WAIT(1);
}

not tested!