diff --git a/AutismBotIngame/scripting/autism_bot_info.sp b/AutismBotIngame/scripting/autism_bot_info.sp index 9314fb5a..b81b394e 100644 --- a/AutismBotIngame/scripting/autism_bot_info.sp +++ b/AutismBotIngame/scripting/autism_bot_info.sp @@ -298,7 +298,34 @@ public void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float { float angles_eye[3]; GetClientEyeAngles(client, angles_eye); - feet_origin[2] += 10.0; + //feet_origin[2] += 10.0; + TR_TraceRayFilter(feet_origin, angles_eye, MASK_ALL, RayType_Infinite, TraceRayDontHitSelf, client); + if (TR_DidHit()) + { + TR_GetEndPosition(ground_pos); + ground_distance = GetVectorDistance(feet_origin, ground_pos); + float forward_distance = GetVectorDistance(feet_origin, ground_pos); + if (forward_distance > 280) + { + float velocity[3]; + GetEntPropVector(client, Prop_Data, "m_vecVelocity", velocity); + NegateVector(velocity); + if (velocity[0] > 0) + velocity[0] += 850; + else + velocity[0] -= 850; + if (velocity[1] > 0) + velocity[1] += 850; + else + velocity[1] -= 850; + velocity[2] += 150; + TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, velocity); + } + } + + + + /* TR_TraceRayFilter(feet_origin, angles_eye, MASK_ALL, RayType_Infinite, TraceRayDontHitSelf, client); if (TR_DidHit()) { @@ -323,17 +350,18 @@ public void OnPlayerRunCmdPost(int client, int buttons, int impulse, const float GetEntPropVector(client, Prop_Data, "m_vecVelocity", velocity); NegateVector(velocity); if (velocity[0] > 0) - velocity[0] += 150; + velocity[0] += 450; else - velocity[0] -= 150; + velocity[0] -= 450; if (velocity[1] > 0) - velocity[1] += 150; + velocity[1] += 450; else - velocity[1] -= 150; + velocity[1] -= 450; velocity[2] += 150; TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, velocity); } } + */ } } TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, Vel); @@ -372,8 +400,6 @@ public Action recursive_pressing(Handle timer, any data) } if (IsPlayerAlive(client)) { - if (GetEntityMoveType(client) == MOVETYPE_LADDER) - continue; int targeteam = 0; if (GetClientTeam(client) != 3) { @@ -397,6 +423,7 @@ public Action recursive_pressing(Handle timer, any data) reset_target_human_tp_coord(client); continue; } + //no target in water somehow target_enemy[client] = GetClosestClient_option1(targeteam == 2 ? 3 : 2, client); targethuman[client] = GetClosestClient_option1(targeteam == 2 ? 2 : 3, client); float enemy_distance = -1.0; @@ -688,6 +715,8 @@ public int GetClosestClient_option1(int targeteam, int client) { float nearestdistance = -1.0; int nearest = -1; + if (GetEntityMoveType(client) == MOVETYPE_LADDER) + return nearest; for (int i = 1; i <= MaxClients; i++) if (IsValidClient(i) && IsPlayerAlive(i) && i != client && GetClientTeam(i) == targeteam) { @@ -720,22 +749,6 @@ public int GetClosestClient_option1(int targeteam, int client) nearestdistance = dist_target; } } - if (nearest == -1) - { - for (int i = 1; i <= MaxClients; i++) - if (IsValidClient(i) && IsPlayerAlive(i) && i != client && GetClientTeam(i) == targeteam) - { - float pos[3]; - GetEntPropVector(i, Prop_Send, "m_vecOrigin", pos); - float dist_target = get_power_distance(client, pos); - if (nearestdistance < 0 || dist_target < nearestdistance) - { - nearest = i; - nearestdistance = dist_target; - } - - } - } return nearest; } @@ -862,7 +875,7 @@ public bool Filter_NoPlayers(int entity, int mask) public bool IsPointVisible(const float start[3], const float end[3]) { - TR_TraceRayFilter(start, end, MASK_ALL, RayType_EndPoint, Filter_NoPlayers); + TR_TraceRayFilter(start, end, MASK_SOLID, RayType_EndPoint, Filter_NoPlayers); return TR_GetFraction() == 1.0; }