FlacoBey

Untitled

Jan 1st, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdktools>
  3. #include <sdkhooks>
  4.  
  5. #pragma semicolon 1
  6.  
  7. #define ZOMBIECLASS_CHARGER 6
  8.  
  9. new bool:lateLoad;
  10. char sDataFilePath[PLATFORM_MAX_PATH];
  11.  
  12. public APLRes:AskPluginLoad2(Handle:plugin, bool:late, String:error[], errMax)
  13. {
  14.     lateLoad = late;
  15.     return APLRes_Success;    
  16. }
  17.  
  18. public OnPluginStart()
  19. {
  20.     if (lateLoad)
  21.     {
  22.         for (new client = 1; client <= MaxClients; client++)
  23.         {
  24.             if (IsClientInGame(client))
  25.             {
  26.                 OnClientPutInServer(client);
  27.             }
  28.         }
  29.     }
  30.     BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/weapons_damage.ini");
  31.     if (!FileExists(sDataFilePath))
  32.     {
  33.         PrintToServer("Error Code: WSP-EC-01A");
  34.         KvWriteToFile(sDataFilePath);
  35.     }
  36. }
  37.  
  38. void KvWriteToFile(const char[] path)
  39. {
  40.     KeyValues kv = new KeyValues("damage_modifier");
  41.     kv.SetNum("weapon_autoshotgun/damage_m", 1);
  42.     kv.SetNum("weapon_hunting_rifle/damage_m", 1);
  43.     kv.SetNum("weapon_pistol/damage_m", 1);
  44.     kv.SetNum("weapon_rifle_ak47/damage_m", 1);
  45.     kv.SetNum("weapon_rifle/damage_m", 1);
  46.     kv.SetNum("weapon_pumpshotgun/damage_m", 1);
  47.     kv.SetNum("weapon_sniper_awp/damage_m", 1);
  48.     kv.SetNum("weapon_machete/damage_m", 1);
  49.     kv.SetNum("weapon_fireaxe/damage_m", 1);
  50.  
  51.  
  52.     kv.ExportToFile(path);
  53.  
  54.     delete kv;
  55. }
  56.  
  57. public OnClientPutInServer(client)
  58. {
  59.     SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
  60. }
  61.  
  62. public OnClientDisconnect(client)
  63. {
  64.     SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
  65. }
  66.  
  67. public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)  
  68. {
  69.     KeyValues kv = new KeyValues("damage_modifier");
  70.     if (kv.ImportFromFile(sDataFilePath))
  71.     {
  72.         decl String:classname[64];
  73.         GetClientWeapon(attacker, classname, sizeof(classname));
  74.         if (KvJumpToKey(kv, classname, true))
  75.         {
  76.             int health = GetClientHealth(victim);
  77.             PrintToChatAll("%i", health);
  78.             new num = KvGetNum(kv, "damage_m", 0);
  79.             damage *= num;
  80.             return Plugin_Changed;
  81.         }
  82.     }
  83.  
  84.     return Plugin_Continue;
  85. }
  86.  
  87. stock bool bIsSurvivor(int client)
  88. {
  89.     return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
  90. }
Advertisement
Add Comment
Please, Sign In to add comment