FlacoBey

Untitled

Jun 18th, 2019
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.28 KB | None | 0 0
  1. #include <sdktools>
  2. #include <sdkhooks>
  3.  
  4. #pragma newdecls required
  5. #pragma semicolon 1
  6. #pragma tabsize 0
  7.  
  8. bool lateLoad;
  9.  
  10. float ForAllMelees = 3.0;
  11. float KatanaAndTopor = 8.0;
  12. float Machete = 3.0;
  13. float Crowbar = 3.0;
  14. float knife = 4.0;
  15.  
  16. float ForAllMeleesT = 0.0;
  17. float KatanaAndToporT = 3.0;
  18. float MacheteT = 3.0;
  19. float CrowbarT = 3.0;
  20. float knifeT = 1.0;
  21.  
  22. float ForAllMeleesC = 0.0;
  23. float KatanaAndToporC = 3.0;
  24. float MacheteC = 3.0;
  25. float CrowbarC = 3.0;
  26. float knifeC = 1.0;
  27.  
  28. float ForAllMeleesHead = 4.0;
  29. float KatanaAndToporHead = 10.0;
  30. float MacheteHead = 3.0;
  31. float CrowbarHead = 3.0;
  32. float knifeHead = 5.0;
  33.  
  34. float ForAllMeleesTHead = 4.0;
  35. float KatanaAndToporTHead = 20.0;
  36. float MacheteTHead = 3.0;
  37. float CrowbarTHead = 3.0;
  38. float knifeTHead = 8.0;
  39.  
  40. float ForAllMeleesCHead = 1.0;
  41. float KatanaAndToporCHead = 5.0;
  42. float MacheteCHead = 3.0;
  43. float CrowbarCHead = 3.0;
  44. float knifeCHead = 2.0;
  45.  
  46. public APLRes AskPluginLoad2(Handle plugin, bool late, char[] erro, int errMax)
  47. {
  48.     lateLoad = late;
  49.     return APLRes_Success;    
  50. }
  51.  
  52. public void OnPluginStart()
  53. {
  54.     if (lateLoad)
  55.     {
  56.         for (int client = 1; client <= MaxClients; client++)
  57.         {
  58.             if (IsClientInGame(client))
  59.             {
  60.                 OnClientPutInServer(client);
  61.             }
  62.         }
  63.     }
  64. }
  65.  
  66. public void OnClientPutInServer(int client)
  67. {
  68.     SDKHook(client, SDKHook_TraceAttack, OnTakeDamage);
  69. }
  70.  
  71. public void OnClientDisconnect(int client)
  72. {
  73.     SDKUnhook(client, SDKHook_TraceAttack, OnTakeDamage);
  74. }
  75.  
  76. public Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, int &damagetype, int &ammotype, int hitbox, int hitgroup)
  77. {
  78.     if (!(damagetype & DMG_BURN || damagetype & DMG_BLAST))
  79.     {
  80.         if (IsValidClient(attacker) && GetClientTeam(attacker) == 2)
  81.         {
  82.             if(IsValidClient(victim) && GetClientTeam(victim) == 3)
  83.             {
  84.                 char classname[64];
  85.                 GetClientWeapon(attacker, classname, sizeof(classname));
  86.                 if(StrEqual(classname, "weapon_melee"))
  87.                 {
  88.                     GetEntPropString(GetPlayerWeaponSlot(attacker, 1), Prop_Data, "m_strMapSetScriptName", classname, sizeof(classname));
  89.                 }
  90.                 else return Plugin_Continue;
  91.                 int vClass = GetEntProp(victim, Prop_Send, "m_zombieClass");
  92.                 switch(vClass)
  93.                 {
  94.                     case 6:
  95.                     {
  96.                         if(StrEqual(classname, "knife"))
  97.                         {
  98.                             damage = knifeC;
  99.                             if(hitgroup == 1) damage = knifeCHead;
  100.                             return Plugin_Changed;
  101.                         }
  102.                         else if(StrEqual(classname, "katana") || StrEqual(classname, "fireaxe"))
  103.                         {
  104.                             damage = KatanaAndToporC;
  105.                             if(hitgroup == 1) damage = KatanaAndToporCHead;
  106.                             return Plugin_Changed;
  107.                         }
  108.                         else if(StrEqual(classname, "machete"))
  109.                         {
  110.                             damage = MacheteC;
  111.                             if(hitgroup == 1) damage = MacheteCHead;
  112.                             return Plugin_Changed;
  113.                         }
  114.                         else if(StrEqual(classname, "crowbar"))
  115.                         {
  116.                             damage = CrowbarC;
  117.                             if(hitgroup == 1) damage = CrowbarCHead;
  118.                             return Plugin_Changed;
  119.                         }
  120.                         else
  121.                         {
  122.                             damage = ForAllMeleesC;
  123.                             if(hitgroup == 1) damage = ForAllMeleesCHead;
  124.                             return Plugin_Changed;
  125.                         }
  126.                     }
  127.                     case 8:
  128.                     {
  129.                         if(StrEqual(classname, "knife"))
  130.                         {
  131.                             damage = knifeT;
  132.                             if(hitgroup == 1) damage = knifeTHead;
  133.                             return Plugin_Changed;
  134.                         }
  135.                         else if(StrEqual(classname, "katana") || StrEqual(classname, "fireaxe"))
  136.                         {
  137.                             damage = KatanaAndToporT;
  138.                             if(hitgroup == 1) damage = KatanaAndToporTHead;
  139.                             return Plugin_Changed;
  140.                         }
  141.                         else if(StrEqual(classname, "machete"))
  142.                         {
  143.                             damage = MacheteT;
  144.                             if(hitgroup == 1) damage = MacheteTHead;
  145.                             return Plugin_Changed;
  146.                         }
  147.                         else if(StrEqual(classname, "crowbar"))
  148.                         {
  149.                             damage = CrowbarT;
  150.                             if(hitgroup == 1) damage = CrowbarTHead;
  151.                             return Plugin_Changed;
  152.                         }
  153.                         else
  154.                         {
  155.                             damage = ForAllMeleesT;
  156.                             if(hitgroup == 1) damage = ForAllMeleesTHead;
  157.                             return Plugin_Changed;
  158.                         }
  159.                     }
  160.                     default:
  161.                     {
  162.                         if(StrEqual(classname, "knife"))
  163.                         {
  164.                             damage = knife;
  165.                             if(hitgroup == 1) damage = knifeHead;
  166.                             return Plugin_Changed;
  167.                         }
  168.                         else if(StrEqual(classname, "katana") || StrEqual(classname, "fireaxe"))
  169.                         {
  170.                             damage = KatanaAndTopor;
  171.                             if(hitgroup == 1) damage = KatanaAndToporHead;
  172.                             return Plugin_Changed;
  173.                         }
  174.                         else if(StrEqual(classname, "machete"))
  175.                         {
  176.                             damage = Machete;
  177.                             if(hitgroup == 1) damage =  MacheteHead;
  178.                             return Plugin_Changed;
  179.                         }
  180.                         else if(StrEqual(classname, "crowbar"))
  181.                         {
  182.                             damage = Crowbar;
  183.                             if(hitgroup == 1) damage = CrowbarHead;
  184.                             return Plugin_Changed;
  185.                         }
  186.                         else
  187.                         {
  188.                             damage =  ForAllMelees;
  189.                             if(hitgroup == 1) damage = ForAllMeleesHead;
  190.                             return Plugin_Changed;
  191.                         }
  192.                     }
  193.                 }
  194.             }
  195.         }
  196.     }
  197.     return Plugin_Continue;
  198. }
  199.  
  200. public bool IsValidClient(int client)
  201. {
  202.     if (client <= 0)
  203.         return false;
  204.        
  205.     if (client > MaxClients)
  206.         return false;
  207.        
  208.     if (!IsClientInGame(client))
  209.         return false;
  210.        
  211.     if (!IsPlayerAlive(client))
  212.         return false;
  213.  
  214.     return true;
  215. }
Advertisement
Add Comment
Please, Sign In to add comment