2007-09-04 22:00:00 +02:00
|
|
|
/*
|
|
|
|
====================================================
|
|
|
|
= New Ccam - www.inside3d.com/qctut/lesson-39.shtml=
|
|
|
|
====================================================
|
|
|
|
*/
|
|
|
|
|
|
|
|
void () CCam;
|
|
|
|
|
|
|
|
void () CCamChasePlayer =
|
|
|
|
{
|
2007-09-16 22:00:00 +02:00
|
|
|
makevectors (pev->v_angle);
|
|
|
|
traceline ((pev->origin + pev->view_ofs),((((pev->origin + pev->view_ofs) + (v_forward * pev->camview_z)) + (v_up * pev->camview_x)) + (v_right * pev->camview_y)),FALSE,pev);
|
|
|
|
setorigin (pev->trigger_field,trace_endpos);
|
2007-09-04 22:00:00 +02:00
|
|
|
MsgBegin( 5 );
|
2007-09-16 22:00:00 +02:00
|
|
|
WriteEntity (pev->trigger_field);
|
|
|
|
MsgEnd( MSG_ONE, '0 0 0', pev );
|
|
|
|
pev->weaponmodel = "";
|
2007-09-04 22:00:00 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
void () CCam =
|
|
|
|
{
|
|
|
|
local entity camera;
|
|
|
|
local entity spot;
|
|
|
|
|
2007-09-16 22:00:00 +02:00
|
|
|
if (pev->aflag == FALSE)
|
2007-09-04 22:00:00 +02:00
|
|
|
{
|
2007-09-16 22:00:00 +02:00
|
|
|
pev->aflag = TRUE;
|
2007-09-04 22:00:00 +02:00
|
|
|
camera = spawn ();
|
|
|
|
spot = spawn ();
|
2007-09-16 22:00:00 +02:00
|
|
|
pev->trigger_field = camera;
|
2007-09-04 22:00:00 +02:00
|
|
|
camera.classname = "camera";
|
|
|
|
camera.movetype = MOVETYPE_FLY;
|
|
|
|
camera.solid = SOLID_NOT;
|
|
|
|
setmodel (camera,"progs/eyes.mdl");
|
|
|
|
setsize (camera,'0 0 0','0 0 0');
|
2007-09-16 22:00:00 +02:00
|
|
|
makevectors (pev->v_angle);
|
|
|
|
traceline ((pev->origin + pev->view_ofs),(((pev->origin + pev->view_ofs)
|
|
|
|
+ (v_forward * -64.000))),FALSE,pev);
|
|
|
|
pev->camview = '0 0 -64'; // added
|
2007-09-04 22:00:00 +02:00
|
|
|
setorigin (camera,trace_endpos);
|
2007-09-16 22:00:00 +02:00
|
|
|
camera.angles = pev->angles;
|
|
|
|
pev->weaponmodel = "";
|
2007-09-04 22:00:00 +02:00
|
|
|
|
|
|
|
MsgBegin( 5 );
|
|
|
|
WriteEntity (camera);
|
|
|
|
WriteByte (10.000);
|
|
|
|
WriteAngle (camera.angles_x);
|
|
|
|
WriteAngle (camera.angles_y);
|
|
|
|
WriteAngle (camera.angles_z);
|
2007-09-16 22:00:00 +02:00
|
|
|
MsgEnd( MSG_ONE, '0 0 0', pev );
|
|
|
|
sprint (pev,"Chase Cam On\n");
|
2007-09-04 22:00:00 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2007-09-16 22:00:00 +02:00
|
|
|
pev->aflag = FALSE;
|
2007-09-04 22:00:00 +02:00
|
|
|
MsgBegin( 5 );
|
2007-09-16 22:00:00 +02:00
|
|
|
WriteEntity (pev);
|
2007-09-04 22:00:00 +02:00
|
|
|
WriteByte (10);
|
|
|
|
WriteAngle (camera.angles_x);
|
|
|
|
WriteAngle (camera.angles_y);
|
|
|
|
WriteAngle (camera.angles_z);
|
2007-09-16 22:00:00 +02:00
|
|
|
MsgEnd( MSG_ONE, '0 0 0', pev );
|
|
|
|
remove (pev->trigger_field);
|
|
|
|
sprint (pev,"Chase Cam Off\n");
|
2007-09-04 22:00:00 +02:00
|
|
|
//W_SetCurrentAmmo ();
|
|
|
|
}
|
|
|
|
};
|