Guest User

Untitled

a guest
Jan 18th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. float Hook_APrimalDinoCharacter_TakeDamage(APrimalDinoCharacter* _this, float Damage, FDamageEvent* DamageEvent, AController* EventInstigator, AActor* DamageCauser)
  2.  
  3. {
  4. if (EventInstigator && EventInstigator->CharacterField())
  5. {
  6. ACharacter* character = EventInstigator->CharacterField();
  7. if (character != nullptr && character && character->IsA(APrimalDinoCharacter::GetPrivateStaticClass()))
  8. {
  9. APrimalDinoCharacter* dino = static_cast<APrimalDinoCharacter*>(character);
  10. FString descr;
  11. dino->GetDinoDescriptiveName(&descr);
  12. Log::GetLog()->warn(descr.ToString());
  13. if (descr.Contains(L"Direwolf")
  14. || descr.Contains(L"Wyvern")
  15. || descr.Contains(L"Broodmother"))
  16. {
  17. UWorld* world = ArkApi::GetApiUtils().GetWorld();
  18. TArray<AActor*> new_actors;
  19. TArray<AActor*> actors_ignore;
  20. TArray<TEnumAsByte<enum EObjectTypeQuery>> types;
  21.  
  22. UKismetSystemLibrary::SphereOverlapActors_NEW(world, EventInstigator->RootComponentField()->RelativeLocationField(),
  23.  
  24. static_cast<float>((AntiFireBreath::MinimumEnemyStructureDistanceInFoundations * 300)), &types,
  25. APrimalStructure::GetPrivateStaticClass(), &actors_ignore,
  26. &new_actors);
  27.  
  28. for (const auto& actor : new_actors)
  29. {
  30. APrimalStructure* structure = static_cast<APrimalStructure*>(actor);
  31. Log::GetLog()->warn(FVector::Distance(EventInstigator->RootComponentField()->RelativeLocationField(), actor->RootComponentField()->RelativeLocationField()));
  32. if (structure->TargetingTeamField() != EventInstigator->TargetingTeamField())
  33. {
  34. return 0;
  35. }
  36.  
  37. }
  38. }
  39. }
  40. }return APrimalDinoCharacter_TakeDamage_original(_this, Damage, DamageEvent, EventInstigator, DamageCauser);
  41. }
Advertisement
Add Comment
Please, Sign In to add comment