Sehr durchsichtig machen und die Helligkeit anpassen.
Decals müssen sehr subtil eingesetzt werden, zumindest ist das meine Erfahrung.
Nutze ent_decal!

Ich nutze dazu diese action, sie schiesst sozusagen ein Decal ins Level.
in entity.string1 schreibst Du den Namen der Decal-Bitmap:

Edit: String vergessen...

STRING* gszDecalFilename = "#1";
#define _NOMODELS FLAG1 // Decal projector: Ignore models
#define _SIZE skill1 // Decal projector: Size of decal
#define _ALPHA skill2 // Decal projector: Alphavalue of the decal 0...100
#define _ANGEL skill3 // Decal projector: Decal rotation angel

//uses: _NOMODELS, _SIZE, _ALPHA, _ANGEL
action ProjectorDecal() // decal projector
{
set(my, PASSABLE | INVISIBLE);
if(my._SIZE == 0){my._SIZE = 100;} // default decal size
wait(5);
wait(-1);

VECTOR vTargetPos;
VECTOR vLinePos;
var vTraceLength = 1000; // trace distance

vec_set(vTargetPos.x,vector(vTraceLength,0,0)); //set up a position in front of the projector
vec_rotate(vTargetPos.x,my.pan);
vec_add(vTargetPos.x,my.x);

str_cpy(gszDecalFilename, my.string1); // get decal filename
BMAP* bmpDecal = bmap_create(gszDecalFilename); // create bitmap
if(is(my, _NOMODELS)) // trace meshes
{
c_trace(my.x, vTargetPos, IGNORE_ME | IGNORE_MODELS | IGNORE_PASSABLE | USE_POLYGON | SCAN_TEXTURE);
}
else // trace models
{
c_trace(my.x, vTargetPos, IGNORE_ME | IGNORE_PASSABLE | USE_POLYGON | SCAN_TEXTURE);
}

if(HIT_TARGET) // found an obstacle
{
PARTICLE* p = ent_decal(you, bmpDecal, my._SIZE, my._ANGEL); // place a decal at the hit position
p.material = mat_model; // set default model material to decal
if(my._ALPHA != 0) // set transparency
{
set(p, TRANSLUCENT);
p.alpha = my._ALPHA;
}
}
wait(1);
}

Last edited by fogman; 01/20/11 20:20.

no science involved