FlacoBey

Untitled

Jan 7th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 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.SetFloat("weapon_autoshotgun/speed", 1.0);
  41. kv.SetFloat("weapon_hunting_rifle/speed", 1.0);
  42. kv.SetFloat("weapon_pistol/speed", 1.0);
  43. kv.SetFloat("weapon_rifle_ak47/speed", 1.0);
  44. kv.SetFloat("weapon_rifle/speed", 1.0);
  45. kv.SetFloat("weapon_pumpshotgun/speed", 1.0);
  46. kv.SetFloat("weapon_sniper_awp/speed", 1.0);
  47. kv.SetFloat("weapon_shotgun_chrome/speed", 1.0);
  48. kv.SetFloat("weapon_pistol_magnum/speed", 1.0);
  49. kv.SetFloat("weapon_shotgun_spas/speed", 1.0);
  50. kv.SetFloat("weapon_smg/speed", 1.0);
  51. kv.SetFloat("weapon_smg_mp5/speed", 1.0);
  52. kv.SetFloat("weapon_smg_silenced/speed", 1.0);
  53. kv.SetFloat("weapon_sniper_military/speed", 1.0);
  54. kv.SetFloat("weapon_rifle_sg552/speed", 1.0);
  55. kv.SetFloat("weapon_sniper_scout/speed", 1.0);
  56. kv.SetFloat("weapon_rifle_m60/speed", 1.0);
  57. kv.SetFloat("weapon_rifle_desert/speed", 1.0);
  58.  
  59. kv.SetFloat("weapon_autoshotgun/gravity", 1.0);
  60. kv.SetFloat("weapon_hunting_rifle/gravity", 1.0);
  61. kv.SetFloat("weapon_pistol/gravity", 1.0);
  62. kv.SetFloat("weapon_rifle_ak47/gravity", 1.0);
  63. kv.SetFloat("weapon_rifle/speed", 1.0);
  64. kv.SetFloat("weapon_pumpshotgun/gravity", 1.0);
  65. kv.SetFloat("weapon_sniper_awp/gravity", 1.0);
  66. kv.SetFloat("weapon_shotgun_chrome/gravity", 1.0);
  67. kv.SetFloat("weapon_pistol_magnum/gravity", 1.0);
  68. kv.SetFloat("weapon_shotgun_spas/gravity", 1.0);
  69. kv.SetFloat("weapon_smg/gravity", 1.0);
  70. kv.SetFloat("weapon_smg_mp5/gravity", 1.0);
  71. kv.SetFloat("weapon_smg_silenced/gravity", 1.0);
  72. kv.SetFloat("weapon_sniper_military/gravity", 1.0);
  73. kv.SetFloat("weapon_rifle_sg552/gravity", 1.0);
  74. kv.SetFloat("weapon_sniper_scout/gravity", 1.0);
  75. kv.SetFloat("weapon_rifle_m60/gravity", 1.0);
  76. kv.SetFloat("weapon_rifle_desert/gravity", 1.0);
  77. kv.ExportToFile(path);
  78.  
  79. delete kv;
  80. }
  81.  
  82. public OnClientPutInServer(i)
  83. {
  84. if(bIsSurvivor(i))
  85. {
  86. SDKHook(i, SDKHook_PreThink, SDKHook_WeaponEquip1);
  87. }
  88. }
  89.  
  90. public OnClientDisconnect(i)
  91. {
  92. if(bIsSurvivor(i))
  93. {
  94. SDKUnhook(i, SDKHook_PreThink, SDKHook_WeaponEquip1);
  95. }
  96. }
  97.  
  98. public Action:SDKHook_WeaponEquip1(i)
  99. {
  100. KeyValues kv = new KeyValues("speed_modifier");
  101. if (kv.ImportFromFile(sDataFilePath))
  102. {
  103. new priWeapon = GetPlayerWeaponSlot(i, 0);
  104. if (!IsValidEntity(priWeapon)) return Plugin_Continue;
  105.  
  106. decl String:sWeaponEx[32];
  107. GetEntityClassname(priWeapon, sWeaponEx, sizeof(sWeaponEx));
  108. if (KvJumpToKey(kv, sWeaponEx, true))
  109. {
  110. float num = KvGetFloat(kv, "speed", 1.0);
  111. float gravity = KvGetFloat(kv, "gravity", 1.0);
  112. SetEntPropFloat(i, Prop_Data, "m_flLaggedMovementValue", num);
  113. SetEntityGravity(i, gravity)
  114. }
  115. }
  116. return Plugin_Continue;
  117. }
  118.  
  119. stock bool bIsSurvivor(int client)
  120. {
  121. return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
  122. }
Advertisement
Add Comment
Please, Sign In to add comment