Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [] spawn
- {
- slep = 0;
- startAzimuth = getDir (vehicle player);
- startElevation = asin((vectorDir (vehicle player)) select 2);
- turnRate = 300;
- Hz = 100;
- target = zaz;
- missile = createVehicle ["Missile_AA_04_F", [4000, 4000, 2], [], 0, "NONE"];
- vectorDirUp = [startAzimuth, startElevation] call getVectorFromAzimuthAndElevationAngle;
- missile setVectorDirAndUp [vectorDirUp select 0, vectorDirUp select 1];
- sleep slep;
- while {(missile distance target) > 10} do
- {
- toTGTaz = missile getDir target;
- toTGTel = ((((getPosASL target) vectorDiff (getPosASL missile)) select 2) atan2 (missile distance2D target));
- azOffset = ((missile getRelDir target) + 540) % 360 - 180;
- elOffset = toTGTel - asin((vectorDir (missile)) select 2);
- if (azOffset < -0.1 or azOffset > 0.1) then
- {
- azsgn = abs(azOffset)/azOffset;
- }
- else
- {
- azsgn = 0;
- };
- if (elOffset < -0.1 or elOffset > 0.1) then
- {
- elsgn = abs(elOffset)/elOffset;
- }
- else
- {
- elsgn = 0;
- };
- az = ((getDir missile) + (azsgn * turnRate / Hz));
- el = ((asin((vectorDir (missile)) select 2)) + (elsgn * turnRate / Hz));
- xdir = cos(el) * sin(az);
- ydir = cos(el) * cos(az);
- zdir = sin(el);
- xup = -sin(el) * sin(az);
- yup = -sin(el) * cos(az);
- zup = cos(el);
- missile setVectorDirAndUp [[xdir,ydir,zdir],[xup,yup,zup]];
- sleep (1 / Hz);
- };
- dummy = createVehicle ["Land_CargoBox_V1_F", (getPosATLVisual missile), [], 0, "CAN_COLLIDE"];
- sleep 0.01;
- deleteVehicle dummy;
- deleteVehicle missile;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement