Advertisement
Guest User

new

a guest
Oct 3rd, 2022
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. new Iterator:Veiculo<MAX_VEHICLES>;
  2. new Iterator:Colisao<MAX_VEHICLES>;
  3. new Float:Lataria[MAX_VEHICLES];
  4.  
  5. forward OnVehicleCollision(vehicle1, vehicle2);
  6. public OnVehicleCollision(vehicle1, vehicle2)
  7. {
  8.     printf("Veiculo ID_%d colidiu com veiculo ID_%d", vehicle1, vehicle2);
  9.     return 1;
  10. }
  11.  
  12. forward X_VehicleCollision();
  13. public X_VehicleCollision()
  14. {
  15.     foreach(new i : Veiculo)
  16.     {
  17.         static Float:health;
  18.         GetVehicleHealth(i, health);
  19.    
  20.         if(health < Lataria[i])
  21.         {
  22.             Iter_Add(Colisao, i);
  23.         }
  24.         Lataria[i] = health;
  25.     }
  26.    
  27.     foreach(new i : Colisao)
  28.     {
  29.         static Float:x, Float:y, Float:z;
  30.         GetVehiclePos(i, x, y, z);
  31.    
  32.         static vehicle, Float:mxdist;
  33.         vehicle = 0; mxdist = 6.1;
  34.    
  35.         foreach(new id : Colisao)
  36.         {
  37.             if(i == id) continue;
  38.    
  39.             static Float:dist;
  40.             dist = GetVehicleDistanceFromPoint(id, x, y, z);
  41.    
  42.             if(dist < mxdist)
  43.             {
  44.                 mxdist = dist;
  45.                 vehicle = id;
  46.             }
  47.         }
  48.        
  49.         Iter_Remove(Colisao, i);
  50.         if(IsValidVehicle(vehicle))
  51.         {
  52.             Iter_Remove(Colisao, vehicle);
  53.             CallLocalFunction("OnVehicleCollision", "dd", i, vehicle);
  54.         }
  55.     }
  56.    
  57.     return 1;
  58. }
  59.  
  60. // SetTimer("X_VehicleCollision", 100, 1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement