Guest User

awdawdawdawdawda

a guest
Jan 21st, 2013
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. //change the value of the MAX_PLAYERS
  4. //script by return0 - aka Einstein
  5. #undef MAX_PLAYERS
  6. #define MAX_PLAYERS 152
  7. enum TANKSTUFF
  8. {
  9. Float: vX,
  10. Float: vY,
  11. Float: vZ,
  12. Occupied,
  13. Time
  14. };
  15. new TankFix[MAX_VEHICLES][TANKSTUFF];
  16.  
  17. public OnFilterScriptInit()
  18. {
  19. for(new c=1; c<MAX_VEHICLES; c++)
  20. {
  21. if(GetVehicleModel(c) == 432)
  22. {
  23. GetVehiclePos(c,TankFix[c][vX],TankFix[c][vY],TankFix[c][vZ]);
  24. TankFix[c][Occupied] = 0;
  25. TankFix[c][Time] = 0;
  26. }
  27. }
  28. for(new i=0; i<MAX_PLAYERS; i++)
  29. {
  30. if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
  31. {
  32. if(GetPlayerState(i) == PLAYER_STATE_PASSENGER || GetPlayerState(i) == PLAYER_STATE_DRIVER)
  33. {
  34. if(GetVehicleModel(GetPlayerVehicleID(i)) == 432)
  35. {
  36. TankFix[GetPlayerVehicleID(i)][Occupied] = 1;
  37. }
  38. }
  39. }
  40. }
  41. return 1;
  42. }
  43. public OnVehicleSpawn(vehicleid)
  44. {
  45. if(GetVehicleModel(vehicleid) == 432)
  46. {
  47. GetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
  48. TankFix[vehicleid][Occupied] = 0;
  49. TankFix[vehicleid][Time] = 0;
  50. }
  51. return 1;
  52. }
  53. public OnPlayerStateChange(playerid, newstate, oldstate)
  54. {
  55. if (newstate == PLAYER_STATE_DRIVER)
  56. {
  57. if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432)
  58. {
  59. TankFix[GetPlayerVehicleID(playerid)][Occupied] = 1;
  60. }
  61. }
  62. return 1;
  63. }
  64. public OnPlayerExitVehicle(playerid, vehicleid)
  65. {
  66. if(GetVehicleModel(vehicleid) == 432)
  67. {
  68. GetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
  69. TankFix[vehicleid][Occupied] = 0;
  70. }
  71. return 1;
  72. }
  73.  
  74.  
  75. public OnVehicleStreamIn(vehicleid, forplayerid)
  76. {
  77. new Float:x,Float:y,Float:z, Float:ang;
  78. if(GetVehicleModel(vehicleid) == 432 && !TankFix[vehicleid][Occupied])
  79. {
  80. GetVehiclePos(vehicleid,x,y,z);
  81. if(floatround(floatabs(floatsub(x,TankFix[vehicleid][vX]))) > 2 || floatround(floatabs(floatsub(y,TankFix[vehicleid][vY]))) > 2 || floatround(floatabs(floatsub(z,TankFix[vehicleid][vZ]))) > 2)
  82. {
  83. SetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
  84. GetVehicleZAngle(vehicleid, ang);
  85. SetVehicleZAngle(vehicleid, ang);
  86. TankFix[vehicleid][Time] = 0;
  87. SetTimerEx("RespawnRespawnVeh",50,0, "i", vehicleid);
  88. }
  89. }
  90. return 1;
  91. }
  92. forward RespawnRespawnVeh(vehicleid);
  93. public RespawnRespawnVeh(vehicleid)
  94. {
  95. if(!TankFix[vehicleid][Occupied])
  96. {
  97. TankFix[vehicleid][Time]++;
  98. if(TankFix[vehicleid][Time]>3)
  99. {
  100. TankFix[vehicleid][Time]=0;
  101. return 0;
  102. }
  103. else
  104. {
  105. new Float:ang;
  106. SetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
  107. GetVehicleZAngle(vehicleid, ang);
  108. SetVehicleZAngle(vehicleid, ang);
  109. SetTimerEx("RespawnRespawnVeh",1000,0, "i", vehicleid);
  110. }
  111. }
  112. return 0;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment