vmask
Diese Bit-Maske läßt sich zum Unsichtbar-Setzen bestimmter Modell-Meschgruppen benutzen. Setzen Sie zum Unterdrücken der ersten Meshgruppe, die eine zugeordnete Skin verwendet bit 0, bit1 für die zweite Meshgruppe usw. A7.80 LC
Typ:
long
Bemerkungen:
- Wird eine Meshgruppe von c_trace getroffen, wird ihre Gruppennummer im getroffenen (hit) Strukt gespeichert. Der Ausdruck (1<<hit.subset) bestimmt das Bit, das zu dieser Meshgruppe gehöhrt.
- Um vom Parameter vmask beeinflußt werden zu können, müssen Meshgruppen eine zugeordnete Skin verwenden.
Beispiel:
// shoot at a mesh and remove the hit part
function mesh_removing_gun()
{
while (1)
{
VECTOR trace_target;
vec_set(trace_target,vector(5000,0,0)); // the weapon has a firing range of 5000 quants
vec_rotate(trace_target, camera.pan);
vec_add(trace_target, camera.x);
// display a red laser spot at the target position
if (c_trace(camera.x,trace_target, IGNORE_PASSABLE | USE_POLYGON| SCAN_TEXTURE) > 0) // hit something?
draw_point3d(hit.x,vector(50,50,255),100,3);
// fire and remove the hit mesh group
if (key_ctrl || joy_1) // fire
{
if (HIT_TARGET) // target hit?
your.vmask |= 1<<hit.subset; // make mesh group invisible
snd_play(sndShot,100,0); // play the shot sound
wait(-0.5); // reload
}
wait(1);
}
}
Siehe auch:
hit
► latest
version online