Advertisement
Guest User

SA:MP Km Vehicle (c) by Kaliber

a guest
Sep 12th, 2014
445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.59 KB | None | 0 0
  1. /* SA-MP Include Km Vehicle
  2.  *
  3.  * (c) by Kaliber, 2014
  4.  *
  5.  */
  6. /*
  7.     native GetVehicleKM(vehicleid);
  8.     native GetVehicleM(vehicleid);
  9. */
  10. #if !defined _samp_included
  11.     #include <a_samp>
  12. #endif
  13. #if defined _samp_km
  14.     #endinput
  15. #endif
  16. #define _samp_km
  17. #define GetVehicleKM(%0) km_Info[1][%0]
  18. #define GetVehicleM(%0) km_Info[0][%0]
  19. new km_Info[2][MAX_VEHICLES];
  20. forward KM_OnGameModeInit();
  21. forward KM_OnGameModeExit();
  22. public OnGameModeInit() return k_LoadData(),SetTimer("@km_Timer",999,1),CallLocalFunction("KM_OnGameModeInit","");
  23. #if defined _ALS_OnGameModeInit
  24.     #undef OnGameModeInit
  25. #else
  26.     #define _ALS_OnGameModeInit
  27. #endif
  28. #define OnGameModeInit KM_OnGameModeInit
  29. public OnGameModeExit() return k_SaveData(),CallLocalFunction("KM_OnGameModeExit","");
  30. #if defined _ALS_OnGameModeExit
  31.     #undef OnGameModeExit
  32. #else
  33.     #define _ALS_OnGameModeExit
  34. #endif
  35. #define OnGameModeExit KM_OnGameModeExit
  36. @km_Timer();@km_Timer() {
  37.     for(new i,v; i<MAX_PLAYERS; i++) {
  38.         if(GetPlayerState(i) != PLAYER_STATE_DRIVER) continue;
  39.         v=GetPlayerVehicleID(i),km_Info[0][v] += floatround(floatdiv(float(km_GetVehicleSpeed(v)),3.6));
  40.         if(km_Info[0][v] > 999) km_Info[0][v]=0,km_Info[1][v]++;
  41.     }
  42.     return 1;
  43. }
  44. stock k_LoadData() {
  45.     if(!fexist("km_data.db")) return 0;
  46.     new DB:db=db_open("km_data.db"),tmp[50],DBResult:result;
  47.     for(new v; v<MAX_VEHICLES; v++) {
  48.         format(tmp,sizeof tmp,"SELECT `km`,`m` FROM `KM_DATA` WHERE `ID` = '%d'",v);
  49.         result = db_query(db,tmp);
  50.         db_get_field(result,0,tmp,8),km_Info[1][v] = strval(tmp);
  51.         db_get_field(result,1,tmp,8),km_Info[0][v] = strval(tmp);
  52.         db_free_result(result);
  53.     }
  54.     return db_close(db),1;
  55. }
  56. stock k_SaveData() {
  57.     new bool:x = (!fexist("km_data.db")) ? true : false,DB:db=db_open("km_data.db");
  58.     if(x) {
  59.         db_free_result(db_query(db,"CREATE TABLE IF NOT EXISTS `KM_DATA` (`ID`,`km`,`m`)"));
  60.         for(new v,tmp[75]; v<MAX_VEHICLES; v++) {
  61.             format(tmp,sizeof tmp,"INSERT INTO `KM_DATA` (`ID`,`km`,`m`) VALUES ('%d','%d','%d')",v,km_Info[1][v],km_Info[0][v]);
  62.             db_query(db,tmp);
  63.         }
  64.     } else {
  65.         for(new v,tmp[75]; v<MAX_VEHICLES; v++) {
  66.             format(tmp,sizeof tmp,"UPDATE `KM_DATA` SET `km`='%d',`m`='%d' WHERE `ID` = '%d'",km_Info[1][v],km_Info[0][v],v);
  67.             db_query(db,tmp);
  68.         }
  69.     }
  70.     return db_close(db),1;
  71. }
  72. stock km_GetVehicleSpeed(vehicleid) {
  73.     new Float:Q[3];
  74.     return GetVehicleVelocity(vehicleid,Q[0],Q[1],Q[2]),floatround(floatmul(VectorSize(Q[0], Q[1], Q[2]), 170.0));
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement