Новичок
-
Автор темы
- #1
Hi guys, im trying to make a ragebot works but my getdamage function always return -1.f, i dont know why, anyone can help me?
My GetDamage Function:
My FireBullet Function:
My GetDamage Function:
Код:
float Autowall :: GetDamage (Vector point, C_BasePlayer * target) {
auto local = g_LocalPlayer;
FireBulletData = FireBulletData(point, local);
data.src = local-> GetEyePos ();
Ângulos QAngle = Math::CalcAngle(data.src, point);
Math::AngleVectors (angles, data.direction);
data.direction.NormalizeInPlace();
if (FireBullet (local-> m_hActiveWeapon (), dados, destino)) {
return data.current_damage;
}
return -1.f;
}
Код:
auto local = g_LocalPlayer;
trace_t exit_trace;
WeapInfo_t* weapon_info = weapon->GetWeapInfo();
data.penetrate_count = 4;
data.trace_length = 0.f;
if (weapon_info == nullptr) {
return false;
}
data.current_damage = weapon_info->m_iDamage();
data.max_range = weapon_info->m_fRange();
while (data.penetrate_count > 0 && data.current_damage >= 1.f) {
data.max_range -= data.trace_length;
auto end = (data.direction * data.max_range) + data.src;
TraceLine(data.src, end, MASK_SHOT_HULL | CONTENTS_HITBOX, local, &data.enter_trace);
&data.enter_trace );
// "fraction == 1" means that we didn't hit anything. we don't want that- so let's break on it.
if (data.enter_trace.fraction == 1.f) {
break;
}
data.trace_length += data.enter_trace.fraction * data.max_range;
data.current_damage *= pow(weapon_info->m_fRangeModifier(), (data.trace_length / 500.f));
auto enter_surface_data = g_PhysSurface->GetSurfaceData(data.enter_trace.surface.surfaceProps);
auto enter_pen_mod = enter_surface_data-> game.flPenetrationModifier;
int enter_material = enter_surface_data-> game.material;
if (data.trace_length> 3000.f || enter_pen_mod <0.1f) {
pausa;
}
C_BasePlayer * entity = (C_BasePlayer *) data.enter_trace.hit_entity;
bool can_do_damage = (data.enter_trace.hitgroup! = HITGROUP_GEAR && data.enter_trace.hitgroup! = HITGROUP_GENERIC);
bool is_enemy = (local-> m_iTeamNum ()! = entity-> m_iTeamNum ());
if ((can_do_damage && is_enemy)) {
ScaleDamage ((C_BasePlayer *) data.enter_trace.hit_entity, data.enter_trace.hitgroup, weapon_info, data.current_damage);
return true;
}
if (! HandleBulletPen (weapon_info, data)) {
pausa;
}
}
retorna falso;