Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. global ADDR_SAMP_INCHAT_PTR := 0x21A10C
  2.  
  3. setCheckpoint(fX, fY, fZ, fSize := 3) {
  4. checkHandles()
  5. dwFunc := dwSAMP + 0x9D340
  6.  
  7. dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
  8.  
  9. VarSetCapacity(buf, 16, 0)
  10. NumPut(fX, buf, 0, "Float")
  11. NumPut(fY, buf, 4, "Float")
  12. NumPut(fZ, buf, 8, "Float")
  13. NumPut(fSize, buf, 12, "Float")
  14.  
  15. writeRaw(hGTA, pParam1, &buf, 16)
  16. dwLen := 31
  17. VarSetCapacity(injectData, dwLen, 0)
  18.  
  19. NumPut(0xB9, injectData, 0, "UChar")
  20. NumPut(dwAddress, injectData, 1, "UInt")
  21. NumPut(0x68, injectData, 5, "UChar")
  22. NumPut(pParam1+12, injectData, 6, "UInt")
  23. NumPut(0x68, injectData, 10, "UChar")
  24. NumPut(pParam1, injectData, 11, "UInt")
  25. NumPut(0xE8, injectData, 15, "UChar")
  26.  
  27. offset := dwFunc - (pInjectFunc + 20)
  28. NumPut(offset, injectData, 16, "Int")
  29. NumPut(0x05C7, injectData, 20, "UShort")
  30. NumPut(dwAddress+0x24, injectData, 22, "UInt")
  31. NumPut(1, injectData, 26, "UInt")
  32. NumPut(0xC3, injectData, 30, "UChar")
  33.  
  34. ; -------------------------------------------------------------
  35.  
  36. writeRaw(hGTA, pInjectFunc, &injectData, dwLen)
  37. hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
  38. waitForSingleObject(hThread, 0xFFFFFFFF)
  39. closeProcess(hThread)
  40.  
  41. dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
  42.  
  43. writeMemory(hGTA, dwAddress + 0xC, fX, 4, "Float")
  44. writeMemory(hGTA, dwAddress + 0x10, fY, 4, "Float")
  45. writeMemory(hGTA, dwAddress + 0x14, fZ, 4, "Float")
  46. writeMemory(hGTA, dwAddress + 0x18, fSize, 4, "Float")
  47. }
  48.  
  49. enableCheckpoint() {
  50. checkHandles()
  51.  
  52. dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
  53. writeMemory(hGTA, dwAddress + 0x24, 1, 1, "Byte")
  54. }
  55.  
  56. disableCheckpoint() {
  57. checkHandles()
  58.  
  59. dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
  60. writeMemory(hGTA, dwAddress + 0x24, 0, 1, "Byte")
  61. }
  62.  
  63. isCheckpointEnabled() {
  64. if (!checkHandles()) {
  65. ErrorLevel := ERROR_INVALID_HANDLE
  66. return false
  67. }
  68.  
  69. dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
  70. if (ErrorLevel || !dwAddress) {
  71. ErrorLevel := ERROR_READ_MEMORY
  72. return false
  73. }
  74.  
  75. isSet := readMem(hGTA, dwAddress + 0x24, 1, "Byte")
  76. if (ErrorLevel) {
  77. ErrorLevel := ERROR_READ_MEMORY
  78. return false
  79. }
  80.  
  81. ErrorLevel := ERROR_OK
  82. return isSet
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement