Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sourcemod>
- #include <sdktools>
- #include sdkhooks
- #pragma tabsize 0
- char sDataFilePath[PLATFORM_MAX_PATH];
- public OnPluginStart()
- {
- BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/weight.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);
- }
- }
- public OnClientPutInServer(client)
- {
- SDKHook(client, SDKHook_WeaponCanUse, OnWeaponCanUse);
- }
- public OnClientDisconnect(client)
- {
- SDKUnhook(client, SDKHook_WeaponCanUse, OnWeaponCanUse);
- }
- public Action OnWeaponCanUse(i, weapon)
- {
- if(bIsSurvivor(i))
- {
- KeyValues kv = new KeyValues("weight");
- if (kv.ImportFromFile(sDataFilePath))
- {
- int num;
- char sWeaponEx[32], sWeaponEx2[32], sWeaponEx3[32], sWeaponEx4[32], sWeaponEx5[32], sWeaponEx6[32];
- new priWeapon = GetPlayerWeaponSlot(i, 0);
- if (IsValidEntity(priWeapon))
- {
- GetEntityClassname(priWeapon, sWeaponEx, sizeof(sWeaponEx));
- if (KvJumpToKey(kv, sWeaponEx, true))
- {
- int weight = KvGetNum(kv, "weight", 1);
- num += weight
- }
- }
- new second = GetPlayerWeaponSlot(i, 1);
- if (IsValidEntity(second))
- {
- GetEntityClassname(second, sWeaponEx2, sizeof(sWeaponEx2));
- if (KvJumpToKey(kv, sWeaponEx2, true))
- {
- int weight = KvGetNum(kv, "weight", 1);
- num += weight
- }
- }
- new tree = GetPlayerWeaponSlot(i, 2);
- if (IsValidEntity(tree))
- {
- GetEntityClassname(tree, sWeaponEx3, sizeof(sWeaponEx3));
- if (KvJumpToKey(kv, sWeaponEx3, true))
- {
- int weight = KvGetNum(kv, "weight", 1);
- num += weight
- }
- }
- new four = GetPlayerWeaponSlot(i, 3);
- if (IsValidEntity(four))
- {
- GetEntityClassname(four, sWeaponEx4, sizeof(sWeaponEx4));
- if (KvJumpToKey(kv, sWeaponEx4, true))
- {
- int weight = KvGetNum(kv, "weight", 1);
- num += weight
- }
- }
- new five = GetPlayerWeaponSlot(i, 4);
- if (IsValidEntity(five))
- {
- GetEntityClassname(five, sWeaponEx5, sizeof(sWeaponEx5));
- if (KvJumpToKey(kv, sWeaponEx5, true))
- {
- int weight = KvGetNum(kv, "weight", 1);
- num += weight
- }
- }
- new six = GetPlayerWeaponSlot(i, 5);
- if (IsValidEntity(six))
- {
- GetEntityClassname(priWeapon, sWeaponEx6, sizeof(sWeaponEx6));
- if (KvJumpToKey(kv, sWeaponEx6, true))
- {
- int weight = KvGetNum(kv, "weight", 1);
- num += weight
- PrintToChatAll("Weight - %i", num)
- }
- }
- }
- }
- return Plugin_Continue;
- }
- void KvWriteToFile(const char[] path)
- {
- KeyValues kv = new KeyValues("weight");
- kv.SetNum("weapon_autoshotgun/weight", 1);
- kv.SetNum("weapon_hunting_rifle/weight", 1);
- kv.SetNum("weapon_pistol/weight", 1);
- kv.SetNum("weapon_rifle_ak47/weight", 1);
- kv.SetNum("weapon_rifle/weight", 1);
- kv.SetNum("weapon_pumpshotgun/weight", 1);
- kv.SetNum("weapon_sniper_awp/weight", 1);
- kv.SetNum("weapon_shotgun_chrome/weight", 1);
- kv.SetNum("weapon_pistol_magnum/weight", 1);
- kv.SetNum("weapon_shotgun_spas/weight", 1);
- kv.SetNum("weapon_smg/weight", 1);
- kv.SetNum("weapon_smg_mp5/weight", 1);
- kv.SetNum("weapon_smg_silenced/weight", 1);
- kv.SetNum("weapon_sniper_military/weight", 1);
- kv.SetNum("weapon_rifle_sg552/weight", 1);
- kv.SetNum("weapon_sniper_scout/weight", 1);
- kv.SetNum("weapon_rifle_m60/weight", 1);
- kv.SetNum("weapon_rifle_desert/weight", 1);
- kv.SetNum("weapon_baseball_bat/weight", 1);
- kv.SetNum("weapon_fireaxe/weight", 1);
- kv.SetNum("weapon_frying_pan/weight", 1);
- kv.SetNum("weapon_golfclub/weight", 1);
- kv.SetNum("weapon_katana/weight", 1);
- kv.SetNum("weapon_machete/weight", 1);
- kv.SetNum("weapon_sniper_awp/weight", 1);
- kv.SetNum("weapon_tonfa/weight", 1);
- kv.SetNum("weapon_knife/weight", 1);
- kv.SetNum("weapon_chainsaw/weight", 1);
- kv.SetNum("weapon_adrenaline/weight", 1);
- kv.SetNum("weapon_defibrillator/weight", 1);
- kv.SetNum("weapon_first_aid_kit/weight", 1);
- kv.SetNum("weapon_pain_pills/weight", 1);
- kv.SetNum("weapon_fireworkcrate/weight", 1);
- kv.SetNum("weapon_gascan/weight", 1);
- kv.SetNum("weapon_oxygentank/weight", 1);
- kv.SetNum("weapon_propanetank/weight", 1);
- kv.SetNum("weapon_upgradepack_explosive/weight", 1);
- kv.SetNum("weapon_upgradepack_incendiary/weight", 1);
- kv.SetNum("weapon_molotov/weight", 1);
- kv.SetNum("weapon_pipe_bomb/weight", 1);
- kv.SetNum("weapon_vomitjar/weight", 1);
- kv.SetNum("weapon_gnome/weight", 1);
- kv.SetNum("weapon_cola_bottles/weight", 1);
- kv.ExportToFile(path);
- delete kv;
- }
- stock bool bIsSurvivor(int client)
- {
- return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement