Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sourcemod>
- #include <sdkhooks>
- #include <sdktools>
- new bool:lateLoad;
- char sDataFilePath[PLATFORM_MAX_PATH];
- 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/weapons_speed.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)
- {
- KeyValues kv = new KeyValues("speed_modifier");
- kv.SetFloat("weapon_autoshotgun/speed", 1.0);
- kv.SetFloat("weapon_hunting_rifle/speed", 1.0);
- kv.SetFloat("weapon_pistol/speed", 1.0);
- kv.SetFloat("weapon_rifle_ak47/speed", 1.0);
- kv.SetFloat("weapon_rifle/speed", 1.0);
- kv.SetFloat("weapon_pumpshotgun/speed", 1.0);
- kv.SetFloat("weapon_sniper_awp/speed", 1.0);
- kv.SetFloat("weapon_shotgun_chrome/speed", 1.0);
- kv.SetFloat("weapon_pistol_magnum/speed", 1.0);
- kv.SetFloat("weapon_shotgun_spas/speed", 1.0);
- kv.SetFloat("weapon_smg/speed", 1.0);
- kv.SetFloat("weapon_smg_mp5/speed", 1.0);
- kv.SetFloat("weapon_smg_silenced/speed", 1.0);
- kv.SetFloat("weapon_sniper_military/speed", 1.0);
- kv.SetFloat("weapon_rifle_sg552/speed", 1.0);
- kv.SetFloat("weapon_sniper_scout/speed", 1.0);
- kv.SetFloat("weapon_rifle_m60/speed", 1.0);
- kv.SetFloat("weapon_rifle_desert/speed", 1.0);
- kv.SetFloat("weapon_autoshotgun/gravity", 1.0);
- kv.SetFloat("weapon_hunting_rifle/gravity", 1.0);
- kv.SetFloat("weapon_pistol/gravity", 1.0);
- kv.SetFloat("weapon_rifle_ak47/gravity", 1.0);
- kv.SetFloat("weapon_rifle/speed", 1.0);
- kv.SetFloat("weapon_pumpshotgun/gravity", 1.0);
- kv.SetFloat("weapon_sniper_awp/gravity", 1.0);
- kv.SetFloat("weapon_shotgun_chrome/gravity", 1.0);
- kv.SetFloat("weapon_pistol_magnum/gravity", 1.0);
- kv.SetFloat("weapon_shotgun_spas/gravity", 1.0);
- kv.SetFloat("weapon_smg/gravity", 1.0);
- kv.SetFloat("weapon_smg_mp5/gravity", 1.0);
- kv.SetFloat("weapon_smg_silenced/gravity", 1.0);
- kv.SetFloat("weapon_sniper_military/gravity", 1.0);
- kv.SetFloat("weapon_rifle_sg552/gravity", 1.0);
- kv.SetFloat("weapon_sniper_scout/gravity", 1.0);
- kv.SetFloat("weapon_rifle_m60/gravity", 1.0);
- kv.SetFloat("weapon_rifle_desert/gravity", 1.0);
- kv.ExportToFile(path);
- delete kv;
- }
- public OnClientPutInServer(i)
- {
- if(bIsSurvivor(i))
- {
- SDKHook(i, SDKHook_PreThink, SDKHook_WeaponEquip1);
- }
- }
- public OnClientDisconnect(i)
- {
- if(bIsSurvivor(i))
- {
- SDKUnhook(i, SDKHook_PreThink, SDKHook_WeaponEquip1);
- }
- }
- public Action:SDKHook_WeaponEquip1(i)
- {
- KeyValues kv = new KeyValues("speed_modifier");
- if (kv.ImportFromFile(sDataFilePath))
- {
- new priWeapon = GetPlayerWeaponSlot(i, 0);
- if (!IsValidEntity(priWeapon)) return Plugin_Continue;
- decl String:sWeaponEx[32];
- GetEntityClassname(priWeapon, sWeaponEx, sizeof(sWeaponEx));
- if (KvJumpToKey(kv, sWeaponEx, true))
- {
- float num = KvGetFloat(kv, "speed", 1.0);
- float gravity = KvGetFloat(kv, "gravity", 1.0);
- SetEntPropFloat(i, Prop_Data, "m_flLaggedMovementValue", num);
- SetEntityGravity(i, gravity)
- }
- }
- return Plugin_Continue;
- }
- 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