OldSchoolHack

Register / Login English

M-i-K-e's AAPG SDK 28.07.2016

not available
  • Category: Sourcecode
  • Developer:
  • Uploaded by: System
  • Uploaded at:
  • System: Windows
Download (339.91 KB)

VirusTotal Result: 0/55

virustotal

Description

Offsets:
CPP Code:
  1.  
  2. GObjects: 0x03145764
  3. GNames: 0x03145734
  4. ProcessEvent: 0x001A0C60
  5.  

Notes:

Before that person comes along and asks what features this has... this is not something for the newbies to take and use instantly to hack in-game, if you are learning how to hack games/know how to hack and want a SDK, then this is for you guys.

If you do not already know C++, then go away and learn C++ first.


Includes:
CPP Code:
  1.  
  2. #include "BaseDefinitions.h"
  3. #include "SDK\inc\GameClasses.h"
  4.  

CPP Code:
  1.  
  2. template < class T >
  3. T* FindInstance( void )
  4. {
  5. for( int i(0); i < pGObjects->m_count; i++ )
  6. {
  7. UObject* pObject = pGObjects->m_data[ i ];
  8.  
  9. if( pObject &&
  10. pObject->IsA( T::StaticClass() ) &&
  11. !strstr( pObject->getName(), "Default__" ) )
  12. return (T*)pObject;
  13. }
  14.  
  15. return NULL;
  16. }
  17.  
  18. template< class T >
  19. T* UObject::FindObject ( char* objectName )
  20. {
  21. for ( int i = 0; i < pGObjects->m_count; ++i )
  22. {
  23. UObject* object = pGObjects->m_data[ i ];
  24.  
  25. if ( object
  26. && !strcmp( object->getFullName(), objectName ) )
  27. return ( T* )object;
  28. }
  29.  
  30. return NULL;
  31. }
  32.  
  33. bool UObject::IsA( UClass* objectClass )
  34. { // loop through this class and all supers to find a match
  35. for ( UClass* C = this->Class; C; C = ( UClass* )C->m_superField )
  36. {
  37. if ( C == objectClass )
  38. return true; //match found
  39. }
  40.  
  41. return false; //no match
  42. }
  43.  
  44. char* UObject::getName( void )
  45. {
  46. if ( this->Name.m_index >= 0
  47. && this->Name.m_index < pGNames->m_count
  48. && pGNames->m_data[ this->Name.m_index ] )
  49. return pGNames->m_data[ this->Name.m_index ]->m_name;
  50.  
  51. return "(invalid name)";
  52. }
  53.  
  54. char* UObject::getNameCPP( void )
  55. {
  56. char objectName[ 256 ];
  57.  
  58. if( this->IsA( UClass::StaticClass() ) )
  59. {
  60. UClass* classPtr = ( UClass* )this;
  61.  
  62. while ( classPtr )
  63. { //if 0 (strings match) pre-fix A for Actor
  64. if ( !strcmp( classPtr->getName(), "Actor" ) )
  65. {
  66. strcpy( objectName, "A" );
  67. break;
  68. }//pre-fix U for UObject
  69. else if ( !strcmp( classPtr->getName(), "Object" ) )
  70. {
  71. strcpy( objectName, "U" );
  72. break;
  73. }
  74. //Loop the supers
  75. classPtr = ( UClass* )classPtr->m_superField;
  76. }
  77. }
  78. else //Not a UClass
  79. strcpy( objectName, "F" );
  80.  
  81. strcat( objectName, this->getName() ); //Join the name to pre-fix
  82.  
  83. return objectName; //Return pre-fixed name
  84. }
  85.  
  86. char* UObject::getFullName( void )
  87. {
  88. static char result[ 256 ];
  89.  
  90. strcpy( result, "(invalid name)" ); //Start with invalid name
  91.  
  92. if ( this->Outer //Not dealing with outermost
  93. && this->Class ) //Make sure this class instance is valid
  94. {
  95. if ( this->Outer->Outer ) //Has 2 outers
  96. sprintf( result, "%s %s.%s.%s", this->Class->getName(), this->Outer->Outer->getName(), this->Outer->getName(), this->getName() );
  97. else //Has 1
  98. sprintf( result, "%s %s.%s", this->Class->getName(), this->Outer->getName(), this->getName() );
  99. }
  100.  
  101. return result; //Return either invalid or name with packages
  102. }

This SDK alignment is correct as of 28 Jul 2016.

Download M-i-K-e's AAPG SDK 28.07.2016