Advertisement
Guest User

Untitled

a guest
Oct 30th, 2010
848
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.22 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.         if(GetPlayerWeapon(playerid) == Speedgun)
  22.         {
  23.             GetPlayerSpeed(playerid);
  24.         }
  25.     }
  26.     return 1;
  27. }
  28.  
  29. Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ,  Float:ObjX, Float:ObjY, Float:ObjZ,  Float:FrX, Float:FrY, Float:FrZ)
  30. {
  31.  
  32.     new Float:TGTDistance;
  33.  
  34.     // get distance from camera to target
  35.     TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ));
  36.  
  37.     new Float:tmpX, Float:tmpY, Float:tmpZ;
  38.  
  39.     tmpX = FrX * TGTDistance + CamX;
  40.     tmpY = FrY * TGTDistance + CamY;
  41.     tmpZ = FrZ * TGTDistance + CamZ;
  42.  
  43.     return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
  44. }
  45.  
  46. stock IsPlayerAimingAt(playerid, Float:x, Float:y, Float:z, Float:radius)
  47. {
  48.     new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz;
  49.     GetPlayerCameraPos(playerid, cx, cy, cz);
  50.     GetPlayerCameraFrontVector(playerid, fx, fy, fz);
  51.     return (radius >= DistanceCameraTargetToLocation(cx, cy, cz, x, y, z, fx, fy, fz));
  52. }
  53.  
  54. stock GetDistanceToCar(playerid,carid)
  55. {
  56.     new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2,Float:dis;
  57.     if (!IsPlayerConnected(playerid))return -1;
  58.     GetPlayerPos(playerid,x1,y1,z1);GetVehiclePos(carid,x2,y2,z2);
  59.     dis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  60.     return floatround(dis);
  61. }
  62.  
  63. stock GetClosestVehicle(playerid, &Float:dis = (Float:0x7F800000))
  64. {
  65.   dis = (Float:0x7F800000);
  66.   new Float:X, Float:Y, Float:Z;
  67.   if(GetPlayerPos(playerid, X, Y, Z)) {
  68.     new vehicleid = INVALID_VEHICLE_ID;
  69.     for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++) {
  70.       if(GetVehiclePos(v, VX, VY, VZ)) {
  71.         VX -= X, VY -= Y, VZ -= Z;
  72.         temp = VX * VX + VY * VY + VZ * VZ;
  73.         if(temp < dis) dis = temp, vehicleid = v;
  74.       }
  75.     }
  76.     dis = floatpower(dis, 0.5);
  77.     return vehicleid;
  78.   }
  79.   return INVALID_VEHICLE_ID;
  80. }
  81.  
  82. stock GetPlayerSpeed(playerid) //MPH
  83. {
  84.     new veh = GetClosestVehicle(playerid);
  85.     if (veh)
  86.     {
  87.         new Float:x,Float:y,Float:z,string[128];
  88.         GetVehiclePos(veh,x,y,z);
  89.         IsPlayerAimingAt(veh,x,y,z,25);
  90.         new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
  91.         GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
  92.         final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*85.4166672; // 136.666667 = kmph  // 85.4166672= mph
  93.         final_speed_int = floatround(final_speed,floatround_round);
  94.         format(string,sizeof(string),"Speed: %i MPH",final_speed_int,2000);
  95.         SendClientMessage(playerid,COLOR_LIGHTGREEN,string);
  96.     }
  97.     return 1;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement