Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- restartGameEx() {
- if(!checkHandles())
- return -1
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET) ;g_SAMP
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return -1
- }
- dwFunc := dwSAMP + 0xA060
- VarSetCapacity(injectData, 11, 0) ;mov, call, retn
- NumPut(0xB9, injectData, 0, "UChar") ;mov ecx 0+1
- NumPut(dwAddress, injectData, 1, "UInt") ;1+4
- NumPut(0xE8, injectData, 5, "UChar") ;call 5+1
- offset := dwFunc - (pInjectFunc + 10)
- NumPut(offset, injectData, 6, "Int") ; 6+4
- NumPut(0xC3, injectData, 10, "UChar") ; 10+1
- writeRaw(hGTA, pInjectFunc, &injectData, 11)
- if(ErrorLevel)
- return false
- hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
- if(ErrorLevel)
- return false
- waitForSingleObject(hThread, 0xFFFFFFFF)
- return true
- }
- disconnectEx() {
- if(!checkHandles())
- return 0
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET) ;g_SAMP
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- dwAddress := readDWORD(hGTA, dwAddress + 0x3c9) ;pRakClientInterface
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- ecx := dwAddress ;this
- dwAddress := readDWORD(hGTA, dwAddress) ;vtable
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- VarSetCapacity(injectData, 24, 0) ;mov, call, retn
- NumPut(0xB9, injectData, 0, "UChar") ;mov ecx 0+1
- NumPut(ecx, injectData, 1, "UInt") ;1+4
- NumPut(0xB8, injectData, 5, "UChar") ;mov eax 5+1
- NumPut(dwAddress, injectData, 6, "UInt") ;6+4
- ;NumPut(0x006A006A, injectData, 10, "UInt") ; 2x push 10+4
- NumPut(0x68, injectData, 10, "UChar") ;10 + 1 ;push style
- NumPut(0, injectData, 11, "UInt") ;11 + 4
- NumPut(0x68, injectData, 15, "UChar") ;15 + 1 ;push style
- NumPut(500, injectData, 16, "UInt") ;16 + 4
- ;---
- NumPut(0x50FF, injectData, 20, "UShort") ;20 + 2
- NumPut(0x08, injectData, 22, "UChar") ;22 + 1
- NumPut(0xC3, injectData, 23, "UChar") ;retn 23+1
- writeRaw(hGTA, pInjectFunc, &injectData, 24)
- if(ErrorLevel)
- return false
- hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0)
- if(ErrorLevel)
- return false
- waitForSingleObject(hThread, 0xFFFFFFFF)
- return true
- }
- setrestart() {
- VarSetCapacity(old, 4, 0)
- dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET) ;g_SAMP
- if(ErrorLevel || dwAddress==0) {
- ErrorLevel := ERROR_READ_MEMORY
- return 0
- }
- NumPut(9,old,0,"Int")
- writeRaw(hGTA, dwAddress + 957, &old, 4)
- }
- restart() {
- restartGameEx()
- disconnectEx()
- Sleep 1000
- setrestart()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement