Another line that will likely cause an error:
if (Controller && Player == Pawn && (Player->GetActorLocation()) - GetActorLocation()).Size() < 300.f)
should be:
if (Controller != NULL && Player == Pawn && ((Player->GetActorLocation() - GetActorLocation().Size()) < 300.f))