Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.61 KB | None | 0 0
  1. public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
  2. {
  3. if(damagedid != INVALID_PLAYER_ID)
  4. {
  5. // Both players should see each other
  6. if (!IsPlayerStreamedIn(damagedid, playerid)) {
  7. return 0;
  8. }
  9.  
  10. if(PlayerInfo[damagedid][pSleeping] == 1) return 0;
  11. if(PlayerCuffed[damagedid]) return 0;
  12. if(InWar[PlayerInfo[playerid][pMember]] == InWar[PlayerInfo[damagedid][pMember]] && PlayerInfo[playerid][pMember] != 0 && PlayerInfo[playerid][pMember] == PlayerInfo[damagedid][pMember] && InWar[PlayerInfo[playerid][pMember]] != 0) return 0;
  13.  
  14. switch(weaponid) { // anti aimka
  15. case 24: { // deagle
  16. if(amount < 46.2 && (GetDistanceBetweenPlayers(playerid, damagedid) > 2) && IsPlayerPaused2(damagedid)) {
  17. format(gString, sizeof(gString), "%s was kicked by AdmBot, reason: Possible Aimka", GetName(playerid), wName(weaponid));
  18. if(gPlayerLogged[playerid]) SendClientMessageToAll(COLOR_LIGHTRED, gString);
  19. KickEx(playerid);
  20. PlayerInfo[playerid][pKicked] = true;
  21. return 0;
  22. }
  23. }
  24. case 30, 31: { // ak, m4
  25. if(amount < 9.9 && (GetDistanceBetweenPlayers(playerid, damagedid) > 2) && IsPlayerPaused2(damagedid)) {
  26. format(gString, sizeof(gString), "%s was kicked by AdmBot, reason: Possible Aimka", GetName(playerid), wName(weaponid));
  27. if(gPlayerLogged[playerid]) SendClientMessageToAll(COLOR_LIGHTRED, gString);
  28. KickEx(playerid);
  29. PlayerInfo[playerid][pKicked] = true;
  30. return 0;
  31. }
  32. } case 33: { // rifle
  33. if(amount < 24.75 && (GetDistanceBetweenPlayers(playerid, damagedid) > 3) && IsPlayerPaused2(damagedid)) {
  34. format(gString, sizeof(gString), "%s was kicked by AdmBot, reason: Possible Aimka", GetName(playerid), wName(weaponid));
  35. if(gPlayerLogged[playerid]) SendClientMessageToAll(COLOR_LIGHTRED, gString);
  36. KickEx(playerid);
  37. PlayerInfo[playerid][pKicked] = true;
  38. return 0;
  39. }
  40. } case 29: { // mp5
  41. if(amount < 8.25 && (GetDistanceBetweenPlayers(playerid, damagedid) > 3) && IsPlayerPaused2(damagedid)) {
  42. format(gString, sizeof(gString), "%s was kicked by AdmBot, reason: Possible Aimka", GetName(playerid), wName(weaponid));
  43. if(gPlayerLogged[playerid]) SendClientMessageToAll(COLOR_LIGHTRED, gString);
  44. KickEx(playerid);
  45. PlayerInfo[playerid][pKicked] = true;
  46. return 0;
  47. }
  48. } case 25: { // gauge shotgun
  49. if(amount == 10.00 && (GetDistanceBetweenPlayers(playerid, damagedid) > 3) && IsPlayerPaused2(damagedid)) {
  50. format(gString, sizeof(gString), "%s was kicked by AdmBot, reason: Possible Aimka", GetName(playerid), wName(weaponid));
  51. if(gPlayerLogged[playerid]) SendClientMessageToAll(COLOR_LIGHTRED, gString);
  52. KickEx(playerid);
  53. PlayerInfo[playerid][pKicked] = true;
  54. return 0;
  55. }
  56. }
  57. }
  58.  
  59. /*if(weaponid == 31 && amount < 9.9) {
  60. format(gString, sizeof(gString), "%s was kicked by AdmBot, reason: Possible Aimka", GetName(playerid), wName(weaponid));
  61. if(gPlayerLogged[playerid]) SendClientMessageToAll(COLOR_LIGHTRED, gString);
  62. Kick(playerid);
  63. PlayerInfo[playerid][pKicked] = true;
  64. }*/
  65.  
  66.  
  67. if(weaponid && weaponid != 40 && weaponid != 46 && PlayerInfo[playerid][pKicked] == false && (PlayerInfo[playerid][pPaintBallG] == 0 || PlayerInfo[playerid][pPaintBallG] && weaponid != 24 && weaponid != 31 && weaponid != 16 && weaponid != 41 && weaponid != 5 && weaponid != 9)) {
  68. if(PlayerInfo[playerid][pWeapons][GetWeaponSlot(weaponid)] != weaponid) {
  69. format(gString, sizeof(gString), "%s was kicked by AdmBot, reason: Weapon Hack(%s)", GetName(playerid), wName(weaponid));
  70. if(gPlayerLogged[playerid]) SendClientMessageToAll(COLOR_LIGHTRED, gString);
  71. Kick(playerid);
  72. PlayerInfo[playerid][pKicked] = true;
  73. }
  74. }
  75.  
  76. /*if(!IsPlayerPaused2(damagedid) && (weaponid == WEAPON_DEAGLE || weaponid == WEAPON_M4 || weaponid == WEAPON_MP5 || weaponid == WEAPON_AK47))
  77. {
  78. new surf = GetPlayerSurfingVehicleID(playerid), tsurf = GetPlayerSurfingVehicleID(damagedid);
  79. if(surf == INVALID_VEHICLE_ID && tsurf == INVALID_VEHICLE_ID && !IsPlayerInAnyVehicle(damagedid))
  80. {
  81. new Float:fOriginX, Float:fOriginY, Float:fOriginZ, Float:fHitPosX, Float:fHitPosY, Float:fHitPosZ;
  82. GetPlayerLastShotVectors(playerid, fOriginX, fOriginY, fOriginZ, fHitPosX, fHitPosY, fHitPosZ);
  83. if(!IsPlayerInRangeOfPoint(damagedid, 3.0, fHitPosX, fHitPosY, fHitPosZ)) {
  84. PlayerInfo[playerid][pPoorAim]++;
  85. if(PlayerInfo[playerid][pPoorAim] >= 2) {
  86. PlayerInfo[playerid][pPoorAim] = 0;
  87. if(PlayerInfo[playerid][pKicked] == false) {
  88. format(gString, sizeof gString, "%s was kicked by AdmBot, reason: Poor Aimbot(3/3 Warnings)", GetName(playerid));
  89. SendClientMessageToAll(COLOR_LIGHTRED, gString);
  90. KickEx(playerid);
  91. }
  92. }
  93. }
  94. }
  95.  
  96.  
  97. new Float:HitPosX, Float:HitPosY, Float:HitPosZ, Float:Temp;
  98. GetPlayerLastShotVectors(playerid, Temp, Temp, Temp, HitPosX, HitPosY, HitPosZ);
  99. if(!IsPlayerInRangeOfPoint(playerid, 5.0, HitPosX, HitPosY, HitPosZ) && !IsPlayerFacingCoords(playerid, HitPosX, HitPosY, 8)) {
  100. PlayerInfo[playerid][pAIMKA] ++;
  101. if(PlayerInfo[playerid][pAIMKA] >= 2) {
  102. PlayerInfo[playerid][pAIMKA] = 0;
  103.  
  104. if(PlayerInfo[playerid][pKicked] == false) {
  105. format(gString, sizeof gString, "%s was kicked by AdmBot, reason: Silent Aimbot(3/3 Warnings)", GetName(playerid));
  106. SendClientMessageToAll(COLOR_LIGHTRED, gString);
  107. KickEx(playerid);
  108. }
  109. }
  110. }
  111. }*/
  112.  
  113.  
  114. if(weaponid == 0) {
  115. amount = 1 + PlayerInfo[playerid][pMuscleLevel] * 0.5;
  116. if(amount > 5) amount = 5;
  117. }
  118.  
  119. if(weaponid == 34) amount = 300;
  120.  
  121. if(weaponid == 34 && PlayerInfo[playerid][pMember] == 11 && GoChase[playerid] != damagedid) amount = 0;
  122.  
  123. if(amount < 0 && !PlayerInfo[playerid][pKicked]) {
  124. SetPlayerVirtualWorld(playerid, playerid+1);
  125. SCM(playerid, COLOR_RED, "You were kicked by AdmBot, reason: fake damage cheats.");
  126. KickEx(playerid);
  127. format(gString, sizeof gString, "%s[%d] was kicked by AdmBot, reason: fake damage (%0.2f) with %s", GetName(playerid), playerid, amount, wName(weaponid));
  128. ABroadCast(COLOR_RED, gString,1);
  129. }
  130.  
  131. if(amount > 10.0 && weaponid == 0 && !PlayerInfo[playerid][pKicked]) {
  132. SetPlayerVirtualWorld(playerid, playerid+1);
  133. SCM(playerid, COLOR_RED, "You were kicked by AdmBot, reason: fake damage cheats.");
  134. KickEx(playerid);
  135. format(gString, sizeof gString, "%s[%d] was kicked by AdmBot, reason: fake damage (%0.2f) with %s", GetName(playerid), playerid, amount, wName(weaponid));
  136. ABroadCast(COLOR_RED, gString,1);
  137. }
  138.  
  139. //if(IsAMember(playerid) && IsAMember(damagedid) && InWar[PlayerInfo[playerid][pMember]] == InWar[PlayerInfo[playerid][pMember]]) PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
  140.  
  141. /*
  142. if(IsAMember(playerid) && IsAMember(damagedid) && antiaimka == 1)
  143. {
  144. if((InWar[PlayerInfo[playerid][pMember]] == InWar[PlayerInfo[damagedid][pMember]]) && InWar[PlayerInfo[playerid][pMember]] > 0)
  145. {
  146.  
  147. new Float:pGiver[3];
  148. new Float:pTaker[3];
  149. new Float:pObj[3];
  150. new obj;
  151.  
  152. GetPlayerPos(playerid, pGiver[0], pGiver[1], pGiver[2]);
  153. GetPlayerPos(damagedid, pTaker[0], pTaker[1], pTaker[2]);
  154.  
  155. obj = CA_RayCastLine(pTaker[0],pTaker[1],pTaker[2], pGiver[0],pGiver[1],pGiver[2], pObj[0], pObj[1], pObj[2]);
  156.  
  157. if(obj != 0 && obj != 20000) {
  158. amount = 0;
  159. return 0;
  160. }
  161. else {
  162. PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
  163. }
  164. }
  165. }*/
  166. PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
  167.  
  168. /*if(PlayerCuffed[damagedid] == 1)
  169. {
  170. SetPlayerHealthEx(damagedid,100);
  171. }*/
  172.  
  173. if(tazer[playerid] == 1 && IsACop(playerid) && weaponid == 23)
  174. {
  175. if(IsACop(damagedid)) return SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}You can't taze Cops/FBI/National Guard.");
  176. if(PlayerCuffed[damagedid] == 1) return SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}ERROR: This player is already tazed.");
  177. if(PlayerInfo[damagedid][pSleeping] == 1) return SendClientMessage(playerid, COLOR_WHITE, "ERROR: You can't taze this player because he/she is on sleep.");
  178. if(GetDistanceBetweenPlayers(playerid,damagedid) < 50.0)
  179. {
  180. format(gString, sizeof(gString), "* You were Tazed by %s for 8 seconds.", GetName(playerid));
  181. SendClientMessage(damagedid, COLOR_LIGHTBLUE, gString);
  182. format(gString, sizeof(gString), "* You Tazed %s for 8 seconds.", GetName(damagedid));
  183. SendClientMessage(playerid, COLOR_LIGHTBLUE, gString);
  184. format(gString, sizeof(gString), "* %s shoots with his Tazer at %s, and tazed him.", GetName(playerid) ,GetName(damagedid));
  185. ProxDetector(30.0, playerid, gString, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  186. GameTextForPlayer(damagedid, "~r~~h~Tazed", 2500, 3);
  187. TogglePlayerControllableEx(damagedid, 0);
  188. PlayerCuffed[damagedid] = 1;
  189. PlayerCuffedTime[damagedid] = 8;
  190. amount = 0;
  191. return 0;
  192. }
  193. }
  194.  
  195.  
  196. /*
  197. if(PlayerInfo[playerid][pPaintBallG] == PlayerInfo[damagedid][pPaintBallG] && PlayerInfo[damagedid][pPaintBallG] == 3) {
  198. if(Iter_Contains(team_1, playerid) && Iter_Contains(team_1, damagedid)) {
  199. amount = 0;
  200. return 0;
  201. }
  202. if(Iter_Contains(team_2, playerid) && Iter_Contains(team_2, damagedid)) {
  203. amount = 0;
  204. return 0;
  205. }
  206. }*/
  207.  
  208.  
  209. if(PlayerInfo[playerid][pPaintBallG]) PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
  210.  
  211. /* Hit Calculates - Ksenon damage system v2.0*/
  212.  
  213. if(PlayerIsDead[damagedid] == false)
  214. {
  215. new Float:fOriginX, Float:fOriginY, Float:fOriginZ,
  216. Float:fHitPosX, Float:fHitPosY, Float:fHitPosZ;
  217.  
  218. GetPlayerLastShotVectors(playerid, fOriginX, fOriginY, fOriginZ, fHitPosX, fHitPosY, fHitPosZ);
  219.  
  220. foreachex(Admins,i) {
  221. if(Spectate[i] == playerid)
  222. {
  223. SCMF(i, 0xff8080FF, "DMG: %s did %f damage to %s using weapon %s [hit: %f %f %f]", PlayerInfo[playerid][pNormalName], amount, PlayerInfo[damagedid][pNormalName], wName(weaponid), fHitPosX, fHitPosY, fHitPosZ );
  224. }
  225. }
  226.  
  227. if(GoChase[playerid] != damagedid) {
  228. DamageFeedAddHitTaken(damagedid, playerid, amount, weaponid);
  229. }
  230. DamageFeedAddHitGiven(playerid, damagedid, amount, weaponid);
  231.  
  232. new Float:armour; GetPlayerArmourEx(damagedid,armour);
  233. if(armour < 1)
  234. {
  235. new Float:health;
  236. GetPlayerHealthEx(damagedid, health);
  237. SetPlayerHealthEx(damagedid, health-amount);
  238. if(IsPlayerPaused2(damagedid) && (health-amount) < 1) OnPlayerDeath(damagedid, playerid, weaponid);
  239. lasthit[damagedid] = playerid;
  240. lastreason[damagedid] = weaponid;
  241. lasthittime[damagedid] = gettime();
  242. return 0;
  243. }
  244. if(armour > 0)
  245. {
  246. if(armour < amount)
  247. {
  248. new Float:health; GetPlayerHealthEx(damagedid, health);
  249. new Float:value = amount-armour;
  250. SetPlayerArmourEx(damagedid,0);
  251. SetPlayerHealthEx(damagedid,health-value);
  252. if(IsPlayerPaused2(damagedid) && (health-value) < 1) OnPlayerDeath(damagedid, playerid, weaponid);
  253. lasthit[damagedid] = playerid;
  254. lastreason[damagedid] = weaponid;
  255. lasthittime[damagedid] = gettime();
  256. return 0;
  257. }
  258. if(armour > amount)
  259. {
  260. SetPlayerArmourEx(damagedid,armour-amount);
  261. lasthit[damagedid] = playerid;
  262. lastreason[damagedid] = weaponid;
  263. lasthittime[damagedid] = gettime();
  264. return 0;
  265. }
  266. return 0;
  267. }
  268. }
  269. return 0;
  270. }
  271. return 0;
  272. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement