Chaoz

Visible Vehicles

Mar 20th, 2012
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.41 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define FILTERSCRIPT
  4.  
  5. public OnPlayerCommandText(playerid, cmdtext[])
  6. {
  7.     if(!strcmp(cmdtext, "/autos visibles", true)){
  8.         new v, str[128], count;
  9.         for(; v<MAX_VEHICLES; v++){
  10.             if(GetVehicleModel(v) && IsVehicleStreamedIn(v, playerid) && IsVehicleInPlayerScreen(playerid, v)){
  11.                 if(count)format(str, 128, "%s||%i", str, v);
  12.                 else format(str, 128, "%i", v);
  13.                 count++;
  14.             }
  15.         }
  16.         return SendClientMessage(playerid, -1, (count) ? (str) : ("No se encontraron vehiculos."));
  17.     }
  18.     return 0;
  19. }
  20.  
  21. stock IsVehicleInPlayerScreen(playerid, vehicleid)
  22. {
  23.     static Float:P[3], Float:vP[3], Float:Dist;
  24.     GetPlayerPos(playerid, P[0], P[1], P[2]);
  25.     GetVehiclePos(vehicleid, vP[0], vP[1], vP[2]);
  26.     if(vP[2]-P[2]>15.0 || P[2]-vP[2]>15.0)return 0;
  27.     Dist = floatsqroot(floatpower((P[0]-vP[0]), 2)+floatpower((P[1]-vP[1]), 2)+floatpower((P[2]-vP[2]), 2));
  28.     if(Dist>100.0)return 0;
  29.     static Float:cV[3], Float:cP[3], Float:T[3], Float:Ar;
  30.     GetPlayerCameraPos(playerid, cP[0], cP[1], cP[2]);
  31.     GetPlayerCameraFrontVector(playerid, cV[0], cV[1], cV[2]);
  32.     T[0] = cV[0]*Dist+cP[0];
  33.     T[1] = cV[1]*Dist+cP[1];
  34.     T[2] = cV[2]*Dist+cP[2];
  35.     if(vP[2]-T[2]>10.5 || T[2]-vP[2]>10.5)return 0;
  36.     if(Dist<7.0)return 1;
  37.     Ar=atan2((P[1]-T[1]), (P[0]-T[0]));
  38.     if(Ar-42.0<(atan2((P[1]-vP[1]), (P[0]-vP[0])))<Ar+42.0)return 1;
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment