Parsing

Untitled

May 17th, 2014
11,676
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.01 KB | None | 0 0
  1.  
  2. extern "C"{ void Print(const char*format,...); }
  3.  
  4. const char* Format(const char*format,...) { va_list params; char buffer[0x1000]; va_start(params, format); vsnprintf_s(buffer, 0x1000,0x1000, format, params); va_end(params); return buffer; }
  5.  
  6. class PS
  7. {
  8. public:
  9. typedef enum : signed __int32 { MFLAG = 0x321C, GAMERTAG = 0x2F9C, CLANTAG = 0x300C,BUTTONS = 0x568C, /* if it doesn't work, 0x5690*/ MOVEMENT_SPEED = 0x2F50, /* if it doesn't work, 0x2F54*/ unknown_flags1 = 0x10, unknown_flags2 = 0x124, team = 0x26F0 }preset_index;
  10. typedef enum : signed __int32 { X = 0x1C, Y = 0x20, Z = 0x24}pos;
  11. typedef enum : signed __int32 { DEFAULT, NOCLIP, UFO, NOCLIP_1, FREEZE, FREEZE_CONTROLS = 0x08 }mflag_values;
  12. int index; // clientIndex :p
  13. int getPlayerState() { return 0x8328F100 + (index * 0x3600); }
  14. void WriteInt16(signed __int32 id, signed __int16 *value) { *(signed __int16*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  15. void WriteInt32(signed __int32 id, signed __int32 *value) { *(signed __int32*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  16. void WriteInt64(signed __int32 id, signed __int64 *value) { *(signed __int64*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  17. void WriteUInt16(signed __int32 id, unsigned __int16 *value) { *(unsigned __int16*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  18. void WriteUInt32(signed __int32 id, unsigned __int32 *value) { *(unsigned __int32*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  19. void WriteUInt64(signed __int64 id, unsigned __int64 *value) { *(unsigned __int64*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  20. void WriteBoolean(signed __int32 id, bool value) { *(bool*)(0x8328F100 + (index * 0x3600) + id) = value; }
  21. void WriteString(signed __int32 id, const char*value) { strncpy((char*)(0x8328F100 + (index * 0x3600) + id), value, strlen(value)); }
  22. void WriteByte(signed __int32 id, unsigned char *value) { *(unsigned char*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  23. void WriteSingle(signed __int32 id, float *value) { *(float*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  24. void DumpPS() { for(int off = 0x00; off != 0x3600; off += 0x04){ int result = *(signed __int32*)(0x8328F100 + (index * 0x3600) + off); Print("%i located at %04X\n", result, off); } }
  25. #pragma region Bitwise
  26. //XOR
  27. void WriteInt16_XOR(signed __int32 id, signed __int16 value){ *(signed __int16*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  28. void WriteInt32_XOR(signed __int32 id, signed __int32 value){ *(signed __int32*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  29. void WriteInt64_XOR(signed __int32 id, signed __int32 value){ *(signed __int64*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  30. void WriteUInt16_XOR(signed __int32 id, unsigned __int16 value){ *(unsigned __int16*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  31. void WriteUInt32_XOR(signed __int32 id, unsigned __int32 value){ *(unsigned __int32*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  32. void WriteUInt64_XOR(signed __int32 id, unsigned __int32 value){ *(unsigned __int64*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  33. void WriteBoolean_XOR(signed __int32 id, bool value) { *(bool*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  34. void WriteByte_XOR(signed __int32 id, unsigned char value) { *(unsigned char*)(0x8328F100 + (index * 0x3600) + id) ^= value; }
  35. //OR
  36. void WriteInt16_OR(signed __int32 id, signed __int16 value){ *(signed __int16*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  37. void WriteInt32_OR(signed __int32 id, signed __int32 value){ *(signed __int32*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  38. void WriteInt64_OR(signed __int32 id, signed __int32 value){ *(signed __int64*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  39. void WriteUInt16_OR(signed __int32 id, unsigned __int16 value){ *(unsigned __int16*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  40. void WriteUInt32_OR(signed __int32 id, unsigned __int32 value){ *(unsigned __int32*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  41. void WriteUInt64_OR(signed __int32 id, unsigned __int32 value){ *(unsigned __int64*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  42. void WriteBoolean_OR(signed __int32 id, bool value) { *(bool*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  43. void WriteByte_OR(signed __int32 id, unsigned char value) { *(unsigned char*)(0x8328F100 + (index * 0x3600) + id) |= value; }
  44. //AND
  45. void WriteInt16_AND(signed __int32 id, signed __int16 value){ *(signed __int16*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  46. void WriteInt32_AND(signed __int32 id, signed __int32 value){ *(signed __int32*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  47. void WriteInt64_AND(signed __int32 id, signed __int32 value){ *(signed __int64*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  48. void WriteUInt16_AND(signed __int32 id, unsigned __int16 value){ *(unsigned __int16*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  49. void WriteUInt32_AND(signed __int32 id, unsigned __int32 value){ *(unsigned __int32*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  50. void WriteUInt64_AND(signed __int32 id, unsigned __int32 value){ *(unsigned __int64*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  51. void WriteBoolean_AND(signed __int32 id, bool value) { *(bool*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  52. void WriteByte_AND(signed __int32 id, unsigned char value) { *(unsigned char*)(0x8328F100 + (index * 0x3600) + id) &= value; }
  53. //NOT
  54. signed __int16 NOT_Int16(signed __int16 value) { return ~value; }
  55. signed __int32 NOT_Int32(signed __int32 value) { return ~value; }
  56. signed __int64 NOT_Int64(signed __int64 value) { return ~value; }
  57. unsigned __int16 NOT_UInt16(unsigned __int16 value) { return ~value; }
  58. unsigned __int32 NOT_UInt32(unsigned __int32 value) { return ~value; }
  59. unsigned __int64 NOT_UInt64(unsigned __int64 value) { return ~value; }
  60. unsigned char NOT_Byte(unsigned char value) { return ~value; }
  61. bool NOT_Boolean(bool value) { return ~value; }
  62. //Shifting left
  63. void SHIFTLEFT_Int16(signed __int32 id, signed __int32 bits) { *(signed __int16*)(0x8328F100 + (index * 0x3600) + id) <<= bits; }
  64. void SHIFTLEFT_Int32(signed __int32 id, signed __int32 bits) { *(signed __int32*)(0x8328F100 + (index * 0x3600) + id) <<= bits; }
  65. void SHIFTLEFT_Int64(signed __int32 id, signed __int32 bits) { *(signed __int64*)(0x8328F100 + (index * 0x3600) + id) <<= bits; }
  66. void SHIFTLEFT_UInt16(signed __int32 id, signed __int32 bits) { *(unsigned __int16*)(0x8328F100 + (index * 0x3600) + id) <<= bits; }
  67. void SHIFTLEFT_UInt32(signed __int32 id, signed __int32 bits) { *(unsigned __int32*)(0x8328F100 + (index * 0x3600) + id) <<= bits; }
  68. void SHIFTLEFT_UInt64(signed __int32 id, signed __int32 bits) { *(unsigned __int64*)(0x8328F100 + (index * 0x3600) + id) <<=bits; }
  69. void SHIFTLEFT_Byte(signed __int32 id, signed __int32 bits) { *(unsigned char*)(0x8328F100 + (index * 0x3600) + id) <<= bits; }
  70. //Shifing right
  71. void SHIFTRIGHT_Int16(signed __int32 id, signed __int32 bits) { *(signed __int16*)(0x8328F100 + (index * 0x3600) + id) >>= bits; }
  72. void SHIFTRIGHT_Int32(signed __int32 id, signed __int32 bits) { *(signed __int32*)(0x8328F100 + (index * 0x3600) + id) >>= bits; }
  73. void SHIFTRIGHT_Int64(signed __int32 id, signed __int32 bits) { *(signed __int64*)(0x8328F100 + (index * 0x3600) + id) >>= bits; }
  74. void SHIFTRIGHT_UInt16(signed __int32 id, signed __int32 bits) { *(unsigned __int16*)(0x8328F100 + (index * 0x3600) + id) >>= bits; }
  75. void SHIFTRIGHT_UInt32(signed __int32 id, signed __int32 bits) { *(unsigned __int32*)(0x8328F100 + (index * 0x3600) + id) >>= bits; }
  76. void SHIFTRIGHT_UInt64(signed __int32 id, signed __int32 bits) { *(unsigned __int64*)(0x8328F100 + (index * 0x3600) + id) >>=bits; }
  77. void SHIFTRIGHT_Byte(signed __int32 id, signed __int32 bits) { *(unsigned char*)(0x8328F100 + (index * 0x3600) + id) >>= bits; }
  78. #pragma endregion
  79. signed __int16 ReadInt16(signed __int32 id) { return *(__int16*)(0x8328F100 + (index * 0x3600) + id); }
  80. signed __int32 ReadInt32(signed __int32 id) { return *(__int32*)(0x8328F100 + (index * 0x3600) + id); }
  81. signed __int64 ReadInt64(signed __int32 id) { return *(__int64*)(0x8328F100 + (index * 0x3600) + id); }
  82. unsigned __int16 ReadUInt16(signed __int32 id) { return *(unsigned __int16*)(0x8328F100 + (index * 0x3600) + id); }
  83. unsigned __int32 ReadUInt32(signed __int32 id) { return *(unsigned __int32*)(0x8328F100 + (index * 0x3600) + id); }
  84. unsigned __int64 ReadUInt64(signed __int32 id) { return *(unsigned __int64*)(0x8328F100 + (index * 0x3600) + id); }
  85. bool ReadBoolean(signed __int32 id) { return *(bool*)(0x8328F100 + (index * 0x3600) + id); }
  86. const char*ReadString(signed __int32 id) { return (char*)(0x8328F100 + (index * 0x3600) + id); }
  87. unsigned char ReadByte(signed __int32 id) { *(unsigned char*)(0x8328F100 + (index * 0x3600) + id); }
  88. float ReadSingle(signed __int32 id) { *(float*)(0x8328F100 + (index * 0x3600) + id); }
  89. #pragma region Functions(push -4)
  90. void setPlayerOrigin(pos id, float *value) { *(float*)(0x8328F100 + (index * 0x3600) + id) = *value; }
  91. float getPlayerOrigin(pos id) { return *(float*)(0x8328F100 + (index * 0x3600) + id); }
  92. void setTeamIndex(signed __int32 id) { *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::team) = id; }
  93. void ToggleGodmode(bool enabled = false) { enabled^=1; (enabled ? *(signed __int32*)(0x8328F100 + (index * 0x3600) + 0x18) = 0x01 : *(signed __int32*)(0x8328F100 + (index * 0x3600) + 0x18) = ~0x01); }
  94. void Toggle3rdP() { if(*(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::unknown_flags1) != 0x00) { *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::unknown_flags1) = 0x00; } *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::unknown_flags1) ^= 0x02; int result = *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::unknown_flags1); SV_SendServerCommand((*(signed __int64*)(0x8399DA00 + 0x207E90 + (index * 0x6EA00))), 1, Format("e \"third person %s\"", result == 0x02 ? "on" : "off")); }
  95. void ToggleLaser() { if(*(signed __int32*)(0x8328F100 + (index * 0x3600) + PS::preset_index::unknown_flags2) != 0x00){ *(signed __int32*)(0x8328F100 + (index * 0x3600) + PS::preset_index::unknown_flags2) = 0x00; } *(signed __int32*)(0x8328F100 + (index * 0x3600) + PS::preset_index::unknown_flags2) ^= 0x10000; int result = (*(signed __int32*)(0x8328F100 + (index * 0x3600) + PS::preset_index::unknown_flags2)); SV_SendServerCommand((*(signed __int64*)(0x8399DA00 + 0x207E90 + (index * 0x6EA00))), 1, Format("e \"laser %s\"", result == 0x10000 ? "on" : "off")); }
  96. void ToggleInvisibility(bool enabled = false) { enabled ^= 1; *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::unknown_flags2) &= enabled?~0x20:0x20; }
  97. void ToggleMFlag(signed __int32 id) { if(*(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::MFLAG) != 0x00) { *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::MFLAG) = 0x00; } *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::MFLAG) ^= id; int result = (*(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::MFLAG) & id); if(id == 8) id -= 3; SV_SendServerCommand((*(signed __int64*)(0x8399DA00 + 0x207E90 + (index * 0x6EA00))), 1, Format("e \"%s %s\"", mflagz[id], result ? "on" : "off")); }
  98. void setGamertag(char*value) { strncpy((char*)(0x8328F100 + (index * 0x3600) + preset_index::GAMERTAG), value, 0x20); }
  99. void setClantag(char*value) { if(value[0] == '^') { value[strnlen(value, 0x4)+1] += '^7'; } strncpy((char*)(0x8328F100 + (index * 0x3600) + preset_index::CLANTAG), value, 0x4); }
  100. const char*getGamertag(bool format = true){ const char *value;(format ? value = Format("[%s]%s\0", (char*)(0x8328F100 + (index * 0x3600) + preset_index::CLANTAG), (char*)(0x8328F100 + (index * 0x3600) + preset_index::GAMERTAG)) : value = Format("%s\0", (char*)(0x8328F100 + (index * 0x3600) + preset_index::GAMERTAG))); return value;}
  101. void setSpeed(float *value) { *(float*)(0x8328F100 + (index * 0x3600) + preset_index::MOVEMENT_SPEED) = *value; }
  102. void appendSpeed(float *value) { *(float*)(0x8328F100 + (index * 0x3600) + preset_index::MOVEMENT_SPEED) += *value; }
  103. signed __int32 getButtonPressed() { return *(signed __int32*)(0x8328F100 + (index * 0x3600) + preset_index::BUTTONS); }
  104. #pragma endregion Functions
  105. };
Advertisement
Add Comment
Please, Sign In to add comment