Advertisement
domo101

[FS]Spike System

Aug 16th, 2016
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.58 KB | None | 0 0
  1. //Update 1.1: Samo 1 spike se moze postaviti (ne moze i mali i veliki)
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <sscanf2>
  5.  
  6. #pragma tabsize 0
  7.  
  8.  
  9. new bool:Spike1Kreiran[MAX_PLAYERS];
  10. new bool:Spike2Kreiran[MAX_PLAYERS];
  11. new Spike1[MAX_PLAYERS];
  12. new Spike2[MAX_PLAYERS];
  13. new Float:spX, Float:spY, Float:spZ, Float:spA;
  14.  
  15.  
  16.  
  17. ///////////////////////////////////////////////////////
  18. CMD:spike(playerid, params[])
  19. {
  20. new id;
  21. GetPlayerPos(playerid, spX, spY, spZ);
  22. GetPlayerFacingAngle(playerid, spA);
  23.  
  24. if(sscanf(params, "i", id))
  25. {
  26. SendClientMessage(playerid, -1, "/spike [1-2]");
  27. SendClientMessage(playerid, -1, "1 - Mali");
  28. SendClientMessage(playerid, -1, "2 - Veliki");
  29.  
  30. return 1;
  31. }
  32. if(id == 1)
  33. {
  34. if(Spike1Kreiran[playerid] == false && Spike2Kreiran[playerid] == false)
  35. {
  36. Spike1[playerid] = CreateObject(2899, spX+5, spY, spZ-0.83, 0.0, 0.0, spA+180);
  37. Spike1Kreiran[playerid] = true;
  38. SendClientMessage(playerid, -1, "Postavili ste mali spike.");
  39. }
  40. else return SendClientMessage(playerid, -1, "Vec imate kreiran spike.");
  41. }
  42. else if(id == 2)
  43. {
  44. if(Spike2Kreiran[playerid] == false && Spike1Kreiran[playerid] == false)
  45. {
  46. Spike2[playerid] = CreateObject(2892, spX+5, spY, spZ-0.95, 0.0, 0.0, spA+180);
  47. Spike2Kreiran[playerid] = true;
  48. SendClientMessage(playerid, -1, "Postavili ste veliki spike.");
  49. }
  50. else return SendClientMessage(playerid, -1, "Vec imate kreiran spike.");
  51. }
  52. else return SendClientMessage(playerid, -1, "Pogresan ID spike-a (1-2).");
  53. return 1;
  54. }
  55. /////////////////////////////////////////////////////////////////////////////
  56. CMD:destroyspike(playerid, params[])
  57. {
  58. new id;
  59. if(sscanf(params, "i", id)) return SendClientMessage(playerid,-1, "/unistispike [1-2]");
  60. if(id == 1)
  61. {
  62. if(Spike1Kreiran[playerid] == true)
  63. {
  64. DestroyObject(Spike1[playerid]);
  65. SendClientMessage(playerid, -1, "Unistili ste mali spike.");
  66. Spike1Kreiran[playerid] = false;
  67. }
  68. else return SendClientMessage(playerid, -1, "Mali spike nije kreiran.");
  69. }
  70. else if(id == 2)
  71. {
  72. if(Spike2Kreiran[playerid] == true)
  73. {
  74. DestroyObject(Spike2[playerid]);
  75. SendClientMessage(playerid, -1, "Unistili ste veliki spike.");
  76. Spike2Kreiran[playerid] = false;
  77. }
  78. else return SendClientMessage(playerid, -1, "Veliki spike nije kreiran.");
  79. }
  80. else return SendClientMessage(playerid, -1, "Pogresan ID spike-a [1-2].");
  81. return 1;
  82. }
  83.  
  84. ////////////////////////////////////////////////////////////////////
  85. public OnPlayerUpdate(playerid)
  86. {
  87. ///////////////////////////////////////////////////////////////////////
  88. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  89. {
  90. if(IsPlayerInRangeOfPoint(playerid, 3.0, spX+5, spY, spZ-0.83))
  91. {
  92. if(Spike1Kreiran[playerid] == 1)
  93. {
  94. PopPlayerTires(playerid);
  95. }
  96. }
  97.  
  98. }
  99.  
  100.  
  101. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  102. {
  103. if(IsPlayerInRangeOfPoint(playerid, 3.0, spX+5, spY, spZ-0.95))
  104. {
  105. if(Spike2Kreiran[playerid] == 1)
  106. {
  107. PopPlayerTires(playerid);
  108. }
  109. }
  110.  
  111. }
  112. return 1;
  113. }
  114. /////////////////////////
  115. stock PopPlayerTires(playerid)
  116. {
  117. new vehicleid = GetPlayerVehicleID(playerid);
  118. new panels, doors, lights, tires;
  119. GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
  120. tires = encode_tires(1, 1, 1, 1);
  121. UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, 15);
  122. }
  123.  
  124. encode_tires(tires1, tires2, tires3, tires4) {
  125.  
  126. return tires1 | (tires2 << 1) | (tires3 << 2) | (tires4 << 3);
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement