iJayce

Untitled

Apr 17th, 2016
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. // C++
  2. float floatmul(float v, float c)
  3. {    
  4.     return (v*c);
  5. }
  6. float floatsub(float v, float c)
  7. {
  8.     return (v-c);
  9. }
  10. float floatadd(float v, float c)
  11. {
  12.     return (v+c);
  13. }
  14. float retDriftAngle(int playerid)
  15. {
  16.     int vehicleid = GetPlayerVehicleID(playerid);
  17.  
  18.     float
  19.         v[3],
  20.         a[3];
  21.     GetVehicleVelocity(vehicleid, &v[0], &v[1], &v[2]);
  22.     GetVehicleZAngle(vehicleid, &a[0]);
  23.     if(floatmul(sqrt(floatadd(floatadd(pow(v[0], 2), pow(v[1], 2)), pow(v[2], 2))), 181.5) < 20.0f) return 0.0f;
  24.     a[0] = (a[0] >= 360.0f) ? (floatsub(a[0], 360.0f)) : (a[0] < 0.0f) ? (floatadd(a[0], 360.0f)) : (a[0]);
  25.     a[0] = (a[0] > 180.0f) ? (floatsub(0.0f, floatsub(360.0f, a[0]))) : (a[0]);
  26.     a[1] = floatsub(atan2(v[1], v[0]), 90.0f);
  27.     a[1] = (a[1] >= 360.0f) ? (floatsub(a[1], 360.0f)) : (a[1] < 0.0f) ? (floatadd(a[1], 360.0f)) : (a[1]);
  28.     a[1] = (a[1] > 180.0f) ? (floatsub(0.0f, floatsub(360.0f, a[1]))) : (a[1]);
  29.     a[2] = abs(floatsub(a[0], a[1]));
  30.     a[2] = (a[2] > 180.0f) ? (floatsub(a[2], 180.0f)) : (a[2]);
  31.     return (a[2] >= 90.0f) ? (floatsub(180.0f, a[2])) : (a[2]);
  32. }  
  33.  
  34. ////// *** PAWN //////
  35.  
  36.     new vehicleid = GetPlayerVehicleID(playerid);
  37.     if(vehicleid == INVALID_VEHICLE_ID || !vehicleid) return 0.0;
  38.     new Float:v[3], Float:a[3];
  39.     GetVehicleVelocity(vehicleid, v[0], v[1], v[2]); GetVehicleZAngle(vehicleid, a[0]);
  40.     if(floatmul(floatsqroot(floatadd(floatadd(floatpower(v[0], 2), floatpower(v[1], 2)), floatpower(v[2], 2))), 181.5) < 20.0) return 0;
  41.     a[0] = (a[0] >= 360.0) ? (floatsub(a[0], 360.0)) : (a[0] < 0.0) ? (floatadd(a[0], 360.0)) : (a[0]);
  42.     a[0] = (a[0] > 180.0) ? (floatsub(0.0, floatsub(360.0, a[0]))) : (a[0]);
  43.     a[1] = floatsub(atan2(v[1], v[0]), 90.0);
  44.     a[1] = (a[1] >= 360.0) ? (floatsub(a[1], 360.0)) : (a[1] < 0.0) ? (floatadd(a[1], 360.0)) : (a[1]);
  45.     a[1] = (a[1] > 180.0) ? (floatsub(0.0, floatsub(360.0, a[1]))) : (a[1]);
  46.     a[2] = floatabs(floatsub(a[0], a[1]));
  47.     a[2] = (a[2] > 180.0) ? (floatsub(a[2], 180.0)) : (a[2]);
  48.     return (a[2] >= 90.0) ? (floatsub(180.0, a[2])) : (a[2]);
Advertisement
Add Comment
Please, Sign In to add comment