Encryqed / Dumper-7

Unreal Engine SDK Generator
691 stars 174 forks source link

Access Violation, UE4.27 | The Texas Chain Saw Massacre #149

Closed NyanAlex closed 3 months ago

NyanAlex commented 3 months ago

image

Fischsalat commented 3 months ago

Use the latest commit from Main branchand let me know if it still crashes.

NyanAlex commented 3 months ago

still crashes image

Fischsalat commented 3 months ago

Call the ObjectArray::DumpObjects() function right after FName::Init() in Generator.cpp. Send the resulting GObjects dump then.

Never mind, wont help, give me a second.

Fischsalat commented 3 months ago

Put a print statement in there and send the console output afterwards. I want to see if they change the name of some member, or if there's something else wrong.

int32 SearchStart = ObjectArray::FindClassFast("Object").GetStructSize() + ObjectArray::FindObjectFast<UEStruct>("URL", EClassCastFlags::Struct).GetStructSize();

UEClass LevelClass = ObjectArray::FindClassFast("Level");

for (UEProperty Property : LevelClass.GetProperties())
    std::cout << "Property: " << Property.GetName() << std::endl;

int32 SearchEnd = ObjectArray::FindClassFast("Level").FindMember("OwningWorld").GetOffset();
NyanAlex commented 3 months ago

image

Fischsalat commented 3 months ago

Ok, this is strange, it doesn't find ULevel for some reason. I think you do need to send me an object dump (as described above).

NyanAlex commented 3 months ago

image GObjects Dump empty

Fischsalat commented 3 months ago

in that case try putting the call to DumpObjects right before the line that's crashing (in FindLevelActorsOffset).

NyanAlex commented 3 months ago

GObjects-Dump.txt

Fischsalat commented 3 months ago

BRUH! Just change "Level" to "level" and you should be good. What is wrong with these gamedevs??? image

NyanAlex commented 3 months ago

Thank you very much!

Fischsalat commented 3 months ago

what?

Fischsalat commented 3 months ago

I also pushed a fix to the Main and BP-Decompiler branches.

Fischsalat commented 3 months ago

I've noticed that this entire issue could've been avoided if I just used GetClass() on the ULevel instance I already have. This way there wouldn't have been any FindObject calls, and we would not have need to worry about the name starting capital or lowercase.