Guest User

Untitled

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