Advertisement
Guest User

Untitled

a guest
Dec 20th, 2012
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.35 KB | None | 0 0
  1. /*
  2. Postado pela equipe Play Evolution SA-MP
  3. Creditos reservados ao criador: Psycho Faus
  4.  
  5. Site: www.PlayEvolutionSamp.net
  6.  
  7. ---------------------------------------------------------------------------------------------
  8. - Play EvolutioN ™ - Tudo que você quiser para seu servidor SA-MP! -
  9. ---------------------------------------------------------------------------------------------
  10. - ******** ** ******** ** ** -
  11. - ** ** ** ** ** ** ** -
  12. - ******* ** ******** * * -
  13. - ** ** ** ** *** -
  14. - ** ******** ** ** *** -
  15. ---------------------------------------------------------------------------------------------
  16. - ******** ** ** ******* ** ** ** ********* ** ******* ** *** -
  17. - ** ** ** ** ** ** ** ** * ** ** ** ** * ** -
  18. - ******* ** ** ** ** ** ** ** * ** ** ** ** * ** -
  19. - ** ** ** ** ** ** ** ** * ** ** ** ** * ** -
  20. - ******** **** ******* ******** ****** * ** ******* *** ** -
  21. ---------------------------------------------------------------------------------------------
  22. */
  23. #include <a_samp>
  24.  
  25. #define SENSETIVE 0.42
  26. #define MP 100
  27.  
  28. #define HOLDING(%0) \
  29. ((newkeys & (%0)) == (%0))
  30.  
  31. new Text: ___[MP];
  32. new Text: __[MP];
  33. new Float:OH[MP];
  34. new Float:NH[MP];
  35. new Float:OP[MP];
  36. new Float:NP[MP];
  37. new timer[MP];
  38.  
  39. //------------------------------------------------------------------------------------------------------
  40.  
  41. public OnFilterScriptInit()
  42. {
  43. print("Sniper Privilege 0.3 by Faus aka Psycho loaded.");
  44. for(new i = 0; i < GetMaxPlayers(); i++)
  45. {
  46. if(IsPlayerConnected(i))
  47. {
  48. __[i] = TextDrawCreate(340,355,"-");
  49. TextDrawAlignment(__[i],0);
  50. TextDrawBackgroundColor(__[i],0x000000ff);
  51. TextDrawFont(__[i],2);
  52. TextDrawLetterSize(__[i],0.3,1.100000);
  53. TextDrawColor(__[i],0xffffffff);
  54. TextDrawSetOutline(__[i],1);
  55. TextDrawSetProportional(__[i],1);
  56. TextDrawSetShadow(__[i],1);
  57. ___[i] = TextDrawCreate(330,205,"-");
  58. TextDrawAlignment(___[i],0);
  59. TextDrawBackgroundColor(___[i],0x000000ff);
  60. TextDrawFont(___[i],2);
  61. TextDrawLetterSize(___[i],0.2,0.85);
  62. TextDrawColor(___[i],0xffffffff);
  63. TextDrawSetOutline(___[i],1);
  64. TextDrawSetProportional(___[i],1);
  65. TextDrawSetShadow(___[i],1);
  66. }
  67. }
  68. return 1;
  69. }
  70.  
  71. //------------------------------------------------------------------------------------------------------
  72.  
  73. public OnFilterScriptExit()
  74. {
  75. print("Sniper Privilege 0.3 by Faus aka Psycho unloaded.");
  76. for(new i = 0; i < GetMaxPlayers(); i++)
  77. {
  78. if(IsPlayerConnected(i))
  79. {
  80. TextDrawHideForPlayer(i,__[i]);
  81. TextDrawDestroy(__[i]);
  82. TextDrawHideForPlayer(i,___[i]);
  83. TextDrawDestroy(___[i]);
  84. KillTimer(timer[i]);
  85. }
  86. }
  87. return 1;
  88. }
  89.  
  90. //------------------------------------------------------------------------------------------------------
  91.  
  92. public OnPlayerConnect(playerid)
  93. {
  94. __[playerid] = TextDrawCreate(340,355,"-");
  95. TextDrawAlignment(__[playerid],0);
  96. TextDrawBackgroundColor(__[playerid],0x000000ff);
  97. TextDrawFont(__[playerid],2);
  98. TextDrawLetterSize(__[playerid],0.3,1.100000);
  99. TextDrawColor(__[playerid],0xffffffff);
  100. TextDrawSetOutline(__[playerid],1);
  101. TextDrawSetProportional(__[playerid],1);
  102. TextDrawSetShadow(__[playerid],1);
  103. ___[playerid] = TextDrawCreate(330,205,"-");
  104. TextDrawAlignment(___[playerid],0);
  105. TextDrawBackgroundColor(___[playerid],0x000000ff);
  106. TextDrawFont(___[playerid],2);
  107. TextDrawLetterSize(___[playerid],0.2,0.85);
  108. TextDrawColor(___[playerid],0xffffffff);
  109. TextDrawSetOutline(___[playerid],1);
  110. TextDrawSetProportional(___[playerid],1);
  111. TextDrawSetShadow(___[playerid],1);
  112. return 1;
  113. }
  114.  
  115. //------------------------------------------------------------------------------------------------------
  116.  
  117. public OnPlayerDisconnect(playerid,reason)
  118. {
  119. TextDrawHideForPlayer(playerid,__[playerid]);
  120. TextDrawDestroy(__[playerid]);
  121. TextDrawHideForPlayer(playerid,___[playerid]);
  122. TextDrawDestroy(___[playerid]);
  123. KillTimer(timer[playerid]);
  124. return 1;
  125. }
  126.  
  127. //------------------------------------------------------------------------------------------------------
  128.  
  129. public OnPlayerUpdate(playerid)
  130. {
  131. if(IsPlayerConnected(playerid))
  132. {
  133. GetPlayerHealth(playerid, NH[playerid]);
  134. if(NH[playerid] != OH[playerid])
  135. {
  136. OnPlayerHealthChange(playerid, NH[playerid], OH[playerid]);
  137. OH[playerid] = NH[playerid];
  138. }
  139. GetPlayerArmour(playerid, NP[playerid]);
  140. if(NP[playerid] != OP[playerid]){
  141. OnPlayerArmourChange(playerid, NP[playerid], OP[playerid]);
  142. OP[playerid] = NP[playerid];
  143. }
  144. }
  145. return 1;
  146. }
  147.  
  148. //------------------------------------------------------------------------------------------------------
  149.  
  150. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  151. {
  152. new string[256];
  153. new Float: HP, Float:AP;
  154. if (HOLDING(128))
  155. {
  156. new Float:x,Float:y,Float:z;
  157. for(new i = 0; i < GetMaxPlayers(); i++)
  158. {
  159. if(IsPlayerConnected(i) && IsPlayerAiming(playerid,i) && GetPlayerWeapon(playerid) == 34 && i != playerid)
  160. {
  161. GetPlayerPos(i,x,y,z);
  162. GetPlayerHealth(i,HP);
  163. GetPlayerArmour(i,AP);
  164. format(string,256,"~g~%s Distancia: %~r~%d m.~n~~g~Ping: ~r~%dms ~g~HP: ~r~%d.0 ~g~AP: ~r~%d.0 ~g~AMSL: ~r~%d m.~n~~g~Arma: ~r~%s(%d) ~g~Aiming: ~r~%s",BadSymbols(GetName(i)),floatround(GetDistanceBetweenPlayers(i,playerid)),GetPlayerPing(i),floatround(HP),floatround(AP),floatround(z),ReturnWeaponName(GetPlayerWeapon(i)),GetPlayerAmmo(i),IsPlayerAimingNew(i,playerid));
  165. TextDrawSetString(__[playerid],string);
  166. TextDrawShowForPlayer(playerid,__[playerid]);
  167. NormalPlaySound(i,1056);
  168. break;
  169. }
  170. }
  171. }
  172. if(!HOLDING(128))
  173. {
  174. TextDrawHideForPlayer(playerid,__[playerid]);
  175. }
  176. return 1;
  177. }
  178.  
  179. //------------------------------------------------------------------------------------------------------
  180.  
  181. forward OnPlayerHealthChange(playerid, Float:newhealth, Float:oldhealth);
  182. public OnPlayerHealthChange(playerid, Float:newhealth, Float:oldhealth)
  183. {
  184. new string[128];
  185. if(oldhealth > newhealth)
  186. {
  187. new Float:minus = oldhealth - newhealth;
  188. for(new i = 0; i < GetMaxPlayers(); i++)
  189. {
  190. if(IsPlayerConnected(i) && IsPlayerAiming(i,playerid) && GetDistanceBetweenPlayers(i,playerid) < 350 && i != playerid)
  191. {
  192. format(string,128,"~g~%s(%d) ~p~(%s) ~r~-%dhp",BadSymbols(GetName(i)),i,ReturnWeaponName(GetPlayerWeapon(i)),floatround(minus));
  193. TextDrawSetString(___[playerid],string);
  194. TextDrawShowForPlayer(playerid,___[playerid]);
  195. format(string,128,"~g~%s(%d) ~p~(%s) ~r~-%dhp",BadSymbols(GetName(playerid)),playerid,ReturnWeaponName(GetPlayerWeapon(playerid)),floatround(minus));
  196. TextDrawSetString(___[i],string);
  197. TextDrawShowForPlayer(i,___[i]);
  198. KillTimer(timer[playerid]);
  199. timer[playerid] = SetTimerEx("HideDamageTextDraw", 2500, 0, "d", playerid);
  200. KillTimer(timer[i]);
  201. timer[playerid] = SetTimerEx("HideDamageTextDraw", 2500, 0, "d", i);
  202. NormalPlaySound(i,1056);
  203. break;
  204. }
  205. }
  206. }
  207. return 1;
  208. }
  209.  
  210. //-----------------------------------------------------------------------------------------------------
  211.  
  212. forward OnPlayerArmourChange(playerid, Float:newarmour, Float:oldarmour);
  213. public OnPlayerArmourChange(playerid, Float:newarmour, Float:oldarmour)
  214. {
  215. new string[128];
  216. if(oldarmour > newarmour)
  217. {
  218. new Float:minus = oldarmour - newarmour;
  219. for(new i = 0; i < GetMaxPlayers(); i++)
  220. {
  221. if(IsPlayerConnected(i) && IsPlayerAiming(i,playerid) && GetDistanceBetweenPlayers(i,playerid) < 350 && i != playerid)
  222. {
  223. format(string,128,"~g~%s(%d) ~p~(%s) ~r~-%dap",BadSymbols(GetName(i)),i,ReturnWeaponName(GetPlayerWeapon(i)),floatround(minus));
  224. TextDrawSetString(___[playerid],string);
  225. TextDrawShowForPlayer(playerid,___[playerid]);
  226. format(string,128,"~g~%s(%d) ~p~(%s) ~r~-%dap",BadSymbols(GetName(playerid)),playerid,ReturnWeaponName(GetPlayerWeapon(playerid)),floatround(minus));
  227. TextDrawSetString(___[i],string);
  228. TextDrawShowForPlayer(i,___[i]);
  229. KillTimer(timer[playerid]);
  230. timer[playerid] = SetTimerEx("HideDamageTextDraw", 2500, 0, "d", playerid);
  231. KillTimer(timer[i]);
  232. timer[playerid] = SetTimerEx("HideDamageTextDraw", 2500, 0, "d", i);
  233. break;
  234. }
  235. }
  236. }
  237. return 1;
  238. }
  239.  
  240. //------------------------------------------------------------------------------------------------------
  241.  
  242. stock ReturnWeaponName(weaponid)
  243. {
  244. new weaponname[32];
  245. GetWeaponName(weaponid,weaponname,32);
  246. return weaponname;
  247. }
  248.  
  249. //------------------------------------------------------------------------------------------------------
  250.  
  251. stock BadSymbols(string[])
  252. {
  253. new result[256];
  254. for (new i; i < strlen(string); i++)
  255. {
  256. switch(string[i]) {
  257. case '[':result[i] = '(';
  258. case ']':result[i] = ')';
  259. default:result[i]=string[i];
  260. }
  261. }
  262. return result;
  263. }
  264.  
  265. //------------------------------------------------------------------------------------------------------
  266.  
  267. stock GetName(playerid){
  268. new Name[256];
  269. GetPlayerName(playerid,Name,MAX_PLAYER_NAME);
  270. return Name;
  271. }
  272.  
  273. //------------------------------------------------------------------------------------------------------
  274.  
  275. stock IsPlayerAiming(playerid, aimid)
  276. {
  277. new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
  278. GetPlayerPos(playerid, X1, Y1, Z1);
  279. GetPlayerPos(aimid, X2, Y2, Z2);
  280. new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  281. if(Distance < 350){
  282. new Float:A;
  283. GetPlayerFacingAngle(playerid, A);
  284. X1 += (Distance * floatsin(-A, degrees));
  285. Y1 += (Distance * floatcos(-A, degrees));
  286. Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  287. if(Distance < SENSETIVE){
  288. return true;
  289. }
  290. }
  291. return false;
  292. }
  293.  
  294. //------------------------------------------------------------------------------------------------------
  295.  
  296. stock IsPlayerAimingNew(playerid, aimid)
  297. {
  298. new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
  299. new string[32];
  300. GetPlayerPos(playerid, X1, Y1, Z1);
  301. GetPlayerPos(aimid, X2, Y2, Z2);
  302. new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  303. if(Distance < 350 && GetPlayerWeapon(aimid) != 0){
  304. new Float:A;
  305. GetPlayerFacingAngle(playerid, A);
  306. X1 += (Distance * floatsin(-A, degrees));
  307. Y1 += (Distance * floatcos(-A, degrees));
  308. Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  309. if(Distance < SENSETIVE){
  310. format(string,32,"Yes");
  311. return string;
  312. }
  313. }
  314. format(string,32,"No");
  315. return string;
  316. }
  317.  
  318. //------------------------------------------------------------------------------------------------------
  319.  
  320. stock IsPlayerAimingNew2(playerid, aimid)
  321. {
  322. new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
  323. GetPlayerPos(playerid, X1, Y1, Z1);
  324. GetPlayerPos(aimid, X2, Y2, Z2);
  325. new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  326. if(Distance < 350){
  327. new Float:A;
  328. GetPlayerFacingAngle(playerid, A);
  329. X1 += (Distance * floatsin(-A, degrees));
  330. Y1 += (Distance * floatcos(-A, degrees));
  331. Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  332. if(Distance < 1.5){
  333. return true;
  334. }
  335. }
  336. return false;
  337. }
  338.  
  339. //------------------------------------------------------------------------------------------------------
  340.  
  341. forward Float:GetDistanceBetweenPlayers(p1,p2);
  342. stock Float:GetDistanceBetweenPlayers(p1,p2)
  343. {
  344. new Float:x11,Float:y11,Float:z11,Float:x3,Float:y3,Float:z3;
  345. if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
  346. {
  347. return -1.00;
  348. }
  349. GetPlayerPos(p1,x11,y11,z11);
  350. GetPlayerPos(p2,x3,y3,z3);
  351. return floatsqroot(floatpower(floatabs(floatsub(x3,x11)),2)+floatpower(floatabs(floatsub(y3,y11)),2)+floatpower(floatabs(floatsub(z3,z11)),2));
  352. }
  353.  
  354. //------------------------------------------------------------------------------------------------------
  355.  
  356. forward HideDamageTextDraw(playerid);
  357. public HideDamageTextDraw(playerid)
  358. {
  359. TextDrawHideForPlayer(playerid,___[playerid]);
  360. return 1;
  361. }
  362.  
  363. //------------------------------------------------------------------------------------------------------
  364.  
  365. forward NormalPlaySound(playerid,sid);
  366. public NormalPlaySound(playerid,sid)
  367. {
  368. new Float:x,Float:y,Float:z;
  369. GetPlayerPos(playerid,x,y,z);
  370. PlayerPlaySound(playerid,sid,x,y,z);
  371. return 1;
  372. }
  373.  
  374. //------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement