Triggerbot randomly crash
I tried to make triggerbot but sometimes i have randomly crash when i using this triggerbot. When i hit anyone i got crash.
Pls help me, i'm not good in c++ ;x
Code:
void CLegitBot::DoTrigger(CUserCmd *pCmd)
{
IClientEntity* pLocal = hackManager.pLocal();
CBaseCombatWeapon* pWeapon = (CBaseCombatWeapon*)Interfaces::EntList->GetClientEntityFromHandle(pLocal->GetActiveWeaponHandle());
if (pWeapon)
{
if (pWeapon->GetAmmoInClip() == 0 || !GameUtils::IsBallisticWeapon(pWeapon))
{
return;
}
}
else
return;
Vector ViewAngles = pCmd->viewangles;
if (Menu::Window.LegitBotTab.TriggerRecoil.GetState())
ViewAngles += pLocal->localPlayerExclusive()->GetAimPunchAngle() * 2.f;
Vector src, dst, forward;
trace_t tr;
Ray_t ray;
CTraceFilter filter;
AngleVectors(ViewAngles, &forward);
forward *= 8192;
filter.pSkip = pLocal;
src = pLocal->GetOrigin() + pLocal->GetViewOffset();
dst = src + forward;
ray.Init(src, dst);
Interfaces::Trace->TraceRay(ray, 0x46004003, &filter, &tr);
if (!tr.m_pEnt)
return;
int hitgroup = tr.hitgroup;
bool didHit = false;
if (Menu::Window.LegitBotTab.TriggerHead.GetState() && hitgroup == HITGROUP_HEAD)
didHit = true;
if (Menu::Window.LegitBotTab.TriggerChest.GetState() && hitgroup == HITGROUP_CHEST)
didHit = true;
if (Menu::Window.LegitBotTab.TriggerStomach.GetState() && hitgroup == HITGROUP_STOMACH)
didHit = true;
if (Menu::Window.LegitBotTab.TriggerArms.GetState() && (hitgroup == HITGROUP_LEFTARM || hitgroup == HITGROUP_RIGHTARM))
didHit = true;
if (Menu::Window.LegitBotTab.TriggerLegs.GetState() && (hitgroup == HITGROUP_LEFTLEG || hitgroup == HITGROUP_RIGHTLEG))
didHit = true;
float hitchance = 75.f + (Menu::Window.LegitBotTab.TriggerHitChanceAmmount.GetValue() / 4);
if (didHit && (!Menu::Window.LegitBotTab.TriggerHitChance.GetState() || (1.0f - pWeapon->GetAccuracyPenalty()) * 100.f >= hitchance))
{
if (TargetMeetsTriggerRequirements(tr.m_pEnt))
{
if (Menu::Window.LegitBotTab.TriggerDelay.GetValue() > 1)
{
if (CustomDelay >= Menu::Window.LegitBotTab.TriggerDelay.GetValue() / 30)
{
CustomDelay = 0;
shoot = true;
if (*pWeapon->m_AttributeManager()->m_Item()->ItemDefinitionIndex() != 64)
pCmd->buttons |= IN_ATTACK;
else
pCmd->buttons |= IN_ATTACK2;
}
else
{
CustomDelay++;
return;
}
}
else
{
CustomDelay = 0;
shoot = true;
if (*pWeapon->m_AttributeManager()->m_Item()->ItemDefinitionIndex() != 64)
pCmd->buttons |= IN_ATTACK;
else
pCmd->buttons |= IN_ATTACK2;
}
}
}
else
{
if (Menu::Window.LegitBotTab.TriggerBreak.GetValue() > 1)
{
if (CustomBreak <= Menu::Window.LegitBotTab.TriggerBreak.GetValue())
CustomBreak = 0;
shoot = false;
}
}
}