Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- //#define ALLOWED_PICKUPS 350 // Uncomment this if you know that you will never reach 2048 pickups.
- #if defined ALLOWED_PICKUPS
- new iPickups[ALLOWED_PICKUPS];
- #else
- new iPickups[MAX_PICKUPS];
- #endif
- forward DestroyStinger(objectid, pickid1, pickid2, pickid3, pickid4);
- public OnFilterScriptInit()
- {
- print(" >>> Spike Strips loaded.");
- return 1;
- }
- public OnFilterScriptExit()
- {
- for(new i = 0; i < sizeof(iPickups); i++){
- if(iPickups[i] != 0){
- if(IsValidObject(iPickups[i]))
- DestroyObject(iPickups[i]);
- DestroyPickup(i);
- }
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/stinger", cmdtext, true, 8) == 0)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- if(vehicleid == 0){
- new Float:X, Float:Y, Float:Z, Float:A;
- GetPlayerPos(playerid, X, Y, Z);
- GetPlayerFacingAngle(playerid, A);
- CreateSmallStinger(X+(6.0*floatsin(-A, degrees)), Y+(6.0*floatcos(-A, degrees)), Z-0.825, A, GetPlayerVirtualWorld(playerid), 60000);
- }
- else{
- new Float:X, Float:Y, Float:Z, Float:A;
- GetVehiclePos(vehicleid, X, Y, Z);
- GetVehicleZAngle(vehicleid, A);
- CreateLargeStinger(X-(10.0*floatsin(-A, degrees)), Y-(10.0*floatcos(-A, degrees)), Z-0.325, A, GetPlayerVirtualWorld(playerid), 60000);
- }
- return 1;
- }
- return 0;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(iPickups[pickupid] != 0){
- new vehicleid = GetPlayerVehicleID(playerid);
- if(vehicleid != 0){
- new panels, doors, lights, tires;
- GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
- UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, 15);
- }
- }
- return 1;
- }
- stock CreateLargeStinger(Float:X, Float:Y, Float:Z, Float:A, virtualworld, timer){
- new Float:dis1 = floatsin(-A, degrees), Float:dis2 = floatcos(-A, degrees);
- new pickid1 = CreatePickup(1007, 14, X+(4.0*dis1), Y+(4.0*dis2), Z, virtualworld);
- new pickid2 = CreatePickup(1007, 14, X+(1.25*dis1), Y+(1.25*dis2), Z, virtualworld);
- new pickid3 = CreatePickup(1007, 14, X-(4.0*dis1), Y-(4.0*dis2), Z, virtualworld);
- new pickid4 = CreatePickup(1007, 14, X-(1.25*dis1), Y-(1.25*dis2), Z, virtualworld);
- new objectid = CreateObject(2892, X, Y, Z, 0.0, 0.0, A);
- iPickups[pickid1] = objectid;
- iPickups[pickid2] = objectid;
- iPickups[pickid3] = objectid;
- iPickups[pickid4] = objectid;
- if(timer > 0){
- SetTimerEx("DestroyStinger", timer, 0, "iiiii", objectid, pickid1, pickid2, pickid3, pickid4);
- }
- }
- stock CreateSmallStinger(Float:X, Float:Y, Float:Z, Float:A, virtualworld, timer){
- new Float:dis1 = floatsin(-A, degrees), Float:dis2 = floatcos(-A, degrees);
- new pickid1 = CreatePickup(1007, 14, X+(1.5*dis1), Y+(1.5*dis2), Z, virtualworld);
- new pickid2 = CreatePickup(1007, 14, X-(1.5*dis1), Y-(1.5*dis2), Z, virtualworld); iPickups[pickid1] = 1;
- new objectid = CreateObject(2899, X, Y, Z, 0.0, 0.0, A);
- iPickups[pickid1] = objectid;
- iPickups[pickid2] = objectid;
- if(timer > 0){
- SetTimerEx("DestroyStinger", timer, 0, "iiiii", objectid, pickid1, pickid2, -1, -1);
- }
- }
- public DestroyStinger(objectid, pickid1, pickid2, pickid3, pickid4){
- DestroyObject(objectid);
- DestroyPickup(pickid1);
- DestroyPickup(pickid2);
- DestroyPickup(pickid3);
- DestroyPickup(pickid4);
- iPickups[pickid1] = -1;
- iPickups[pickid2] = -1;
- iPickups[pickid3] = -1;
- iPickups[pickid4] = -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement