FlacoBey

Untitled

Jan 9th, 2019
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.87 KB | None | 0 0
  1.  #include <sourcemod>
  2. #include <sdktools>
  3. #include <sdkhooks>
  4.  
  5. #pragma semicolon 1.0
  6.  
  7. #define ZOMBIECLASS_SMOKER    1
  8. #define ZOMBIECLASS_BOOMER    2
  9. #define ZOMBIECLASS_HUNTER    3
  10. #define ZOMBIECLASS_SPITTER   4
  11. #define ZOMBIECLASS_JOCKEY    5
  12. #define ZOMBIECLASS_CHARGER   6
  13. #define ZOMBIECLASS_WITCH     7
  14. #define ZOMBIECLASS_TANK      8
  15.  
  16. new bool:lateLoad;
  17. char sDataFilePath[PLATFORM_MAX_PATH];
  18. public APLRes:AskPluginLoad2(Handle:plugin, bool:late, String:error[], errMax)
  19. {
  20.     lateLoad = late;
  21.     return APLRes_Success;    
  22. }
  23.  
  24. public OnPluginStart()
  25. {
  26.     if (lateLoad)
  27.     {
  28.         for (new client = 1; client <= MaxClients; client++)
  29.         {
  30.             if (IsClientInGame(client))
  31.             {
  32.                 OnClientPutInServer(client);
  33.             }
  34.         }
  35.     }
  36.     BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/melee_damage_specials.ini");
  37.     if (!FileExists(sDataFilePath))
  38.     {
  39.         new Handle:open_path = OpenFile(sDataFilePath, "w");
  40.         WriteFileLine(open_path, "");
  41.         CloseHandle(open_path);
  42.         PrintToServer("Error Code: WSP-EC-01.0A");
  43.         KvWriteToFile(sDataFilePath);
  44.     }
  45. }
  46.  
  47. void KvWriteToFile(const char[] path)
  48. {
  49.     KeyValues kv = new KeyValues("damage_melee");
  50.    
  51.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_baseball_bat/damage", 1.0);
  52.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_cricket_bat/damage", 1.0);
  53.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_crowbar/damage", 1.0);
  54.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_electric_guitar/damage", 1.0);
  55.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_fireaxe/damage", 1.0);
  56.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_frying_pan/damage", 1.0);
  57.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_golfclub/damage", 1.0);
  58.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_katana/damage", 1.0);
  59.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_machete/damage", 1.0);
  60.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_tonfa/damage", 1.0);
  61.     kv.SetFloat("ZOMBIECLASS_SMOKER/weapon_knife/damage", 1.0);
  62.    
  63.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_baseball_bat/damage", 1.0);
  64.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_cricket_bat/damage", 1.0);
  65.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_crowbar/damage", 1.0);
  66.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_electric_guitar/damage", 1.0);
  67.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_fireaxe/damage", 1.0);
  68.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_frying_pan/damage", 1.0);
  69.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_golfclub/damage", 1.0);
  70.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_katana/damage", 1.0);
  71.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_machete/damage", 1.0);
  72.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_tonfa/damage", 1.0);
  73.     kv.SetFloat("ZOMBIECLASS_BOOMER/weapon_knife/damage", 1.0);
  74.    
  75.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_baseball_bat/damage", 1.0);
  76.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_cricket_bat/damage", 1.0);
  77.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_crowbar/damage", 1.0);
  78.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_electric_guitar/damage", 1.0);
  79.     kv.SetFloat("ZOMBIECLASS_HUNTER/fireaxe/damage", 1.0);
  80.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_frying_pan/damage", 1.0);
  81.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_golfclub/damage", 1.0);
  82.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_katana/damage", 1.0);
  83.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_machete/damage", 1.0);
  84.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_tonfa/damage", 1.0);
  85.     kv.SetFloat("ZOMBIECLASS_HUNTER/weapon_knife/damage", 1.0);
  86.    
  87.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_baseball_bat/damage", 1.0);
  88.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_cricket_bat/damage", 1.0);
  89.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_crowbar/damage", 1.0);
  90.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_electric_guitar/damage", 1.0);
  91.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_fireaxe/damage", 1.0);
  92.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_frying_pan/damage", 1.0);
  93.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_golfclub/damage", 1.0);
  94.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_katana/damage", 1.0);
  95.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_machete/damage", 1.0);
  96.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_tonfa/damage", 1.0);
  97.     kv.SetFloat("ZOMBIECLASS_SPITTER/weapon_knife/damage", 1.0);
  98.    
  99.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_baseball_bat/damage", 1.0);
  100.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_cricket_bat/damage", 1.0);
  101.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_crowbar/damage", 1.0);
  102.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_electric_guitar/damage", 1.0);
  103.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_fireaxe/damage", 1.0);
  104.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_frying_pan/damage", 1.0);
  105.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_golfclub/damage", 1.0);
  106.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_katana/damage", 1.0);
  107.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_machete/damage", 1.0);
  108.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_tonfa/damage", 1.0);
  109.     kv.SetFloat("ZOMBIECLASS_JOCKEY/weapon_knife/damage", 1.0);
  110.    
  111.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_baseball_bat/damage", 1.0);
  112.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_cricket_bat/damage", 1.0);
  113.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_crowbar/damage", 1.0);
  114.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_electric_guitar/damage", 1.0);
  115.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_fireaxe/damage", 1.0);
  116.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_frying_pan/damage", 1.0);
  117.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_golfclub/damage", 1.0);
  118.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_katana/damage", 1.0);
  119.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_machete/damage", 1.0);
  120.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_tonfa/damage", 1.0);
  121.     kv.SetFloat("ZOMBIECLASS_CHARGER/weapon_knife/damage", 1.0);
  122.    
  123.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_baseball_bat/damage", 1.0);
  124.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_cricket_bat/damage", 1.0);
  125.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_crowbar/damage", 1.0);
  126.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_electric_guitar/damage", 1.0);
  127.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_fireaxe/damage", 1.0);
  128.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_frying_pan/damage", 1.0);
  129.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_golfclub/damage", 1.0);
  130.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_katana/damage", 1.0);
  131.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_machete/damage", 1.0);
  132.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_tonfa/damage", 1.0);
  133.     kv.SetFloat(" ZOMBIECLASS_TANK/weapon_knife/damage", 1.0);
  134.  
  135.     kv.ExportToFile(path);
  136.  
  137.     delete kv;
  138. }
  139.  
  140. public OnClientPutInServer(client)
  141. {
  142.     SDKHook(client, SDKHook_TraceAttack, _SI_OnTraceAttack);
  143. }
  144.  
  145. public OnClientDisconnect(client)
  146. {
  147.     SDKUnhook(client, SDKHook_TraceAttack, _SI_OnTraceAttack);
  148. }
  149.  
  150. public Action:_SI_OnTraceAttack(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup)
  151. {
  152.     decl String:weaponname[64];
  153.     GetClientWeapon(attacker, weaponname, sizeof(weaponname));
  154.     if (StrEqual(weaponname, "weapon_melee"))
  155.     {
  156.         GetEntPropString(GetPlayerWeaponSlot(attacker, 1), Prop_Data, "m_strMapSetScriptName", weaponname, sizeof(weaponname));
  157.         KeyValues kv = new KeyValues("damage_melee");
  158.         if (kv.ImportFromFile(sDataFilePath))
  159.         {
  160.             Format(weaponname, sizeof(weaponname), "weapon_%s", weaponname);
  161.             if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 1)
  162.             {
  163.                 if (KvJumpToKey(kv, "ZOMBIECLASS_SMOKER", true))
  164.                 {
  165.                     if (KvJumpToKey(kv, weaponname, true))
  166.                     {
  167.                         float num = KvGetFloat(kv, "damage", 1.0);
  168.                         int heal = GetClientHealth(victim);
  169.                         PrintToChatAll("Smoker=%i", heal);
  170.                         damage = num;
  171.                         return Plugin_Changed;
  172.                     }
  173.                 }
  174.             }
  175.             else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 2)
  176.             {
  177.                 if (KvJumpToKey(kv, "ZOMBIECLASS_BOOMER", true))
  178.                 {
  179.                     if (KvJumpToKey(kv, weaponname, true))
  180.                     {
  181.                         float num = KvGetFloat(kv, "damage", 1.0);
  182.                         int heal = GetClientHealth(victim);
  183.                         PrintToChatAll("Boomer=%i", heal);
  184.                         damage = num;
  185.                         return Plugin_Changed;
  186.                     }
  187.                 }
  188.             }
  189.             else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 3)
  190.             {
  191.                 if (KvJumpToKey(kv, "ZOMBIECLASS_HUNTER", true))
  192.                 {
  193.                     if (KvJumpToKey(kv, weaponname, true))
  194.                     {
  195.                         float num = KvGetFloat(kv, "damage", 1.0);
  196.                         int heal = GetClientHealth(victim);
  197.                         PrintToChatAll("Hunter=%i", heal);
  198.                         PrintToChatAll("%s", weaponname);
  199.                         damage = num;
  200.                         return Plugin_Changed;
  201.                     }
  202.                 }
  203.             }
  204.             else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 4)
  205.             {
  206.                 if (KvJumpToKey(kv, "ZOMBIECLASS_SPITTER", true))
  207.                 {
  208.                     if (KvJumpToKey(kv, weaponname, true))
  209.                     {
  210.                         float num = KvGetFloat(kv, "damage", 1.0);
  211.                         int heal = GetClientHealth(victim);
  212.                         PrintToChatAll("Spitterr=%i", heal);
  213.                         damage = num;
  214.                         return Plugin_Changed;
  215.                     }
  216.                 }
  217.             }
  218.             else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 5)
  219.             {
  220.                 if (KvJumpToKey(kv, "ZOMBIECLASS_JOCKEY", true))
  221.                 {
  222.                     if (KvJumpToKey(kv, weaponname, true))
  223.                     {
  224.                         float num = KvGetFloat(kv, "damage", 1.0);
  225.                         int heal = GetClientHealth(victim);
  226.                         PrintToChatAll("Jockey=%i", heal);
  227.                         damage = num;
  228.                         return Plugin_Changed;
  229.                     }
  230.                 }
  231.             }
  232.             else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 6)
  233.             {
  234.                 if (KvJumpToKey(kv, "ZOMBIECLASS_CHARGER", true))
  235.                 {
  236.                     if (KvJumpToKey(kv, weaponname, true))
  237.                     {
  238.                         float num = KvGetFloat(kv, "damage", 1.0);
  239.                         int heal = GetClientHealth(victim);
  240.                         PrintToChatAll("Charger=%i", heal);
  241.                         damage = num;
  242.                         return Plugin_Changed;
  243.                     }
  244.                 }
  245.             }
  246.             else if(GetEntProp(victim, Prop_Send, "m_zombieClass") == 8)
  247.             {
  248.                 if (KvJumpToKey(kv, "ZOMBIECLASS_TANK", true))
  249.                 {
  250.                     if (KvJumpToKey(kv, weaponname, true))
  251.                     {
  252.                         float num = KvGetFloat(kv, "damage", 1.0);
  253.                         int heal = GetClientHealth(victim);
  254.                         PrintToChatAll("Tank=%i", heal);
  255.                         damage =  num;
  256.                         return Plugin_Changed;
  257.                     }
  258.                 }
  259.             }
  260.         }
  261.     }
  262.     return Plugin_Continue;
  263. }
  264.  
  265. public IsValidClient(client)
  266. {
  267.     if (client <= 0)
  268.         return false;
  269.        
  270.     if (client > MaxClients)
  271.         return false;
  272.        
  273.     if (!IsClientInGame(client))
  274.         return false;
  275.        
  276.     if (!IsPlayerAlive(client))
  277.         return false;
  278.  
  279.     return true;
  280. }
Advertisement
Add Comment
Please, Sign In to add comment