FlacoBey

Untitled

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