implements IBPI_Combat_C
0x00x019A
Members 21
| Offset | Size | Name | Type | Flags | Default |
|---|---|---|---|---|---|
| 0x08 | UberGraphFrame | FPointerToUberGraphFrame | Transient+2 flags | {} | |
| 0x08 | CurrentHp | double | 7 flags | 100 | |
| 0x08 | maxHP | double | 7 flags | 100 | |
| 0x08 | Attacker | AActor* | 7 flags | nullptr | |
| 0x48 | incomingHitboxInfo | FST_HitboxData | 5 flags | {Damage_15_2068E77745C092F1FC7634A91107BEAB=5, HitStopDurat… | |
| 0x18 | Forward Vector | FVector | 7 flags | {X=0, Y=0, Z=0} | |
| 0x01 | Hit Response | EN_HitResponse | 7 flags | NewEnumerator0 | |
| 0x0121 | 0x07 | padding / unreflected | |||
| 0x08 | shakeTimer | FTimerHandle | 5 flags | {Handle=0} | |
| 0x04 | shakeIterations | int32 | 7 flags | 5 | |
| 0x0134 | 0x04 | padding / unreflected | |||
| 0x08 | deathSound | USoundBase* | 6 flags | nullptr | |
| 0x08 | deathVFX | UNiagaraSystem* | 6 flags | nullptr | |
| 0x01 | intangible? | bool | 7 flags | false | |
| 0x01 | providesBounce? | bool | 7 flags | true | |
| 0x014A | 0x06 | padding / unreflected | |||
| 0x08 | mainMesh | UMeshComponent* | 7 flags | nullptr | |
| 0x18 | meshRelativeLoc | FVector | 7 flags | {X=0, Y=0, Z=0} | |
| 0x01 | shouldShake? | bool | 7 flags | true | |
| 0x01 | providesPower? | bool | 6 flags | false | |
| 0x0172 | 0x06 | padding / unreflected | |||
| 0x08 | hitConfirmSound | USoundCue* | 6 flags | /Game/Audio/Sounds/Actions/hits/Cue_HitEnemy.Cue_HitEnemy | |
| 0x18 | Query Location | FVector | 7 flags | {X=0, Y=0, Z=0} | |
| 0x01 | isGuarding? | bool | 7 flags | false | |
| 0x01 | automaticHitSound | bool | 7 flags | true | |
Inherited from UActorComponent 15
| Offset | Size | Name | Type | Flags | Default |
|---|---|---|---|---|---|
| 0x30 | PrimaryComponentTick | FActorComponentTickFunction | 3 flags | {} | |
| 0x10 | ComponentTags | TArray<FName> | 4 flags | [] | |
| 0x10 | AssetUserData | TArray<UAssetUserData*> | Protected+7 flags | [] | |
| 0x0080 | 0x04 | padding / unreflected | |||
| 0x04 | UCSSerializationIndex | int32 | 5 flags | -1 | |
| 0x01 | bNetAddressable : 1bit 3 | bool | Protected+3 flags | false | |
| 0x01 | bReplicateUsingRegisteredSubObjectList : 1bit 4 | bool | Protected+9 flags | false | |
| 0x01 | bReplicates : 1bit 5 | bool | Net+7 flags | false | |
| 0x0089 | 0x01 | padding / unreflected | |||
| 0x01 | bAutoActivate : 1bit 1 | bool | 6 flags | false | |
| 0x01 | bIsActive : 1bit 2 | bool | NetTransient+4 flags | false | |
| 0x01 | bEditableWhenInherited : 1bit 3 | bool | 5 flags | true | |
| 0x01 | bCanEverAffectNavigation : 1bit 5 | bool | Protected+6 flags | false | |
| 0x01 | bIsEditorOnly : 1bit 7 | bool | 6 flags | false | |
| 0x008B | 0x02 | padding / unreflected | |||
| 0x01 | CreationMethod | EComponentCreationMethod | 5 flags | Native | |
| 0x01 | OnComponentActivated | FMulticastScriptDelegate | 4 flags | <delegate> | |
| 0x01 | OnComponentDeactivated | FMulticastScriptDelegate | 4 flags | <delegate> | |
Functions 14
| Signature | Flags | Native | Params |
|---|---|---|---|
void guardVFX(const FVector& InputPin)Script4 statements · 179 bytes of bytecode0x0000CallFunc_SpawnSoundAtLocation_ReturnValue = SpawnSoundAtLocation(this, /Game/Audio/Sounds/Cue_Guard.Cue_Guard, InputPin, FRotator(0, 0, 0), 1f, 1.3f, 0f, nullptr, nullptr, true);0x0052CallFunc_SpawnSystemAtLocation_ReturnValue = SpawnSystemAtLocation(this, /Game/VFX/Emitters/NS_Guard.NS_Guard, InputPin, FRotator(0, 0, 0), FVector(1, 1, 1), true, true, 0, true);0x00B0return;0x00B2// end of script | Public | 0x18 | |
void shakeMesh()Script22 statements · 680 bytes of bytecode0x00008 = 8;0x001BCallFunc_Greater_IntInt_ReturnValue = Greater_IntInt(shakeIterations, 0);0x003Dif (!(CallFunc_Greater_IntInt_ReturnValue)) goto Label_025D;0x004BCallFunc_Multiply_DoubleDouble_ReturnValue = Multiply_DoubleDouble(8, -1);0x0079CallFunc_RandomFloatInRange_ReturnValue = RandomFloatInRange(CallFunc_Multiply_DoubleDouble_ReturnValue, 8);0x00A7CallFunc_Multiply_DoubleDouble_ReturnValue_1 = Multiply_DoubleDouble(8, -1);0x00D5CallFunc_Multiply_DoubleDouble_ReturnValue_2 = Multiply_DoubleDouble(8, -1);0x0103CallFunc_RandomFloatInRange_ReturnValue_1 = RandomFloatInRange(CallFunc_Multiply_DoubleDouble_ReturnValue_1, 8);0x0131CallFunc_RandomFloatInRange_ReturnValue_2 = RandomFloatInRange(CallFunc_Multiply_DoubleDouble_ReturnValue_2, 8);0x015FCallFunc_MakeVector_ReturnValue = MakeVector(CallFunc_RandomFloatInRange_ReturnValue_2, CallFunc_RandomFloatInRange_ReturnValue_1, CallFunc_RandomFloatInRange_ReturnValue);0x0196CallFunc_Add_VectorVector_ReturnValue = Add_VectorVector(meshRelativeLoc, CallFunc_MakeVector_ReturnValue);0x01C4mainMesh.K2_SetRelativeLocation(CallFunc_Add_VectorVector_ReturnValue, false, CallFunc_K2_SetRelativeLocation_SweepHitResult_1, false);0x01F8CallFunc_Subtract_IntInt_ReturnValue = Subtract_IntInt(shakeIterations, 1);0x0222Temp_int_Variable = CallFunc_Subtract_IntInt_ReturnValue;0x023DshakeIterations = Temp_int_Variable;0x0258goto Label_02A5;0x025DLabel_025D:0x025DmainMesh.K2_SetRelativeLocation(meshRelativeLoc, false, CallFunc_K2_SetRelativeLocation_SweepHitResult, false);0x0291K2_ClearAndInvalidateTimerHandle(this, shakeTimer);0x02A5Label_02A5:0x02A5return;0x02A7// end of script | Public | 0x00 | |
void BPI_ConfirmAttack(AActor* HitPerson, const EN_HitResponse& EnemiesHitResponse, const FVector& ConfirmLocation, bool providesBounce?, bool providesPower?)Script8 statements · 108 bytes of bytecode0x0000PersistentFrame.K2Node_Event_HitPerson = HitPerson;0x0012PersistentFrame.K2Node_Event_EnemiesHitResponse = EnemiesHitResponse;0x0024PersistentFrame.K2Node_Event_ConfirmLocation = ConfirmLocation;0x0036PersistentFrame.K2Node_Event_providesBounce_ = providesBounce?;0x0048PersistentFrame.K2Node_Event_providesPower_ = providesPower?;0x005AExecuteUbergraph_BP_HpHitable(174);0x0069return;0x006B// end of script | Public | 0x2A | |
void BPI_CreateHitboxes()Script3 statements · 18 bytes of bytecode0x0000ExecuteUbergraph_BP_HpHitable(175);0x000Freturn;0x0011// end of script | Public | 0x00 | |
void BPI_CombatDeath(double dissolveDelay)Script4 statements · 36 bytes of bytecode0x0000PersistentFrame.K2Node_Event_dissolveDelay = dissolveDelay;0x0012ExecuteUbergraph_BP_HpHitable(176);0x0021return;0x0023// end of script | Public | 0x08 | |
void BPI_PerformDamageResponse(const EN_DamageType& DamageType, const FVector& attackDirection)Script5 statements · 54 bytes of bytecode0x0000PersistentFrame.K2Node_Event_DamageType = DamageType;0x0012PersistentFrame.K2Node_Event_attackDirection = attackDirection;0x0024ExecuteUbergraph_BP_HpHitable(177);0x0033return;0x0035// end of script | Public | 0x20 | |
void BPI_EndActiveFrames()Script3 statements · 18 bytes of bytecode0x0000ExecuteUbergraph_BP_HpHitable(178);0x000Freturn;0x0011// end of script | Public | 0x00 | |
void BPI_TouchHazard(const FVector& Location)Script4 statements · 36 bytes of bytecode0x0000PersistentFrame.K2Node_Event_Location = Location;0x0012ExecuteUbergraph_BP_HpHitable(179);0x0021return;0x0023// end of script | Public | 0x18 | |
void BPI_ContactDamageResponse()Script3 statements · 18 bytes of bytecode0x0000ExecuteUbergraph_BP_HpHitable(180);0x000Freturn;0x0011// end of script | Public | 0x00 | |
void ReceiveBeginPlay()Script3 statements · 18 bytes of bytecode0x0000ExecuteUbergraph_BP_HpHitable(181);0x000Freturn;0x0011// end of script | EventPublic | 0x00 | |
void doHitStop(float Duration, float Slow Speed)Script5 statements · 54 bytes of bytecode0x0000PersistentFrame.K2Node_CustomEvent_Duration = Duration;0x0012PersistentFrame.K2Node_CustomEvent_Slow_Speed = Slow Speed;0x0024ExecuteUbergraph_BP_HpHitable(475);0x0033return;0x0035// end of script | 0x08 | ||
void BPI_TryDamage(AActor* Attacker, const FST_HitboxData& HitboxInfo, const FVector& ForwardVector, const FVector& QueryLocation)Script7 statements · 90 bytes of bytecode0x0000PersistentFrame.K2Node_Event_Attacker_1 = Attacker;0x0012PersistentFrame.K2Node_Event_HitboxInfo_1 = HitboxInfo;0x0024PersistentFrame.K2Node_Event_ForwardVector_1 = ForwardVector;0x0036PersistentFrame.K2Node_Event_QueryLocation_1 = QueryLocation;0x0048ExecuteUbergraph_BP_HpHitable(603);0x0057return;0x0059// end of script | Public | 0x80 | |
void BPI_TryParry(AActor* Attacker, const FST_HitboxData& HitboxInfo, const FVector& ForwardVector, const FVector& QueryLocation, bool Knockback?)Script8 statements · 108 bytes of bytecode0x0000PersistentFrame.K2Node_Event_Attacker = Attacker;0x0012PersistentFrame.K2Node_Event_HitboxInfo = HitboxInfo;0x0024PersistentFrame.K2Node_Event_ForwardVector = ForwardVector;0x0036PersistentFrame.K2Node_Event_QueryLocation = QueryLocation;0x0048PersistentFrame.K2Node_Event_Knockback_ = Knockback?;0x005AExecuteUbergraph_BP_HpHitable(2536);0x0069return;0x006B// end of script | Public | 0x81 | |
void ExecuteUbergraph_BP_HpHitable(int32 EntryPoint)Script130 statements · 2,810 bytes of bytecode0x0000PushFlow(Label_0AF7);0x0005goto [EntryPoint];0x000FCallFunc_GetOwner_ReturnValue = GetOwner();0x0023CallFunc_GetOwner_ReturnValue.CustomTimeDilation = 1f;0x0050PopFlow();0x0051Label_0051:0x0051if (!(automaticHitSound)) PopFlow();0x005BCallFunc_SpawnSoundAtLocation_ReturnValue_1 = SpawnSoundAtLocation(this, hitConfirmSound, Query Location, FRotator(0, 0, 0), 1f, 1f, 0f, nullptr, nullptr, true);0x00ADPopFlow();0x00AEPopFlow();0x00AFPopFlow();0x00B0PopFlow();0x00B1PopFlow();0x00B2PopFlow();0x00B3PopFlow();0x00B4PopFlow();0x00B5CallFunc_IsValid_ReturnValue = IsValid(mainMesh);0x00D2if (!(CallFunc_IsValid_ReturnValue)) goto Label_00E1;0x00E0PopFlow();0x00E1Label_00E1:0x00E1CallFunc_GetOwner_ReturnValue_5 = GetOwner();0x00F5CallFunc_GetComponentByClass_ReturnValue = CallFunc_GetOwner_ReturnValue_5.GetComponentByClass(/Script/Engine.MeshComponent);0x0128CallFunc_IsValid_ReturnValue_1 = IsValid(CallFunc_GetComponentByClass_ReturnValue);0x0145if (!(CallFunc_IsValid_ReturnValue_1)) PopFlow();0x014FCallFunc_GetOwner_ReturnValue_5 = GetOwner();0x0163CallFunc_GetComponentByClass_ReturnValue = CallFunc_GetOwner_ReturnValue_5.GetComponentByClass(/Script/Engine.MeshComponent);0x0196mainMesh = CallFunc_GetComponentByClass_ReturnValue;0x01A9meshRelativeLoc = mainMesh.RelativeLocation;0x01DAPopFlow();0x01DBCallFunc_GetOwner_ReturnValue = GetOwner();0x01EFCallFunc_GetOwner_ReturnValue.CustomTimeDilation = K2Node_CustomEvent_Slow_Speed;0x0220Delay(this, K2Node_CustomEvent_Duration, LatentActionInfo{0xF, -143962333, FName(ExecuteUbergraph_BP_HpHitable), this});0x025APopFlow();0x025Bif (!(intangible?)) goto Label_026A;0x0269PopFlow();0x026ALabel_026A:0x026AAttacker = K2Node_Event_Attacker_1;0x027DincomingHitboxInfo = K2Node_Event_HitboxInfo_1;0x0298Forward Vector = K2Node_Event_ForwardVector_1;0x02B3Query Location = K2Node_Event_QueryLocation_1;0x02CEPushFlow(Label_03CE);0x02D3PushFlow(Label_031C);0x02D8PushFlow(Label_0899);0x02DDPushFlow(Label_0856);0x02E2if (!(isGuarding?)) goto Label_097D;0x02F0Hit Response = 1;0x0304guardVFX(Query Location);0x031BPopFlow();0x031CLabel_031C:0x031CK2Node_DynamicCast_AsBPI_Combat = Cast<BPI_Combat_C>(Attacker);0x0340K2Node_DynamicCast_bSuccess = Cast<2>(K2Node_DynamicCast_AsBPI_Combat);0x035Dif (!(K2Node_DynamicCast_bSuccess)) PopFlow();0x0367CallFunc_GetOwner_ReturnValue_1 = GetOwner();0x037BK2Node_DynamicCast_AsBPI_Combat.BPI_ConfirmAttack(CallFunc_GetOwner_ReturnValue_1, Hit Response, Query Location, providesBounce?, providesPower?);0x03CDPopFlow();0x03CELabel_03CE:0x03CECallFunc_EqualEqual_DoubleDouble_ReturnValue = EqualEqual_DoubleDouble(maxHP, 0);0x03F4if (!(CallFunc_EqualEqual_DoubleDouble_ReturnValue)) goto Label_05CD;0x0402Label_0402:0x0402CallFunc_GetOwner_ReturnValue_4 = GetOwner();0x0416K2Node_DynamicCast_AsBPI_Combat_2 = Cast<BPI_Combat_C>(CallFunc_GetOwner_ReturnValue_4);0x043AK2Node_DynamicCast_bSuccess_2 = Cast<2>(K2Node_DynamicCast_AsBPI_Combat_2);0x0457if (!(K2Node_DynamicCast_bSuccess_2)) goto Label_054B;0x0465CallFunc_GetOwner_ReturnValue_7 = GetOwner();0x0479CallFunc_K2_GetActorLocation_ReturnValue_1 = Attacker.K2_GetActorLocation();0x04ABCallFunc_K2_GetActorLocation_ReturnValue_2 = CallFunc_GetOwner_ReturnValue_7.K2_GetActorLocation();0x04DDCallFunc_GetDirectionUnitVector_ReturnValue = GetDirectionUnitVector(CallFunc_K2_GetActorLocation_ReturnValue_1, CallFunc_K2_GetActorLocation_ReturnValue_2);0x050BK2Node_DynamicCast_AsBPI_Combat_2.BPI_PerformDamageResponse(incomingHitboxInfo.DamageType_19_CC06EAD1426104EDCDC6BB915B624248, CallFunc_GetDirectionUnitVector_ReturnValue);0x054BLabel_054B:0x054BCallFunc_GetEnumeratorUserFriendlyName_ReturnValue = GetEnumeratorUserFriendlyName(/Game/Data/ENUMS/EN_DamageType.EN_DamageType, incomingHitboxInfo.DamageType_19_CC06EAD1426104EDCDC6BB915B624248);0x0582PrintString(this, CallFunc_GetEnumeratorUserFriendlyName_ReturnValue, true, true, LinearColor{1f, 0f, 0.121181f, 1f}, 10f, FName(None));0x05CCPopFlow();0x05CDLabel_05CD:0x05CDCallFunc_LessEqual_DoubleDouble_ReturnValue = LessEqual_DoubleDouble(CurrentHp, 0);0x05F3if (!(CallFunc_LessEqual_DoubleDouble_ReturnValue)) goto Label_0402;0x0601PushFlow(Label_060B);0x0606goto Label_0402;0x060BLabel_060B:0x060BCallFunc_GetOwner_ReturnValue_2 = GetOwner();0x061FCallFunc_DoesImplementInterface_ReturnValue = DoesImplementInterface(CallFunc_GetOwner_ReturnValue_2, /Game/Data/Interfaces/BPI_Combat.BPI_Combat_C);0x0645if (!(CallFunc_DoesImplementInterface_ReturnValue)) goto Label_06E1;0x0653CallFunc_GetOwner_ReturnValue_2 = GetOwner();0x0667K2Node_DynamicCast_AsBPI_Combat_1 = Cast<BPI_Combat_C>(CallFunc_GetOwner_ReturnValue_2);0x068BK2Node_DynamicCast_bSuccess_1 = Cast<2>(K2Node_DynamicCast_AsBPI_Combat_1);0x06A8if (!(K2Node_DynamicCast_bSuccess_1)) PopFlow();0x06B2K2Node_DynamicCast_AsBPI_Combat_1.BPI_CombatDeath(0);0x06E0PopFlow();0x06E1Label_06E1:0x06E1CallFunc_GetOwner_ReturnValue_3 = GetOwner();0x06F5CallFunc_K2_GetActorLocation_ReturnValue = CallFunc_GetOwner_ReturnValue_3.K2_GetActorLocation();0x0727CallFunc_SpawnSoundAtLocation_ReturnValue = SpawnSoundAtLocation(this, deathSound, CallFunc_K2_GetActorLocation_ReturnValue, FRotator(0, 0, 0), 1f, 1f, 0f, nullptr, nullptr, true);0x0779CallFunc_GetOwner_ReturnValue_3 = GetOwner();0x078DCallFunc_K2_GetActorLocation_ReturnValue = CallFunc_GetOwner_ReturnValue_3.K2_GetActorLocation();0x07BFCallFunc_SpawnSystemAtLocation_ReturnValue = SpawnSystemAtLocation(this, deathVFX, CallFunc_K2_GetActorLocation_ReturnValue, FRotator(0, 0, 0), FVector(1, 1, 1), true, true, 0, true);0x081DCallFunc_GetOwner_ReturnValue_3 = GetOwner();0x0831CallFunc_GetOwner_ReturnValue_3.K2_DestroyActor();0x0855PopFlow();0x0856Label_0856:0x0856CallFunc_doHitStop_Duration_ImplicitCast = Cast<3>(incomingHitboxInfo.HitStopDuration_16_E15EA3AC41362D7EA0AEB3A8064CF3A7);0x087CdoHitStop(CallFunc_doHitStop_Duration_ImplicitCast, 0f);0x0898PopFlow();0x0899Label_0899:0x0899CallFunc_EqualEqual_ByteByte_ReturnValue = EqualEqual_ByteByte(mainMesh.Mobility, 2);0x08CECallFunc_BooleanAND_ReturnValue = BooleanAND(shouldShake?, CallFunc_EqualEqual_ByteByte_ReturnValue);0x08F4if (!(CallFunc_BooleanAND_ReturnValue)) PopFlow();0x08FEK2Node_CreateDelegate_OutputDelegate.Bind(this, shakeMesh);0x0915CallFunc_K2_SetTimerDelegate_ReturnValue = K2_SetTimerDelegate(K2Node_CreateDelegate_OutputDelegate, 0.05f, true, 0f, 0f);0x094AshakeTimer = CallFunc_K2_SetTimerDelegate_ReturnValue;0x0965shakeIterations = 4;0x097CPopFlow();0x097DLabel_097D:0x097DCallFunc_Subtract_DoubleDouble_ReturnValue = Subtract_DoubleDouble(CurrentHp, incomingHitboxInfo.Damage_15_2068E77745C092F1FC7634A91107BEAB);0x09B4CurrentHp = CallFunc_Subtract_DoubleDouble_ReturnValue;0x09CFHit Response = 0;0x09E3goto Label_0051;0x09E8if (!(intangible?)) PopFlow();0x09F2Attacker = K2Node_Event_Attacker;0x0A05incomingHitboxInfo = K2Node_Event_HitboxInfo;0x0A20Forward Vector = K2Node_Event_ForwardVector;0x0A3BCallFunc_GetOwner_ReturnValue_6 = GetOwner();0x0A4FK2Node_DynamicCast_AsBPI_Combat_3 = Cast<BPI_Combat_C>(CallFunc_GetOwner_ReturnValue_6);0x0A73K2Node_DynamicCast_bSuccess_3 = Cast<2>(K2Node_DynamicCast_AsBPI_Combat_3);0x0A90if (!(K2Node_DynamicCast_bSuccess_3)) goto Label_0ADE;0x0A9EK2Node_DynamicCast_AsBPI_Combat_3.BPI_PerformDamageResponse(0, FVector(0, 0, 0));0x0ADELabel_0ADE:0x0ADEHit Response = 2;0x0AF2goto Label_031C;0x0AF7Label_0AF7:0x0AF7return;0x0AF9// end of script | Final | 0x04 |