Advertisement
Guest User

trap

a guest
Nov 17th, 2018
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1.  
  2. //TRAP FILTERSCRIPT ----------- ENJOY~ :D
  3.  
  4. #define FILTERSCRIPT
  5. #include <a_samp>
  6. #include <streamer>
  7. #include <izcmd> //Or zcmd.
  8. #define MAX_TRAP 40 //Max trap.
  9. #define TrapRadius 5.0 //The trap's radius.
  10. #define CheckDelay (500) //Timer.
  11. #define DestroyDelay (120000) //Timer,destroy trap after 2 minute if trap not touch off.
  12.  
  13. new TrapCheck;
  14. enum TInfo
  15. {
  16. Created,
  17. Ready,
  18. Object,
  19. Timer,
  20. Float:TrapX,
  21. Float:TrapY,
  22. Float:TrapZ,
  23. World,
  24. Interior
  25. }
  26. new Trap[MAX_TRAP][TInfo];
  27.  
  28. forward DestroyTrap(trapid);
  29. public DestroyTrap(trapid)
  30. {
  31. DestroyDynamicObject(Trap[trapid][Object]);
  32. Trap[trapid][Created] = 0;
  33. Trap[trapid][Ready] = 0;
  34. }
  35.  
  36. forward StartTrap(trapid);
  37. public StartTrap(trapid)
  38. {
  39. DestroyDynamicObject(Trap[trapid][Object]);
  40. 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);
  41. Trap[trapid][Ready] = 1;
  42. Trap[trapid][Timer] = SetTimerEx("DestroyTrap", DestroyDelay, false, "i", trapid);
  43. }
  44.  
  45. stock CreateTrap(Float:Trapx,Float:Trapy,Float:Trapz,world,interior)
  46. {
  47. for(new i;i < MAX_TRAP;i++)
  48. {
  49. if(Trap[i][Created]==0)
  50. {
  51. Trap[i][TrapX] = Trapx;
  52. Trap[i][TrapY] = Trapy;
  53. Trap[i][TrapZ] = Trapz;
  54. Trap[i][World] = world;
  55. Trap[i][Interior] = interior;
  56.  
  57. 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);
  58.  
  59. Trap[i][Timer] = SetTimerEx("StartTrap", 3000, false, "i", i);
  60.  
  61. Trap[i][Created] = 1;
  62. Trap[i][Ready] = 0;
  63. break;
  64. }
  65. }
  66. }
  67.  
  68. forward TrapChecking();
  69. public TrapChecking()
  70. {
  71. new Float:x,Float:y,Float:z;
  72. for(new playerid; playerid <= GetPlayerPoolSize(); playerid++)
  73. {
  74. GetPlayerPos(playerid,x,y,z);
  75. for(new i;i < MAX_TRAP;i++)
  76. {
  77. if(Trap[i][Created]==1 && Trap[i][Ready]==1)
  78. {
  79. if(GetPlayerVirtualWorld(playerid)!=Trap[i][World] || GetPlayerInterior(playerid)!=Trap[i][Interior]) continue;
  80. if(IsPlayerInRangeOfPoint(playerid, TrapRadius, Trap[i][TrapX],Trap[i][TrapY],Trap[i][TrapZ]))
  81. {
  82. CreateExplosion(Trap[i][TrapX],Trap[i][TrapY],Trap[i][TrapZ], 2, TrapRadius);
  83. KillTimer(Trap[i][Timer]);
  84. DestroyTrap(i);
  85. }
  86. }
  87. }
  88. }
  89. }
  90.  
  91. CMD:trap(playerid)
  92. {
  93. new Float:x,Float:y,Float:z;
  94. GetPlayerPos(playerid, x, y, z);
  95. CreateTrap(x, y, z-1.0,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
  96. Streamer_Update(playerid);
  97. GameTextForPlayer(playerid, "~b~~h~~h~~h~trap set", 3000, 3);
  98. return 1;
  99. }
  100.  
  101. public OnFilterScriptInit()
  102. {
  103. print("\n--------------------------------------");
  104. print(" Trap system --- 18/11/2018 --- Blume(MY ANOTHER NAME :P)");
  105. print("--------------------------------------\n");
  106. TrapCheck = SetTimer("TrapChecking", CheckDelay, true);
  107. return 1;
  108. }
  109.  
  110. public OnFilterScriptExit()
  111. {
  112. KillTimer(TrapCheck);
  113. return 1;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement