Advertisement
FlacoBey

Untitled

Feb 15th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.01 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdktools>
  3. #include sdkhooks
  4.  
  5. #pragma tabsize 0
  6.  
  7. char sDataFilePath[PLATFORM_MAX_PATH];
  8.  
  9. public OnPluginStart()
  10. {
  11.    
  12.     BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/weight.ini");
  13.     if (!FileExists(sDataFilePath))
  14.     {
  15.         new Handle:open_path = OpenFile(sDataFilePath, "w");
  16.         WriteFileLine(open_path, "");
  17.         CloseHandle(open_path);
  18.         PrintToServer("Error Code: WSP-EC-01A");
  19.         KvWriteToFile(sDataFilePath);
  20.     }
  21. }
  22.  
  23. public OnClientPutInServer(client)
  24. {
  25.     SDKHook(client, SDKHook_WeaponCanUse, OnWeaponCanUse);
  26. }
  27.  
  28. public OnClientDisconnect(client)
  29. {
  30.     SDKUnhook(client, SDKHook_WeaponCanUse, OnWeaponCanUse);
  31. }
  32.  
  33. public Action OnWeaponCanUse(i, weapon)
  34. {
  35.     if(bIsSurvivor(i))
  36.     {
  37.         KeyValues kv = new KeyValues("weight");
  38.         if (kv.ImportFromFile(sDataFilePath))
  39.         {
  40.             int num;
  41.             char sWeaponEx[32], sWeaponEx2[32], sWeaponEx3[32], sWeaponEx4[32], sWeaponEx5[32], sWeaponEx6[32];
  42.             new priWeapon = GetPlayerWeaponSlot(i, 0);
  43.             if (IsValidEntity(priWeapon))
  44.             {
  45.                 GetEntityClassname(priWeapon, sWeaponEx, sizeof(sWeaponEx));
  46.                 if (KvJumpToKey(kv, sWeaponEx, true))
  47.                 {
  48.                     int weight = KvGetNum(kv, "weight", 1);
  49.                     num += weight
  50.                 }
  51.             }
  52.             new second = GetPlayerWeaponSlot(i, 1);
  53.             if (IsValidEntity(second))
  54.             {
  55.                 GetEntityClassname(second, sWeaponEx2, sizeof(sWeaponEx2));
  56.                 if (KvJumpToKey(kv, sWeaponEx2, true))
  57.                 {
  58.                     int weight = KvGetNum(kv, "weight", 1);
  59.                     num += weight
  60.                 }  
  61.             }
  62.             new tree = GetPlayerWeaponSlot(i, 2);
  63.             if (IsValidEntity(tree))
  64.             {
  65.                 GetEntityClassname(tree, sWeaponEx3, sizeof(sWeaponEx3));
  66.                 if (KvJumpToKey(kv, sWeaponEx3, true))
  67.                 {
  68.                     int weight = KvGetNum(kv, "weight", 1);
  69.                     num += weight
  70.                 }
  71.             }
  72.             new four = GetPlayerWeaponSlot(i, 3);
  73.             if (IsValidEntity(four))
  74.             {
  75.                 GetEntityClassname(four, sWeaponEx4, sizeof(sWeaponEx4));
  76.                 if (KvJumpToKey(kv, sWeaponEx4, true))
  77.                 {
  78.                     int weight = KvGetNum(kv, "weight", 1);
  79.                     num += weight
  80.                 }
  81.             }
  82.             new five = GetPlayerWeaponSlot(i, 4);
  83.             if (IsValidEntity(five))
  84.             {
  85.                 GetEntityClassname(five, sWeaponEx5, sizeof(sWeaponEx5));
  86.                 if (KvJumpToKey(kv, sWeaponEx5, true))
  87.                 {
  88.                     int weight = KvGetNum(kv, "weight", 1);
  89.                     num += weight
  90.                 }
  91.             }
  92.             new six = GetPlayerWeaponSlot(i, 5);
  93.             if (IsValidEntity(six))
  94.             {
  95.                 GetEntityClassname(priWeapon, sWeaponEx6, sizeof(sWeaponEx6));
  96.                 if (KvJumpToKey(kv, sWeaponEx6, true))
  97.                 {
  98.                     int weight = KvGetNum(kv, "weight", 1);
  99.                     num += weight
  100.                     PrintToChatAll("Weight - %i", num)
  101.                 }
  102.             }
  103.         }
  104.     }
  105.     return Plugin_Continue;
  106. }
  107.  
  108. void KvWriteToFile(const char[] path)
  109. {
  110.     KeyValues kv = new KeyValues("weight");
  111.     kv.SetNum("weapon_autoshotgun/weight", 1);
  112.     kv.SetNum("weapon_hunting_rifle/weight", 1);
  113.     kv.SetNum("weapon_pistol/weight", 1);
  114.     kv.SetNum("weapon_rifle_ak47/weight", 1);
  115.     kv.SetNum("weapon_rifle/weight", 1);
  116.     kv.SetNum("weapon_pumpshotgun/weight", 1);
  117.     kv.SetNum("weapon_sniper_awp/weight", 1);
  118.     kv.SetNum("weapon_shotgun_chrome/weight", 1);
  119.     kv.SetNum("weapon_pistol_magnum/weight", 1);
  120.     kv.SetNum("weapon_shotgun_spas/weight", 1);
  121.     kv.SetNum("weapon_smg/weight", 1);
  122.     kv.SetNum("weapon_smg_mp5/weight", 1);
  123.     kv.SetNum("weapon_smg_silenced/weight", 1);
  124.     kv.SetNum("weapon_sniper_military/weight", 1);
  125.     kv.SetNum("weapon_rifle_sg552/weight", 1);
  126.     kv.SetNum("weapon_sniper_scout/weight", 1);
  127.     kv.SetNum("weapon_rifle_m60/weight", 1);
  128.     kv.SetNum("weapon_rifle_desert/weight", 1);
  129.    
  130.     kv.SetNum("weapon_baseball_bat/weight", 1);
  131.     kv.SetNum("weapon_fireaxe/weight", 1);
  132.     kv.SetNum("weapon_frying_pan/weight", 1);
  133.     kv.SetNum("weapon_golfclub/weight", 1);
  134.     kv.SetNum("weapon_katana/weight", 1);
  135.     kv.SetNum("weapon_machete/weight", 1);
  136.     kv.SetNum("weapon_sniper_awp/weight", 1);
  137.     kv.SetNum("weapon_tonfa/weight", 1);
  138.     kv.SetNum("weapon_knife/weight", 1);
  139.    
  140.     kv.SetNum("weapon_chainsaw/weight", 1);
  141.    
  142.     kv.SetNum("weapon_adrenaline/weight", 1);
  143.     kv.SetNum("weapon_defibrillator/weight", 1);
  144.     kv.SetNum("weapon_first_aid_kit/weight", 1);
  145.     kv.SetNum("weapon_pain_pills/weight", 1);
  146.    
  147.     kv.SetNum("weapon_fireworkcrate/weight", 1);
  148.     kv.SetNum("weapon_gascan/weight", 1);
  149.     kv.SetNum("weapon_oxygentank/weight", 1);
  150.     kv.SetNum("weapon_propanetank/weight", 1);
  151.    
  152.     kv.SetNum("weapon_upgradepack_explosive/weight", 1);
  153.     kv.SetNum("weapon_upgradepack_incendiary/weight", 1);
  154.    
  155.     kv.SetNum("weapon_molotov/weight", 1);
  156.     kv.SetNum("weapon_pipe_bomb/weight", 1);
  157.     kv.SetNum("weapon_vomitjar/weight", 1);
  158.    
  159.     kv.SetNum("weapon_gnome/weight", 1);
  160.     kv.SetNum("weapon_cola_bottles/weight", 1);
  161.    
  162.     kv.ExportToFile(path);
  163.    
  164.     delete kv;
  165. }
  166.  
  167. stock bool bIsSurvivor(int client)
  168. {
  169.     return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement