Encryqed / Dumper-7

Unreal Engine SDK Generator
691 stars 174 forks source link

Member redefinition in classes generated by dumper (Deceit2 UE 5.4.1) #186

Closed h-arvs closed 2 months ago

h-arvs commented 2 months ago

image image Member redefinition in many classes, SS shows an example and then the error caused

Fischsalat commented 2 months ago

That should normally be fixed. Try the BP-Decompiler branch.

h-arvs commented 2 months ago

image Tried it, still some member redefinitions in classes (This is AB_WeaponImpacts_C)

h-arvs commented 2 months ago

image There is also members being named as a class which is the type of other members succeding it which messes things up

Fischsalat commented 2 months ago

Yea, that is a problem.

Sometimes enums are prefixed withe E in the reflection system already, other times they are not, such as here. The check for the prefix is just a simple if (EnumName[0] == 'E'). The problem with this check is that unprefixed enums with a name starting with E are considered to already have a prefix. The real name for your enum should be EEnum_Role.

If there's any chance anybody knows a better way, I'd change it. Testing for the 2nd letter could work for some games, but not for others which are breaking the UE coding standards with names such as EsomeEnum.

h-arvs commented 2 months ago

if first char E but second char isn't capital then prefix with another E :shrug: Just throwing out ideas, probably a lazy way to "fix" this. Just now realising this is legit what u wrote...

h-arvs commented 2 months ago

Could you check if member name and member type are the same, and if so prefix the member name with an underscore or something?

Fischsalat commented 2 months ago

Hm, I'd also need to do that for function parameters. I'm not sure if that would always work.

h-arvs commented 2 months ago

Any solutions... I kind of have to link everything, also dont want to go to each file one by one and fix it

Fischsalat commented 2 months ago

Fixing it manually is the only solution right now.

Encryqed commented 2 months ago

image There is also members being named as a class which is the type of other members succeding it which messes things up

Hey I'm currently looking into a fix for this issue. Could you tell me in which class this issue is happening since I'm trying to reproduce it.

h-arvs commented 2 months ago

Game is Deceit 2, latest patch on steam, UE version 5.4 iirc image This class is AB_WeaponImpacts_C where member redefinition is taking place image This class is BPFL_Gameplay_C_GetEnumRoleFromDeceitRole where the member being named as a class type is taking place

Encryqed commented 2 months ago

Hey I'm not able to find the BPFL_Gameplay_C_GetEnumRoleFromDeceitRole class like you stated in my SDK dump. I'm also not able to dump the SDK ingame since EasyAntiCheat doesn't allow me to do so. For now like Fischsalat said, Fixing it manually is the only solution.

h-arvs commented 2 months ago

There is an easy way to disable easy anti cheat, I'll show the steps in a minute

h-arvs commented 2 months ago

If you go to Drive:/EACprotectedGameInstallPath/EasyAntiCheat/ and open up settings.json and then change the product id and sandbox id the AC will be disabled (Its dumb), it wont let you go into a game though without byte patching a func

Fischsalat commented 2 months ago

Yea, the disabled AC is the exact problem, as the class doesn't seem to be loaded for him.

But well, there's a new issue with this exact problem of a member having the same name as an enum. I'll close this one and keep the other one, as it's more compressed.