You need to invert the pitch of move angles
Code:
void LookAt(bot_t* pBot, Vector target) {
edict_t *pEdict = pBot->pEdict;
Vector viewPos = pBot->pEdict->v.origin + pBot->pEdict->v.view_ofs;
Vector dir = target - viewPos;
Vector bot_angles = UTIL_VecToAngles(dir) -pEdict->v.punchangle;
pEdict->v.idealpitch = bot_angles.x;
pEdict->v.ideal_yaw = bot_angles.y;
ClampAngle(pEdict->v.idealpitch);
ClampAngle(pEdict->v.ideal_yaw);
pEdict->v.v_angle.x = pEdict->v.idealpitch;
pEdict->v.v_angle.y = pEdict->v.ideal_yaw;
pEdict->v.angles.x = pEdict->v.v_angle.x * -(1.f / 3.f); // Adjust the body angle pitch to point the gun correctly. (Invert for engine)
pEdict->v.angles.y = pEdict->v.v_angle.y;
pEdict->v.angles.z = pEdict->v.v_angle.z = 0;
}