FlacoBey

Untitled

Jan 9th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 32.31 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdktools>
  3. #include <sdkhooks>
  4.  
  5. #pragma semicolon 1
  6. #pragma tabsize 0
  7.  
  8. #define ZOMBIECLASS_SMOKER    1
  9. #define ZOMBIECLASS_BOOMER    2
  10. #define ZOMBIECLASS_HUNTER    3
  11. #define ZOMBIECLASS_SPITTER   4
  12. #define ZOMBIECLASS_JOCKEY    5
  13. #define ZOMBIECLASS_CHARGER   6
  14. #define ZOMBIECLASS_WITCH     7
  15. #define ZOMBIECLASS_TANK      8
  16.  
  17. new bool:lateLoad;
  18. char sDataFilePath[PLATFORM_MAX_PATH];
  19.  
  20. char Message[32];
  21. HintIndex[2048+1];
  22. HintEntity[2048+1];
  23.  
  24. public APLRes:AskPluginLoad2(Handle:plugin, bool:late, String:error[], errMax)
  25. {
  26.     lateLoad = late;
  27.     return APLRes_Success;    
  28. }
  29.  
  30. public OnPluginStart()
  31. {
  32.     if (lateLoad)
  33.     {
  34.         for (new client = 1; client <= MaxClients; client++)
  35.         {
  36.             if (IsClientInGame(client))
  37.             {
  38.                 OnClientPutInServer(client);
  39.             }
  40.         }
  41.     }
  42.     BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/specials_damage_with_headshot.ini");
  43.     if (!FileExists(sDataFilePath))
  44.     {
  45.         new Handle:open_path = OpenFile(sDataFilePath, "w");
  46.         WriteFileLine(open_path, "");
  47.         CloseHandle(open_path);
  48.         PrintToServer("Error Code: WSP-EC-01A");
  49.         KvWriteToFile(sDataFilePath);
  50.     }
  51. }
  52.  
  53. void KvWriteToFile(const char[] path)
  54. {
  55.     //smoker
  56.     KeyValues kv = new KeyValues("damage_modifier_specials");
  57.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_autoshotgun/damage_specials", 1);
  58.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_hunting_rifle/damage_specials", 1);
  59.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol/damage_specials", 1);
  60.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_ak47/damage_specials", 1);
  61.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle/damage_specials", 1);
  62.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pumpshotgun/damage_specials", 1);
  63.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_awp/damage_specials", 1);
  64.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_chrome/damage_specials", 1);
  65.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol_magnum/damage_specials", 1);
  66.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_spas/damage_specials", 1);
  67.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg/damage_specials", 1);
  68.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_mp5 /damage_specials", 1);
  69.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_silenced/damage_specials", 1);
  70.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_military/damage_specials", 1);
  71.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_sg552/damage_specials", 1);
  72.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_scout/damage_specials", 1);
  73.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_m60/damage_specials", 1);
  74.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_desert/damage_specials", 1);
  75.     //smoker headshot
  76.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_autoshotgun/damage_specials_headshot", 1);
  77.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_hunting_rifle/damage_specials_headshot", 1);
  78.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol/damage_specials_headshot", 1);
  79.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_ak47/damage_specials_headshot", 1);
  80.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle/damage_specials_headshot", 1);
  81.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pumpshotgun/damage_specials_headshot", 1);
  82.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_awp/damage_specials_headshot", 1);
  83.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_chrome/damage_specials_headshot", 1);
  84.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol_magnum/damage_specials_headshot", 1);
  85.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_spas/damage_specials_headshot", 1);
  86.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg/damage_specials_headshot", 1);
  87.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_mp5 /damage_specials_headshot", 1);
  88.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_silenced/damage_specials_headshot", 1);
  89.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_military/damage_specials_headshot", 1);
  90.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_sg552/damage_specials_headshot", 1);
  91.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_scout/damage_specials_headshot", 1);
  92.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_m60/damage_specials_headshot", 1);
  93.     kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_desert/damage_specials_headshot", 1);
  94.     //boomer
  95.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_autoshotgun/damage_specials", 1);
  96.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_hunting_rifle/damage_specials", 1);
  97.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol/damage_specials", 1);
  98.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_ak47/damage_specials", 1);
  99.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle/damage_specials", 1);
  100.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pumpshotgun/damage_specials", 1);
  101.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_awp/damage_specials", 1);
  102.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_chrome/damage_specials", 1);
  103.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol_magnum/damage_specials", 1);
  104.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_spas/damage_specials", 1);
  105.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg/damage_specials", 1);
  106.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_mp5 /damage_specials", 1);
  107.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_silenced/damage_specials", 1);
  108.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_military/damage_specials", 1);
  109.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_sg552/damage_specials", 1);
  110.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_scout/damage_specials", 1);
  111.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_m60/damage_specials", 1);
  112.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_desert/damage_specials", 1);
  113.     //boomer headshot
  114.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_autoshotgun/damage_specials_headshot", 1);
  115.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_hunting_rifle/damage_specials_headshot", 1);
  116.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol/damage_specials_headshot", 1);
  117.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_ak47/damage_specials_headshot", 1);
  118.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle/damage_specials_headshot", 1);
  119.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pumpshotgun/damage_specials_headshot", 1);
  120.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_awp/damage_specials_headshot", 1);
  121.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_chrome/damage_specials_headshot", 1);
  122.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol_magnum/damage_specials_headshot", 1);
  123.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_spas/damage_specials_headshot", 1);
  124.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg/damage_specials_headshot", 1);
  125.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_mp5 /damage_specials_headshot", 1);
  126.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_silenced/damage_specials_headshot", 1);
  127.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_military/damage_specials_headshot", 1);
  128.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_sg552/damage_specials_headshot", 1);
  129.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_scout/damage_specials_headshot", 1);
  130.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_m60/damage_specials_headshot", 1);
  131.     kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_desert/damage_specials_headshot", 1);
  132.     //hunter
  133.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_autoshotgun/damage_specials", 1);
  134.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_hunting_rifle/damage_specials", 1);
  135.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol/damage_specials", 1);
  136.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_ak47/damage_specials", 1);
  137.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle/damage_specials", 1);
  138.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pumpshotgun/damage_specials", 1);
  139.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_awp/damage_specials", 1);
  140.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_chrome/damage_specials", 1);
  141.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol_magnum/damage_specials", 1);
  142.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_spas/damage_specials", 1);
  143.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg/damage_specials", 1);
  144.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_mp5 /damage_specials", 1);
  145.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_silenced/damage_specials", 1);
  146.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_military/damage_specials", 1);
  147.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_sg552/damage_specials", 1);
  148.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_scout/damage_specials", 1);
  149.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_m60/damage_specials", 1);
  150.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_desert/damage_specials", 1);
  151.     //hunter headshot
  152.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_autoshotgun/damage_specials_headshot", 1);
  153.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_hunting_rifle/damage_specials_headshot", 1);
  154.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol/damage_specials_headshot", 1);
  155.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_ak47/damage_specials_headshot", 1);
  156.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle/damage_specials_headshot", 1);
  157.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pumpshotgun/damage_specials_headshot", 1);
  158.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_awp/damage_specials_headshot", 1);
  159.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_chrome/damage_specials_headshot", 1);
  160.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol_magnum/damage_specials_headshot", 1);
  161.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_spas/damage_specials_headshot", 1);
  162.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg/damage_specials_headshot", 1);
  163.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_mp5 /damage_specials_headshot", 1);
  164.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_silenced/damage_specials_headshot", 1);
  165.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_military/damage_specials_headshot", 1);
  166.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_sg552/damage_specials_headshot", 1);
  167.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_scout/damage_specials_headshot", 1);
  168.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_m60/damage_specials_headshot", 1);
  169.     kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_desert/damage_specials_headshot", 1);
  170.     //spitter
  171.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_autoshotgun/damage_specials", 1);
  172.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_hunting_rifle/damage_specials", 1);
  173.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol/damage_specials", 1);
  174.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_ak47/damage_specials", 1);
  175.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle/damage_specials", 1);
  176.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pumpshotgun/damage_specials", 1);
  177.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_awp/damage_specials", 1);
  178.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_chrome/damage_specials", 1);
  179.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol_magnum/damage_specials", 1);
  180.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_spas/damage_specials", 1);
  181.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg/damage_specials", 1);
  182.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_mp5 /damage_specials", 1);
  183.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_silenced/damage_specials", 1);
  184.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_military/damage_specials", 1);
  185.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_sg552/damage_specials", 1);
  186.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_scout/damage_specials", 1);
  187.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_m60/damage_specials", 1);
  188.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_desert/damage_specials", 1);
  189.     //spitter headshot
  190.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_autoshotgun/damage_specials_headshot", 1);
  191.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_hunting_rifle/damage_specials_headshot", 1);
  192.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol/damage_specials_headshot", 1);
  193.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_ak47/damage_specials_headshot", 1);
  194.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle/damage_specials_headshot", 1);
  195.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pumpshotgun/damage_specials_headshot", 1);
  196.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_awp/damage_specials_headshot", 1);
  197.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_chrome/damage_specials_headshot", 1);
  198.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol_magnum/damage_specials_headshot", 1);
  199.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_spas/damage_specials_headshot", 1);
  200.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg/damage_specials_headshot", 1);
  201.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_mp5 /damage_specials_headshot", 1);
  202.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_silenced/damage_specials_headshot", 1);
  203.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_military/damage_specials_headshot", 1);
  204.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_sg552/damage_specials_headshot", 1);
  205.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_scout/damage_specials_headshot", 1);
  206.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_m60/damage_specials_headshot", 1);
  207.     kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_desert/damage_specials_headshot", 1);
  208.     //jockey
  209.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_autoshotgun/damage_specials", 1);
  210.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_hunting_rifle/damage_specials", 1);
  211.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol/damage_specials", 1);
  212.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_ak47/damage_specials", 1);
  213.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle/damage_specials", 1);
  214.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pumpshotgun/damage_specials", 1);
  215.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_awp/damage_specials", 1);
  216.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_chrome/damage_specials", 1);
  217.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol_magnum/damage_specials", 1);
  218.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_spas/damage_specials", 1);
  219.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg/damage_specials", 1);
  220.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_mp5 /damage_specials", 1);
  221.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_silenced/damage_specials", 1);
  222.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_military/damage_specials", 1);
  223.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_sg552/damage_specials", 1);
  224.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_scout/damage_specials", 1);
  225.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_m60/damage_specials", 1);
  226.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_desert/damage_specials", 1);
  227.     //jockey headshot
  228.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_autoshotgun/damage_specials_headshot", 1);
  229.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_hunting_rifle/damage_specials_headshot", 1);
  230.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol/damage_specials_headshot", 1);
  231.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_ak47/damage_specials_headshot", 1);
  232.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle/damage_specials_headshot", 1);
  233.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pumpshotgun/damage_specials_headshot", 1);
  234.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_awp/damage_specials_headshot", 1);
  235.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_chrome/damage_specials_headshot", 1);
  236.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol_magnum/damage_specials_headshot", 1);
  237.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_spas/damage_specials_headshot", 1);
  238.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg/damage_specials_headshot", 1);
  239.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_mp5 /damage_specials_headshot", 1);
  240.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_silenced/damage_specials_headshot", 1);
  241.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_military/damage_specials_headshot", 1);
  242.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_sg552/damage_specials_headshot", 1);
  243.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_scout/damage_specials_headshot", 1);
  244.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_m60/damage_specials_headshot", 1);
  245.     kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_desert/damage_specials_headshot", 1);
  246.    
  247.     //Charger
  248.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_autoshotgun/damage_specials", 1);
  249.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_hunting_rifle/damage_specials", 1);
  250.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol/damage_specials", 1);
  251.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_ak47/damage_specials", 1);
  252.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle/damage_specials", 1);
  253.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pumpshotgun/damage_specials", 1);
  254.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_awp/damage_specials", 1);
  255.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_chrome/damage_specials", 1);
  256.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol_magnum/damage_specials", 1);
  257.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_spas/damage_specials", 1);
  258.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg/damage_specials", 1);
  259.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_mp5 /damage_specials", 1);
  260.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_silenced/damage_specials", 1);
  261.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_military/damage_specials", 1);
  262.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_sg552/damage_specials", 1);
  263.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_scout/damage_specials", 1);
  264.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_m60/damage_specials", 1);
  265.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_desert/damage_specials", 1);
  266.     //Charger headshot
  267.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_autoshotgun/damage_specials_headshot", 1);
  268.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_hunting_rifle/damage_specials_headshot", 1);
  269.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol/damage_specials_headshot", 1);
  270.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_ak47/damage_specials_headshot", 1);
  271.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle/damage_specials_headshot", 1);
  272.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pumpshotgun/damage_specials_headshot", 1);
  273.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_awp/damage_specials_headshot", 1);
  274.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_chrome/damage_specials_headshot", 1);
  275.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol_magnum/damage_specials_headshot", 1);
  276.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_spas/damage_specials_headshot", 1);
  277.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg/damage_specials_headshot", 1);
  278.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_mp5 /damage_specials_headshot", 1);
  279.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_silenced/damage_specials_headshot", 1);
  280.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_military/damage_specials_headshot", 1);
  281.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_sg552/damage_specials_headshot", 1);
  282.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_scout/damage_specials_headshot", 1);
  283.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_m60/damage_specials_headshot", 1);
  284.     kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_desert/damage_specials_headshot", 1);
  285.    
  286.     //Tank headshot
  287.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_autoshotgun/damage_specials", 1);
  288.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_hunting_rifle/damage_specials", 1);
  289.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol/damage_specials", 1);
  290.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_ak47/damage_specials", 1);
  291.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle/damage_specials", 1);
  292.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pumpshotgun/damage_specials", 1);
  293.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_awp/damage_specials", 1);
  294.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_chrome/damage_specials", 1);
  295.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol_magnum/damage_specials", 1);
  296.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_spas/damage_specials", 1);
  297.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg/damage_specials", 1);
  298.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_mp5 /damage_specials", 1);
  299.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_silenced/damage_specials", 1);
  300.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_military/damage_specials", 1);
  301.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_sg552/damage_specials", 1);
  302.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_scout/damage_specials", 1);
  303.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_m60/damage_specials", 1);
  304.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_desert/damage_specials", 1);
  305.     //Tank headshot
  306.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_autoshotgun/damage_specials_headshot", 1);
  307.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_hunting_rifle/damage_specials_headshot", 1);
  308.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol/damage_specials_headshot", 1);
  309.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_ak47/damage_specials_headshot", 1);
  310.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle/damage_specials_headshot", 1);
  311.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pumpshotgun/damage_specials_headshot", 1);
  312.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_awp/damage_specials_headshot", 1);
  313.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_chrome/damage_specials_headshot", 1);
  314.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol_magnum/damage_specials_headshot", 1);
  315.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_spas/damage_specials_headshot", 1);
  316.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg/damage_specials_headshot", 1);
  317.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_mp5 /damage_specials_headshot", 1);
  318.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_silenced/damage_specials_headshot", 1);
  319.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_military/damage_specials_headshot", 1);
  320.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_sg552/damage_specials_headshot", 1);
  321.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_scout/damage_specials_headshot", 1);
  322.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_m60/damage_specials_headshot", 1);
  323.     kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_desert/damage_specials_headshot", 1);
  324.     kv.ExportToFile(path);
  325.  
  326.     delete kv;
  327. }
  328.  
  329. public OnClientPutInServer(client)
  330. {
  331.     SDKHook(client, SDKHook_TraceAttack, OnTakeDamage);
  332. }
  333.  
  334. public OnClientDisconnect(client)
  335. {
  336.     SDKUnhook(client, SDKHook_TraceAttack, OnTakeDamage);
  337. }
  338.  
  339. public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup)
  340. {
  341.     if (!(damagetype & DMG_BURN || damagetype & DMG_BLAST))
  342.     {
  343.         if (IsValidClient(attacker))
  344.         {
  345.             if(IsValidClient(victim))
  346.             {
  347.                 decl String:classname[64];
  348.                 GetClientWeapon(attacker, classname, sizeof(classname));
  349.                 KeyValues kv = new KeyValues("damage_modifier_specials");
  350.                 if (kv.ImportFromFile(sDataFilePath))
  351.                 {
  352.                     if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 1)
  353.                     {
  354.                         if (KvJumpToKey(kv, "ZOMBIECLASS_SMOKER", true))
  355.                         {
  356.                             if (KvJumpToKey(kv, classname, true))
  357.                             {
  358.                                 new num = KvGetNum(kv, "damage_specials", 1);
  359.                                 DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message);
  360.                                 damage = (damage * 0) + num;
  361.                                 if(hitgroup == 1)
  362.                                 {
  363.                                     num = KvGetNum(kv, "damage_specials_headshot", 1);
  364.                                     damage = (damage * 0) + num;
  365.                                 }
  366.                                 return Plugin_Changed;
  367.                             }
  368.                         }
  369.                     }
  370.                     else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 2)
  371.                     {
  372.                         if (KvJumpToKey(kv, "ZOMBIECLASS_BOOMER", true))
  373.                         {
  374.                             if (KvJumpToKey(kv, classname, true))
  375.                             {
  376.                                 new num = KvGetNum(kv, "damage_specials", 1);
  377.                                 DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message);
  378.                                 damage = (damage * 0) + num;
  379.                                 if(hitgroup == 1)
  380.                                 {
  381.                                     num = KvGetNum(kv, "damage_specials_headshot", 1);
  382.                                     damage = (damage * 0) + num;
  383.                                 }
  384.                                 return Plugin_Changed;
  385.                             }
  386.                         }
  387.                     }
  388.                     else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 3)
  389.                     {
  390.                         if (KvJumpToKey(kv, "ZOMBIECLASS_HUNTER", true))
  391.                         {
  392.                             if (KvJumpToKey(kv, classname, true))
  393.                             {
  394.                                 new num = KvGetNum(kv, "damage_specials", 1);
  395.                                 DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message);
  396.                                 damage = (damage * 0) + num;
  397.                                 if(hitgroup == 1)
  398.                                 {
  399.                                     num = KvGetNum(kv, "damage_specials_headshot", 1);
  400.                                     damage = (damage * 0) + num;
  401.                                 }
  402.                                 return Plugin_Changed;
  403.                             }
  404.                         }
  405.                     }
  406.                     else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 4)
  407.                     {
  408.                         if (KvJumpToKey(kv, "ZOMBIECLASS_SPITTER", true))
  409.                         {
  410.                             if (KvJumpToKey(kv, classname, true))
  411.                             {
  412.                                 new num = KvGetNum(kv, "damage_specials", 1);
  413.                                 DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message);
  414.                                 damage = (damage * 0) + num;
  415.                                 if(hitgroup == 1)
  416.                                 {
  417.                                     num = KvGetNum(kv, "damage_specials_headshot", 1);
  418.                                     damage = (damage * 0) + num;
  419.                                 }
  420.                                 return Plugin_Changed;
  421.                             }
  422.                         }
  423.                     }
  424.                     else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 5)
  425.                     {
  426.                         if (KvJumpToKey(kv, "ZOMBIECLASS_JOCKEY", true))
  427.                         {
  428.                             if (KvJumpToKey(kv, classname, true))
  429.                             {
  430.                                 new num = KvGetNum(kv, "damage_specials", 1);
  431.                                 DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message);
  432.                                 damage = (damage * 0) + num;
  433.                                 if(hitgroup == 1)
  434.                                 {
  435.                                     num = KvGetNum(kv, "damage_specials_headshot", 1);
  436.                                     damage = (damage * 0) + num;
  437.                                 }
  438.                                 return Plugin_Changed;
  439.                             }
  440.                         }
  441.                     }
  442.                     else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 6)
  443.                     {
  444.                         if (KvJumpToKey(kv, "ZOMBIECLASS_CHARGER", true))
  445.                         {
  446.                             if (KvJumpToKey(kv, classname, true))
  447.                             {
  448.                                 new num = KvGetNum(kv, "damage_specials", 1);
  449.                                 DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message);
  450.                                 damage = (damage * 0) + num;
  451.                                 if(hitgroup == 1)
  452.                                 {
  453.                                     num = KvGetNum(kv, "damage_specials_headshot", 1);
  454.                                     damage = (damage * 0) + num;
  455.                                 }
  456.                                 return Plugin_Changed;
  457.                             }
  458.                         }
  459.                     }
  460.                     else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 7)
  461.                     {
  462.                         if (KvJumpToKey(kv, "ZOMBIECLASS_TANK", true))
  463.                         {
  464.                             if (KvJumpToKey(kv, classname, true))
  465.                             {
  466.                                 new num = KvGetNum(kv, "damage_specials", 1);
  467.                                 DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message);
  468.                                 damage = (damage * 0) + num;
  469.                                 if(hitgroup == 1)
  470.                                 {
  471.                                     num = KvGetNum(kv, "damage_specials_headshot", 1);
  472.                                     damage = (damage * 0) + num;
  473.                                 }
  474.                                 return Plugin_Changed;
  475.                             }
  476.                         }
  477.                     }
  478.                 }
  479.             }
  480.         }
  481.     }
  482.     return Plugin_Continue;
  483. }
  484.  
  485. stock void DisplayInstructorHint(int target, float fTime, float fHeight, float fRange, bool bFollow, bool bShowOffScreen, char[] sIconOnScreen, char[] sIconOffScreen, char[] sCmd, bool bShowTextAlways, int iColor[3], char sText[32])
  486. {
  487.     char sBuffer[32];
  488.  
  489.     FormatEx(sBuffer, sizeof(sBuffer), "si_%d", target);
  490.     DispatchKeyValue(target, "targetname", sBuffer);
  491.     DispatchKeyValue(HintEntity[target], "hint_target", sBuffer);
  492.     DispatchKeyValue(HintEntity[target], "hint_name", sBuffer);
  493.     DispatchKeyValue(HintEntity[target], "hint_replace_key", sBuffer);
  494.  
  495.     FormatEx(sBuffer, sizeof(sBuffer), "%d", !bFollow);
  496.     DispatchKeyValue(HintEntity[target], "hint_static", sBuffer);
  497.     DispatchKeyValue(HintEntity[target], "hint_timeout", "0.0");
  498.  
  499.     FormatEx(sBuffer, sizeof(sBuffer), "%d", RoundToFloor(fHeight));
  500.     DispatchKeyValue(HintEntity[target], "hint_icon_offset", sBuffer);
  501.  
  502.     FormatEx(sBuffer, sizeof(sBuffer), "%d", RoundToFloor(fRange));
  503.     DispatchKeyValue(HintEntity[target], "hint_range", sBuffer);
  504.  
  505.     FormatEx(sBuffer, sizeof(sBuffer), "%d", !bShowOffScreen);
  506.     DispatchKeyValue(HintEntity[target], "hint_nooffscreen", sBuffer);
  507.  
  508.     DispatchKeyValue(HintEntity[target], "hint_icon_onscreen", sIconOnScreen);
  509.     DispatchKeyValue(HintEntity[target], "hint_icon_offscreen", sIconOffScreen);
  510.  
  511.     DispatchKeyValue(HintEntity[target], "hint_binding", sCmd);
  512.  
  513.     // Shows text behind walls (false limits distance of seeing hint)
  514.     FormatEx(sBuffer, sizeof(sBuffer), "%d", bShowTextAlways);
  515.     DispatchKeyValue(HintEntity[target], "hint_forcecaption", sBuffer);
  516.  
  517.     FormatEx(sBuffer, sizeof(sBuffer), "%d %d %d", iColor[0], iColor[1], iColor[2]);
  518.     DispatchKeyValue(HintEntity[target], "hint_color", sBuffer);
  519.  
  520.     //ReplaceString(sText, sizeof(sText), "\n", " ");
  521.     DispatchKeyValue(HintEntity[target], "hint_caption", sText);
  522.     DispatchKeyValue(HintEntity[target], "hint_activator_caption", sText);
  523.  
  524.     DispatchKeyValue(HintEntity[target], "hint_flags", "0");
  525.     DispatchKeyValue(HintEntity[target], "hint_display_limit", "0");
  526.     DispatchKeyValue(HintEntity[target], "hint_suppress_rest", "1");
  527.     DispatchKeyValue(HintEntity[target], "hint_instance_type", "2");
  528.     DispatchKeyValue(HintEntity[target], "hint_auto_start", "false"); //true
  529.     DispatchKeyValue(HintEntity[target], "hint_local_player_only", "true");
  530.     DispatchKeyValue(HintEntity[target], "hint_allow_nodraw_target", "true");
  531.  
  532.     //DispatchKeyValue(HintEntity[target], "hint_pulseoption", "1");
  533.     //DispatchKeyValue(HintEntity[target], "hint_alphaoption", "1");
  534.     //DispatchKeyValue(HintEntity[target], "hint_shakeoption", "1");
  535.  
  536.     DispatchSpawn(HintEntity[target]);
  537.     AcceptEntityInput(HintEntity[target], "ShowHint");
  538.  
  539.     HintIndex[target] = EntIndexToEntRef(HintEntity[target]);
  540. }
  541.  
  542. stock bool IsIncapped(int client)
  543. {
  544.     return (GetEntProp(client, Prop_Send, "m_isIncapacitated", 1) > 0);
  545. }
  546.  
  547. public IsValidClient(client)
  548. {
  549.     if (client <= 0)
  550.         return false;
  551.        
  552.     if (client > MaxClients)
  553.         return false;
  554.        
  555.     if (!IsClientInGame(client))
  556.         return false;
  557.        
  558.     if (!IsPlayerAlive(client))
  559.         return false;
  560.  
  561.     return true;
  562. }
Advertisement
Add Comment
Please, Sign In to add comment