Advertisement
Guest User

onplayergivedamage

a guest
Jun 4th, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.73 KB | None | 0 0
  1. public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) {
  2. if(damagedid != INVALID_PLAYER_ID) {
  3. if(togding[playerid] == 0) PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
  4. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) return 1;
  5. if(GetPlayerSurfingVehicleID(playerid) != INVALID_VEHICLE_ID) return 1;
  6.  
  7. new string[180];
  8. if(playerDeath[damagedid] == 0) {
  9. foreach(Player, i) {
  10. if(IsPlayerConnected(i) && IsPlayerLogged[i] == 1) {
  11. if(Spectate[i] == damagedid || Spectate[i] == playerid) {
  12. new victim[MAX_PLAYER_NAME], attacker[MAX_PLAYER_NAME];
  13. new weaponname[24];
  14. GetPlayerName(playerid, attacker, sizeof (attacker));
  15. GetPlayerName(damagedid, victim, sizeof (victim));
  16.  
  17. GetWeaponName(weaponid, weaponname, sizeof (weaponname));
  18. if(weaponid == 0) weaponname = "Fist";
  19. format(string, sizeof(string), "[DMG] %s did %.0f damage to %s using weapon %s.", attacker, amount, victim, weaponname);
  20. SCM(i, 0xFFADADFF, string);
  21. }
  22. }
  23. }
  24. }
  25. if(amount < 0) {
  26. format(string, sizeof(string), "AdmWarning: %s(%d) este suspectat de global kill. (damage: %.2f)",GetName(playerid),playerid,amount);
  27. if(GetPVarInt(playerid, "Cover") == 0) SendAdminMessage(COLOR_WARNING, string,1);
  28. KickEx(playerid);
  29. return 1;
  30. }
  31. for(new sf = 0; sf < MAX_SAFEZONES; sf++) {
  32. if(SafeZone[sf][szRange] >= 15) {
  33. if(PlayerToPoint(SafeZone[sf][szRange], playerid, SafeZone[sf][szX], SafeZone[sf][szY], SafeZone[sf][szZ])) {
  34. if(!IsPlayerInAnyVehicle(playerid) && !IsACop(playerid) && PlayerHit[playerid] != damagedid && PaintType[playerid] == 0 && InWar[PlayerInfo[playerid][pMember]] == 0) {
  35. SCM(playerid, COLOR_LIGHTRED, "Ai primit freeze timp de 5 secunde deoarece ai lovit pe cineva intr-o zona protejata.");
  36. TogglePlayerControllable(playerid, 0);
  37. SetTimerEx("UnFreezeStation", 5000, false, "i", playerid);
  38. SetPlayerArmedWeapon(playerid, 0);
  39. }
  40. }
  41. }
  42. }
  43. if(playerDeath[damagedid] == 0) {
  44. if(tazer[playerid] == 1 && IsACop(playerid) && weaponid == 24) {
  45. if(IsACop(damagedid)) return SCM(playerid, COLOR_WHITE, "Acel jucator este intr-un departament de politie..");
  46. if(PlayerCuffed[damagedid] == 1) return SCM(playerid, COLOR_WHITE, "Acel jucator este deja electrocutat.");
  47. if(PlayerInfo[damagedid][pSleeping] == 1) return SCM(playerid, COLOR_WHITE, "Acel jucator doarme.");
  48. if(GetDistanceBetweenPlayers(playerid, damagedid) < 15) {
  49. format(string, sizeof(string), "* %s tazed %s for 8 seconds.", GetName(playerid), GetNameEx(damagedid));
  50. ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  51. TogglePlayerControllable(damagedid, 0);
  52. PlayerCuffed[damagedid] = 1;
  53. PlayerCuffedTime[damagedid] = 8;
  54. return 1;
  55. }
  56. }
  57.  
  58. if(PlayerInfo[playerid][pMember] == PlayerInfo[damagedid][pMember] && InWar[PlayerInfo[playerid][pMember]] == 1) {
  59. new Float: HP;
  60. GetPlayerHealthEx(damagedid,HP);
  61. SetPlayerHealthEx(damagedid, HP);
  62. return 1;
  63. }
  64. if(InGame[playerid] == 1 && InGame[damagedid] == 1) {
  65. if(Team[playerid] == Team[damagedid]) {
  66. new Float: HP;
  67. GetPlayerHealthEx(damagedid,HP);
  68. SetPlayerHealthEx(damagedid, HP);
  69. return 1;
  70. }
  71. }
  72. if(weaponid == 34) {
  73. SetPlayerHealthEx(damagedid, 0.0);
  74. SetPlayerArmourEx(damagedid, 0.0);
  75. OnPlayerDeath(damagedid,playerid,weaponid);
  76. playerDeath[damagedid] = 1;
  77. return 1;
  78. }
  79. new Float: HP, Float: AP ;
  80. GetPlayerHealthEx(damagedid,HP);
  81. GetPlayerArmourEx(damagedid,AP);
  82. if(AP >= amount) SetPlayerArmourEx (damagedid, AP - amount);
  83. else if(AP <= 0) {
  84. new const Float: remainHP = HP - amount;
  85. SetPlayerHealthEx(damagedid, remainHP);
  86. if( remainHP <= 0 ) {
  87. OnPlayerDeath(damagedid, playerid, weaponid);
  88. playerDeath[damagedid] = 1;
  89. return 1;
  90. }
  91. }
  92. else {
  93. new const Float: remainHP = HP + (AP - amount);
  94. SetPlayerArmourEx(damagedid, 0.0);
  95. SetPlayerHealthEx(damagedid, remainHP);
  96. if( remainHP <= 0 )
  97. {
  98. OnPlayerDeath(damagedid, playerid, weaponid);
  99. playerDeath[damagedid] = 1;
  100. return 1;
  101. }
  102. }
  103. if(PlayerCuffed[damagedid] == 1) SetPlayerHealthEx(damagedid, 99);
  104. if(PlayerInfo[damagedid][pSleeping] == 1) SetPlayerHealthEx(damagedid, 99);
  105.  
  106. if(DMGTimer[damagedid] != 0) {
  107. Combo[playerid] ++;
  108. KillTimer(DMGTimer[damagedid]);
  109. KillTimer(DMGTimer[playerid]);
  110. }
  111. else Combo[playerid] = 0;
  112. new weapon[180];
  113. if(GetPlayerWeapon(playerid) == 0) weapon ="Fist";
  114. else GetWeaponName(weaponid, weapon, sizeof (weapon));
  115. if(PlayerInfo[damagedid][pShowDMG] == 1 && GetPVarInt(playerid, "Undercover") == 0) {
  116. if(Combo[playerid] != 0) format(string, sizeof(string), "%s~n~-%0.1f HP with %s (%dx)", GetName(playerid), amount, weapon, Combo[playerid]+1);
  117. else format(string, sizeof(string), "%s~n~-%0.1f HP with %s", GetName(playerid), amount, weapon);
  118. PlayerTextDrawSetString(damagedid, DMGTD[0], string);
  119. PlayerTextDrawShow(damagedid, DMGTD[0]);
  120. }
  121. DMGTimer[damagedid] = SetTimerEx("DamageInformer", 2000, false, "i", damagedid);
  122. if(PlayerInfo[playerid][pShowDMG] == 1) {
  123. if(Combo[playerid] != 0) format(string, sizeof(string), "%s~n~+%0.1f HP with %s (%dx)", GetName(damagedid), amount, weapon, Combo[playerid]+1);
  124. else format(string, sizeof(string), "%s~n~+%0.1f HP with %s", GetName(damagedid), amount, weapon);
  125. PlayerTextDrawSetString(playerid, DMGTD[1], string);
  126. PlayerTextDrawShow(playerid, DMGTD[1]);
  127. DMGTimer[playerid] = SetTimerEx("DamageInformer", 2000, false, "i", playerid);
  128. }
  129. }
  130. }
  131. return 1;
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement