Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- global ADDR_SAMP_INCHAT_PTR := 0x21A10C
- setCheckpoint(fX, fY, fZ, fSize := 3) {
- checkHandles()
- dwFunc := dwSAMP + 0x9D340
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- VarSetCapacity(buf, 16, 0)
- NumPut(fX, buf, 0, "Float")
- NumPut(fY, buf, 4, "Float")
- NumPut(fZ, buf, 8, "Float")
- NumPut(fSize, buf, 12, "Float")
- writeRaw(hGTA, pParam1, &buf, 16)
- dwLen := 31
- VarSetCapacity(injectData, dwLen, 0)
- NumPut(0xB9, injectData, 0, "UChar")
- NumPut(dwAddress, injectData, 1, "UInt")
- NumPut(0x68, injectData, 5, "UChar")
- NumPut(pParam1+12, injectData, 6, "UInt")
- NumPut(0x68, injectData, 10, "UChar")
- NumPut(pParam1, injectData, 11, "UInt")
- NumPut(0xE8, injectData, 15, "UChar")
- offset := dwFunc - (pInjectFunc + 20)
- NumPut(offset, injectData, 16, "Int")
- NumPut(0x05C7, injectData, 20, "UShort")
- NumPut(dwAddress+0x24, injectData, 22, "UInt")
- NumPut(1, injectData, 26, "UInt")
- NumPut(0xC3, injectData, 30, "UChar")
- ; -------------------------------------------------------------
- writeRaw(hGTA, pInjectFunc, &injectData, dwLen)
- hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
- waitForSingleObject(hThread, 0xFFFFFFFF)
- closeProcess(hThread)
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- writeMemory(hGTA, dwAddress + 0xC, fX, 4, "Float")
- writeMemory(hGTA, dwAddress + 0x10, fY, 4, "Float")
- writeMemory(hGTA, dwAddress + 0x14, fZ, 4, "Float")
- writeMemory(hGTA, dwAddress + 0x18, fSize, 4, "Float")
- }
- enableCheckpoint() {
- checkHandles()
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- writeMemory(hGTA, dwAddress + 0x24, 1, 1, "Byte")
- }
- disableCheckpoint() {
- checkHandles()
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- writeMemory(hGTA, dwAddress + 0x24, 0, 1, "Byte")
- }
- isCheckpointEnabled() {
- if (!checkHandles()) {
- ErrorLevel := ERROR_INVALID_HANDLE
- return false
- }
- dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_INCHAT_PTR)
- if (ErrorLevel || !dwAddress) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- isSet := readMem(hGTA, dwAddress + 0x24, 1, "Byte")
- if (ErrorLevel) {
- ErrorLevel := ERROR_READ_MEMORY
- return false
- }
- ErrorLevel := ERROR_OK
- return isSet
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement