ptr_for_handle (handle);
Liefert einen Pointer an das vom gegebenen Handle identifizierten Objekt zurück. Auf diese Art können willkürliche Objekte in Entity-Skills oder Variablen auf speicher sichere Weise bereitgehalten werden.
Parameter
handle - Handle eines Objektes
Rückgabewert
Pointer auf das Objekt, oder NULLwenn das Handle ungültig war. Im letzteren Fall wird eine Warnung ausgegeben, falls
warn_level auf 2 oder höher gesetzt ist.
Geschwindigkeit
Mittel
Beispiel (lite-C):
// control a gun with the camera
function use_gun()
{
// create a laser spot model
ENTITY* laserspot = ent_create ("target.mdl",NULL,NULL);
set(laserspot,PASSABLE|BRIGHT); // the target model is passable
laserspot.ambient = 100; // and should look bright enough
while (1)
{
// calculate the target vector
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 the red laser spot at the target position
if (c_trace(camera.x,trace_target, IGNORE_PASSABLE | USE_POLYGON| SCAN_TEXTURE) > 0) // hit something?
{
reset(laserspot,INVISIBLE);
vec_set(laserspot.x,target);
vec_fill(laserspot.scale_x,minv(6,vec_dist(target,camera.x) / 500)); // adjust the laser spot size
} else
set(laserspot,INVISIBLE);
var laserspot_handle = handle(laserspot);
wait(1); // store the laserspot entity pointer in a handle for being save-proof
laserspot = ptr_for_handle(laserspot_handle);
}
}
Siehe auch:
handle, ptr_first, game_save
► Aktuelle Version Online