shourya90

Untitled

Dec 26th, 2019
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.52 KB | None | 0 0
  1. #define MAX_CUSTOM_VEHICLES         500
  2. #define MAX_VEHICLES_WEAPONS 2
  3. #define CUSTOM_TRAILER_MENU 1
  4. //new Spoiler,Roof,bullhorn,Bumper;
  5. enum VehicleData
  6. {
  7.     VehicleHolder,
  8.     VehicleID,
  9.     VehicleModel,
  10.     Float:VehicleX,
  11.     Float:VehicleY,
  12.     Float:VehicleZ,
  13.     Float:VehicleA,
  14.     VehicleColor[2],
  15.     VehicleGarage,
  16.     VehicleOwner,
  17.     VehicleLock,
  18.     VehiclePlate[16],
  19.     VehicleMods[14],
  20.     VehiclePaintjob,
  21.     VehicleBomb,
  22.     neon[2],
  23.     VehMods[46],
  24.     VehWeapon[2],
  25.     VehColorChanger,
  26.     Float:VehDamageStats,
  27.     VehFuelStats,
  28.     VehArea
  29. }
  30.  
  31. new Vehicle[MAX_CUSTOM_VEHICLES][VehicleData],
  32.     Iterator:Vehicles<MAX_CUSTOM_VEHICLES>
  33. ;
  34. new Cache:VehCache[MAX_PLAYERS];
  35. new Timer:EmpTimer[MAX_PLAYERS];
  36. LoadPlayerVehicle(playerid)
  37. {
  38.     new query[56];
  39.     mysql_format(connectionHandle, query, 56, "SELECT * FROM vehicle WHERE owner = %d", pInfo[playerid][RealID]);
  40.     mysql_tquery(connectionHandle, query, "OnVehicleLoad", "d", playerid);
  41.     return 1;
  42. }
  43.  
  44. Function OnVehicleLoad(playerid)
  45. {
  46.     new
  47.         x = 0,
  48.         i,
  49.         l,
  50.         s[64],
  51.         query[128]
  52.     ;
  53.     VehCache[playerid] = cache_save();
  54.     for(new xx = cache_get_row_count(); x < xx; x++)
  55.     {
  56.         cache_set_active(VehCache[playerid]);
  57.         i = Iter_Free(Vehicles);
  58.         Vehicle[i][VehicleID] = cache_get_field_content_int(x, "id");
  59.         Vehicle[i][VehicleX] = cache_get_field_content_float(x, "x");
  60.         Vehicle[i][VehicleY] = cache_get_field_content_float(x, "y");
  61.         Vehicle[i][VehicleZ] = cache_get_field_content_float(x, "z");
  62.         Vehicle[i][VehicleA] = cache_get_field_content_float(x, "angle");
  63.         Vehicle[i][VehicleModel] = cache_get_field_content_int(x, "model");
  64.         Vehicle[i][VehiclePaintjob] = cache_get_field_content_int(x, "paintjob");
  65.         Vehicle[i][VehicleLock] = cache_get_field_content_int(x, "locked");
  66.         Vehicle[i][VehicleGarage] = cache_get_field_content_int(x, "garage");
  67.         Vehicle[i][VehicleOwner] = cache_get_field_content_int(x, "owner");
  68.         Vehicle[i][VehicleColor][0] = cache_get_field_content_int(x, "color1");
  69.         Vehicle[i][VehicleColor][1] = cache_get_field_content_int(x, "color2");
  70.         Vehicle[i][VehicleBomb] = cache_get_field_content_int(x, "vbomb");
  71.         Vehicle[i][VehWeapon][0] = cache_get_field_content_int(x, "vehicleweapon1");
  72.         Vehicle[i][VehWeapon][1] = cache_get_field_content_int(x, "vehicleweapon2");
  73.         Vehicle[i][VehDamageStats] = cache_get_field_content_float(x, "damage");
  74.         Vehicle[i][VehFuelStats] = cache_get_field_content_int(x, "fuel");
  75.         for(l = 0; l < 14; l++)
  76.             Vehicle[i][VehicleMods][l] = 0;
  77.         cache_get_field_content(x, "plate", s);
  78.         format(Vehicle[i][VehiclePlate], 16, s, 0);
  79.         Vehicle[i][VehicleHolder] = CreateVehicle(Vehicle[i][VehicleModel], Vehicle[i][VehicleX], Vehicle[i][VehicleY], Vehicle[i][VehicleZ], Vehicle[i][VehicleA], Vehicle[i][VehicleColor][0], Vehicle[i][VehicleColor][1], -1, 0);
  80.         SetVehicleNumberPlate(Vehicle[i][VehicleHolder], s);
  81.         Vehicle[i][VehArea] = CreateDynamicSphere(Vehicle[i][VehicleX], Vehicle[i][VehicleY], Vehicle[i][VehicleZ], 4.0);
  82.         AttachDynamicAreaToVehicle(Vehicle[i][VehArea], Vehicle[i][VehicleHolder], 0.0, 0.0,0.0);
  83.         if(!Vehicle[i][VehicleLock])
  84.         {
  85.             ToggleDoors(Vehicle[i][VehicleHolder], false);
  86.             Vehicle[i][VehicleLock] = 0;
  87.    
  88.         }
  89.         else
  90.         {
  91.             ToggleDoors(Vehicle[i][VehicleHolder], true);
  92.             Vehicle[i][VehicleLock] = 1;
  93.        
  94.         }
  95.         VehNoSPawnFuel[Vehicle[i][VehicleHolder]] = true;
  96.         VehicleFuel[Vehicle[i][VehicleHolder]] = Vehicle[i][VehFuelStats];
  97.        
  98.         SetVehicleHealth(Vehicle[i][VehicleHolder], Vehicle[i][VehDamageStats]);           
  99.         if(Vehicle[i][VehDamageStats] <= 600)
  100.         {
  101.  
  102.             new panels, doors, lights, tires;
  103.             GetVehicleDamageStatus(Vehicle[i][VehicleHolder], panels, doors, lights, tires);
  104.          
  105.             // Set the tires to 0, which means none are popped
  106.             tires = 0;
  107.             panels = 1;
  108.             doors = 1;
  109.             // Update the vehicle's damage status with unpopped tires
  110.             UpdateVehicleDamageStatus(Vehicle[i][VehicleHolder], panels, doors, lights, tires);
  111.         }
  112.         if(Vehicle[i][VehDamageStats] <= 300)
  113.         {  
  114.             ToggleEngine(Vehicle[i][VehicleHolder], false);
  115.         }  
  116.            
  117.         ChangeVehiclePaintjob(Vehicle[i][VehicleHolder], Vehicle[i][VehiclePaintjob]);
  118.         Iter_Add(Vehicles, i);
  119.         mysql_format(connectionHandle, query, 128, "SELECT * FROM mods WHERE vid = %d", Vehicle[i][VehicleID]);
  120.         mysql_tquery(connectionHandle, query, "OnVehicleModLoaded", "d", i);
  121.  
  122.        
  123.        
  124.        
  125.     }
  126.    
  127.     return 1;
  128. }
  129.  
  130. public OnPlayerDisconnect(playerid, reason)
  131. {
  132.     if(pInfo[playerid][Logged])
  133.     {
  134.         new query[128], Float:VehHealth;
  135.         foreach(new i : Vehicles)
  136.         {
  137.             if(Vehicle[i][VehicleOwner] == pInfo[playerid][RealID])
  138.             {
  139.                 GetVehicleHealth(Vehicle[i][VehicleHolder], VehHealth);
  140.    
  141.                 mysql_format(connectionHandle, query, 128, "UPDATE vehicle SET damage = %f, fuel = %d WHERE id = %d", VehHealth, VehicleFuel[Vehicle[i][VehicleHolder]], Vehicle[i][VehicleID]);
  142.                 mysql_query(connectionHandle, query, false);
  143.                 DestroyDynamicArea(Vehicle[i][VehArea]);
  144.                 Vehicle[i][VehDamageStats] = VehHealth;
  145.                 for(new ix = 0; ix < 14; ix++)
  146.                     Vehicle[i][VehicleMods][ix] = 0;
  147.  
  148.                 DestroyVehicle(Vehicle[i][VehicleHolder]);
  149.                 Vehicle[i][VehColorChanger] = false;
  150.                 DestroyVehObjs(i);
  151.                
  152.                 Iter_SafeRemove(Vehicles, i, i);
  153.  
  154.             }
  155.         }
  156.         cache_delete(VehCache[playerid]);
  157.     }
  158.     #if defined Pv_OnPlayerDisconnect
  159.         return Pv_OnPlayerDisconnect(playerid, reason);
  160.     #else
  161.         return 1;
  162.     #endif
  163. }
  164. #if defined _ALS_OnPlayerDisconnect
  165.     #undef OnPlayerDisconnect
  166. #else
  167.     #define _ALS_OnPlayerDisconnect
  168. #endif
  169.  
  170. #define OnPlayerDisconnect Pv_OnPlayerDisconnect
  171. #if defined Pv_OnPlayerDisconnect
  172.     forward Pv_OnPlayerDisconnect(playerid, reason);
  173. #endif
Advertisement
Add Comment
Please, Sign In to add comment