#include #include #include #pragma semicolon 1 #pragma tabsize 0 #define ZOMBIECLASS_SMOKER 1 #define ZOMBIECLASS_BOOMER 2 #define ZOMBIECLASS_HUNTER 3 #define ZOMBIECLASS_SPITTER 4 #define ZOMBIECLASS_JOCKEY 5 #define ZOMBIECLASS_CHARGER 6 #define ZOMBIECLASS_WITCH 7 #define ZOMBIECLASS_TANK 8 new bool:lateLoad; char sDataFilePath[PLATFORM_MAX_PATH]; char Message[32]; HintIndex[2048+1]; HintEntity[2048+1]; public APLRes:AskPluginLoad2(Handle:plugin, bool:late, String:error[], errMax) { lateLoad = late; return APLRes_Success; } public OnPluginStart() { if (lateLoad) { for (new client = 1; client <= MaxClients; client++) { if (IsClientInGame(client)) { OnClientPutInServer(client); } } } BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/specials_damage_with_headshot.ini"); if (!FileExists(sDataFilePath)) { new Handle:open_path = OpenFile(sDataFilePath, "w"); WriteFileLine(open_path, ""); CloseHandle(open_path); PrintToServer("Error Code: WSP-EC-01A"); KvWriteToFile(sDataFilePath); } } void KvWriteToFile(const char[] path) { //smoker KeyValues kv = new KeyValues("damage_modifier_specials"); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_autoshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_hunting_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_ak47/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pumpshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_awp/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_chrome/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol_magnum/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_spas/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_mp5 /damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_silenced/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_military/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_sg552/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_scout/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_m60/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_desert/damage_specials", 1); //smoker headshot kv.SetNum("ZOMBIECLASS_SMOKER/weapon_autoshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_hunting_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_ak47/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pumpshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_awp/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_chrome/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_pistol_magnum/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_shotgun_spas/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_mp5 /damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_smg_silenced/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_military/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_sg552/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_sniper_scout/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_m60/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SMOKER/weapon_rifle_desert/damage_specials_headshot", 1); //boomer kv.SetNum("ZOMBIECLASS_BOOMER/weapon_autoshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_hunting_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_ak47/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pumpshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_awp/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_chrome/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol_magnum/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_spas/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_mp5 /damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_silenced/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_military/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_sg552/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_scout/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_m60/damage_specials", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_desert/damage_specials", 1); //boomer headshot kv.SetNum("ZOMBIECLASS_BOOMER/weapon_autoshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_hunting_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_ak47/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pumpshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_awp/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_chrome/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_pistol_magnum/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_shotgun_spas/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_mp5 /damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_smg_silenced/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_military/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_sg552/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_sniper_scout/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_m60/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_BOOMER/weapon_rifle_desert/damage_specials_headshot", 1); //hunter kv.SetNum("ZOMBIECLASS_HUNTER/weapon_autoshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_hunting_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_ak47/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pumpshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_awp/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_chrome/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol_magnum/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_spas/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_mp5 /damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_silenced/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_military/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_sg552/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_scout/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_m60/damage_specials", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_desert/damage_specials", 1); //hunter headshot kv.SetNum("ZOMBIECLASS_HUNTER/weapon_autoshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_hunting_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_ak47/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pumpshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_awp/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_chrome/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_pistol_magnum/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_shotgun_spas/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_mp5 /damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_smg_silenced/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_military/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_sg552/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_sniper_scout/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_m60/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_HUNTER/weapon_rifle_desert/damage_specials_headshot", 1); //spitter kv.SetNum("ZOMBIECLASS_SPITTER/weapon_autoshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_hunting_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_ak47/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pumpshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_awp/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_chrome/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol_magnum/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_spas/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_mp5 /damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_silenced/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_military/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_sg552/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_scout/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_m60/damage_specials", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_desert/damage_specials", 1); //spitter headshot kv.SetNum("ZOMBIECLASS_SPITTER/weapon_autoshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_hunting_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_ak47/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pumpshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_awp/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_chrome/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_pistol_magnum/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_shotgun_spas/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_mp5 /damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_smg_silenced/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_military/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_sg552/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_sniper_scout/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_m60/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_SPITTER/weapon_rifle_desert/damage_specials_headshot", 1); //jockey kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_autoshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_hunting_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_ak47/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pumpshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_awp/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_chrome/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol_magnum/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_spas/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_mp5 /damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_silenced/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_military/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_sg552/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_scout/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_m60/damage_specials", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_desert/damage_specials", 1); //jockey headshot kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_autoshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_hunting_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_ak47/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pumpshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_awp/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_chrome/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_pistol_magnum/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_shotgun_spas/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_mp5 /damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_smg_silenced/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_military/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_sg552/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_sniper_scout/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_m60/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_JOCKEY/weapon_rifle_desert/damage_specials_headshot", 1); //Charger kv.SetNum("ZOMBIECLASS_CHARGER/weapon_autoshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_hunting_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_ak47/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pumpshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_awp/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_chrome/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol_magnum/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_spas/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_mp5 /damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_silenced/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_military/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_sg552/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_scout/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_m60/damage_specials", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_desert/damage_specials", 1); //Charger headshot kv.SetNum("ZOMBIECLASS_CHARGER/weapon_autoshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_hunting_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_ak47/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pumpshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_awp/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_chrome/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_pistol_magnum/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_shotgun_spas/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_mp5 /damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_smg_silenced/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_military/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_sg552/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_sniper_scout/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_m60/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_CHARGER/weapon_rifle_desert/damage_specials_headshot", 1); //Tank headshot kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_autoshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_hunting_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_ak47/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pumpshotgun/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_awp/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_chrome/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol_magnum/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_spas/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_mp5 /damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_silenced/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_military/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_sg552/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_scout/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_m60/damage_specials", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_desert/damage_specials", 1); //Tank headshot kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_autoshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_hunting_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_ak47/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pumpshotgun/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_awp/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_chrome/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_pistol_magnum/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_shotgun_spas/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_mp5 /damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_smg_silenced/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_military/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_sg552/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_sniper_scout/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_m60/damage_specials_headshot", 1); kv.SetNum("ZOMBIECLASS_TANK/weapon_/weapon_rifle_desert/damage_specials_headshot", 1); kv.ExportToFile(path); delete kv; } public OnClientPutInServer(client) { SDKHook(client, SDKHook_TraceAttack, OnTakeDamage); } public OnClientDisconnect(client) { SDKUnhook(client, SDKHook_TraceAttack, OnTakeDamage); } public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup) { if (!(damagetype & DMG_BURN || damagetype & DMG_BLAST)) { if (IsValidClient(attacker)) { if(IsValidClient(victim)) { decl String:classname[64]; GetClientWeapon(attacker, classname, sizeof(classname)); KeyValues kv = new KeyValues("damage_modifier_specials"); if (kv.ImportFromFile(sDataFilePath)) { if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 1) { if (KvJumpToKey(kv, "ZOMBIECLASS_SMOKER", true)) { if (KvJumpToKey(kv, classname, true)) { new num = KvGetNum(kv, "damage_specials", 1); DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message); damage = (damage * 0) + num; if(hitgroup == 1) { num = KvGetNum(kv, "damage_specials_headshot", 1); damage = (damage * 0) + num; } return Plugin_Changed; } } } else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 2) { if (KvJumpToKey(kv, "ZOMBIECLASS_BOOMER", true)) { if (KvJumpToKey(kv, classname, true)) { new num = KvGetNum(kv, "damage_specials", 1); DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message); damage = (damage * 0) + num; if(hitgroup == 1) { num = KvGetNum(kv, "damage_specials_headshot", 1); damage = (damage * 0) + num; } return Plugin_Changed; } } } else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 3) { if (KvJumpToKey(kv, "ZOMBIECLASS_HUNTER", true)) { if (KvJumpToKey(kv, classname, true)) { new num = KvGetNum(kv, "damage_specials", 1); DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message); damage = (damage * 0) + num; if(hitgroup == 1) { num = KvGetNum(kv, "damage_specials_headshot", 1); damage = (damage * 0) + num; } return Plugin_Changed; } } } else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 4) { if (KvJumpToKey(kv, "ZOMBIECLASS_SPITTER", true)) { if (KvJumpToKey(kv, classname, true)) { new num = KvGetNum(kv, "damage_specials", 1); DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message); damage = (damage * 0) + num; if(hitgroup == 1) { num = KvGetNum(kv, "damage_specials_headshot", 1); damage = (damage * 0) + num; } return Plugin_Changed; } } } else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 5) { if (KvJumpToKey(kv, "ZOMBIECLASS_JOCKEY", true)) { if (KvJumpToKey(kv, classname, true)) { new num = KvGetNum(kv, "damage_specials", 1); DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message); damage = (damage * 0) + num; if(hitgroup == 1) { num = KvGetNum(kv, "damage_specials_headshot", 1); damage = (damage * 0) + num; } return Plugin_Changed; } } } else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 6) { if (KvJumpToKey(kv, "ZOMBIECLASS_CHARGER", true)) { if (KvJumpToKey(kv, classname, true)) { new num = KvGetNum(kv, "damage_specials", 1); DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message); damage = (damage * 0) + num; if(hitgroup == 1) { num = KvGetNum(kv, "damage_specials_headshot", 1); damage = (damage * 0) + num; } return Plugin_Changed; } } } else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 7) { if (KvJumpToKey(kv, "ZOMBIECLASS_TANK", true)) { if (KvJumpToKey(kv, classname, true)) { new num = KvGetNum(kv, "damage_specials", 1); DisplayInstructorHint(victim, 0.0, 0.0, 0.0, true, false, "", "", "", false, {255, 255, 0}, Message); damage = (damage * 0) + num; if(hitgroup == 1) { num = KvGetNum(kv, "damage_specials_headshot", 1); damage = (damage * 0) + num; } return Plugin_Changed; } } } } } } } return Plugin_Continue; } 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]) { char sBuffer[32]; FormatEx(sBuffer, sizeof(sBuffer), "si_%d", target); DispatchKeyValue(target, "targetname", sBuffer); DispatchKeyValue(HintEntity[target], "hint_target", sBuffer); DispatchKeyValue(HintEntity[target], "hint_name", sBuffer); DispatchKeyValue(HintEntity[target], "hint_replace_key", sBuffer); FormatEx(sBuffer, sizeof(sBuffer), "%d", !bFollow); DispatchKeyValue(HintEntity[target], "hint_static", sBuffer); DispatchKeyValue(HintEntity[target], "hint_timeout", "0.0"); FormatEx(sBuffer, sizeof(sBuffer), "%d", RoundToFloor(fHeight)); DispatchKeyValue(HintEntity[target], "hint_icon_offset", sBuffer); FormatEx(sBuffer, sizeof(sBuffer), "%d", RoundToFloor(fRange)); DispatchKeyValue(HintEntity[target], "hint_range", sBuffer); FormatEx(sBuffer, sizeof(sBuffer), "%d", !bShowOffScreen); DispatchKeyValue(HintEntity[target], "hint_nooffscreen", sBuffer); DispatchKeyValue(HintEntity[target], "hint_icon_onscreen", sIconOnScreen); DispatchKeyValue(HintEntity[target], "hint_icon_offscreen", sIconOffScreen); DispatchKeyValue(HintEntity[target], "hint_binding", sCmd); // Shows text behind walls (false limits distance of seeing hint) FormatEx(sBuffer, sizeof(sBuffer), "%d", bShowTextAlways); DispatchKeyValue(HintEntity[target], "hint_forcecaption", sBuffer); FormatEx(sBuffer, sizeof(sBuffer), "%d %d %d", iColor[0], iColor[1], iColor[2]); DispatchKeyValue(HintEntity[target], "hint_color", sBuffer); //ReplaceString(sText, sizeof(sText), "\n", " "); DispatchKeyValue(HintEntity[target], "hint_caption", sText); DispatchKeyValue(HintEntity[target], "hint_activator_caption", sText); DispatchKeyValue(HintEntity[target], "hint_flags", "0"); DispatchKeyValue(HintEntity[target], "hint_display_limit", "0"); DispatchKeyValue(HintEntity[target], "hint_suppress_rest", "1"); DispatchKeyValue(HintEntity[target], "hint_instance_type", "2"); DispatchKeyValue(HintEntity[target], "hint_auto_start", "false"); //true DispatchKeyValue(HintEntity[target], "hint_local_player_only", "true"); DispatchKeyValue(HintEntity[target], "hint_allow_nodraw_target", "true"); //DispatchKeyValue(HintEntity[target], "hint_pulseoption", "1"); //DispatchKeyValue(HintEntity[target], "hint_alphaoption", "1"); //DispatchKeyValue(HintEntity[target], "hint_shakeoption", "1"); DispatchSpawn(HintEntity[target]); AcceptEntityInput(HintEntity[target], "ShowHint"); HintIndex[target] = EntIndexToEntRef(HintEntity[target]); } stock bool IsIncapped(int client) { return (GetEntProp(client, Prop_Send, "m_isIncapacitated", 1) > 0); } public IsValidClient(client) { if (client <= 0) return false; if (client > MaxClients) return false; if (!IsClientInGame(client)) return false; if (!IsPlayerAlive(client)) return false; return true; }