FlacoBey

Untitled

Feb 17th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.02 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdkhooks>
  3. #include <sdktools>
  4.  
  5. char sDataFilePath[PLATFORM_MAX_PATH];
  6. Handle TimerCherck, TimerForCheck;
  7. public OnPluginStart()
  8. {
  9.     TimerForCheck = CreateConVar("hTimerCheckPeriod", "5.0", "Переодичность");
  10.     BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/weapons_speed.ini");
  11.     if (!FileExists(sDataFilePath))
  12.     {
  13.         new Handle:open_path = OpenFile(sDataFilePath, "w");
  14.         WriteFileLine(open_path, "");
  15.         CloseHandle(open_path);
  16.         PrintToServer("Error Code: WSP-EC-01A");
  17.         KvWriteToFile(sDataFilePath);
  18.     }
  19.     AutoExecConfig(true, "PeriodOfTimerSpeed");
  20. }
  21.  
  22. public OnMapStart()
  23. {
  24.     if(TimerCherck != null)
  25.     {
  26.         KillTimer(TimerCherck);
  27.         TimerCherck = null;
  28.     }
  29.     TimerCherck = CreateTimer(GetConVarFloat(TimerForCheck), TimerhCheckPlayer, _, TIMER_REPEAT)
  30. }
  31.  
  32. public Action:TimerhCheckPlayer(Handle timer, fuck)
  33. {
  34.     for(int i = 1; i <= MaxClients; ++i)
  35.     {
  36.         if(bIsSurvivor(i))
  37.         {
  38.             new priWeapon = GetPlayerWeaponSlot(i, 0);
  39.             if (!IsValidEntity(priWeapon))
  40.             {
  41.                 SetEntPropFloat(i, Prop_Data, "m_flLaggedMovementValue", 1.0);
  42.                 SetEntityGravity(i, 1.0)
  43.             }
  44.         }
  45.     }
  46. }
  47.  
  48. public OnClientPutInServer(client)
  49. {
  50.     SDKHook(client, SDKHook_WeaponSwitch, OnWeaponCanUse);
  51.     SDKHook(client, SDKHook_WeaponCanSwitchToPost, OnWeaponCanUse);
  52.     SDKHook(client, SDKHook_WeaponDropPost, OnWeaponCanUse);
  53. }
  54.  
  55. public OnClientDisconnect(client)
  56. {
  57.     SDKUnhook(client, SDKHook_WeaponSwitch, OnWeaponCanUse);
  58.     SDKHook(client, SDKHook_WeaponCanSwitchToPost, OnWeaponCanUse);
  59.     SDKHook(client, SDKHook_WeaponDropPost, OnWeaponCanUse);
  60. }
  61.  
  62. public Action OnWeaponCanUse(i, weapon)
  63. {
  64.     if(bIsSurvivor(i))
  65.     {
  66.         KeyValues kv = new KeyValues("speed_modifier");
  67.         if (kv.ImportFromFile(sDataFilePath))
  68.         {
  69.             new priWeapon = GetPlayerWeaponSlot(i, 0);
  70.             if(priWeapon != -1)
  71.             {
  72.                 decl String:sWeaponEx[32];
  73.                 GetEntityClassname(priWeapon, sWeaponEx, sizeof(sWeaponEx));
  74.                 if (KvJumpToKey(kv, sWeaponEx, true))
  75.                 {
  76.                     float num = KvGetFloat(kv, "speed", 1.0);
  77.                     float gravity = KvGetFloat(kv, "gravity", 1.0);
  78.                     SetEntPropFloat(i, Prop_Data, "m_flLaggedMovementValue", num);
  79.                     SetEntityGravity(i, gravity)
  80.                 }
  81.             }
  82.             if (!IsValidEntity(priWeapon))
  83.             {
  84.                 SetEntPropFloat(i, Prop_Data, "m_flLaggedMovementValue", 1.0);
  85.                 SetEntityGravity(i, 1.0)
  86.             }
  87.         }
  88.     }
  89.     return Plugin_Continue;
  90. }
  91.  
  92. void KvWriteToFile(const char[] path)
  93. {
  94.     KeyValues kv = new KeyValues("speed_modifier");
  95.     kv.SetFloat("weapon_autoshotgun/speed", 1.0);
  96.     kv.SetFloat("weapon_hunting_rifle/speed", 1.0);
  97.     kv.SetFloat("weapon_pistol/speed", 1.0);
  98.     kv.SetFloat("weapon_rifle_ak47/speed", 1.0);
  99.     kv.SetFloat("weapon_rifle/speed", 1.0);
  100.     kv.SetFloat("weapon_pumpshotgun/speed", 1.0);
  101.     kv.SetFloat("weapon_sniper_awp/speed", 1.0);
  102.     kv.SetFloat("weapon_shotgun_chrome/speed", 1.0);
  103.     kv.SetFloat("weapon_pistol_magnum/speed", 1.0);
  104.     kv.SetFloat("weapon_shotgun_spas/speed", 1.0);
  105.     kv.SetFloat("weapon_smg/speed", 1.0);
  106.     kv.SetFloat("weapon_smg_mp5/speed", 1.0);
  107.     kv.SetFloat("weapon_smg_silenced/speed", 1.0);
  108.     kv.SetFloat("weapon_sniper_military/speed", 1.0);
  109.     kv.SetFloat("weapon_rifle_sg552/speed", 1.0);
  110.     kv.SetFloat("weapon_sniper_scout/speed", 1.0);
  111.     kv.SetFloat("weapon_rifle_m60/speed", 1.0);
  112.     kv.SetFloat("weapon_rifle_desert/speed", 1.0);
  113.     kv.SetFloat("weapon_grenade_launcher/speed", 1.0);
  114.    
  115.     kv.SetFloat("weapon_autoshotgun/gravity", 1.0);
  116.     kv.SetFloat("weapon_hunting_rifle/gravity", 1.0);
  117.     kv.SetFloat("weapon_pistol/gravity", 1.0);
  118.     kv.SetFloat("weapon_rifle_ak47/gravity", 1.0);
  119.     kv.SetFloat("weapon_rifle/gravity", 1.0);
  120.     kv.SetFloat("weapon_pumpshotgun/gravity", 1.0);
  121.     kv.SetFloat("weapon_sniper_awp/gravity", 1.0);
  122.     kv.SetFloat("weapon_shotgun_chrome/gravity", 1.0);
  123.     kv.SetFloat("weapon_pistol_magnum/gravity", 1.0);
  124.     kv.SetFloat("weapon_shotgun_spas/gravity", 1.0);
  125.     kv.SetFloat("weapon_smg/gravity", 1.0);
  126.     kv.SetFloat("weapon_smg_mp5/gravity", 1.0);
  127.     kv.SetFloat("weapon_smg_silenced/gravity", 1.0);
  128.     kv.SetFloat("weapon_sniper_military/gravity", 1.0);
  129.     kv.SetFloat("weapon_rifle_sg552/gravity", 1.0);
  130.     kv.SetFloat("weapon_sniper_scout/gravity", 1.0);
  131.     kv.SetFloat("weapon_rifle_m60/gravity", 1.0);
  132.     kv.SetFloat("weapon_rifle_desert/gravity", 1.0);
  133.     kv.SetFloat("weapon_grenade_launcher/gravity", 1.0);
  134.     kv.ExportToFile(path);
  135.    
  136.     delete kv;
  137. }
  138.  
  139. stock bool bIsSurvivor(int client)
  140. {
  141.     return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
  142. }
Advertisement
Add Comment
Please, Sign In to add comment