Advertisement
GustavoAraujo

Vehicle Kilometers Traveled

Nov 1st, 2013
609
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.52 KB | None | 0 0
  1. /************************* FORWARDS ***************************/
  2. forward ModeInit();
  3. forward StateChange(playerid, newstate, oldstate);
  4. forward GetPositionAll();
  5. forward Corrida(vehicleid);
  6.  
  7. /********************** VARIÁVEIS ****************************/
  8. new Float:VehicleX[MAX_VEHICLES];
  9. new Float:VehicleY[MAX_VEHICLES];
  10. new Float:VehicleZ[MAX_VEHICLES];
  11. new Float:Percorreu[MAX_VEHICLES];
  12. new Timer[MAX_VEHICLES];
  13. new ID[MAX_PLAYERS];
  14. /************************************************************/
  15. public OnGameModeInit()
  16. {
  17.     SetTimer("GetPositionAll", 5000, false);
  18.     return CallLocalFunction("ModeInit", "");
  19. }
  20. public GetPositionAll()
  21. {
  22.     for(new v; v < MAX_VEHICLES; v++)
  23.     {
  24.            if(GetVehicleModel(v) != 0) GetVehiclePos(v, VehicleX[v], VehicleY[v], VehicleZ[v]);
  25.     }
  26.     return 1;
  27. }
  28. public OnPlayerStateChange(playerid, newstate, oldstate)
  29. {
  30.     if(newstate == PLAYER_STATE_DRIVER)
  31.     {
  32.         ID[playerid] = GetPlayerVehicleID(playerid);
  33.         Timer[ID[playerid]] = SetTimerEx("Corrida", 5000, true, "i", ID[playerid]);
  34.     }
  35.     if(oldstate == PLAYER_STATE_DRIVER)
  36.     {
  37.         KillTimer(Timer[ID[playerid]]);
  38.     }
  39.     return CallLocalFunction("StateChange", "iii",playerid, newstate, oldstate);
  40. }
  41. public Corrida(vehicleid)
  42. {
  43.     Percorreu[vehicleid] += GetVehicleDistanceFromPoint(vehicleid, VehicleX[vehicleid], VehicleY[vehicleid], VehicleZ[vehicleid]);
  44.     GetVehiclePos(vehicleid, VehicleX[vehicleid], VehicleY[vehicleid], VehicleZ[vehicleid]);
  45.     return 1;
  46. }
  47. /********************************** STOCKS ***************************************/
  48. stock Float:GetDistanceTraveled(vehicleid)
  49. {
  50.      Corrida(vehicleid);
  51.      return Percorreu[vehicleid];
  52. }
  53. stock SetVehiclePosEx(vehicleid, Float:X, Float:Y, Float:Z)
  54. {
  55.     SetVehiclePos(vehicleid, X, Y, Z);
  56.     VehicleX[vehicleid] = X;
  57.     VehicleY[vehicleid] = Y;
  58.     VehicleZ[vehicleid] = Z;
  59.     return 1;
  60. }
  61. stock CreateVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
  62. {
  63.     new nID = CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
  64.     GetVehiclePos(nID,VehicleX[nID], VehicleY[nID], VehicleZ[nID]);
  65.     return nID;
  66. }
  67.  
  68. /********** HOOKS **************/
  69. #if defined _ALS_OnGameModeInit
  70.     #undef OnGameModeInit
  71. #else
  72.     #define _ALS_OnGameModeInit
  73. #endif
  74. #if defined _ALS_OnPlayerStateChange
  75.     #undef OnPlayerStateChange
  76. #else
  77.     #define _ALS_OnPlayerStateChange
  78. #endif
  79.  
  80. #define OnGameModeInit ModeInit
  81. #define OnPlayerStateChange StateChange
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement