Advertisement
Guest User

Untitled

a guest
Aug 16th, 2013
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //by Proff116
  2.  
  3. #include <a_samp>
  4.  
  5. // Ïàðàìåòðû ñòîèìîñòè çàòðàò âûíîñëèâîñòè
  6. #define COST_STAMINA1 -5 // óñêîðåíèå íà âåëèêå (ïîñòîÿííîå íàæàòèå W)
  7. #define COST_STAMINA2 -15 // ïðûæîê íà âåëèêå
  8. #define COST_STAMINA3 -5 // îáû÷íîå óñêîðåíèå íà âåëèêå
  9. #define COST_STAMINA4 -5 //ñïðèíò (áûñòðûé áåã) ñ óñêîðåíèåì
  10. #define COST_STAMINA5 -5 //ïîñòîÿííûé ñïðèíò
  11. #define COST_STAMINA6 -10 //ïðûæîê
  12. #define COST_STAMINA7 -5 //áëèæíèé óäàð
  13. #define REG_STAMINA 5 //îññòàíîâëåíèå âûíîñëèâîñòè â ñåêóíäó
  14.  
  15. new
  16. timer,
  17. PlayerStamina[MAX_PLAYERS],
  18. PlayerText: StaminaTD[3][MAX_PLAYERS];
  19.  
  20. public OnFilterScriptInit()
  21. {
  22. for(new i, j = GetMaxPlayers(); i < j; i++)
  23. {
  24. PlayerStamina[i] = 100;
  25. CreatePlayerTD(i);
  26. }
  27. timer = SetTimer("Timer", 1000, 1);
  28. return 1;
  29. }
  30.  
  31. public OnFilterScriptExit()
  32. {
  33. for(new i, j = GetMaxPlayers(); i < j; i++)
  34. {
  35. DestroyPlayerTD(i);
  36. }
  37. KillTimer(timer);
  38. return 1;
  39. }
  40.  
  41. public OnPlayerConnect(playerid)
  42. {
  43. PlayerStamina[playerid] = 100;
  44. CreatePlayerTD(playerid);
  45. return 1;
  46. }
  47.  
  48. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  49. {
  50. if (newkeys & KEY_SPRINT)
  51. {
  52. if(IsPlayerByBicycle(playerid))
  53. {
  54. GivePlayerStamina(playerid, COST_STAMINA1);
  55. if(PlayerStamina[playerid] < 1) RemovePlayerFromVehicle(playerid);
  56. return 1;
  57. }
  58. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  59. {
  60. GivePlayerStamina(playerid, COST_STAMINA4);
  61. if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","IDLE_TIRED",4.0, 0, 1, 0, 0, 2000, 1);
  62. return 1;
  63. }
  64.  
  65. }
  66. else if (oldkeys & KEY_ACTION)
  67. {
  68. if(IsPlayerByBicycle(playerid))
  69. {
  70. GivePlayerStamina(playerid, COST_STAMINA2);
  71. if(PlayerStamina[playerid] < 1) RemovePlayerFromVehicle(playerid);
  72. return 1;
  73. }
  74. }
  75. else if(newkeys & KEY_JUMP)
  76. {
  77. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  78. {
  79. GivePlayerStamina(playerid, COST_STAMINA6);
  80. if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","KO_SKID_BACK",4.0, 0, 1, 0, 0, 0, 1);
  81. return 1;
  82. }
  83. }
  84. else if(newkeys & KEY_FIRE || newkeys == 144)
  85. {
  86. if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  87. {
  88. if(IsPlayerMeleeWeapon(playerid))
  89. {
  90. GivePlayerStamina(playerid, COST_STAMINA7);
  91. if(PlayerStamina[playerid] < 1) ApplyAnimation(playerid,"PED","HIT_WALL",4.0, 0, 1, 0, 0, 0, 1);
  92. return 1;
  93. }
  94. }
  95. }
  96. return 1;
  97. }
  98.  
  99. forward Timer();
  100. public Timer()
  101. {
  102. for(new i, j = GetMaxPlayers(); i < j; i++)
  103. {
  104. if(!IsPlayerConnected(i)) continue;
  105. new key[3]; GetPlayerKeys(i,key[0],key[1],key[2]);
  106. if(key[0] == KEY_SPRINT)
  107. {
  108. if(IsPlayerByBicycle(i))
  109. {
  110. GivePlayerStamina(i, COST_STAMINA3);
  111. if(PlayerStamina[i] < 1) RemovePlayerFromVehicle(i);
  112. return 1;
  113. }
  114. if(GetPlayerState(i) == PLAYER_STATE_ONFOOT)
  115. {
  116. GivePlayerStamina(i, COST_STAMINA5);
  117. if(PlayerStamina[i] < 1) ApplyAnimation(i,"PED","IDLE_TIRED",4.0, 0, 1, 0, 0, 2000, 1);
  118. return 1;
  119. }
  120. }
  121. GivePlayerStamina(i, REG_STAMINA);
  122. }
  123. return 1;
  124. }
  125.  
  126. stock IsPlayerMeleeWeapon(playerid)
  127. {
  128. switch(GetPlayerWeapon(playerid))
  129. {
  130. case 0..15, 43, 46: return 1;
  131. }
  132. return 0;
  133. }
  134.  
  135. stock IsPlayerByBicycle(playerid)
  136. {
  137. switch(GetVehicleModel(GetPlayerVehicleID(playerid)))
  138. {
  139. case 509, 481, 510: return 1;
  140. }
  141. return 0;
  142. }
  143.  
  144. stock GivePlayerStamina(playerid, stamina)
  145. {
  146. PlayerStamina[playerid] += stamina;
  147. if(PlayerStamina[playerid] < 0) PlayerStamina[playerid] = 0;
  148. else if(PlayerStamina[playerid] > 100) PlayerStamina[playerid] = 100;
  149. PlayerTextDrawHide(playerid,StaminaTD[2][playerid]);
  150. PlayerTextDrawTextSize(playerid,StaminaTD[2][playerid], 545.500000 + 0.58 * PlayerStamina[playerid], 0.000000);
  151. PlayerTextDrawShow(playerid,StaminaTD[2][playerid]);
  152. return 1;
  153. }
  154.  
  155. stock CreatePlayerTD(playerid)
  156. {
  157. StaminaTD[0][playerid] = CreatePlayerTextDraw(playerid,547.500000, 58.000000, "_");
  158. PlayerTextDrawBackgroundColor(playerid,StaminaTD[0][playerid], 255);
  159. PlayerTextDrawFont(playerid,StaminaTD[0][playerid], 1);
  160. PlayerTextDrawLetterSize(playerid,StaminaTD[0][playerid], 0.500000, 0.449999);
  161. PlayerTextDrawColor(playerid,StaminaTD[0][playerid], -1);
  162. PlayerTextDrawSetOutline(playerid,StaminaTD[0][playerid], 0);
  163. PlayerTextDrawSetProportional(playerid,StaminaTD[0][playerid], 1);
  164. PlayerTextDrawSetShadow(playerid,StaminaTD[0][playerid], 1);
  165. PlayerTextDrawUseBox(playerid,StaminaTD[0][playerid], 1);
  166. PlayerTextDrawBoxColor(playerid,StaminaTD[0][playerid], 255);
  167. PlayerTextDrawTextSize(playerid,StaminaTD[0][playerid], 605.500000, 0.000000);
  168. PlayerTextDrawSetSelectable(playerid,StaminaTD[0][playerid], 0);
  169.  
  170. StaminaTD[1][playerid] = CreatePlayerTextDraw(playerid,549.500000, 60.500000, "_");
  171. PlayerTextDrawBackgroundColor(playerid,StaminaTD[1][playerid], 255);
  172. PlayerTextDrawFont(playerid,StaminaTD[1][playerid], 1);
  173. PlayerTextDrawLetterSize(playerid,StaminaTD[1][playerid], 0.500000, 0.000000);
  174. PlayerTextDrawColor(playerid,StaminaTD[1][playerid], -1);
  175. PlayerTextDrawSetOutline(playerid,StaminaTD[1][playerid], 0);
  176. PlayerTextDrawSetProportional(playerid,StaminaTD[1][playerid], 1);
  177. PlayerTextDrawSetShadow(playerid,StaminaTD[1][playerid], 1);
  178. PlayerTextDrawUseBox(playerid,StaminaTD[1][playerid], 1);
  179. PlayerTextDrawBoxColor(playerid,StaminaTD[1][playerid], 33023);
  180. PlayerTextDrawTextSize(playerid,StaminaTD[1][playerid], 603.500000, 0.000000);
  181. PlayerTextDrawSetSelectable(playerid,StaminaTD[1][playerid], 0);
  182.  
  183. StaminaTD[2][playerid] = CreatePlayerTextDraw(playerid,549.500000, 60.500000, "_");
  184. PlayerTextDrawBackgroundColor(playerid,StaminaTD[2][playerid], 255);
  185. PlayerTextDrawFont(playerid,StaminaTD[2][playerid], 1);
  186. PlayerTextDrawLetterSize(playerid,StaminaTD[2][playerid], 0.500000, 0.000000);
  187. PlayerTextDrawColor(playerid,StaminaTD[2][playerid], -1);
  188. PlayerTextDrawSetOutline(playerid,StaminaTD[2][playerid], 0);
  189. PlayerTextDrawSetProportional(playerid,StaminaTD[2][playerid], 1);
  190. PlayerTextDrawSetShadow(playerid,StaminaTD[2][playerid], 1);
  191. PlayerTextDrawUseBox(playerid,StaminaTD[2][playerid], 1);
  192. PlayerTextDrawBoxColor(playerid,StaminaTD[2][playerid], 65535);
  193. PlayerTextDrawTextSize(playerid,StaminaTD[2][playerid], 545.500000, 0.000000);
  194. PlayerTextDrawSetSelectable(playerid,StaminaTD[2][playerid], 0);
  195.  
  196. for(new i; i < sizeof(StaminaTD); i++) PlayerTextDrawShow(playerid,StaminaTD[i][playerid]);
  197. return 1;
  198. }
  199.  
  200. stock DestroyPlayerTD(playerid)
  201. {
  202. for(new i; i < sizeof(StaminaTD); i++) PlayerTextDrawDestroy(playerid, StaminaTD[i][playerid]);
  203. return 1;
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement