Hi,

TripleX hat Dir ja das mit den emask flag schon gesagt. Was noch nicht stimmt ist Deine
Trace Anweisung. Dort fehlt etwas. Ich habe Dir jetzt Dein Skript einmal so umgeschrieben,
das es eigentlich funktionieren müsste. Hoffe ich zumindest.

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

ENTITY* obj1;

VECTOR vecFrom;
VECTOR vecTo;

function shoot_event()
{
if (event_type==EVENT_SHOOT)
{
obj1.ambient=-300;
obj1.lightrange=200;
}
}

function steuerung()
{
if(mouse_left)
{
vecFrom.x = mouse_cursor.x;
vecFrom.y = mouse_cursor.y;
vecFrom.z = 20;
vec_set(vecTo,vecFrom);
vec_for_screen(vecFrom,camera);
vecTo.z = 20000;
vec_for_screen(vecTo,camera);
c_trace(vecFrom, vecTo, IGNORE_PASSABLE|ACTIVATE_SHOOT);
}
}

action feuer()
{
obj1=my;
my.ambient=0;
my.emask = ENABLE_SHOOT;
my.event=shoot_event;
}

action player_act()
{
player=me;
vec_set(camera.x,player.x);
camera.pan=player.pan;
wait(1);
}

void main()
{
video_mode=7;
video_depth=16;
level_load("level.wmb");
wait (2);
while(1)
{
steuerung();
wait(1);
}
}