Guest User

Untitled

a guest
Oct 28th, 2010
626
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.04 KB | None | 0 0
  1. #include <a_samp>
  2. #define Speedgun 23 //pistol
  3. #define COLOR_LIGHTGREEN    0x00FF7FFF
  4. #define PRESSED(%0) \
  5.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  6.  
  7.  
  8. public OnFilterScriptInit()
  9. {
  10.     print("\n--------------------------------------");
  11.     print(" Victious' speedgun!");
  12.     print("--------------------------------------\n");
  13.     return 1;
  14. }
  15.  
  16.  
  17. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  18. {
  19.     if (PRESSED(KEY_HANDBRAKE))
  20.     {
  21.         new veh;
  22.         if(GetPlayerWeapon(playerid) == Speedgun)
  23.         {
  24.             veh = GetClosestVehicle(playerid);
  25.             if (veh)
  26.             {
  27.                 new Float:x,Float:y,Float:z;
  28.                 GetVehiclePos(veh,x,y,z);
  29.                 IsPlayerAimingAt(veh,x,y,z,25);
  30.                 new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
  31.                 GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
  32.                 final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*85.4166672; // 136.666667 = kmph  // 85.4166672= mph
  33.                 final_speed_int = floatround(final_speed,floatround_round);
  34.                 GameTextForPlayer(playerid,"Speed: %i MPH",final_speed_int,2000);
  35.             }
  36.         }
  37.     }
  38.     return 1;
  39. }
  40.  
  41. Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ,  Float:ObjX, Float:ObjY, Float:ObjZ,  Float:FrX, Float:FrY, Float:FrZ)
  42. {
  43.  
  44.     new Float:TGTDistance;
  45.  
  46.     // get distance from camera to target
  47.     TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ));
  48.  
  49.     new Float:tmpX, Float:tmpY, Float:tmpZ;
  50.  
  51.     tmpX = FrX * TGTDistance + CamX;
  52.     tmpY = FrY * TGTDistance + CamY;
  53.     tmpZ = FrZ * TGTDistance + CamZ;
  54.  
  55.     return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
  56. }
  57.  
  58. stock IsPlayerAimingAt(playerid, Float:x, Float:y, Float:z, Float:radius)
  59. {
  60.     new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
  61.     GetPlayerCameraPos(playerid, cx, cy, cz);
  62.     GetPlayerCameraFrontVector(playerid, fx, fy, fz);
  63.     return (radius >= DistanceCameraTargetToLocation(cx, cy, cz, x, y, z, fx, fy, fz));
  64. }
  65.  
  66. stock GetDistanceToCar(playerid,carid)
  67. {
  68.     new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2,Float:dis;
  69.     if (!IsPlayerConnected(playerid))return -1;
  70.     GetPlayerPos(playerid,x1,y1,z1);GetVehiclePos(carid,x2,y2,z2);
  71.     dis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  72.     return floatround(dis);
  73. }
  74.  
  75. stock GetClosestVehicle(playerid, &Float:dis = (Float:0x7F800000))
  76. {
  77.   dis = (Float:0x7F800000);
  78.   new Float:X, Float:Y, Float:Z;
  79.   if(GetPlayerPos(playerid, X, Y, Z)) {
  80.     new vehicleid = INVALID_VEHICLE_ID;
  81.     for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++) {
  82.       if(GetVehiclePos(v, VX, VY, VZ)) {
  83.         VX -= X, VY -= Y, VZ -= Z;
  84.         temp = VX * VX + VY * VY + VZ * VZ;
  85.         if(temp < dis) dis = temp, vehicleid = v;
  86.       }
  87.     }
  88.     dis = floatpower(dis, 0.5);
  89.     return vehicleid;
  90.   }
  91.   return INVALID_VEHICLE_ID;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment