Advertisement
Guest User

gamedev

a guest
May 17th, 2016
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 1.55 KB | None | 0 0
  1. [] spawn
  2. {
  3.     slep = 0;
  4.     startAzimuth   = getDir (vehicle player);
  5.     startElevation = asin((vectorDir (vehicle player)) select 2);
  6.     turnRate = 300;
  7.     Hz = 100;
  8.     target = zaz;
  9.     missile = createVehicle ["Missile_AA_04_F", [4000, 4000, 2], [], 0, "NONE"];
  10.     vectorDirUp = [startAzimuth, startElevation] call getVectorFromAzimuthAndElevationAngle;
  11.     missile setVectorDirAndUp [vectorDirUp select 0, vectorDirUp select 1];
  12.     sleep slep;
  13.     while {(missile distance target) > 10} do
  14.     {
  15.         toTGTaz = missile getDir target;
  16.         toTGTel = ((((getPosASL target) vectorDiff (getPosASL missile)) select 2) atan2 (missile distance2D target));
  17.         azOffset = ((missile getRelDir target) + 540) % 360 - 180;
  18.         elOffset = toTGTel - asin((vectorDir (missile)) select 2);
  19.         if (azOffset < -0.1 or azOffset > 0.1) then
  20.         {
  21.             azsgn = abs(azOffset)/azOffset;
  22.         }
  23.         else
  24.         {
  25.             azsgn = 0;
  26.         };
  27.         if (elOffset < -0.1 or elOffset > 0.1) then
  28.         {
  29.             elsgn = abs(elOffset)/elOffset;
  30.         }
  31.         else
  32.         {
  33.             elsgn = 0;
  34.         };
  35.         az = ((getDir missile) + (azsgn * turnRate / Hz));
  36.         el = ((asin((vectorDir (missile)) select 2)) + (elsgn * turnRate / Hz));
  37.         xdir = cos(el) * sin(az);
  38.         ydir = cos(el) * cos(az);
  39.         zdir = sin(el);
  40.         xup = -sin(el) * sin(az);
  41.         yup = -sin(el) * cos(az);
  42.         zup = cos(el);
  43.         missile setVectorDirAndUp [[xdir,ydir,zdir],[xup,yup,zup]];
  44.         sleep (1 / Hz);
  45.     };
  46.     dummy = createVehicle ["Land_CargoBox_V1_F", (getPosATLVisual missile), [], 0, "CAN_COLLIDE"];
  47.     sleep 0.01;
  48.     deleteVehicle dummy;
  49.     deleteVehicle missile;
  50. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement