FlacoBey

Untitled

Jan 7th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdkhooks>
  3. #include <sdktools>
  4.  
  5. new bool:lateLoad;
  6. char sDataFilePath[PLATFORM_MAX_PATH];
  7.  
  8. public APLRes:AskPluginLoad2(Handle:plugin, bool:late, String:error[], errMax)
  9. {
  10.     lateLoad = late;
  11.     return APLRes_Success;    
  12. }
  13.  
  14. public OnPluginStart()
  15. {
  16.     if (lateLoad)
  17.     {
  18.         for (new client = 1; client <= MaxClients; client++)
  19.         {
  20.             if (IsClientInGame(client))
  21.             {
  22.                 OnClientPutInServer(client);
  23.             }
  24.         }
  25.     }
  26.     BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/weapons_speed.ini");
  27.     if (!FileExists(sDataFilePath))
  28.     {
  29.         new Handle:open_path = OpenFile(sDataFilePath, "w");
  30.         WriteFileLine(open_path, "");
  31.         CloseHandle(open_path);
  32.         PrintToServer("Error Code: WSP-EC-01A");
  33.         KvWriteToFile(sDataFilePath);
  34.     }
  35. }
  36.  
  37. void KvWriteToFile(const char[] path)
  38. {
  39.     KeyValues kv = new KeyValues("speed_modifier");
  40.     kv.SetNum("weapon_autoshotgun/speed", 1);
  41.     kv.SetNum("weapon_hunting_rifle/speed", 1);
  42.     kv.SetNum("weapon_pistol/speed", 1);
  43.     kv.SetNum("weapon_rifle_ak47/speed", 1);
  44.     kv.SetNum("weapon_rifle/speed", 1);
  45.     kv.SetNum("weapon_pumpshotgun/speed", 1);
  46.     kv.SetNum("weapon_sniper_awp/speed", 1);
  47.     kv.SetNum("weapon_shotgun_chrome/speed", 1);
  48.     kv.SetNum("weapon_pistol_magnum/speed", 1);
  49.     kv.SetNum("weapon_shotgun_spas/speed", 1);
  50.     kv.SetNum("weapon_smg/speed", 1);
  51.     kv.SetNum("weapon_smg_mp5/speed", 1);
  52.     kv.SetNum("weapon_smg_silenced/speed", 1);
  53.     kv.SetNum("weapon_sniper_military/speed", 1);
  54.     kv.SetNum("weapon_rifle_sg552/speed", 1);
  55.     kv.SetNum("weapon_sniper_scout/speed", 1);
  56.     kv.SetNum("weapon_rifle_m60/speed", 1);
  57.     kv.SetNum("weapon_rifle_desert/speed", 1);
  58.  
  59.     kv.ExportToFile(path);
  60.  
  61.     delete kv;
  62. }
  63.  
  64. public OnClientPutInServer(i)
  65. {
  66.     SDKHook(i, SDKHook_PreThinkPost, OnPreThinkPost)
  67. }
  68.  
  69. public OnClientDisconnect(i)
  70. {
  71.     SDKUnhook(i, SDKHook_PreThinkPost, OnPreThinkPost)
  72. }
  73.  
  74. public OnPreThinkPost(i)
  75. {
  76.     if(bIsSurvivor(i))
  77.     {
  78.         KeyValues kv = new KeyValues("speed_modifier");
  79.         if (kv.ImportFromFile(sDataFilePath))
  80.         {
  81.             decl String:classname[64];
  82.             GetClientWeapon(i, classname, sizeof(classname));
  83.             if (KvJumpToKey(kv, classname, true))
  84.             {
  85.                 new num = KvGetNum(kv, "speed", 1);
  86.                 SetEntPropFloat(i, Prop_Data, "m_flMaxspeed", view_as<float>(num));
  87.             }
  88.         }
  89.     }
  90. }
  91.  
  92. stock bool bIsSurvivor(int client)
  93. {
  94.     return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
  95. }
Advertisement
Add Comment
Please, Sign In to add comment