

![]() |
![]() |
|
|
#21 (permalink) |
|
Senior Member
Gold Member ![]() Inquisitor |
Game play when considering the story aspect has improved ten fold. However, I think that just driving around killin' **** features are now lacking. Also, many of vehicles extra features (lift on a fork lift, ramp on the semi, etc.) are missing.
|
|
|
|
![]() |
![]() |
| Sponsored links | |
|
Advertisement
|
|
![]() |
![]() |
|
|
#22 (permalink) |
|
Banned
![]() ![]() ![]() Advocate Join Date: Mar 2008
Posts: 308
![]() |
Yeah its a great game!!! I don't want to make it seem like it isn't but it is lacking in comparison to the previous GTA games, one would think that Rockstar would have gone all out on this one being the first release on the new Next Gen systems...
seriously though... would it have been so hard to add a few houses to buy??? a few cars u can only buy?? some extremely expensive guns to buy??? anything, no it wouldn't have been that hard, there are so many useless buildings just for decoration and houses that could have been used... i will say however the "friendship" system has its benefits which can be pretty nice on a few missions! SilentSymphony* |
|
|
|
![]() |
![]() |
![]() |
![]() |
|
|
#24 (permalink) |
|
Private Hack User
Gold Member
![]() ![]() ![]() ![]() Enlightened Join Date: Dec 2005
Location: Canada
Posts: 2,705
![]() ![]() ![]() |
Ps3. Remember they are going to release more 'chapters' to the game.
__________________
![]() Virtue itself turns vice, being misapplied, And vice sometime's by action dignified. |
|
|
|
![]() |
![]() |
![]() |
![]() |
|
|
#32 (permalink) |
|
Banned
![]() ![]() Deviant Join Date: Jun 2007
Location: Quebec, Canada
Posts: 123
![]() |
well you can just play gta san andreas multiplayer while gta IV get out on PC
SA-MP San Andreas Multiplayer mod for Grand Theft Auto (GTA SA) :D i have a coded a hax to double your speed, teleport, move with arrows, steal car remotely, repair car, g0d mode, repair tire and many more and i can publicly post the source of it :D memory.bas Code:
'##############################################
'# MemoryClass --> MemoryHandler #
'# Author : bLueStar #
'# Date : 27 Oct 2007 #
'# Version : 1.00 #
'# Description : All memory utility in one #
'##############################################
Option Explicit
Private Handler As Long ' Process Handle (Final one for use)
'// Internal Constants
Private Const MAX_PATH As Long = 260 ' Process Module Maximum path number
Private Const TOKEN_ADJUST_PRIVILEGES As Long = &H20 ' Token for LoadPriviledge
Private Const TOKEN_QUERY As Long = &H8 ' Token query Constant
Private Const SE_PRIVILEGE_ENABLED As Long = &H2 ' Value to switch priviledge on
Private Const PROCESS_VM_READ = &H10 ' Set process available for read
Private Const PROCESS_QUERY_INFORMATION = &H400 ' Process API Constant
Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF ' Process API Constant
'// Declare Types
Private Type LUID ' Debug Priviledge Type
LowPart As Long
HighPart As Long
End Type
Private Type TOKEN_PRIVILEGES ' LoadPriviledge Type
PrivilegeCount As Long
TheLuid As LUID
Attributes As Long
End Type
'// Declare APIs
Public Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Public Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, ByRef NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, ByRef PreviousState As TOKEN_PRIVILEGES, ByRef ReturnLength As Long) As Long
Public Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, ByRef TokenHandle As Long) As Long
Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Public Declare Function GetCurrentProcess Lib "kernel32.dll" () As Long
Public Declare Function GetLastError Lib "kernel32.dll" () As Long
Public Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function EnumProcessModules Lib "psapi.dll" (ByVal hProcess As Long, ByRef lphModule As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long
Public Declare Function GetModuleFileNameExA Lib "psapi.dll" (ByVal hProcess As Long, ByVal hModule As Long, ByVal ModuleName As String, ByVal nSize As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
Public Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Const WS_EX_TOOLWINDOW = &H80
Private Const WS_EX_APPWINDOW = &H40000
Private Const GW_OWNER = 4
Private Const GWL_EXSTYLE = (-20)
Public Function AttachToProcess(WindowTitle As String) As Long
LoadPrivilege "SeDebugPrivilege"
Dim hwnd As Long
hwnd = FindWindow(vbNullString, WindowTitle)
If hwnd = 0 Then
AttachToProcess = False
Exit Function
End If
GetWindowThreadProcessId hwnd, Handler
Handler = OpenProcess(PROCESS_ALL_ACCESS, False, Handler)
If Handler = 0 Then
AttachToProcess = 0
loaded = False
Else
AttachToProcess = Handler
loaded = True
End If
End Function
Public Sub UnleashProcess()
CloseHandle Handler
End Sub
Public Function LoadPrivilege(ByVal Privilege As String) As Boolean
Dim hToken As Long
Dim SEDebugNameValue As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim hProcessHandle As Long
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lbuffer As Long
hProcessHandle = GetCurrentProcess()
If GetLastError <> 0 Then
MsgBox "GetCurrentProcess, Error: " & GetLastError()
Exit Function
End If
OpenProcessToken hProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), hToken
If GetLastError <> 0 Then
MsgBox "OpenProcessToken, Error: " & GetLastError()
Exit Function
End If
LookupPrivilegeValue "", Privilege, SEDebugNameValue
If GetLastError <> 0 Then
MsgBox "LookupPrivilegeValue, Error: " & GetLastError()
Exit Function
End If
With tkp
.PrivilegeCount = 1
.TheLuid = SEDebugNameValue
.Attributes = SE_PRIVILEGE_ENABLED
End With
AdjustTokenPrivileges hToken, False, tkp, Len(tkp), tkpNewButIgnored, lbuffer
If GetLastError <> 0 Then
MsgBox "AdjustTokenPrivileges, Error: " & GetLastError()
Exit Function
End If
LoadPrivilege = True
End Function
'// Find Process from PID
Private Function ProcessPathByPID(PID As Long) As String
Dim cbNeeded As Long
Dim Modules(1 To 200) As Long
Dim Ret As Long
Dim ModuleName As String
Dim nSize As Long
Dim hProcess As Long
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION _
Or PROCESS_VM_READ, 0, PID)
If hProcess <> 0 Then
Ret = EnumProcessModules(hProcess, Modules(1), _
200, cbNeeded)
If Ret <> 0 Then
ModuleName = Space(MAX_PATH)
nSize = 500
Ret = GetModuleFileNameExA(hProcess, _
Modules(1), ModuleName, nSize)
ProcessPathByPID = Left(ModuleName, Ret)
End If
End If
Ret = CloseHandle(hProcess)
If ProcessPathByPID = "" Then
ProcessPathByPID = "SYSTEM"
End If
End Function
Public Function IsWindowOpen(WindowTitle As String) As Boolean
If FindWindow(vbNullString, WindowTitle) <> 0 Then
IsWindowOpen = True
Else
IsWindowOpen = False
End If
End Function
Code:
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Declare Function GetTickCount Lib "kernel32" () As Long
Public isStealing As Boolean
Public spawnCoordX As Single
Public spawnCoordY As Single
Public spawnCoordZ As Single
Public VposX As Single
Public Vposy As Single
Public Vposz As Single
Public vIndex As Long
Public maxBound As Long
Public pState As Long
Public xAxeSpin As Single
Public invincible As Boolean
Public lockedState As carLockState
Public Function GetKey(Ascii As Long) As Boolean
If GetAsyncKeyState(Ascii) = -32767 Then GetKey = True
End Function
Public Sub ReadKey()
On Error Resume Next
DoEvents
If GetKey(122) Then
isStealing = Not isStealing
If isStealing Then
maxBound = getCarCount
spawnCoordX = GetMyCoordX + 10
spawnCoordY = GetMyCoordY
spawnCoordZ = GetMyCoordZ
saveVehiclePosition
vIndex = 0
printText getRGBA(255, 0, 0, 255), "bStarHack : Started car stealing", 0
Else
printText getRGBA(255, 0, 0, 255), "bStarHack : Stopped stealing feature.", 0
End If
End If
If isStealing And GetKey(109) Then
loadVehiclePosition
Do
vIndex = vIndex - 1
Loop Until playerInCar(vIndex) Or vIndex < 0
saveVehiclePosition
End If
If isStealing And GetKey(107) Then
If Not vIndex >= maxBound Then
loadVehiclePosition
Do
vIndex = vIndex + 1
Loop Until playerInCar(vIndex) Or vIndex >= maxBound
saveVehiclePosition
End If
End If
If GetKey(45) Then
If pState = 0 Then
pState = buildPedState(False, False, True, True, True, True, True, True)
printText getRGBA(255, 0, 0, 255), "bStarHack : You are now invincible!", 0
lockedState = Locked
invincible = True
Else
pState = 0
printText getRGBA(255, 0, 0, 255), "bStarHack : You are now vulnerable!", 0
lockedState = opened
invincible = False
End If
End If
If GetKey(123) And getMyCarPointer <> 0 Then
If getMyCarPointer = 0 Then
printText getRGBA(255, 0, 0, 255), "bStarHack : Enter a car first", 0
Else
printText getRGBA(255, 0, 0, 255), "bStarHack : Switched driver and passager seats", 0
Dim pt1 As Long
Dim pt2 As Long
pt1 = getPointer(getPointer(&HBA18FC) + 1120)
pt2 = getPointer(getPointer(&HBA18FC) + 1124)
WriteProcessMemory Handle, getPointer(&HBA18FC) + 1120, pt2, 4&, 0&
WriteProcessMemory Handle, getPointer(&HBA18FC) + 1124, pt1, 4&, 0&
End If
End If
If isStealing Then
setCarLockState opened, vIndex
SetVehicleCoordX spawnCoordX, vIndex
SetVehicleCoordY spawnCoordY, vIndex
SetVehicleCoordZ spawnCoordZ, vIndex
setPlayerCarLookAt vIndex, 1, 1, 0
SetVehicleSpeedX 0, vIndex
SetVehicleSpeedY 0, vIndex
SetVehicleSpeedZ 0, vIndex
SetVehicleSpinX 0, vIndex
SetVehicleSpinY xAxeSpin, vIndex
SetVehicleSpinZ 0, vIndex
End If
If isStealing And GetKey(104) Then
spawnCoordZ = spawnCoordZ + 0.4
End If
If isStealing And GetKey(101) Then
If xAxeSpin = 0 Then
xAxeSpin = 0.1
Else
xAxeSpin = 0
End If
End If
If isStealing And GetKey(98) Then
spawnCoordZ = spawnCoordZ - 0.4
End If
If getMyCarPointer <> 0 And GetKey(97) Then
setXSpeed getXSpeed * 1.4
setYSpeed getYSpeed * 1.4
setZSpeed getZSpeed * 1.4
End If
setCPedState pState
If getMyCarPointer <> 0 Then setCarState pState: setMyCarLockState lockedState
If getMyCarPointer <> 0 And invincible And getMyVehicleType = CarOrPlane Then repairTires: setMyCarLife 1000
Debug.Print getCarPointer(vIndex)
End Sub
Public Sub saveVehiclePosition()
VposX = GetVehicleCoordX(vIndex)
Vposy = GetVehicleCoordY(vIndex)
Vposz = GetVehicleCoordZ(vIndex)
End Sub
Public Sub loadVehiclePosition()
SetVehicleCoordX VposX, vIndex
SetVehicleCoordY Vposy, vIndex
SetVehicleCoordZ Vposz, vIndex
End Sub
Public Sub Sleep(time As Long)
Dim start As Long
start = GetTickCount
Do Until GetTickCount - start >= time
DoEvents
Loop
End Sub
Code:
Dim isLoaded As Boolean
Dim bQuit As Boolean
Private Sub Form_Load()
Me.Show
Dim lastCheck As Long
While Not bQuit
DoEvents
If Not isLoaded And IsWindowOpen("GTA:SA:MP") Then
loadGta
isLoaded = loaded
Form1.Caption = "Loaded : " & isLoaded
End If
If isLoaded And Not IsWindowOpen("GTA:SA:MP") Then
isLoaded = False
UnleashProcess
Form1.Caption = "Loaded : " & isLoaded
End If
If isLoaded Then Call ReadKey
Wend
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
bQuit = True
Unload Me
End
End Sub
Private Sub Form_Terminate()
bQuit = True
Unload Me
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
bQuit = True
Unload Me
End
End Sub
Last edited by bLueStar : 05-26-2008 at 01:21 PM. |
|
|
|
![]() |
![]() |
![]() |
![]() |
|
|
#33 (permalink) |
|
Banned
![]() ![]() Deviant Join Date: Jun 2007
Location: Quebec, Canada
Posts: 123
![]() |
Not enought characters left, have to repost This one is the "wrapper" between VB and gta gta.bas Code:
Public Handle As Long
Public loaded As Boolean
Public Enum carLockState
opened = 1
Locked = 2
End Enum
Public Enum vehicleType
Foot = 1
CarOrPlane = 0
Boat = 5
Train = 6
BikeOrBmx = 9
End Enum
Public Sub loadGta()
Handle = AttachToProcess("GTA:SA:MP")
If Handle = 0 Then
'MsgBox "Open gta first!", vbCritical
Else
'MsgBox "Successfuly loaded!", vbInformation
loaded = True
End If
End Sub
Public Function getPointer(address As Long) As Long
Dim buffer As Long
ReadProcessMemory Handle, address, buffer, 4&, 0&
getPointer = buffer
End Function
Public Function getCarArrayPointer() As Long
Dim buffer As Long
ReadProcessMemory Handle, &HB74494, buffer, 4&, 0&
getCarArrayPointer = buffer
End Function
Public Function getMyPointer() As Long
getMyPointer = getPointer(&HB7CD98)
End Function
Public Function getMyCarPointer() As Long
getMyCarPointer = getPointer(&HBA18FC)
End Function
Public Function getCarCount() As Long
Dim buffer As Long
ReadProcessMemory Handle, getCarArrayPointer + 8, buffer, 4&, 0&
getCarCount = buffer
End Function
Public Function GetMyCoordX() As Single
Dim buffer As Single
ReadProcessMemory Handle, getPointer(&HB7CD98) + 356&, buffer, 4&, 0&
GetMyCoordX = buffer
End Function
Public Function GetMyCoordY() As Single
Dim buffer As Single
ReadProcessMemory Handle, getPointer(&HB7CD98) + 360&, buffer, 4&, 0&
GetMyCoordY = buffer
End Function
Public Function GetMyCoordZ() As Single
Dim buffer As Single
ReadProcessMemory Handle, getPointer(&HB7CD98) + 364&, buffer, 4&, 0&
GetMyCoordZ = buffer
End Function
Public Sub SetVehicleCoordX(Coord As Single, index As Long)
WriteProcessMemory Handle, getPointer((getPointer(getCarArrayPointer) + (index * 2584)) + 20) + 48, Coord, 4&, 0&
End Sub
Public Sub SetVehicleCoordY(Coord As Single, index As Long)
WriteProcessMemory Handle, getPointer((getPointer(getCarArrayPointer) + (index * 2584)) + 20) + 52, Coord, 4&, 0&
End Sub
Public Sub SetVehicleCoordZ(Coord As Single, index As Long)
WriteProcessMemory Handle, getPointer((getPointer(getCarArrayPointer) + (index * 2584)) + 20) + 56, Coord, 4&, 0&
End Sub
Public Function GetVehicleCoordX(index As Long) As Single
Dim buffer As Single
ReadProcessMemory Handle, getPointer((getPointer(getCarArrayPointer) + (index * 2584)) + 20) + 48, buffer, 4&, 0&
GetVehicleCoordX = buffer
End Function
Public Function GetVehicleCoordY(index As Long) As Single
Dim buffer As Single
ReadProcessMemory Handle, getPointer((getPointer(getCarArrayPointer) + (index * 2584)) + 20) + 52, buffer, 4&, 0&
GetVehicleCoordY = buffer
End Function
Public Function GetVehicleCoordZ(index As Long) As Single
Dim buffer As Single
ReadProcessMemory Handle, getPointer((getPointer(getCarArrayPointer) + (index * 2584)) + 20) + 56, buffer, 4&, 0&
GetVehicleCoordZ = buffer
End Function
Public Sub SetVehicleSpeedX(speed As Single, index As Long)
WriteProcessMemory Handle, getPointer(getCarArrayPointer) + (index * 2584) + 68, speed, 4&, 0&
End Sub
Public Sub SetVehicleSpeedY(speed As Single, index As Long)
WriteProcessMemory Handle, getPointer(getCarArrayPointer) + (index * 2584) + 72, speed, 4&, 0&
End Sub
Public Sub SetVehicleSpeedZ(speed As Single, index As Long)
WriteProcessMemory Handle, getPointer(getCarArrayPointer) + (index * 2584) + 76, speed, 4&, 0&
End Sub
Public Sub SetVehicleSpinX(Spin As Single, index As Long)
WriteProcessMemory Handle, getPointer(getCarArrayPointer) + (index * 2584) + 80, Spin, 4&, 0&
End Sub
Public |