Advertisement
Guest User

Untitled

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