Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- //change the value of the MAX_PLAYERS
- //script by return0 - aka Einstein
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 152
- enum TANKSTUFF
- {
- Float: vX,
- Float: vY,
- Float: vZ,
- Occupied,
- Time
- };
- new TankFix[MAX_VEHICLES][TANKSTUFF];
- public OnFilterScriptInit()
- {
- for(new c=1; c<MAX_VEHICLES; c++)
- {
- if(GetVehicleModel(c) == 432)
- {
- GetVehiclePos(c,TankFix[c][vX],TankFix[c][vY],TankFix[c][vZ]);
- TankFix[c][Occupied] = 0;
- TankFix[c][Time] = 0;
- }
- }
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
- {
- if(GetPlayerState(i) == PLAYER_STATE_PASSENGER || GetPlayerState(i) == PLAYER_STATE_DRIVER)
- {
- if(GetVehicleModel(GetPlayerVehicleID(i)) == 432)
- {
- TankFix[GetPlayerVehicleID(i)][Occupied] = 1;
- }
- }
- }
- }
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- if(GetVehicleModel(vehicleid) == 432)
- {
- GetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
- TankFix[vehicleid][Occupied] = 0;
- TankFix[vehicleid][Time] = 0;
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if (newstate == PLAYER_STATE_DRIVER)
- {
- if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 432)
- {
- TankFix[GetPlayerVehicleID(playerid)][Occupied] = 1;
- }
- }
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- if(GetVehicleModel(vehicleid) == 432)
- {
- GetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
- TankFix[vehicleid][Occupied] = 0;
- }
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- new Float:x,Float:y,Float:z, Float:ang;
- if(GetVehicleModel(vehicleid) == 432 && !TankFix[vehicleid][Occupied])
- {
- GetVehiclePos(vehicleid,x,y,z);
- 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)
- {
- SetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
- GetVehicleZAngle(vehicleid, ang);
- SetVehicleZAngle(vehicleid, ang);
- TankFix[vehicleid][Time] = 0;
- SetTimerEx("RespawnRespawnVeh",50,0, "i", vehicleid);
- }
- }
- return 1;
- }
- forward RespawnRespawnVeh(vehicleid);
- public RespawnRespawnVeh(vehicleid)
- {
- if(!TankFix[vehicleid][Occupied])
- {
- TankFix[vehicleid][Time]++;
- if(TankFix[vehicleid][Time]>3)
- {
- TankFix[vehicleid][Time]=0;
- return 0;
- }
- else
- {
- new Float:ang;
- SetVehiclePos(vehicleid,TankFix[vehicleid][vX],TankFix[vehicleid][vY],TankFix[vehicleid][vZ]);
- GetVehicleZAngle(vehicleid, ang);
- SetVehicleZAngle(vehicleid, ang);
- SetTimerEx("RespawnRespawnVeh",1000,0, "i", vehicleid);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment