FlacoBey

Untitled

Jan 8th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.56 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdkhooks>
  3. #include <sdktools>
  4.  
  5. char sDataFilePath[PLATFORM_MAX_PATH];
  6.  
  7. public OnPluginStart()
  8. {
  9.    
  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.     HookEvent("item_pickup", Event_ItemPickup, EventHookMode_Post);
  20.     HookEvent("player_spawn", Event_PlayerSpawn);
  21. }
  22.  
  23. public Action:Event_PlayerSpawn(Event event, const char[] name, bool dontBroadcast)
  24. {
  25.     new i = GetClientOfUserId(GetEventInt(event, "userid"));
  26.     if(bIsSurvivor(i))
  27.     {
  28.         KeyValues kv = new KeyValues("speed_modifier");
  29.         if (kv.ImportFromFile(sDataFilePath))
  30.         {
  31.             new priWeapon = GetPlayerWeaponSlot(i, 0);
  32.             if (!IsValidEntity(priWeapon)) return Plugin_Continue;
  33.    
  34.             decl String:sWeaponEx[32];
  35.             GetEntityClassname(priWeapon, sWeaponEx, sizeof(sWeaponEx));
  36.             if (KvJumpToKey(kv, sWeaponEx, true))
  37.             {
  38.                 float num = KvGetFloat(kv, "speed", 1.0);
  39.                 float gravity = KvGetFloat(kv, "gravity", 1.0);
  40.                 SetEntPropFloat(i, Prop_Data, "m_flLaggedMovementValue", num);
  41.                 SetEntityGravity(i, gravity)
  42.             }
  43.         }
  44.     }
  45.     return Plugin_Continue;
  46. }
  47.  
  48. public Action:Event_ItemPickup(Handle:event, const String:name[], bool:dontBroadcast)
  49. {
  50.     new i = GetClientOfUserId(GetEventInt(event, "userid"));
  51.     if(bIsSurvivor(i))
  52.     {
  53.         KeyValues kv = new KeyValues("speed_modifier");
  54.         if (kv.ImportFromFile(sDataFilePath))
  55.         {
  56.             new priWeapon = GetPlayerWeaponSlot(i, 0);
  57.             if (!IsValidEntity(priWeapon)) return Plugin_Continue;
  58.    
  59.             decl String:sWeaponEx[32];
  60.             GetEntityClassname(priWeapon, sWeaponEx, sizeof(sWeaponEx));
  61.             if (KvJumpToKey(kv, sWeaponEx, true))
  62.             {
  63.                 float num = KvGetFloat(kv, "speed", 1.0);
  64.                 float gravity = KvGetFloat(kv, "gravity", 1.0);
  65.                 SetEntPropFloat(i, Prop_Data, "m_flLaggedMovementValue", num);
  66.                 SetEntityGravity(i, gravity)
  67.             }
  68.         }
  69.     }
  70.     return Plugin_Continue;
  71. }
  72.  
  73. void KvWriteToFile(const char[] path)
  74. {
  75.     KeyValues kv = new KeyValues("speed_modifier");
  76.     kv.SetFloat("weapon_autoshotgun/speed", 1.0);
  77.     kv.SetFloat("weapon_hunting_rifle/speed", 1.0);
  78.     kv.SetFloat("weapon_pistol/speed", 1.0);
  79.     kv.SetFloat("weapon_rifle_ak47/speed", 1.0);
  80.     kv.SetFloat("weapon_rifle/speed", 1.0);
  81.     kv.SetFloat("weapon_pumpshotgun/speed", 1.0);
  82.     kv.SetFloat("weapon_sniper_awp/speed", 1.0);
  83.     kv.SetFloat("weapon_shotgun_chrome/speed", 1.0);
  84.     kv.SetFloat("weapon_pistol_magnum/speed", 1.0);
  85.     kv.SetFloat("weapon_shotgun_spas/speed", 1.0);
  86.     kv.SetFloat("weapon_smg/speed", 1.0);
  87.     kv.SetFloat("weapon_smg_mp5/speed", 1.0);
  88.     kv.SetFloat("weapon_smg_silenced/speed", 1.0);
  89.     kv.SetFloat("weapon_sniper_military/speed", 1.0);
  90.     kv.SetFloat("weapon_rifle_sg552/speed", 1.0);
  91.     kv.SetFloat("weapon_sniper_scout/speed", 1.0);
  92.     kv.SetFloat("weapon_rifle_m60/speed", 1.0);
  93.     kv.SetFloat("weapon_rifle_desert/speed", 1.0);
  94.    
  95.     kv.SetFloat("weapon_autoshotgun/gravity", 1.0);
  96.     kv.SetFloat("weapon_hunting_rifle/gravity", 1.0);
  97.     kv.SetFloat("weapon_pistol/gravity", 1.0);
  98.     kv.SetFloat("weapon_rifle_ak47/gravity", 1.0);
  99.     kv.SetFloat("weapon_rifle/speed", 1.0);
  100.     kv.SetFloat("weapon_pumpshotgun/gravity", 1.0);
  101.     kv.SetFloat("weapon_sniper_awp/gravity", 1.0);
  102.     kv.SetFloat("weapon_shotgun_chrome/gravity", 1.0);
  103.     kv.SetFloat("weapon_pistol_magnum/gravity", 1.0);
  104.     kv.SetFloat("weapon_shotgun_spas/gravity", 1.0);
  105.     kv.SetFloat("weapon_smg/gravity", 1.0);
  106.     kv.SetFloat("weapon_smg_mp5/gravity", 1.0);
  107.     kv.SetFloat("weapon_smg_silenced/gravity", 1.0);
  108.     kv.SetFloat("weapon_sniper_military/gravity", 1.0);
  109.     kv.SetFloat("weapon_rifle_sg552/gravity", 1.0);
  110.     kv.SetFloat("weapon_sniper_scout/gravity", 1.0);
  111.     kv.SetFloat("weapon_rifle_m60/gravity", 1.0);
  112.     kv.SetFloat("weapon_rifle_desert/gravity", 1.0);
  113.     kv.ExportToFile(path);
  114.    
  115.     delete kv;
  116. }
  117.  
  118. stock bool bIsSurvivor(int client)
  119. {
  120.     return client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2 && !IsClientInKickQueue(client) && IsPlayerAlive(client);
  121. }
Advertisement
Add Comment
Please, Sign In to add comment