Advertisement
Guest User

Untitled

a guest
May 16th, 2016
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. //-------------------------------------------------------------------------------//
  2. //*********************************************************************************//
  3. // Owned Vehicles //
  4. //*********************************************************************************//
  5. //-------------------------------------------------------------------------------//
  6. #define MAX_VEHICLES_OWNED 250
  7.  
  8. enum ovStats
  9. {
  10. ovID,
  11. ovOwner[255],
  12. ovModel,
  13. ovColor1,
  14. ovColor2,
  15. ovTrunkGun1,
  16. ovTrunkGun2,
  17. ovTrunkGun1Ammo,
  18. ovTrunkGun2Ammo,
  19. ovVehicleID,
  20. Float:ovPositionX,
  21. Float:ovPositionY,
  22. Float:ovPositionZ,
  23. Float:ovAngle
  24. }
  25.  
  26. new ov_Stats[MAX_VEHICLES_OWNED][ovStats];
  27.  
  28. forward LoadOVs_data(ovIDS,name[],value[]);
  29. public LoadOVs_data(ovIDS,name[],value[])
  30. {
  31. INI_Int("ID", ov_Stats[ovIDS][ovID]);
  32. INI_String("Owner", ov_Stats[ovIDS][ovOwner], 255);
  33. INI_Int("Model", ov_Stats[ovIDS][ovModel]);
  34. INI_Int("Color1", ov_Stats[ovIDS][ovColor1]);
  35. INI_Int("Color2", ov_Stats[ovIDS][ovColor2]);
  36. INI_Int("TrunkGun1", ov_Stats[ovIDS][ovTrunkGun1]);
  37. INI_Int("TrunkGun2", ov_Stats[ovIDS][ovTrunkGun2]);
  38. INI_Int("TrunkGun1Ammo", ov_Stats[ovIDS][ovTrunkGun1Ammo]);
  39. INI_Int("TrunkGun2Ammo", ov_Stats[ovIDS][ovTrunkGun2Ammo]);
  40. INI_Float("PositionX", ov_Stats[ovIDS][ovPositionX]);
  41. INI_Float("PositionY", ov_Stats[ovIDS][ovPositionY]);
  42. INI_Float("PositionZ", ov_Stats[ovIDS][ovPositionZ]);
  43. INI_Float("Angle", ov_Stats[ovIDS][ovAngle]);
  44. return 1;
  45. }
  46. new ovOwned[MAX_PLAYERS];
  47. stock ov_OnPlayerLogin(playerid)
  48. {
  49. ovOwned[playerid] = 0;
  50. for(new i = 0; i < MAX_VEHICLES_OWNED; i++)
  51. {
  52. INI_ParseFile("/Vehicles/%i.ini", "LoadOVs_%i", .bExtra = true, .extra = i);
  53. if(!strcmp(ov_Stats[i][ovOwner], GetName(playerid)))
  54. {
  55. ovOwned[playerid] = ov_Stats[i][ovID];
  56. pVehicleID[playerid] = CreateVehicle(ov_Stats[i][ovModel], ov_Stats[i][ovPositionX], ov_Stats[i][ovPositionY], ov_Stats[i][ovPositionZ], ov_Stats[i][ovAngle], ov_Stats[i][ovColor1], ov_Stats[i][ovColor2], -1, 0);
  57. new log[200];
  58. format(log, 200, "Spawning Owned Vehicle | ID: %i | Owner: %s | X: %f | Y: %f | Z: %f", ov_Stats[i][ovID], ov_Stats[i][ovOwner], ov_Stats[i][ovPositionX], ov_Stats[i][ovPositionY], ov_Stats[i][ovPositionZ]);
  59. ov_Log(log);
  60. }
  61. }
  62. }
  63.  
  64. stock ov_OnPlayerDisconnect(playerid)
  65. {
  66. if(ovOwned[playerid] >= 1)
  67. {
  68. //Succes, Player has a vehicle.
  69. new Float:vehx, Float:vehy, Float:vehz, Float:vehangle;
  70. GetVehiclePos(pVehicleID[playerid], vehx, vehy, vehz);
  71. GetVehicleZAngle(pVehicleID[playerid], vehangle);
  72. new INI:File = INI_Open(UserPath(playerid));
  73. INI_SetTag(File, "stats");
  74. INI_WriteFloat(File, "PositionX", vehx);
  75. INI_WriteFloat(File, "PositionY", vehy);
  76. INI_WriteFloat(File, "PositionZ", vehz);
  77. INI_WriteFloat(File, "Angle", vehangle);
  78. INI_Close(File);
  79. DestroyVehicle(pVehicleID[playerid]);
  80. new log[200];
  81. format(log, 200, "Despawned Owned Vehicle | ID: %i | Owner: %s | X: %f | Y: %f | Z: %f", ov_Stats[pVehicleID[playerid]][ovID], ov_Stats[pVehicleID[playerid]][ovOwner], ov_Stats[pVehicleID[playerid]][ovPositionX], ov_Stats[pVehicleID[playerid]][ovPositionY], ov_Stats[pVehicleID[playerid]][ovPositionZ]);
  82. ov_Log(log);
  83. }
  84. }
  85.  
  86. stock ov_Log(log[])
  87. {
  88. new File:handle = fopen("/Logs/Vehicles.txt", io_append);
  89. if(handle)
  90. {
  91. new Hour, Minute, Second;
  92. gettime(Hour, Minute, Second);
  93. format(log, 255, "[%02d:%02d:%02d] %s\r\n", Hour, Minute, Second, log);
  94. fwrite(handle, log);
  95. fclose(handle);
  96. }
  97. else
  98. {
  99. print("[CAUGHTION] Failed to check and write at /Logs/Vehicles.txt (EXTREME WARNING)");
  100. print("[CAUGHTION] Failure to fix this may cause Server Crash!");
  101. }
  102. }
  103. //-------------------------------------------------------------------------------//
  104. //*********************************************************************************//
  105. //-------------------------------------------------------------------------------//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement