Advertisement
Guest User

Carsystem Bug (Objects doesnt delete)

a guest
Jun 16th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.96 KB | None | 0 0
  1. //OnPlayerDisconnect
  2.         OnPlayerCarUpdate(playerid);
  3.        
  4. public OnPlayerCarUpdate(playerid)
  5. {
  6.     if(IsPlayerConnected(playerid))
  7.     {
  8.         for(new x=0;x<MaxVeh;x++)
  9.         {
  10.             if(PlayerHaveCar[playerid][x])
  11.             {
  12.                 DestroyVehicle(PlayerCar[playerid][x][CarId]);
  13.                 LockCar(PlayerCar[playerid][x][CarId]);
  14.                 new string3[128];
  15.                 new playername3[MAX_PLAYER_NAME];
  16.                 GetPlayerName(playerid, playername3, sizeof(playername3));
  17.                 format(string3, sizeof(string3), "/Autos/%s_Car_%d.ini", playername3, x);
  18.                 new File: hFile = fopen(string3, io_write);
  19.                 if (hFile)
  20.                 {
  21.                     new var[32];
  22.                     format(var, 32, "CarId=%d\n",PlayerCar[playerid][x][CarId]);fwrite(hFile, var);
  23.                     format(var, 32, "CarModel=%d\n",PlayerCar[playerid][x][CarModel]);fwrite(hFile, var);
  24.                     format(var, 32, "CarPos_x=%.3f\n",PlayerCar[playerid][x][CarPos_x]);fwrite(hFile, var);
  25.                     format(var, 32, "CarPos_y=%.3f\n",PlayerCar[playerid][x][CarPos_y]);fwrite(hFile, var);
  26.                     format(var, 32, "CarPos_z=%.3f\n",PlayerCar[playerid][x][CarPos_z]);fwrite(hFile, var);
  27.                     format(var, 32, "CarRotate=%.3f\n",PlayerCar[playerid][x][CarRotate]);fwrite(hFile, var);
  28.                     format(var, 32, "CarNitro=%d\n",PlayerCar[playerid][x][CarNitro]);fwrite(hFile, var);
  29.                     format(var, 32, "CarHyd=%d\n",PlayerCar[playerid][x][CarHyd]);fwrite(hFile, var);
  30.                     format(var, 32, "CarWheel=%d\n",PlayerCar[playerid][x][CarWheel]);fwrite(hFile, var);
  31.                     format(var, 32, "CarAusp=%d\n",PlayerCar[playerid][x][CarAusp]);fwrite(hFile, var);
  32.                     format(var, 32, "CarSideL=%d\n",PlayerCar[playerid][x][CarSideL]);fwrite(hFile, var);
  33.                     format(var, 32, "CarSideR=%d\n",PlayerCar[playerid][x][CarSideR]);fwrite(hFile, var);
  34.                     format(var, 32, "CarFB=%d\n",PlayerCar[playerid][x][CarFB]);fwrite(hFile, var);
  35.                     format(var, 32, "CarRB=%d\n",PlayerCar[playerid][x][CarRB]);fwrite(hFile, var);
  36.                     format(var, 32, "CarSpoiler=%d\n",PlayerCar[playerid][x][CarSpoiler]);fwrite(hFile, var);
  37.                     format(var, 32, "CarRoof=%d\n",PlayerCar[playerid][x][CarRoof]);fwrite(hFile, var);
  38.                     format(var, 32, "CarHood=%d\n",PlayerCar[playerid][x][CarHood]);fwrite(hFile, var);
  39.                     format(var, 32, "CarVents=%d\n",PlayerCar[playerid][x][CarVents]);fwrite(hFile, var);
  40.                     format(var, 32, "CarLamps=%d\n",PlayerCar[playerid][x][CarLamps]);fwrite(hFile, var);
  41.                     format(var, 32, "CarPJ=%d\n",PlayerCar[playerid][x][CarPJ]);fwrite(hFile, var);
  42.                     format(var, 32, "CarC1=%d\n",PlayerCar[playerid][x][CarC1]);fwrite(hFile, var);
  43.                     format(var, 32, "CarC2=%d\n",PlayerCar[playerid][x][CarC2]);fwrite(hFile, var);
  44.                     format(var, 32, "Preis=%d\n",PlayerCar[playerid][x][CarPreis]);fwrite(hFile, var);
  45.                     format(var, 32, "CarTank=%d\n", gGas[PlayerCar[playerid][x][CarId]]); fwrite(hFile, var);
  46.                     format(var, 32, "CarMaxTank=%d\n", gMaxGas[PlayerCar[playerid][x][CarId]]); fwrite(hFile, var);
  47.                     format(var, 32, "CarState=%d\n", PlayerCar[playerid][x][CarState]); fwrite(hFile, var);
  48.                     format(var, 32, "CarNeon1=%d\n", PlayerCar[playerid][x][CarNeon1]); fwrite(hFile, var);
  49.                     format(var, 32, "CarNeon2=%d\n", PlayerCar[playerid][x][CarNeon2]); fwrite(hFile, var);
  50.                     fclose(hFile);
  51.                 }
  52.                 DestroyObject(PlayerCar[playerid][x][ObjectIDNeon1]);
  53.                 DestroyObject(PlayerCar[playerid][x][ObjectIDNeon2]);
  54.                 PlayerCar[playerid][x][ObjectIDNeon1] = INVALID_OBJECT_ID;
  55.                 PlayerCar[playerid][x][ObjectIDNeon2] = INVALID_OBJECT_ID;
  56.             }
  57.         }
  58.     }
  59. }
  60.  
  61. //OnVehicleSpawn
  62.     for(new playerid = 0;playerid<GetMaxPlayers();playerid++)
  63.     {
  64.         for(new x=0;x<MaxVeh;x++)
  65.         {
  66.             if(IsPlayerConnected(playerid) && PlayerHaveCar[playerid][x])
  67.             {
  68.                 if(vehicleid == PlayerCar[playerid][x][CarId])
  69.                 {
  70.                     SetTimerEx("CarTuning", 700,0, "ii", playerid, x);
  71.                 }
  72.             }
  73.         }
  74.     }
  75.    
  76. public CarTuning(playerid, slot)
  77. {
  78.     ChangeVehicleColor(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarC1],PlayerCar[playerid][slot][CarC2]);
  79.     if(PlayerCar[playerid][slot][CarPJ] >= 0) {ChangeVehiclePaintjob(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarPJ]);}
  80.     if(PlayerCar[playerid][slot][CarNitro] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarNitro]);}
  81.     if(PlayerCar[playerid][slot][CarHyd] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarHyd]);}
  82.     if(PlayerCar[playerid][slot][CarWheel] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarWheel]);}
  83.     if(PlayerCar[playerid][slot][CarAusp] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarAusp]);}
  84.     if(PlayerCar[playerid][slot][CarSideL] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarSideL]);}
  85.     if(PlayerCar[playerid][slot][CarSideR] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarSideR]);}
  86.     if(PlayerCar[playerid][slot][CarFB] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarFB]);}
  87.     if(PlayerCar[playerid][slot][CarRB] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarRB]);}
  88.     if(PlayerCar[playerid][slot][CarSpoiler] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarSpoiler]);}
  89.     if(PlayerCar[playerid][slot][CarRoof] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarRoof]);}
  90.     if(PlayerCar[playerid][slot][CarHood] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarHood]);}
  91.     if(PlayerCar[playerid][slot][CarVents] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarVents]);}
  92.     if(PlayerCar[playerid][slot][CarLamps] != 0) {AddVehicleComponent(PlayerCar[playerid][slot][CarId],PlayerCar[playerid][slot][CarLamps]);}
  93.     LockCar(PlayerCar[playerid][slot][CarId]);
  94. }
  95.  
  96. //OnPlayerConnect
  97.     PlayerKey[playerid] = 0;
  98.     for(new i=0;i<MaxVeh;i++)
  99.     {
  100.         LockCar(PlayerCar[playerid][PlayerKey[i]][CarId]);
  101.         PlayerHaveCar[playerid][i] = 0;
  102.         LockCar(i);
  103.     }
  104.     OnPlayerCarLogin(playerid);
  105.    
  106.    
  107. public OnPlayerCarLogin(playerid)
  108. {
  109.     for(new x = 0; x < MaxVeh; x++)
  110.     {
  111.         if(!PlayerHaveCar[playerid][x])
  112.         {
  113.             new string2[128];
  114.             new playername2[MAX_PLAYER_NAME];
  115.             GetPlayerName(playerid, playername2, sizeof(playername2));
  116.             format(string2, sizeof(string2), "/Autos/%s_Car_%d.ini", playername2,x);
  117.             new File: UserFile = fopen(string2, io_read);
  118.             if (UserFile)
  119.             {
  120.                 PlayerHaveCar[playerid][x] = 1;
  121.                 new key[ 256 ] , val[ 256 ];
  122.                 new Data[ 256 ];
  123.                 while ( fread( UserFile , Data , sizeof( Data ) ) )
  124.                 {
  125.                     key = ini_GetKey( Data );
  126.                     if( strcmp( key , "CarId" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarId] = strval( val ); }
  127.                     if( strcmp( key , "CarModel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarModel] = strval( val ); }
  128.                     if( strcmp( key , "CarPos_x" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPos_x] = floatstr( val ); }
  129.                     if( strcmp( key , "CarPos_y" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPos_y] = floatstr( val ); }
  130.                     if( strcmp( key , "CarPos_z" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPos_z] = floatstr( val ); }
  131.                     if( strcmp( key , "CarRotate" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarRotate] = floatstr( val ); }
  132.                     if( strcmp( key , "CarNitro" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarNitro] = strval( val ); }
  133.                     if( strcmp( key , "CarHyd" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarHyd] = strval( val ); }
  134.                     if( strcmp( key , "CarWheel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarWheel] = strval( val ); }
  135.                     if( strcmp( key , "CarAusp" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarAusp] = strval( val ); }
  136.                     if( strcmp( key , "CarSideL" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarSideL] = strval( val ); }
  137.                     if( strcmp( key , "CarSideR" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarSideR] = strval( val ); }
  138.                     if( strcmp( key , "CarFB" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarFB] = strval( val ); }
  139.                     if( strcmp( key , "CarRB" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarRB] = strval( val ); }
  140.                     if( strcmp( key , "CarSpoiler" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarSpoiler] = strval( val ); }
  141.                     if( strcmp( key , "CarRoof" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarRoof] = strval( val ); }
  142.                     if( strcmp( key , "CarHood" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarHood] = strval( val ); }
  143.                     if( strcmp( key , "CarVents" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarVents] = strval( val ); }
  144.                     if( strcmp( key , "CarLamps" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarLamps] = strval( val ); }
  145.                     if( strcmp( key , "CarPJ" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPJ] = strval( val ); }
  146.                     if( strcmp( key , "CarC1" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarC1] = strval( val ); }
  147.                     if( strcmp( key , "CarC2" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarC2] = strval( val ); }
  148.                     if( strcmp( key , "Preis" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarPreis] = strval( val ); }
  149.                     if( strcmp( key , "CarTank" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarTank] = strval( val ); }
  150.                     if( strcmp( key , "CarMaxTank" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarMaxTank] = strval( val ); }
  151.                     if( strcmp( key, "CarState", true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarState] = strval( val ); }
  152.                     if( strcmp( key, "CarNeon1", true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarNeon1] = strval( val ); }
  153.                     if( strcmp( key, "CarNeon2", true ) == 0 ) { val = ini_GetValue( Data ); PlayerCar[playerid][x][CarNeon2] = strval( val ); }
  154.                     gGas[PlayerCar[playerid][x][CarId]] = PlayerCar[playerid][x][CarTank];
  155.                     gMaxGas[PlayerCar[playerid][x][CarId]] = PlayerCar[playerid][x][CarMaxTank];
  156.                 }
  157.                 fclose(UserFile);
  158.                 RadioSender[PlayerCar[playerid][x][CarId]] = 0;
  159.                 PlayerCarSpawn(playerid,x);
  160.             }
  161.         }
  162.     }
  163. }
  164.  
  165. public PlayerCarSpawn(playerid,Slot)
  166. {
  167.     if(IsPlayerConnected(playerid))
  168.     {
  169.         if(PlayerHaveCar[playerid][Slot])
  170.         {
  171.             PlayerCar[playerid][Slot][CarId] = CreateVehicle(PlayerCar[playerid][Slot][CarModel],PlayerCar[playerid][Slot][CarPos_x],PlayerCar[playerid][Slot][CarPos_y],PlayerCar[playerid][Slot][CarPos_z],PlayerCar[playerid][Slot][CarRotate],PlayerCar[playerid][Slot][CarC1],PlayerCar[playerid][Slot][CarC2], 60000);/*vehicle spawn*/
  172.             new vnp[46];
  173.             format(vnp, sizeof(vnp), "{CB1107}%s", GetName(playerid));
  174.             SetVehicleNumberPlate(PlayerCar[playerid][Slot][CarId], vnp);
  175.             ChangeVehicleColor(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarC1],PlayerCar[playerid][Slot][CarC2]);
  176.             DestroyDynamicObject(PlayerCar[playerid][Slot][ObjectIDNeon1]);
  177.             DestroyDynamicObject(PlayerCar[playerid][Slot][ObjectIDNeon2]);
  178.             PlayerCar[playerid][Slot][ObjectIDNeon1] = INVALID_OBJECT_ID;
  179.             PlayerCar[playerid][Slot][ObjectIDNeon2] = INVALID_OBJECT_ID;
  180.             if(PlayerCar[playerid][Slot][CarPJ] >= 0) {ChangeVehiclePaintjob(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarPJ]);}
  181.             if(PlayerCar[playerid][Slot][CarNitro] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarNitro]);}
  182.             if(PlayerCar[playerid][Slot][CarHyd] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarHyd]);}
  183.             if(PlayerCar[playerid][Slot][CarWheel] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarWheel]);}
  184.             if(PlayerCar[playerid][Slot][CarAusp] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarAusp]);}
  185.             if(PlayerCar[playerid][Slot][CarSideL] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarSideL]);}
  186.             if(PlayerCar[playerid][Slot][CarSideR] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarSideR]);}
  187.             if(PlayerCar[playerid][Slot][CarFB] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarFB]);}
  188.             if(PlayerCar[playerid][Slot][CarRB] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarRB]);}
  189.             if(PlayerCar[playerid][Slot][CarSpoiler] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarSpoiler]);}
  190.             if(PlayerCar[playerid][Slot][CarRoof] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarRoof]);}
  191.             if(PlayerCar[playerid][Slot][CarHood] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarHood]);}
  192.             if(PlayerCar[playerid][Slot][CarVents] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarVents]);}
  193.             if(PlayerCar[playerid][Slot][CarLamps] != 0) {AddVehicleComponent(PlayerCar[playerid][Slot][CarId],PlayerCar[playerid][Slot][CarLamps]);}
  194.             if(PlayerCar[playerid][Slot][CarNeon1] != 0){ PlayerCar[playerid][Slot][ObjectIDNeon1] =CreateDynamicObject(PlayerCar[playerid][Slot][CarNeon1], 0,0,0,0,0,0,0); }
  195.             if(PlayerCar[playerid][Slot][CarNeon2] != 0){ PlayerCar[playerid][Slot][ObjectIDNeon2] = CreateDynamicObject(PlayerCar[playerid][Slot][CarNeon2], 0,0,0,0,0,0,0); }
  196.             AttachDynamicObjectToVehicle(PlayerCar[playerid][Slot][ObjectIDNeon1] , PlayerCar[playerid][Slot][CarId], -0.8, 0.0, -0.8, 0.0, 0.0, 0.0);
  197.             AttachDynamicObjectToVehicle(PlayerCar[playerid][Slot][ObjectIDNeon2] , PlayerCar[playerid][Slot][CarId], 0.8, 0.0, -0.8, 0.0, 0.0, 0.0);
  198.             LockCar(PlayerCar[playerid][Slot][CarId]);
  199.             gGas[PlayerCar[playerid][Slot][CarId]] = PlayerCar[playerid][Slot][CarTank];
  200.             gMaxGas[PlayerCar[playerid][Slot][CarId]] = PlayerCar[playerid][Slot][CarMaxTank];
  201.         }
  202.     }
  203. }
  204.  
  205. //OnVehicleDeath
  206.     for(new playerid = 0;playerid<GetMaxPlayers();playerid++)
  207.     {
  208.         for(new x=0;x<MaxVeh;x++)
  209.         {
  210.             if(IsPlayerConnected(playerid) && PlayerHaveCar[playerid][x])
  211.             {
  212.                 if(vehicleid == PlayerCar[playerid][x][CarId])
  213.                 {
  214.                     DestroyDynamicObject(PlayerCar[playerid][x][ObjectIDNeon1]);
  215.                     DestroyDynamicObject(PlayerCar[playerid][x][ObjectIDNeon1]);
  216.                     DestroyVehicle(PlayerCar[playerid][x][CarId]);
  217.                     PlayerCarSpawn(playerid,x);
  218.                 }
  219.             }
  220.         }
  221.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement