Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define MAX_SPIKESTRIPS 20
- enum sInfo
- {
- sCreated,
- Float:sX,
- Float:sY,
- Float:sZ,
- sObject,
- };
- new SpikeInfo[MAX_SPIKESTRIPS][sInfo];
- stock SpikeStrips_OnPlayerUpdate(playerid)
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- for(new i = 0; i < sizeof(SpikeInfo); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 3.0, SpikeInfo[i][sX], SpikeInfo[i][sY], SpikeInfo[i][sZ]))
- {
- if(SpikeInfo[i][sCreated] == 1)
- {
- new panels, doors, lights, tires;
- new carid = GetPlayerVehicleID(playerid);
- GetVehicleDamageStatus(carid, panels, doors, lights, tires);
- tires = encode_tires(1, 1, 1, 1);
- UpdateVehicleDamageStatus(carid, panels, doors, lights, tires);
- return 0;
- }
- }
- }
- }
- return 1;
- }
- stock CreateStrip(Float:x,Float:y,Float:z,Float:Angle)
- {
- for(new i = 0; i < sizeof(SpikeInfo); i++)
- {
- if(SpikeInfo[i][sCreated] == 0)
- {
- SpikeInfo[i][sCreated]=1;
- SpikeInfo[i][sX]=x;
- SpikeInfo[i][sY]=y;
- SpikeInfo[i][sZ]=z-0.7;
- SpikeInfo[i][sObject] = CreateDynamicObject(2899, x, y, z-0.9, 0, 0, Angle-90);
- return 1;
- }
- }
- return 0;
- }
- stock DeleteAllStrip()
- {
- for(new i = 0; i < sizeof(SpikeInfo); i++)
- {
- if(SpikeInfo[i][sCreated] == 1)
- {
- SpikeInfo[i][sCreated]=0;
- SpikeInfo[i][sX]=0.0;
- SpikeInfo[i][sY]=0.0;
- SpikeInfo[i][sZ]=0.0;
- DestroyObject(SpikeInfo[i][sObject]);
- }
- }
- return 0;
- }
- stock DeleteClosestStrip(playerid)
- {
- for(new i = 0; i < sizeof(SpikeInfo); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.0, SpikeInfo[i][sX], SpikeInfo[i][sY], SpikeInfo[i][sZ]))
- {
- if(SpikeInfo[i][sCreated] == 1)
- {
- SpikeInfo[i][sCreated]=0;
- SpikeInfo[i][sX]=0.0;
- SpikeInfo[i][sY]=0.0;
- SpikeInfo[i][sZ]=0.0;
- DestroyObject(SpikeInfo[i][sObject]);
- return 1;
- }
- }
- }
- return 0;
- }
- stock encode_tires(tires1, tires2, tires3, tires4) {
- return tires1 | (tires2 << 1) | (tires3 << 2) | (tires4 << 3);
- }
- #define MAX_ROADBLOCKS 20
- enum rInfo
- {
- sCreated,
- Float:sX,
- Float:sY,
- Float:sZ,
- sObject,
- };
- new Roadblocks[MAX_ROADBLOCKS][rInfo];
- stock CreateRoadblock(Object,Float:x,Float:y,Float:z,Float:Angle)
- {
- for(new i = 0; i < sizeof(Roadblocks); i++)
- {
- if(Roadblocks[i][sCreated] == 0)
- {
- Roadblocks[i][sCreated] = 1;
- Roadblocks[i][sX] = x;
- Roadblocks[i][sY] = y;
- Roadblocks[i][sZ] = z-0.7;
- Roadblocks[i][sObject] = CreateDynamicObject(Object, x, y, z-0.9, 0, 0, Angle);
- return 1;
- }
- }
- return 0;
- }
- stock DeleteAllRoadblocks(playerid)
- {
- for(new i = 0; i < sizeof(Roadblocks); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 100, Roadblocks[i][sX], Roadblocks[i][sY], Roadblocks[i][sZ]))
- {
- if(Roadblocks[i][sCreated] == 1)
- {
- Roadblocks[i][sCreated] = 0;
- Roadblocks[i][sX] = 0.0;
- Roadblocks[i][sY] = 0.0;
- Roadblocks[i][sZ] = 0.0;
- DestroyObject(Roadblocks[i][sObject]);
- }
- }
- }
- return 0;
- }
- stock DeleteClosestRoadblock(playerid)
- {
- for(new i = 0; i < sizeof(Roadblocks); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 5.0, Roadblocks[i][sX], Roadblocks[i][sY], Roadblocks[i][sZ]))
- {
- if(Roadblocks[i][sCreated] == 1)
- {
- Roadblocks[i][sCreated] = 0;
- Roadblocks[i][sX] = 0.0;
- Roadblocks[i][sY] = 0.0;
- Roadblocks[i][sZ] = 0.0;
- DestroyObject(Roadblocks[i][sObject]);
- return 1;
- }
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment