Type name not allowed

i have a line trace and i want to apply damage to it but every time i do it i get a error “type name not allowed”
on aaicharacter and horde character

horde .cpp

horde character .cpp

void AHordeCharacter::OnFire()
	FHitResult hit;
	FVector start= FP_Gun->GetForwardVector();
	FVector End = start + (FP_Gun->GetForwardVector()* 700.f);
	FCollisionQueryParams CollisionParams;
	FVector Start= FP_Gun->GetComponentLocation();
	DrawDebugLine(GetWorld(), Start, End, FColor::Green,true,2.f,false,4.f);
	GetWorld()->LineTraceSingleByChannel(hit, start, End, ECC_WorldDynamic, CollisionParams);

	UGameplayStatics::ApplyDamage(AAI_Character, 10.f, AHordeCharacter, false, false);


I personally would create a function in the character you try to apply damage to called, cast to that function when you hit the character and apply the damage yourself.
Similar to this:

horde character:

void AHordeCharacter::OnFire()
   AAICharacter* character = Cast<AAICharacter>(hit.GetActor());

    //linetrace stuff


void AAiCharacter::Damage(damageamount)
health = health - damageamount;

On the other hand the underscore in the “AAI_Character” could be an issue, but I’m not sure about that.

i keep getting a error for hit is undefined

try adding “ForceInit” to the Fhitresults.
Like this: FHitResults hit(ForceInit);

it still says it, i am suppose to be including a file

maybe this link will help in finding the issue?
How to use linetrace in c++