So, I've got a paste and I'm trying to make the legit bot triggerbot fire more than once.
Specifically, fire some number n times after the initial trigger.
The value is in the menu and does transfer globally to this function.

Code:
void CLegitBot::TriggerBot(CUserCmd* cmd)
{
	int savedValue = WeaponSettings->trigger_ammout;

	auto Key = Vars.legit_trigger_key;

	if (!WeaponSettings->trigger_enable)
		return;

	if (Key < 1)
	{
		Vars.trigger_keypressed = true;
	}
	else if (Key > 0 && GetAsyncKeyState(Key))
	{
		Vars.trigger_keypressed = true;
	}
	else if (Key > 0 && !GetAsyncKeyState(Key))
	{
		Vars.trigger_keypressed = false;
	}

	if (!Vars.trigger_keypressed)
		return;

	if (!Globals::LocalPlayer || !Globals::LocalPlayer->IsAlive())
		return;

	if (!Utils::HitChance(WeaponSettings->trigger_hitchance))
		return;

	if (Vars.legit_flashcheck && Globals::LocalPlayer->IsFlashed())
		return;

	//if ((Vars.trigger_jump && !(Globals::LocalPlayer->m_fFlags() & FL_ONGROUND)))
	//	return;

	long currentTime_ms = getMils();
	static long timeStamp = currentTime_ms;
	long oldTimeStamp;

	Vector traceStart, traceEnd;
	trace_t tr;

	QAngle viewAngles;
	Interfaces::Engine->GetViewAngles(viewAngles);
	QAngle viewAngles_rcs = viewAngles + Globals::LocalPlayer->m_aimPunchAngle() * 2.0f;

	Math::AngleVectors(viewAngles_rcs, traceEnd);

	traceStart = Globals::LocalPlayer->GetEyePos();
	traceEnd = traceStart + (traceEnd * 8192.0f);

	Utils::TraceLine(traceStart, traceEnd, 0x46004003, Globals::LocalPlayer, &tr);

	oldTimeStamp = timeStamp;
	timeStamp = currentTime_ms;

	C_BasePlayer* Player = (C_BasePlayer*)tr.hit_entity;
	if (!Player)
		return;

	if (Player->GetClientClass()->m_ClassID != CCSPlayer)
		return;

	if (Player == Globals::LocalPlayer || Player->IsDormant() || !Player->IsAlive() || Player->m_bGunGameImmunity())
		return;

	if (Player->IsTeammate() && Vars.legit_ignoreteam)
		return;

	if (!((WeaponSettings->trigger_Head && tr.hitgroup == HITGROUP_HEAD)
		|| (WeaponSettings->trigger_Body && (tr.hitgroup == HITGROUP_CHEST
			|| tr.hitgroup == HITGROUP_STOMACH)) || (WeaponSettings->trigger_Misc && (tr.hitgroup >= HITGROUP_LEFTARM && tr.hitgroup <= HITGROUP_RIGHTLEG))))
		return;

	if (Vars.legit_smokecheck &&  Utils::LineGoesThroughSmoke(Globals::LocalPlayer->GetEyePos(), tr.endpos))
		return;

	C_BaseCombatWeapon* activeWeapon = Globals::LocalPlayer->m_hActiveWeapon();

	if (!activeWeapon || !activeWeapon->HasBullets())
		return;

	int itemDefinitionIndex = activeWeapon->m_iItemDefinitionIndex();

	if (itemDefinitionIndex == WEAPON_KNIFE || itemDefinitionIndex >= WEAPON_KNIFE_BAYONET)
		return;

	int weaponType = activeWeapon->GetCSWeaponData()->iWeaponType;
	if (weaponType == WEAPONTYPE_C4 || weaponType == WEAPONTYPE_GRENADE)
		return;

	if (activeWeapon->m_flNextPrimaryAttack() > Interfaces::GlobalVars->curtime)
	{
		if (activeWeapon->m_iItemDefinitionIndex() == WEAPON_REVOLVER)
		{
			cmd->buttons &= ~IN_ATTACK2;
		}
		else
		{
			int i = savedValue;
			do {
				cmd->buttons &= IN_ATTACK;
				i--;
			} while (i < 0);
		}
	}
	else
	{
		if ((WeaponSettings->trigger_delay > 0) && currentTime_ms - oldTimeStamp < (WeaponSettings->trigger_delay * 10))
		{
			timeStamp = oldTimeStamp;
			return;
		}

		if (activeWeapon->m_iItemDefinitionIndex() == WEAPON_REVOLVER)
		{
			cmd->buttons |= IN_ATTACK2;
		}
		else
		{
			int i = savedValue;
			do {
				cmd->buttons |= IN_ATTACK;
				i--;
			} while (i < 0);
		}		
	}
	timeStamp = currentTime_ms;
}
Using the do/while loop to go though a value i untill it reaches 0 is the soultion I came up with.
However, It doesn't seem to work. It compiles however, the triggerbot only fires once.

Any help would be apreciated THANKS!