tristen8878
2013-05-07 14:52:18
Gta 3 Multiplayer Mod
Hey everyone I have not really been playing runescape much or botting and I decided one day that I wanted to create a multiplayer mod for grand theft auto 3 as it is a single player game only. I know there are other mods out there which allow you to do this but I just wanted to do this so I can learn from it and well it's quite fun to do. I began on the gui of the mod first and I wanted to make it as user friendly as possible, this mod is more of a play with your friends rather than massive dedicated servers.
The Design
Internal workings
The program works by setting up a tcp client and a tcp server at this point in time though only one client can connect to a server. When the user creates a server it will open up gta 3 and search for the process. It will then inject a small dll file which I created in c++ that disables the traffic in game (e.g. cars and pedestrians) the main story missions and side missions and spawns your character at a random spawn point on portland island.
Player synchronisation
Pic is a bit laggy sorryThe player synchronisation is not as complex as you might think the first thing I did was find the y coordinates of my character in game. I did this in cheat engine by finding the float value, I used a stair case in the game which meant that if I go up the stairs the y coordinates will increase and if I go down they will decrease. I kept doing this in cheat engine in till finally got the y coordinates memory address which meant finding the x and z ones could be done easily as they are very near to each other. I then needed to be able to send the three address of the x,y,z through a tcp packet which then the other persons computer would receive the x,y,z and write the three address to it's memory which would make an object move to those coordinates and look like you are playing multiplayer. Computer A would send it's x,y,z coordinates to computer B and then computer B would write it to it's memory and also computer B would send it's x,y,z to computer A which would write it to it's memory. This would give the effect of two people playing together but it is just A and B sending coordinates to each other and writing it to it's memory. Sorry I am bad and explaining things in words :( The tcp server and client talking were done in visual basic which could then write to memory.
Tell me what you think guys I might release the source but I've spent ages trying to figure out how to do this I just don't fell like giving it away quite yet.
I might update this thread if I continue to improve this program but I am quite busy with work at the moment.