Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //TRAP FILTERSCRIPT ----------- ENJOY~ :D
- #define FILTERSCRIPT
- #include <a_samp>
- #include <streamer>
- #include <izcmd> //Or zcmd.
- #define MAX_TRAP 40 //Max trap.
- #define TrapRadius 5.0 //The trap's radius.
- #define CheckDelay (500) //Timer.
- #define DestroyDelay (120000) //Timer,destroy trap after 2 minute if trap not touch off.
- new TrapCheck;
- enum TInfo
- {
- Created,
- Ready,
- Object,
- Timer,
- Float:TrapX,
- Float:TrapY,
- Float:TrapZ,
- World,
- Interior
- }
- new Trap[MAX_TRAP][TInfo];
- forward DestroyTrap(trapid);
- public DestroyTrap(trapid)
- {
- DestroyDynamicObject(Trap[trapid][Object]);
- Trap[trapid][Created] = 0;
- Trap[trapid][Ready] = 0;
- }
- forward StartTrap(trapid);
- public StartTrap(trapid)
- {
- DestroyDynamicObject(Trap[trapid][Object]);
- Trap[trapid][Object] = CreateDynamicObject(19282,Trap[trapid][TrapX],Trap[trapid][TrapY],Trap[trapid][TrapZ],0.0,0.0,0.0,Trap[trapid][World],Trap[trapid][Interior],-1,300);
- Trap[trapid][Ready] = 1;
- Trap[trapid][Timer] = SetTimerEx("DestroyTrap", DestroyDelay, false, "i", trapid);
- }
- stock CreateTrap(Float:Trapx,Float:Trapy,Float:Trapz,world,interior)
- {
- for(new i;i < MAX_TRAP;i++)
- {
- if(Trap[i][Created]==0)
- {
- Trap[i][TrapX] = Trapx;
- Trap[i][TrapY] = Trapy;
- Trap[i][TrapZ] = Trapz;
- Trap[i][World] = world;
- Trap[i][Interior] = interior;
- Trap[i][Object] = CreateDynamicObject(19291,Trap[i][TrapX],Trap[i][TrapY],Trap[i][TrapZ],0.0,0.0,0.0,Trap[i][World],Trap[i][Interior],-1,300);
- Trap[i][Timer] = SetTimerEx("StartTrap", 3000, false, "i", i);
- Trap[i][Created] = 1;
- Trap[i][Ready] = 0;
- break;
- }
- }
- }
- forward TrapChecking();
- public TrapChecking()
- {
- new Float:x,Float:y,Float:z;
- for(new playerid; playerid <= GetPlayerPoolSize(); playerid++)
- {
- GetPlayerPos(playerid,x,y,z);
- for(new i;i < MAX_TRAP;i++)
- {
- if(Trap[i][Created]==1 && Trap[i][Ready]==1)
- {
- if(GetPlayerVirtualWorld(playerid)!=Trap[i][World] || GetPlayerInterior(playerid)!=Trap[i][Interior]) continue;
- if(IsPlayerInRangeOfPoint(playerid, TrapRadius, Trap[i][TrapX],Trap[i][TrapY],Trap[i][TrapZ]))
- {
- CreateExplosion(Trap[i][TrapX],Trap[i][TrapY],Trap[i][TrapZ], 2, TrapRadius);
- KillTimer(Trap[i][Timer]);
- DestroyTrap(i);
- }
- }
- }
- }
- }
- CMD:trap(playerid)
- {
- new Float:x,Float:y,Float:z;
- GetPlayerPos(playerid, x, y, z);
- CreateTrap(x, y, z-1.0,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
- Streamer_Update(playerid);
- GameTextForPlayer(playerid, "~b~~h~~h~~h~trap set", 3000, 3);
- return 1;
- }
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Trap system --- 18/11/2018 --- Blume(MY ANOTHER NAME :P)");
- print("--------------------------------------\n");
- TrapCheck = SetTimer("TrapChecking", CheckDelay, true);
- return 1;
- }
- public OnFilterScriptExit()
- {
- KillTimer(TrapCheck);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement