Hi, all...
I'm having trouble trying to get an SDK in APB:BR.
I'm using the Feckless tutorial.
Using the correct GNames address, I had to make a small change
in FNameEntry struct.
I do not know if it's the right way, but I get the values in NamesDump.
This is the image of the GNames in ReClass

Although the first 3134 names appear with strange characters, I get a good part of
strings.
The problem is that UClass :: StaticClass () always returns NULL.
The UClass::StaticClass() uses UObject::FindClass("Class Core.Class"),
not correctly returns strings.
This is the log from Object->GetFullName()
The whole problem is FNameEntry struct, could someone help me with this struct?
Thanks for help.
I'm having trouble trying to get an SDK in APB:BR.
I'm using the Feckless tutorial.
Using the correct GNames address, I had to make a small change
in FNameEntry struct.
I do not know if it's the right way, but I get the values in NamesDump.
This is the image of the GNames in ReClass

PHP Code:
struct FNames
{
char Name [ 1 ];
};
struct FNameEntry
{
UCHAR Unknown [ 0x10 ];
FNames Names;
};
strings.
Code:
NamesDump
[...cut...]
Name[003130] ,ç¼
Name[003131] dç¼
Name[003132] ç¼
Name[003133] Ôç¼
Name[003134] øç¼
Name[003135] PreEngineTick
Name[003136] PostEngineTick
Name[003137] FrameEndSync time
Name[003138] Progression Fixups
Name[003139] Tick Time
Name[003140] EstimateMemoryUsage Time
Name[003141] UpdateRequestedLODs Time
Name[003142] GetWantedLODs Time
Name[003143] Feature UpdateResourceStreaming time
Name[003144] Anti-Hack Outfit Items
Name[003145] AcStorageInventory::UpdateAvailabilities
Name[003146] AcStorageInventory::LoadFrom
Name[003147] AcStorageInventory::LoadItemFlagsFrom
[...cut...]PHP Code:
void ProcessPackages()
{
// create packages array
vector< UObject* > vPackages;
// loop objects and process packages
for ( int i = 0; i < UObject::GObjObjects()->Num(); i++ )
{
// get object
UObject* pObject = UObject::GObjObjects()->Data[ i ];
if ( ! pObject )
continue;
if ( pObject->IsA ( UClass::StaticClass() ) )//UClass::StaticClass returns NULL
{
//...code cut...
not correctly returns strings.
PHP Code:
UClass* UObject::FindClass ( char* ClassFullName )
{
while ( ! UObject::GObjObjects() )
Sleep ( 1 ); //aqui era 100
while ( ! FName::Names() )
Sleep ( 1 ); //aqui era 100
for ( int i = 0; i < UObject::GObjObjects()->Count; ++i )
{
UObject* Object = UObject::GObjObjects()->Data[ i ];
if ( ! Object )
continue;
//
Log("[UObject::FindClass] Object->GetFullName() %s", Object->GetFullName());
//
if ( ! _stricmp ( Object->GetFullName(), ClassFullName ) )
return (UClass*) Object;
}
return NULL;
}
Code:
[UObject::FindClass] Object->GetFullName() (null)
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.cBulkDataCollection
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.hQ¼
[UObject::FindClass] Object->GetFullName() hQ¼ P¼.Default__Object
[UObject::FindClass] Object->GetFullName() cBulkDataCollection P¼.Default__cBulkDataCollection
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.cStatWatchManager
[UObject::FindClass] Object->GetFullName() cStatWatchManager P¼.Default__cStatWatchManager
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.cAPBCoreSDDStructs
[UObject::FindClass] Object->GetFullName() cAPBCoreSDDStructs P¼.Default__cAPBCoreSDDStructs
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.cAPBCoreSDD
[UObject::FindClass] Object->GetFullName() cAPBCoreSDD P¼.Default__cAPBCoreSDD
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.pQ¼
[UObject::FindClass] Object->GetFullName() pQ¼ P¼.Default__TextBuffer
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.t
[UObject::FindClass] Object->GetFullName() ÄT¼ P¼.Q¼
[UObject::FindClass] Object->GetFullName() Q¼ P¼.Default__Subsystem
[UObject::FindClass] Object->GetFullName() t P¼.Default__System
[UObject::FindClass] Object->GetFullName() 0O¼ P¼.t .StaleCacheDays
[UObject::FindClass] Object->GetFullName() 0O¼ P¼.t .MaxStaleCacheSize
[UObject::FindClass] Object->GetFullName() 0O¼ P¼.t .MaxOverallCacheSize
[UObject::FindClass] Object->GetFullName() 0O¼ P¼.t .PackageSizeSoftLimit
[UObject::FindClass] Object->GetFullName() LO¼ P¼.t .AsyncIOBandwidthLimit
[UObject::FindClass] Object->GetFullName() àO¼ P¼.t .SavePath
[UObject::FindClass] Object->GetFullName() àO¼ P¼.t .CachePath
[UObject::FindClass] Object->GetFullName() àO¼ P¼.t .CacheExt
[UObject::FindClass] Object->GetFullName() àO¼ P¼.t .ScreenShotPath
//... cut ...Thanks for help.
Aucun commentaire:
Enregistrer un commentaire