diff --git a/addons/sourcemod/scripting/shavit-misc.sp b/addons/sourcemod/scripting/shavit-misc.sp index 991930f7..1a8333e5 100644 --- a/addons/sourcemod/scripting/shavit-misc.sp +++ b/addons/sourcemod/scripting/shavit-misc.sp @@ -72,7 +72,6 @@ typedef StopTimerCallback = function void (int data); // game specific EngineVersion gEV_Type = Engine_Unknown; -int gI_Ammo = -1; char gS_RadioCommands[][] = { "coverme", "takepoint", "holdpos", "regroup", "followme", "takingfire", "go", "fallback", "sticktog", "getinpos", "stormfront", "report", "roger", "enemyspot", "needbackup", "sectorclear", "inposition", "reportingin", @@ -251,8 +250,6 @@ public void OnPluginStart() gH_CheckpointsCookie = RegClientCookie("shavit_checkpoints", "Checkpoints settings", CookieAccess_Protected); gA_PersistentData = new ArrayList(sizeof(persistent_data_t)); - gI_Ammo = FindSendPropInfo("CCSPlayer", "m_iAmmo"); - // noclip RegConsoleCmd("sm_p", Command_Noclip, "Toggles noclip."); RegConsoleCmd("sm_prac", Command_Noclip, "Toggles noclip. (sm_p alias)"); @@ -277,6 +274,8 @@ public void OnPluginStart() HookEvent("player_team", Player_Notifications, EventHookMode_Pre); HookEvent("player_death", Player_Notifications, EventHookMode_Pre); HookEventEx("weapon_fire", Weapon_Fire); + HookEventEx("weapon_fire_on_empty", Weapon_Fire); + HookEventEx("weapon_reload", Weapon_Fire); AddCommandListener(Command_Drop, "drop"); AddTempEntHook("EffectDispatch", EffectDispatch); AddTempEntHook("World Decal", WorldDecal); @@ -313,7 +312,7 @@ public void OnPluginStart() gCV_CreateSpawnPoints = new Convar("shavit_misc_createspawnpoints", "6", "Amount of spawn points to add for each team.\n0 - Disabled", 0, true, 0.0, true, 32.0); gCV_DisableRadio = new Convar("shavit_misc_disableradio", "1", "Block radio commands.\n0 - Disabled (radio commands work)\n1 - Enabled (radio commands are blocked)", 0, true, 0.0, true, 1.0); gCV_Scoreboard = new Convar("shavit_misc_scoreboard", "1", "Manipulate scoreboard so score is -{time} and deaths are {rank})?\nDeaths part requires shavit-rankings.\n0 - Disabled\n1 - Enabled", 0, true, 0.0, true, 1.0); - gCV_WeaponCommands = new Convar("shavit_misc_weaponcommands", "2", "Enable sm_usp, sm_glock and sm_knife?\n0 - Disabled\n1 - Enabled\n2 - Also give infinite reserved ammo.", 0, true, 0.0, true, 2.0); + gCV_WeaponCommands = new Convar("shavit_misc_weaponcommands", "2", "Enable sm_usp, sm_glock and sm_knife?\n0 - Disabled\n1 - Enabled\n2 - Also give infinite reserved ammo.\n3 - Also give infinite clip ammo.", 0, true, 0.0, true, 3.0); gCV_PlayerOpacity = new Convar("shavit_misc_playeropacity", "69", "Player opacity (alpha) to set on spawn.\n-1 - Disabled\nValue can go up to 255. 0 for invisibility.", 0, true, -1.0, true, 255.0); gCV_StaticPrestrafe = new Convar("shavit_misc_staticprestrafe", "1", "Force prestrafe for every pistol.\n250 is the default value and some styles will have 260.\n0 - Disabled\n1 - Enabled", 0, true, 0.0, true, 1.0); gCV_NoclipMe = new Convar("shavit_misc_noclipme", "1", "Allow +noclip, sm_p and all the noclip commands?\n0 - Disabled\n1 - Enabled\n2 - requires 'admin_noclipme' override or ADMFLAG_CHEATS flag.", 0, true, 0.0, true, 2.0); @@ -1866,12 +1865,17 @@ public Action Command_Weapon(int client, int args) void SetWeaponAmmo(int client, int weapon) { int iAmmo = GetEntProp(weapon, Prop_Send, "m_iPrimaryAmmoType"); - SetEntData(client, gI_Ammo + (iAmmo * 4), 255, 4, true); + SetEntProp(client, Prop_Send, "m_iAmmo", 255, 4, iAmmo); if(gEV_Type == Engine_CSGO) { SetEntProp(weapon, Prop_Send, "m_iPrimaryReserveAmmoCount", 255); } + + if (gCV_WeaponCommands.IntValue >= 3) + { + SetEntProp(weapon, Prop_Data, "m_iClip1", 70); + } } public Action Command_Checkpoints(int client, int args)