action gun_laser_missile()
{
if (connection & CONNECT_SERVER) my.smask |= NOSEND_FRAME | NOSEND_ALPHA | NOSEND_COLOR | NOSEND_FLAGS | NOSEND_SCALE;
while(connection != 0 && my.client_id < 0) wait(1);
...
/////////////////////////////
my.STATE = 1;
....
wait(1);
c_setminmax(me);
while(1)
{
// state 1: flying ///////////////////////////////////////////
if (my.STATE == 1)
{
if (connection == 2 && my.LIFETIME != 0) {
ent_createlocal("MDL_MissileLaser.mdl",vector(my.x,my.y,my.z),gun_client_missile);
my.LIFETIME = 0;
set(my,INVISIBLE); }
//on server
if (connection & CONNECT_SERVER || connection == 0) {
if (blabla == blabla) my.smask |= NOSEND_ORIGIN;
my.LIFETIME -= time_step *4;
if (my.LIFETIME <= 0) my.STATE = 2; //go to STATE 2
//move projectile
c_ignore(1,2,4,0);
c_move(me,vector(my.MOVEMENTSPEED*time_step,0,0),vector(0,0,my.GRAVITY_SUM),IGNORE_PASSABLE);
//go to STATE 2
if (HIT_TARGET && my.STATE == 1) my.STATE = 2;
}
}
// state 2: exploding ////////////////////////////////////////
if (my.STATE == 2)
{
my.smask |= NOSEND;
break;
}
wait(1);
}
ent_remove(me);
}