Advertisement
Guest User

Untitled

a guest
Apr 29th, 2018
519
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. stock Float: GetDistanceCameraToLocation(Float: cam_X, Float: cam_Y, Float: cam_Z, Float: vect_X, Float: vect_Y, Float: vect_Z, Float: dest_X, Float: dest_Y, Float: dest_Z, Float: targetDist = 0.0) {
  2.         cam_X -= dest_X;
  3.         cam_Y -= dest_Y;
  4.         cam_Z -= dest_Z;
  5.  
  6.         targetDist = floatsqroot(cam_X * cam_X + cam_Y * cam_Y + cam_Z * cam_Z);
  7.  
  8.         cam_X += vect_X * targetDist;
  9.         cam_Y += vect_Y * targetDist;
  10.         cam_Z += vect_Z * targetDist;
  11.  
  12.         return floatsqroot(cam_X * cam_X + cam_Y * cam_Y + cam_Z * cam_Z);
  13. }
  14.  
  15. stock IsPlayerAimingAtPoint(playerid, Float: pos_X, Float: pos_Y, Float: pos_Z, Float: aimRadius) {
  16.         new
  17.                 Float: cam_Pos[3],
  18.                 Float: cam_Vect[3]
  19.         ;
  20.         GetPlayerCameraPos(playerid, cam_Pos[0], cam_Pos[1], cam_Pos[2]);
  21.         GetPlayerCameraFrontVector(playerid, cam_Vect[0], cam_Vect[1], cam_Vect[2]);
  22.  
  23.         new
  24.                 Float: aimOffset
  25.         ;
  26.         switch(GetPlayerWeapon(playerid)) {
  27.                 case 22, 23, 24, 25, 26, 27, 28, 29, 32, 38: aimOffset = -2.1;
  28.                 case 30, 31: aimOffset = -1.3;
  29.                 case 33: aimOffset = -0.9;
  30.                 case 34: return GetDistanceCameraToLocation(cam_Pos[0], cam_Pos[1], cam_Pos[2], cam_Vect[0], cam_Vect[1], cam_Vect[2], pos_X, pos_Y, pos_Z) < aimRadius;
  31.                 case 43: aimOffset = -0.9;
  32.                 default: return 0;
  33.         }
  34.         new
  35.                 Float: aimAngle = atan2(cam_Vect[2], floatsqroot(cam_Vect[0] * cam_Vect[0] + cam_Vect[1] * cam_Vect[1])),
  36.                 Float: tmpVar
  37.         ;
  38.         cam_Vect[2] = floatcos(aimAngle + (aimOffset * -2), degrees) * floatsin(-(atan2(cam_Vect[1], cam_Vect[0]) + aimOffset + 270.0), degrees);
  39.         tmpVar = floatcos(aimAngle + (aimOffset * -2), degrees) * floatcos(-(atan2(cam_Vect[1], cam_Vect[0]) + aimOffset + 270.0), degrees);
  40.  
  41.         return GetDistanceCameraToLocation(cam_Pos[0], cam_Pos[1], cam_Pos[2], cam_Vect[2], tmpVar, floatsin(aimAngle + (aimOffset * -2), degrees), pos_X, pos_Y, pos_Z) < aimRadius;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement