Guest User

Kinetic

a guest
Apr 6th, 2009
919
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. //AI Blinkers by Kinetic
  2. #include <a_samp>
  3. #include <a_players>
  4.  
  5. //----[Quick Stats]-------------------------------------------------------------
  6. #define timerspeed 500 //Speed of the timer in milliseconds (1000 = 1 second)
  7. #define rightkey KEY_LOOK_RIGHT //The key you press to turn the right blinker on
  8. #define leftkey KEY_LOOK_LEFT //The key you press to turn the left blinker on
  9. //------------------------------------------------------------------------------
  10.  
  11. // PRESSED(newkeys, oldkeys, keys)
  12. #define PRESSED(%0,%1,%2) \
  13. ((((%0) & (%2)) == (%2)) && (((%1) & (%2)) != (%2)))
  14.  
  15. new tmpcar;
  16. new arrow[MAX_PLAYERS];
  17. new Step[MAX_PLAYERS];
  18. new blinks[MAX_PLAYERS];
  19. new blinker[MAX_PLAYERS];
  20. new Float:tmpx[MAX_PLAYERS],Float:tmpy[MAX_PLAYERS],Float:tmpz[MAX_PLAYERS],Float:tmpang[MAX_PLAYERS];
  21.  
  22. forward Blinker(playerid);
  23.  
  24. public OnFilterScriptExit()
  25. {
  26. for(new i=0; i<=GetMaxPlayers(); i++)
  27. {
  28. KillTimer(blinks[i]);
  29. DestroyObject(arrow[i]);
  30. }
  31. }
  32.  
  33. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  34. {
  35. if(PRESSED(newkeys, oldkeys, rightkey))
  36. {
  37. if(blinker[playerid] != 1)
  38. {
  39. KillTimer(blinks[playerid]);
  40. blinks[playerid] = SetTimer("Blinker", timerspeed, true);
  41. blinker[playerid] = 1;
  42. return 1;
  43. }
  44. if(blinker[playerid] == 1)
  45. {
  46. KillTimer(blinks[playerid]);
  47. DestroyObject(arrow[playerid]);
  48. blinker[playerid] = 0;
  49. return 1;
  50. }
  51. }
  52. if(PRESSED(newkeys, oldkeys, leftkey))
  53. {
  54. if(blinker[playerid] != 2)
  55. {
  56. KillTimer(blinks[playerid]);
  57. blinks[playerid] = SetTimer("Blinker", timerspeed, true);
  58. blinker[playerid] = 2;
  59. return 1;
  60. }
  61. if(blinker[playerid] == 2)
  62. {
  63. KillTimer(blinks[playerid]);
  64. DestroyObject(arrow[playerid]);
  65. blinker[playerid] = 0;
  66. return 1;
  67. }
  68. }
  69. return 1;
  70. }
  71.  
  72. public Blinker(playerid)
  73. {
  74. if(blinker[playerid] == 0)
  75. {
  76. KillTimer(blinks[playerid]);
  77. DestroyObject(arrow[playerid]);
  78. return 1;
  79. }
  80. if(blinker[playerid] == 1)
  81. {
  82. if(IsPlayerInAnyVehicle(playerid))
  83. {
  84. tmpcar = GetPlayerVehicleID(playerid);
  85. GetVehiclePos(tmpcar, tmpx[playerid], tmpy[playerid], tmpz[playerid]);
  86. GetVehicleZAngle(tmpcar, tmpang[playerid]);
  87. if(Step[playerid] == 0)
  88. {
  89. arrow[playerid] = CreateObject(1318, tmpx[playerid], tmpy[playerid], tmpz[playerid]+0.7, 90, tmpang[playerid]+89, 180);
  90. AttachObjectToPlayer(arrow[playerid], playerid, 0, 0, 1.7, 90, 89, 180);
  91. // GameTextForPlayer(playerid, "~g~>>>", 300, 4);
  92. Step[playerid] = 1;
  93. return 1;
  94. }
  95. if(Step[playerid] == 1)
  96. {
  97. DestroyObject(arrow[playerid]);
  98. Step[playerid] = 0;
  99. return 1;
  100. }
  101. }
  102. }
  103. if(blinker[playerid] == 2)
  104. {
  105. if(IsPlayerInAnyVehicle(playerid))
  106. {
  107. tmpcar = GetPlayerVehicleID(playerid);
  108. GetVehiclePos(tmpcar, tmpx[playerid], tmpy[playerid], tmpz[playerid]);
  109. GetVehicleZAngle(tmpcar, tmpang[playerid]);
  110. if(Step[playerid] == 0)
  111. {
  112. arrow[playerid] = CreateObject(1318, tmpx[playerid], tmpy[playerid], tmpz[playerid]+0.7, 90, tmpang[playerid]-89, 180);
  113. AttachObjectToPlayer(arrow[playerid], playerid, 0, 0, 1.7, 90, 269, 180);
  114. // GameTextForPlayer(playerid, "~g~<<<", 300, 4);
  115. Step[playerid] = 1;
  116. return 1;
  117. }
  118. if(Step[playerid] == 1)
  119. {
  120. DestroyObject(arrow[playerid]);
  121. Step[playerid] = 0;
  122. return 1;
  123. }
  124. }
  125. }
  126. return 1;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment