Advertisement
Guest User

Untitled

a guest
Nov 9th, 2011
1,101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define MAX_AMMO 500
  4.  
  5. new mid;
  6. new Float:hp, Float:armour;
  7. new Killing[MAX_PLAYERS];
  8. new MKill[MAX_PLAYERS];
  9. new MAmmo[MAX_PLAYERS];
  10. new MinigunC[MAX_PLAYERS];
  11.  
  12. forward OnMinigunAttacking(targetid);
  13.  
  14. stock Float:GetDistanceToMinigun(minigunid,targetid)
  15. {
  16. new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  17. if (!IsPlayerConnected(targetid)) {
  18. return -1.00;
  19. }
  20. GetObjectPos(minigunid,x1,y1,z1);
  21. GetPlayerPos(targetid,x2,y2,z2);
  22. return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  23. }
  24.  
  25. stock GetTargetStats(Float:X, Float:Y, Float:tX, Float:tY, &Float:Angle)
  26. {
  27. Angle = atan2(Y-tY, X-tX);
  28. Angle = floatsub(Angle, 90.0);
  29. if(Angle < 0.0){Angle = floatadd(Angle, 360.0);}
  30. }
  31.  
  32. stock CreateMinigun(targetid, Float:X, Float:Y, Float:Z, Float:Rx, Float:Ry, Float:Rz)
  33. {
  34. mid = CreateObject(2985, X, Y, Z,Rx, Ry, Rz, 0.0);
  35. Killing[targetid] = 1;
  36. }
  37.  
  38. stock DeleteMinigun(targetid, modo)
  39. {
  40. DestroyObject(mid);
  41. Killing[targetid] = 0;
  42. MinigunC[targetid] = 0;
  43. KillTimer(MKill[targetid]);
  44. if(modo == 0){SendClientMessage(targetid,0x2E66BFAA,"MINIGUN: {FFFFFF}Kifogyott a Minigun tölténye!");}
  45. else if(modo == 1){SendClientMessage(targetid,0x2E66BFAA,"MINIGUN: {FFFFFF}Törölted a Minigunt!");}
  46. }
  47.  
  48. public OnPlayerDisconnect(playerid)
  49. {
  50. if(Killing[playerid] == 1){Killing[playerid] = 0;}
  51. return 1;
  52. }
  53.  
  54. public OnPlayerSpawn(playerid)
  55. {
  56. Killing[playerid] = 1;
  57. SetPlayerHealth(playerid, 100.0);
  58. SetPlayerArmour(playerid, 100.0);
  59. return 1;
  60. }
  61.  
  62. public OnPlayerDeath(playerid, killerid, reason)
  63. {
  64. Killing[playerid] = 0;
  65. return 1;
  66. }
  67.  
  68. public OnPlayerCommandText(playerid, cmdtext[])
  69. {
  70. if(strcmp("/createminigun", cmdtext, true, 10) == 0)
  71. {
  72. new Float:x, Float:y, Float:z;
  73. MinigunC[playerid] = 1;
  74. GetPlayerPos(playerid, x, y, z);
  75. CreateMinigun(playerid, x-1.5, y-1.5, z-1.0, 0.0, 0.0, 0.0);
  76. SendClientMessage(playerid,0x2E66BFAA,"MINIGUN: {FFFFFF}A Minigun elindításához használd az /UseMinigun parancsot, a Minigun törléséhez használd a /DeleteMinigun parancsot!");
  77. return 1;
  78. }
  79. if(strcmp("/useminigun", cmdtext, true, 10) == 0)
  80. {
  81. MAmmo[playerid] = MAX_AMMO;
  82. if(MinigunC[playerid] == 1){MKill[playerid] = SetTimerEx("OnMinigunAttacking", 250, 1, "i", playerid);}
  83. SendClientMessage(playerid,0x2E66BFAA,"MINIGUN: {FFFFFF}Elindítotttad a Minigunt!");
  84. return 1;
  85. }
  86. if(strcmp("/deleteminigun", cmdtext, true, 10) == 0)
  87. {
  88. DeleteMinigun(playerid, 1);
  89. return 1;
  90. }
  91. return 0;
  92. }
  93.  
  94. public OnMinigunAttacking(targetid)
  95. {
  96. if(Killing[targetid] == 1)
  97. {
  98. if(GetDistanceToMinigun(mid, targetid < 15.5))
  99. {
  100. MAmmo[targetid] -= 1.5;
  101. if(MAmmo[targetid] < 0.1){DeleteMinigun(targetid, 0);}
  102. else if(MAmmo[targetid] > 0.1)
  103. {
  104. new Float:mx, Float:my, Float:mz, Float:xp, Float:yp, Float:zp, Float:ang;
  105. GetObjectPos(mid, mx, my, mz);
  106. GetPlayerPos(targetid, xp, yp, zp);
  107. GetPlayerFacingAngle(targetid, ang);
  108. GetPlayerHealth(targetid, hp);
  109. GetPlayerArmour(targetid, armour);
  110. GetTargetStats(xp, yp, mx, my, ang);
  111. SetObjectRot(mid,0.0,0.0,ang+90.0);
  112. PlayerPlaySound(targetid, 1057,0.0,0.0,0.0);
  113. if(armour > 0.1){SetPlayerArmour(targetid, armour-3.5);}
  114. else if(armour < 0.1){SetPlayerHealth(targetid, hp-4.5);}
  115. }
  116. }
  117. }
  118. }
  119.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement