Jump to content

Complete VCS hacking docs


Josh

Recommended Posts

An index of all VCS hacking related things, with tutorials and helpful pointers from the people who know stuff about cheat-making and memory-hacking.

 

NB: There is no index for the time being as I would need to add several jumpto and anchor bbcode tags, which given the layout of my posts would really f*ck this up. So If you need to find something then why not skip down to the final post by me on this page, where there are development downloads, they might have something useful which you can work with. Failing that, just try pressing Ctrl + F and see what comes up...

 

 

The Basics: Car Spawns

Most cheat requests that I get are people trying to simply spawn cars on the map, which is easy. So why not give them a chance to make their own? Here goes.

 

Right then, car spawns...

 

 

pspawn = 0x08E81290;setint(pspawn,   254);    setfloat(pspawn + 4,   -1045, 1181, 10.80, 274);pspawn += 0x30;setint(pspawn,   266);    setfloat(pspawn + 4,   -1047, 1179, 10.80, 274);pspawn += 0x30;setint(pspawn,   270);    setfloat(pspawn + 4,   -1045, 1177, 10.80, 274);

 

 

The top bit is necessary, it defines PSPAWN, the next bit determines what car is to be spawned.

Change the 254 to whatever number the car you want to spawn is.

then write this:

 

setfloat(pspawn + 4,  x, y, z, a);

 

Where X Y and Z are the coordinates of the place you want the spawn to be, and A is the angle, where 0 is North, 90 is East, and so on like that.

then this bit needs to be written for more than one car.

 

pspawn += 0x30;

 

Then just do the same thing for the rest of the vehicles that I have already told you about. You will need to add #cheat + a cheat name otherwise in game this cheat will just show up as <empty>.

 

 

The Basics: Teleports

Teleporting is another easy cheat to make:

 

To make a teleport cheat:

 

1. Go to the place in game that you would like to teleport to, and select display coordinates from the cheat device menu, it should be near the top.

 

2. Now open up a notepad document, and write this:

 

 

teleport(x, y, z);

 

 

Where X Y and Z are the coordinates of the place that you want to teleport to.

 

Example:

 

#cheat Teleport to the Biplaneteleport(-1266.37, -1076.81, 14.87)

 

 

 

The Basics: Triggering cheats with user input

But how do I get the teleport cheat to only work when the user presses a certain button?

 

Like this:

If you want to make it so that you press down to teleport, then it would be like this:

 

 

#cheat Hit Down to go to biplaneif(press & CTRL_DOWN){teleport(-1266.37, -1076.81, 14.87)}

 

 

 

if( 

Declares what you want to happen.

 

press

means you hit it once.

Then you put an & sign to seperate it from the next bit.

 

 

CTRL_DOWN

means you press down.

 

Then you open the code with {

Put what you want to happen next to it, and then close it with }.

 

press can be changed to.

 

 

buttons- If held it will repeat, like turbo.pressslow- If held it will repeat slowlypressmed- If held it will repeat at a medium pacepressfast- If held it will repeat at a fast pace

 

 

And CTRL_DOWN can be changed to.

 

 CTRL_SELECT     CTRL_LTRIGGER     CTRL_HOMECTRL_START      CTRL_RTRIGGER     CTRL_VOLUPCTRL_UP         CTRL_TRIANGLE     CTRL_VOLDOWNCTRL_RIGHT      CTRL_CIRCLE       CTRL_SCREENCTRL_DOWN       CTRL_CROSS        CTRL_NOTECTRL_LEFT       CTRL_SQUARE

 

 

This isn't just limited to teleports by the way guys...

 

 

 

The Basics: Spawning pickups

So you've made a lovely house in construction mode and you want it to look great with some health pickups? Or maybe some weapon spawns. Well I'll just quickly post a simple guide on how to do that then:

For pickups spawns just use DDM's tool:

http://0x098b4a40.webs.com/VCS/VCSPickupCreatorApplet.html

 

It is self-explanatory, that is all, simple as that.

Edited by Josh?
Link to comment
Share on other sites

 

The Basics: Captures and hex editing

How do I make my own cheats with the CheatMaker?

 

A. Before I begin it is worth saying that the CheatMaker is intended for advanced users and programmers. Some of the stuff here may be too complicated for everyone to understand.

 

A lot of the numbers you will be dealing with will be in hexadecimal which means instead of counting 0,1,2,3,4,5,6,7,8,9 and then 10, you count 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F and then 10, and the 10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F and then 20.

 

To make a cheat you need to find the location in memory of a value that, when changed, affects the game in some way. The memory, when the game is loaded, is full of numbers relating to all sorts of things from the number of bullets loaded in a particular gun to the radio station that is currently playing.

 

There are basically two ways to use the CheatMaker to find the memory locations and values that affact the game. You can use the Hex Editor and watch the values change as you do something or you can take memory captures and use the CheatMaker to analyse them.

 

Hex Editor

 

The hex editor is the second menu option in the CheatMaker menu. If you open the hex editor you will be asked to enter the memory location you want to look at. The memory location you enter is a hexadecimal number that can be anything between 08400000 (0x8400000) and 09FFFFFF (0x9FFFFFF).

 

There is also an option to open the Hex Editor PlayerObject that will show you the memory that controls Toni and you don't have to enter a specific memory location to view this.

 

Wether you are using the Hex Editor or the Hex Editor PlayerObject you will see a screen that looks like this,

 

LOCATION 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000550 01 00 00 00 02 00 00 03 00 00 00 04 00 00 00 00

00000560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00000570 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00

00000580 00 00 00 00 00 00 00 00 00 06 00 00 00 07 00 08

 

All the numbers in memory in this example can be pin pointed by using the location column on the left and changing the last digit of the relevant row to the coresponding column header value (0 to F) it appears in.

 

You will notice that some of the numbers change when you move around or shoot a gun or something. When they change they turn white to help you spot them. So the numbers 01 to 08 that i've placed in this example have changed and the location of each of them is as follows,

 

01 = 00000550

02 = 00000554

03 = 00000557

04 = 0000055B

 

05 = 00000573

 

06 = 00000589

07 = 0000058D

08 = 0000058F

 

You may notice some people using a different notation when writing locations. For example 00000055 could be written 0x55. To use this notation just replace any 0's to the left of the first number with 0x. 00B5E501 could be written as 0xB5E501, 00005AB1 could be written as 0x5AB1 and so on.

 

Capture Method

 

You could use the Hex Editor or PlayerObject tools to find cheats by watching what values change when you do stuff but a much better way to find cheats is to use the CheatMaker's capture facility. In order to explain this I'm going to use the Max Money cheat I worked out as an example.

 

To work out this cheat you should start off with a known amount of money and then take a capture by selecting the New Capture option on the CheatMaker menu.

 

You will now see Capture1 has been added to the menu. When I took the first capture I had $00455155 so now move over the Capture1 menu item and press right on the D-Pad so it looks like this,

 

Capture1 == 0

 

Now Press X because we want to tell the CheatMaker that we are only interested in values that are equal to 455155 in that particular capture. Enter the value 455155.

 

Now we need to spend some money so go and buy a gun from somewhere. OK, I bought a couple of AK's and now I have $00446755. So select the New Capture option on the CheatMaker menu again and you should now have the following,

 

Capture1 == 455155

Capture2 == Capture1

 

Change the second capture to be equal to the new amount of money we have in the same way as we did for the first capture by hovering over it and using the D-Pad (this time press left on the D-Pad a few times) to change the comparison to be Capture2 == 0 and then pressing X to change the value from 0 to 446755.

 

Capture1 == 455155

Capture2 == 446755

 

Now spend some more money. The more captures we take the quicker we will be able to find the right memory location for money.

 

I now have $00438355 so I will take another capture and change the new one to be equal to that like so,

 

Capture1 == 455155

Capture2 == 446755

Capture3 == 438355

 

At this point i'm going to keep spending money and taking more and more captures until I end up with this,

 

Capture1 == 455155

Capture2 == 446755

Capture3 == 438355

Capture4 == 421555

Capture5 == 379555

Capture6 == 350155

 

I'm thinking that should be enough to find where my money is stored in memory.

 

Before we run the comparison we need to tell the CheatMaker what size number we are looking for by changing the Type option in the CheatMaker menu. The following types are available,

 

1-byte char 00 FF 0 to 255

2-byte short 00 00 FF FF 0 to 65535

4-byte int 00 00 00 00 FF FF FF FF 0 to 4294967295

Because the money can be $99999999 which is quite a big number we need to change the type of number we are searching for to be a 4-byte int so the menu should look like this,

 

Type: 4-byte int

 

Now select the Run Comparison option on the CheatMaker menu. The CheatMaker will now search through all the 6 captures looking for locations where the value was 455155 in the first capture, 446755 in the second, 438355 in the third and so on.

 

When it has finished you will see it only found one candidate (which is good),

 

08B89ACC 455155 446755 438355 421555 350155

 

So we can be pretty sure that 08B89ACC (0x8B89ACC) is the location of the new cheat.

 

Now we need to use the Hex Editor to change the value at that location and see if it changes the amount of money we have.

 

Open the Hex Editor and enter the location we found 08B89ACC.

 

Because the money value is a 4 byte int then it is actually stored in 4 locations in memory so in order to change it we need to change the value at 08B89ACC and the 3 locations that follow it 08B89ACD, 08B89ACE and 08B89ACF.

 

Now here's where it gets a bit strange. Because I have $350155 (which is 00 05 57 CB in hex) you would expect to see the following,

 

08B89ACC = 00

08B89ACD = 05

08B89ACE = 57

08B89ACF = CB

 

But what you actually see is this,

 

08B89ACC = CB

08B89ACD = 57

08B89ACE = 05

08B89ACF = 00

 

Yes, that's right, it's backwards. Don't ask, just accept it and this illustrates how you need to think about things when finding cheats.

 

OK, so lets test to see if this is a cheat or we've completly waisted our time. We want to change the amount of money we have to $99999999 and 99999999 is 05 F5 E0 FF in hex and backwards would be FF E0 F5 05 so change all the 4 locations to be this (by pressing X on them and changing the number),

 

08B89ACC = FF

08B89ACD = E0

08B89ACE = F5

08B89ACF = 05

 

Yey, watch your money start going up and up. It will stop at $99999999.

 

This example worked well because we were looking for known values but what if you wanted to find a cheat to change vehicle speed or something like that where we wouldn't know what exact speed we were going at when we take the captures?

 

You have other options when using the D-Pad to change the type of comparison the CheatMaker will do on your captures. For example if I didn't know how much money I had I could have tried the following to find the location,

 

Capture1

Capture2 > Capture1

Capture3 > Capture2

Capture4 > Capture3

Capture5 > Capture4

Capture6 > Capture5

 

With this method when you select the Run Comparison the CheatMaker would look for all locations where the value in Capture2 was bigger than the value at the same location in Capture1 and the value was bigger at the same location in Capture3 than in Capture2 and bigger still in Capture4 than in Capture3 and so on.

 

You can use the following comparisons,

 

== equal to

!= not equal to

> greater than

< less than

Here is another example that uses the "not equal to" method. In this example I'm trying to find if I can turn Custom Tracks on and off.

 

First, turn Custom Tracks off and take a capture. Next turn Custom Tracks on and take another capture. Turn it off again and take another capture. Turn it on again and take another and carry on like this until you have quite a few.

 

Now change the comparison settings to look like this,

 

Capture1

Capture2 != Capture1

Capture3 == Capture1

Capture4 != Capture1

Capture5 == Capture1

Capture6 != Capture1

 

Change the size of the number we want to be Type: 1-byte char because I'm guessing the value is 00 when Custom Tracks is off and 01 when it is on.

 

Now hit Run Comparison and check out any locations that look like possibilities using the Hex Editor.

 

I did manage to find this and it's at 09ADBC08 (0x9adbc08). Set it to 0 and the radio comes on and set it to 1 and press left on the D-Pad and your Custom Tracks start playing.

 

Saving Your Cheats

 

It's all well and good being able to find cheats but a pain in the neck having to go to the Hex Editor all the time to turn them on. Don't worry, help is at hand as there is a cheats.txt file you can put on your PSP so you can run your cheats from the User Cheats section of the CheatDevice menu.

 

The cheats.txt file should be placed in the CHEATS folder in the root of your PSP. By the root I mean the top level (DO NOT PLACE IT IN A FOLDER OR I WONT WORK).

 

Here is a cheats.txt file that contains the Max Money cheat we made and the radio cheats,

 

 

  #cheat Max Moneysetint(0x8b89acc, 99999999);#cheat Radio On setchar(0x9adbc08, 0); #cheat Custom Tracks On setchar(0x9adbc08, 1); 

 

 

If you load up the CheatDevice with this cheats.txt when you go to the User Cheat menu you will see the following,

 

OFF Max Money

OFF Radio On

OFF Custom Tracks On

 

To define a cheat you type #cheat and then the name of the cheat as you want it to appear in the CheatDevice. Then you need to use one of the following functions to specify the memory location and the value it should be changed to when it is turned on,

 

setchar(startaddress, intvalue, ...);

sethex(startaddress, hexintvalue, ...;

setshort(startaddress, intvalue, ...);

setint(startaddress, intvalue, ...);

setfloat(startaddress, floatvalue, ...);

 

As you can see in my cheats.txt file I use setint for the Max Money cheat because it was a 4-byte int (remember) and setchar for the Custom Tracks because it was a 1-byte char.

 

There is a programming.txt file that comes with the CheatDevice that contains more detailed instructions on the formatting of the cheats.txt file so I won't go into too much detail here.

 

I will mention you also have a teleport function you can put in the cheats.txt file you can use to add your own custom teleport locations. It works like this,

 

teleport(x, y, z);

 

If you go somewhere in LCS and use the CheatDevice to find the co-ordinates then you can add that location to your cheats.txt file so you can teleport there at any time in the game. Let's update the above cheats.txt file to include a teleport location.

 

 

  #cheat Max Moneysetint(0x8b89acc, 99999999);#cheat Radio On setchar(0x9adbc08, 0); #cheat Custom Tracks On setchar(0x9adbc08, 1);#cheat Teleport: Top of Tall Buildingteleport(95, -1509, 216.98); 

 

Link to comment
Share on other sites

 

Spawn functions: Police spawns

You can spawn cop, SWAT, FBI and army peds with this spawn function !

 

user posted image

user posted image

 

Here are example cheats for every single cop type:

 

#cheat Spawn Cops at the Compoundstatic counter;setint(0x08C73A70, 207);setchar(0x08C73A94, 0, 0, 0);setchar(0x08C73A98, 0, 0, 0);spawn = 0x08E82CA0;setint(spawn, 208);setfloat(spawn + 0x04, -1077.40, 312.63, 11.26);if(counter++ % 30 == 0){for(p = 0x098EDCC0; p <= 0x099019A0; p += 0x0820){id = getshort(p + 0x56);if(id == 208)setchar(p + 0x49, 0x82);setchar(p + 0x4A, 0x15);setchar(p + 0x0267, 0x75);}}#offsetchar(p + 0x0267, 0x44);#cheat Spawn Bike Cops at the Compoundstatic counter;setint(0x08C73A70, 191);setchar(0x08C73A94, 0, 0, 0);setchar(0x08C73A98, 0, 0, 0);spawn = 0x08E82CA0;setint(spawn, 191);setfloat(spawn + 0x04, -1077.40, 312.63, 11.26);if(counter++ % 30 == 0){for(p = 0x098EDCC0; p <= 0x099019A0; p += 0x0820){id = getshort(p + 0x56);if(id == 191)setchar(p + 0x49, 0x82);setchar(p + 0x4A, 0x15);setchar(p + 0x0267, 0x75);}}#offsetchar(p + 0x0267, 0x44);#cheat Spawn SWAT at the Compoundstatic counter;setint(pplayer + 0x0910, 4);setint(0x08C73A70, 234);setchar(0x08C73A94, 0, 0, 0);setchar(0x08C73A98, 0, 0, 0);spawn = 0x08E82CA0;setint(spawn, 234);setfloat(spawn + 0x04, -1077.40, 312.63, 11.26);if(counter++ % 30 == 0){for(p = 0x098EDCC0; p <= 0x099019A0; p += 0x0820){id = getshort(p + 0x56);if(id == 234)setchar(p + 0x49, 0x82);setchar(p + 0x4A, 0x15);setchar(p + 0x0267, 0x75);}}#offsetchar(p + 0x0267, 0x44);setint(pplayer + 0x0910, 0);#cheat Spawn FBI at the Compoundstatic counter;setint(pplayer + 0x0910, 5);setint(0x08C73A70, 193);setchar(0x08C73A94, 0, 0, 0);setchar(0x08C73A98, 0, 0, 0);spawn = 0x08E82CA0;setint(spawn, 193);setfloat(spawn + 0x04, -1077.40, 312.63, 11.26);if(counter++ % 30 == 0){for(p = 0x098EDCC0; p <= 0x099019A0; p += 0x0820){id = getshort(p + 0x56);if(id == 193)setchar(p + 0x49, 0x82);setchar(p + 0x4A, 0x15);setchar(p + 0x0267, 0x75);}}#offsetchar(p + 0x0267, 0x44);setint(pplayer + 0x0910, 0);#cheat Spawn Army at the Compoundstatic counter;setint(pplayer + 0x0910, 6);setint(0x08C73A70, 218);setchar(0x08C73A94, 0, 0, 0);setchar(0x08C73A98, 0, 0, 0);spawn = 0x08E82CA0;setint(spawn, 218);setfloat(spawn + 0x04, -1077.40, 312.63, 11.26);if(counter++ % 30 == 0){for(p = 0x098EDCC0; p <= 0x099019A0; p += 0x0820){id = getshort(p + 0x56);if(id == 218)setchar(p + 0x49, 0x82);setchar(p + 0x4A, 0x15);setchar(p + 0x0267, 0x75);}}#offsetchar(p + 0x0267, 0x44);setint(pplayer + 0x0910, 0);

 

And here's a version which allows you to spawn cops out of any vehicle you are driving:

 

#cheat Spawn Copssetint(0x08C73A70, 207);setchar(0x08C73A94, 0, 0, 0);setchar(0x08C73A98, 0, 0, 0);setchar(pcar + 0x0267, 0x75);#offsetchar(pcar + 0x0267, 0x44);

 

Use this to get rid of the cops if you've created too many:

 

#cheat Remove Copsstatic timer;if(timer % 50 == 0)for(x = 0; 0x098B4A40 + x <= 0x098ECF90; x += 0x0D10){id = getshort(0x098B4A40 + x + 0x56);if(id == 8 || id == 9 || id == 10 || id == 11 || id == 119){setfloat(0x098B4A40 + x + 0x30, 0, 0, 0);}}timer++;if(timer == 50)timer = 0;

 

Important:

 

- You'll need a savegame which has a vehicle in the Compound garage to make it work !

- They spawn at the dark place of ground infront of the Compound hangar !

- Don't leave it activated for too long, the game crashes if too many cops spawn !

 

 

Spawn functions: Fire and Explosion spawns

Use this stuff to give your custom missions some extra pepper:

 

 

How to spawn fire:

 

#cheat Spawn Fire at the Compoundfire = 0x08BE3A20;setchar(fire, 1);setfloat(fire + 0x10, -1077.40, 312.60, 11.26);fire += 0x40;setchar(fire, 1);setfloat(fire + 0x10, -1077.40, 314.60, 11.26);

 

How to spawn explosions:

 

#cheat Spawn Explosions at the Compoundexplosion=0x08BBBD50;setchar(explosion, 0xa);setfloat(explosion+0x10, -1077.40, 312.60, 11.26);setfloat(explosion+0x20, 5.0);setfloat(explosion+0x1c, 1);setchar(explosion+0x30, 0x30, 0xe4, 0x31, 0x4A, 0xf0);setchar(explosion+0x35, 0x1);setchar(explosion+0x3D, 0x1);setshort(explosion+0x42, 0x4316);explosion+=0x50;setchar(explosion, 0x4);setfloat(explosion+0x10, -1077.40, 314.60, 11.26);setfloat(explosion+0x20, 5.0);setfloat(explosion+0x1c, 1);setchar(explosion+0x30, 0x30, 0xe4, 0x31, 0x4A, 0xf0);setchar(explosion+0x35, 0x1);setchar(explosion+0x3D, 0x1);setshort(explosion+0x42, 0x4316);

 

A cheat like this one is probably not the best idea.

It'll spawn a never ending amount of boom's.

 

In most cases it's better to spawn the explosion once and end the cheat after it has spawned:

 

#cheat Explosion at the Compoundsetfloat(barrel+0x30, 0, 0, 0);explosion=0x08BBBD50;setchar(explosion, 0xa);setfloat(explosion+0x10, -1077.40, 310.60, 11.26);setfloat(explosion+0x20, 5.0);setfloat(explosion+0x1c, 1);setchar(explosion+0x30, 0x30, 0xe4, 0x31, 0x4A, 0xf0);setchar(explosion+0x35, 0x1);setchar(explosion+0x3D, 0x1);setshort(explosion+0x42, 0x4316);off();

 

 

 

Spawn functions: Stadium text spawns

The addresses used by the scroll text spawn:

 

0x08BA09A0 = Coordinates (X, Y, Z)0x08BA09AB = On/Off (0 = Off)0x08BA09C3 = Width (0x3E = Small; 0x3F = Normal; 0x40 = Huge)0x08BA09C6 = Height (0x3F = Small; 0x40 = Normal; 0x41 = Huge)0x08BA09CA = Color (0x80 = Green; 0x81 = Red)0x08BA09CC = Text (Length = 20 Characters)0x08BA09F5 = Flickering (1 = Off; 0 = On)

 

 

Create your own VCS Scroll Text with this cheat:

 

 

#cheat VCS Laser Showsetfloat(0x08BA09A0, X, Y, Z); // Coordinatessetchar(0x08BA09C3, 0x3F); // Widthsetchar(0x08BA09C6, 0x40); // Heightsetchar(0x08BA09CA, 0x80); // Colorsetshort(0x08BA09CC, 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'); // Textsetchar(0x08BA09F5, 1);

 

Example:

 

#cheat Upaluppa rules the Compoundsetfloat(0x08BA09A0, -1077.40, 312.63, 11.26);setchar(0x08BA09C3, 0x3E);setchar(0x08BA09C6, 0x3F);setchar(0x08BA09CA, 0x81);setshort(0x08BA09CC, 'U', 'p', 'a', 'l', 'u', 'p', 'p', 'a', ' ', 'r', 'u', 'l', 'e', 's', ' ', '!', '!', '!', '!', ' ');setchar(0x08BA09F5, 1);

 

Edited by Josh?
Link to comment
Share on other sites

 

Spawn functions: Random finds, don't mean anything

Whilst searching for some spawn functions we stumbled upon these badboys. They don't do anything useful.

 

#cheat Spawn Bullets at the Compoundsetfloat(0x08B90220, -1077.40, 312.63, 11.26);#cheat Spawn Bullets at the Compound (Different Address)setfloat(0x08C60FF0, -1077.40, 312.63, 11.26);

 

Spawns all gunfire to the Compound.

 

 

#cheat Spawn Palm Tree Leaf at the Compoundsetfloat(0x08E7AC40, -1077.40, 312.63, 11.26);

 

The most useless spawn function ever !

 

 

#cheat Spawn Rope at the Compoundsetfloat(0x08C73230, -1077.40, 312.63, 11.26);

 

Spawns a very long rope at the Compound.

It's the one the SWAT uses to slide down from the police helicopters.

 

 

#cheat Very Small Light Circle Spawn at the Compoundsetfloat(0x08C75F90, -1077.40, 312.63, 11.26);setfloat(0x08C74A20, -1077.40, 312.63, 11.26);

 

Another useless cheat.

The light disappears if you get too close.

 

 

#cheat Body Painting Spawn at the Compoundsetfloat(0x08E7F1B0, -1077.40, 312.63, 11.26);

 

Works only if someone got killed.

 

 

#cheat Weird Flashing Black Thingy Spawn at the Compoundsetfloat(0x08B8F140, -1077.40, 312.63, 11.26);

 

No clue what this thing is supposed to be...

 

 

#cheat Sunshine at the Compoundsetfloat(0x08C748D0, -1077.40, 312.63, 11.26);

 

Spawns the sun at the Compound.

Works by day and night !

 

 

#cheat Shadow Spawn at the Compoundsetfloat(0x08E7D0B0, -1077.40, 312.63, 11.26);

 

Spawns the players shadow at the Compound.

 

 

#cheat Spawn Shadows at the Compoundshadow = 0x08E7D0F0;setfloat(shadow, -1077.40, 312.63, 11.26);shadow += 0x40;setfloat(shadow, -1077.40, 314.63, 11.26);shadow += 0x40;setfloat(shadow, -1077.40, 310.63, 11.26);shadow += 0x40;setfloat(shadow, -1077.40, 316.63, 11.26);shadow += 0x40;

 

Spawns several ped shadows at the Compound.

Link to comment
Share on other sites

 

Edit functions: Edit parked cars in game

These are the parked vehicle spawn addresses:

 

Start of the spawning functions: 0x08E80A20

End of the spawning functions: 0x08E82E50

 

Here are the memory addresses of some vehicle spawns:

 

0x08E80F30 = Cheetah at Diaz's Mansion0x08E81290 = Virgo from the Airport Parking Lot0x08E82CA0 = BMX inside the Vice Point Mall0x08E81D40 = Caddy at the Entrance to Leaf Links Country Club0x08E821C0 = Mr. Whoopee at the Fair

 

Here's the spawn cheat:

 

#cheat Spawn vehicle at the Compoundvehicle = 0x08E80A20;setint(vehicle, 279);setfloat(vehicle + 0x4, -1077.40, 312.63, 11.26, 180);vehicle += 0x30;off()

 

First the vehicle id, then the coordinates and direction the vehicle is facing !

 

Here's the vehicle ID list:

 

ID Car Name170 6 ATV171 Admiral172 Cheetah173 Autogyro174 Baggage Handler175 Banshee176 Perennial177 Blista Compact178 BMX (Boy)179 BMX (Girly)180 Bobcat181 Bull Dozer182 Burrito183 Cabbie184 Caddy185 Speeder (Fast)186 Polaris V8187 Deluxo188 Armadillo189 Ambulance Heli190 Wintergreen191 Police Bike192 Esperanto193 FBI Car194 Fire Truck195 Glendale196 Greenwood197 Hermes198 Hover Craft199 Idaho200 Landstalker201 Manana202 Ventoso203 Oceanic204 Cheetah (Cop)205 Sanchez206 Stallion207 Police Car208 Domestobot209 Patriot210 Pony211 Sentinel212 PCJ 600213 Maverick214 Reefer215 Speeder216 Linerunner217 Walton218 Barracks OL219 Predator220 Flatbed221 Ammo Truck222 Biplane223 Moonbeam224 Rumpo225 Yola226 Taxi227 Ambulance228 Stretch229 Faggio230 Quad231 Angel232 Freeway233 Jet Ski234 Enforcer235 Boxville236 Benson237 Coach238 Mule239 Voodoo240 Securicar241 Trashmaster242 Top Fun (CRASH)243 Yankee244 Mr Whoopee245 Sand King246 Rhino247 Dinghy248 Marquis249 Rio250 Tropic251 Forklift252 Street Fighter253 Virgo254 Stinger255 BF Injection256 Pheonix257 Squalo258 Jetmax259 Mesa260 VCN Maverick261 Police Maverick262 Sparrow263 Sea Sparrow264 Violator265 Chollo266 Comet267 Cuban Hermes268 FBI Rancher269 Gang Rancher270 Infernus271 Regina272 Sabre273 Sabre Turbo274 Sentinel XS275 Hunter276 Washington277 Coast Guard278 Skimmer279 Green VCPD Heli280 Airtrain (CRASH)

 

Here`s an example cheat:

 

#cheat New Vehicle Spawnspspawn = 0x08E81290;setint(pspawn, 279); //Green VCPD Mavericksetfloat(pspawn + 0x4, -891.41, -678.49, 25.43, 0); //Little Havanna Policestationpspawn += 0x30;setint(pspawn, 213); //Mavericksetfloat(pspawn + 0x4, -471.83, 1260.18, 79.75, 0); //Downtown Buildingpspawn += 0x30;setint(pspawn, 263); //Sea Sparrowsetfloat(pspawn + 0x4, 294.74, 270.19, 17.70, 0); //Mercedez Housepspawn += 0x30;setint(pspawn, 260); //VCN Mavericksetfloat(pspawn + 0x4, -468.84, 1123.74, 64.75, 90); //VCN Buildingpspawn += 0x30;setint(pspawn, 188); //Armadillosetfloat(pspawn + 0x4, -877.69, 1510.09, 33.04, 180); //Near Stadiumpspawn += 0x30;setint(pspawn, 263); //Sea Sparrowsetfloat(pspawn + 0x4, -1127.23, 1513.63, 11.98, 0); //Stadium Helipadpspawn += 0x30;setint(pspawn, 213); //Mavericksetfloat(pspawn + 0x4, -853.55, 1355.21, 69.55, 180); //Hyman Condopspawn += 0x30;setint(pspawn, 262); //Sparrowsetfloat(pspawn + 0x4, -906.43, 1021.04, 78.18, 0); //V-Rock Buildingpspawn += 0x30;setint(pspawn, 275); //Huntersetfloat(pspawn + 0x4, -1684.62, -124.43, 14.62, 90); //Fort Baxterpspawn += 0x30;setint(pspawn, 221); //Ammo Trucksetfloat(pspawn + 0x4, -1761.37, -283.23, 14.84, 270); //Fort Baxterpspawn += 0x30;setint(pspawn, 173); //Autogyrosetfloat(pspawn + 0x4, -358.14, -575.16, 38.93, 90); //Diaz Mansionpspawn += 0x30;setint(pspawn, 188); //Armadillosetfloat(pspawn + 0x4, -70.43, -1608.43, 12.21, 0); //Lances Housepspawn += 0x30;setint(pspawn, 208); //Domestobotsetfloat(pspawn + 0x4, 300.87, -255.07, 11.44, 180); //Autoscooterpspawn += 0x30;setint(pspawn, 268); //FBI Ranchersetfloat(pspawn + 4, -977.09, 260.31, 10.79, 270); //Behind Little Haiti Fidlpspawn += 0x30;setint(pspawn, 198); //Hover Craftsetfloat(pspawn + 0x4, -300.94, -602.55, 12.83, 180); //Diaz Poolpspawn += 0x30;setint(pspawn, 185); //Speeder (Fast Version)setfloat(pspawn + 0x4, -595.83, -1508.85, 6.50, 270); //Boatyardpspawn += 0x30;setint(pspawn, 178); //Boy BMXsetfloat(pspawn + 0x4, 345.79, -724.25, 10.29, 270); //DPB Securitypspawn += 0x30;setint(pspawn, 179); //Girly BMXsetfloat(pspawn + 0x4, 347.37, -729.52, 10.40, 270); //DPB Securitypspawn += 0x30;off()

 

This cheat adds many additional vehicle spawns to the city.

Including unused vehicles, aswell as helicopters on every single helipad found in Vice City !

 

 

Edit functions: Edit Vehicles in your garages

 

#cheat Spawn Car in Bayshore Garagesetint(0x08C739B0, 170);setchar(0x08C739D4, 255, 0, 0);setchar(0x08C739D8, 255, 0, 0);off();#cheat Spawn Car in Compound Garagesetint(0x8C73A70, 170);setchar(0x8C73A94, 255, 0, 0);setchar(0x8C73A98, 255, 0, 0);off();#cheat Spawn Car in Clymenus Garagesetint(0x8C73B30, 170);setchar(0x8C73B54, 255, 0, 0);setchar(0x8C73B58, 255, 0, 0);off();

 

Replace the 170 with the ID of the car you want to spawn !

The other two addresses are the first and the second car color !

 

Here's the vehicle ID list:

 

ID Car Name170 6 ATV171 Admiral172 Cheetah173 Autogyro174 Baggage Handler175 Banshee176 Perennial177 Blista Compact178 BMX (Boy)179 BMX (Girly)180 Bobcat181 Bull Dozer182 Burrito183 Cabbie184 Caddy185 Speeder (Fast)186 Polaris V8187 Deluxo188 Armadillo189 Ambulance Heli190 Wintergreen191 Police Bike192 Esperanto193 FBI Car194 Fire Truck195 Glendale196 Greenwood197 Hermes198 Hover Craft199 Idaho200 Landstalker201 Manana202 Ventoso203 Oceanic204 Cheetah (Cop)205 Sanchez206 Stallion207 Police Car208 Domestobot209 Patriot210 Pony211 Sentinel212 PCJ 600213 Maverick214 Reefer215 Speeder216 Linerunner217 Walton218 Barracks OL219 Predator220 Flatbed221 Ammo Truck222 Biplane223 Moonbeam224 Rumpo225 Yola226 Taxi227 Ambulance228 Stretch229 Faggio230 Quad231 Angel232 Freeway233 Jet Ski234 Enforcer235 Boxville236 Benson237 Coach238 Mule239 Voodoo240 Securicar241 Trashmaster242 Top Fun (CRASH)243 Yankee244 Mr Whoopee245 Sand King246 Rhino247 Dinghy248 Marquis249 Rio250 Tropic251 Forklift252 Street Fighter253 Virgo254 Stinger255 BF Injection256 Pheonix257 Squalo258 Jetmax259 Mesa260 VCN Maverick261 Police Maverick262 Sparrow263 Sea Sparrow264 Violator265 Chollo266 Comet267 Cuban Hermes268 FBI Rancher269 Gang Rancher270 Infernus271 Regina272 Sabre273 Sabre Turbo274 Sentinel XS275 Hunter276 Washington277 Coast Guard278 Skimmer279 Green VCPD Heli280 Airtrain (CRASH)

 

 

 

Spawn functions: Marker Spawns

The marker spawn function:

 

 

#cheat Spawn Marker at the Compoundmarker = 0x08BF7B40;setfloat(marker, -1077.40, 312.63, 11.26);setchar(marker+0x16, 0x80, 0x3F);setchar(marker+0x1A, 0x01);setchar(marker+0x1C, 0x06);marker += 0x20;

 

This example cheat spawns a pink mission marker at the Compound !

 

Another example:

 

 

#cheat Spawn 3 Entrance Markers at the Compoundmarker = 0x08BF7B40;setfloat(marker, -1077.40, 312.60, 11.26);setchar(marker+0x16, 0x80, 0x3F);setchar(marker+0x1A, 0x01);setchar(marker+0x1C, 0x07);marker += 0x20;setfloat(marker, -1077.40, 314.60, 11.26);setchar(marker+0x16, 0x80, 0x3F);setchar(marker+0x1A, 0x01);setchar(marker+0x1C, 0x07);marker += 0x20;setfloat(marker, -1077.40, 310.60, 11.26);setchar(marker+0x16, 0x80, 0x3F);setchar(marker+0x1A, 0x01);setchar(marker+0x1C, 0x07);

 

This one spawns three entrance markers at the Compound !

 

"marker+0x16" is the size of the marker !

"marker+0x1A" must be set to 0x01 to make the marker appear !

"marker+0x1C" is the object id !

 

Important:

The maximum amount of markers you can spawn is 17 !

 

ID List:

 

 

0x01 = Up/Down moving Arrow0x02 = Arrow0x03 = Left/Right moving Arrow0x06 = Mission Marker0x07 = Entrance Marker0x08 = Corona

 

 

Here's more stuff to mess around with markers:

 

 

#cheat Marker Creator// Left/Right to select type, Cross to spawnsetchar(0x8BAEDB8, '%', 'd', 0);setchar(0x8BAEDC0, '%', 'd', 0);static start;if (!start){pobject = 0;start = 1;money = getint(0x08BDE55C);}setint(0x08BDE55C, money, money);setint(0x08BDE55C, pobject, pobject);if (press & CTRL_LEFT)pobject = pobject - 1;if (press & CTRL_RIGHT)pobject = pobject + 1;if(press & CTRL_CROSS){marker = 0x08BF7B40;setfloat(marker, getfloat(pobj + 0x30) + cos(7.2), getfloat(pobj + 0x34) + sin(7.2), getfloat(pobj + 0x38));setchar(marker + 0x16, 0x80, 0x3F);setchar(marker + 0x1A, 0x01);setchar(marker + 0x1C, pobject);}

 

This cheat allows you to spawn any kind of marker next to Vic !

 

 

#cheat Marker Placement over Vics Headstatic mark;mark = 0x8C62EA0;setfloat(mark, getfloat(pobj + 0x30), getfloat(pobj + 0x34), getfloat(pobj + 0x38) + 1.5);

 

This moves the nearest marker over Vics head !

 

 

#cheat Red Markersmark = 0x8C62EA0;setchar(mark + 0x2C, 255, 0, 0);#cheat Green Markersmark = 0x8C62EA0;setchar(mark + 0x2C, 0, 255, 0);#cheat Blue Markersmark = 0x8C62EA0;setchar(mark + 0x2C, 0, 0, 255);#cheat Standard Entrance Marker Colormark = 0x8C62EA0;setchar(mark + 0x2C, 30, 255, 255);

 

This changes the color of the nearest marker !

 

 

#cheat Red Markerssetchar(0x08C62FEC, 255, 0, 0);setchar(0x08C6307C, 255, 0, 0);setchar(0x08C62ECC, 255, 0, 0);setchar(0x08C62F5C, 255, 0, 0);#cheat Green Markerssetchar(0x08C62FEC, 0, 255, 0);setchar(0x08C6307C, 0, 255, 0);setchar(0x08C62ECC, 0, 255, 0);setchar(0x08C62F5C, 0, 255, 0);#cheat Blue Markerssetchar(0x08C62FEC, 0, 0, 255);setchar(0x08C6307C, 0, 0, 255);setchar(0x08C62ECC, 0, 0, 255);setchar(0x08C62F5C, 0, 0, 255);#cheat Black Markerssetchar (0x08C62FEC, 0, 0, 0);setchar (0x08C6307C, 0, 0, 0);setchar (0x08C62ECC, 0, 0, 0);setchar (0x08C62F5C, 0, 0, 0);#cheat White Markerssetchar (0x08C62FEC, 255, 255, 255);setchar (0x08C6307C, 255, 255, 255);setchar (0x08C62ECC, 255, 255, 255);setchar (0x08C62F5C, 255, 255, 255);

 

These work for all markers in the entire game !

 

Thanks to Psphacker108 for those color changers !

 

 

#cheat Marker Heightsetchar(0x08C6304A, 0x80);setchar(0x08C6304B, 0x3F);#cheat Marker Widthsetchar(0x08C63036, 0x80);setchar(0x08C63037, 0x3F);#cheat Rotating Markerssetchar(0x08C630A0, 0x01);#cheat Fast Rotating Markerssetchar(0x08C630A0, 0x01, 0x01);#cheat Stop Rotating Markerssetchar(0x08C630A0, 0x00, 0x00);

 

Again, thanks to Psphacker108 for those marker edits !

 

 

Spawn functions: Map Icon Spawns

 

These are the icon spawn addresses:

 

Start of the spawning functions: 0x08E8EFC0

End of the spawning functions: 0x08E8FD70

 

Here are the memory locations of a few icons:

 

0x08E8F020 = Empire Site behind Little Havanna Police Station Icon0x08E8F560 = Vice Port Pay & Spray Icon0x08E8F620 = Downtown Ammu Nation Icon0x08E8F650 = Stonewall J's Icon0x08E8F6E0 = 8 Ball's Bomb Shop Icon0x08E8F710 = 101 Bayshore Savehouse Icon0x08E8F7A0 = Player Target Icon

 

Use them if you want to spawn multiple icons !

 

Here's a very simple cheat to spawn an icon on the map:

 

#cheat Place Icon somewhere on the Mapicon = 0x08E8EFC0;setfloat(icon, X, Y, Z); // Spawning location of the iconsetchar(icon+0x19, 0x1D); // Object IDicon += 0x30;

 

Here's an example of how to use it:

 

#cheat Spawn a Clothes Store Icon at the Compoundicon = 0x08E8EFC0;setfloat(icon, -1077.40, 312.63, 11.26);setchar(icon+0x19, 0x0B);icon += 0x30;

 

Note that this Icon is unused in the game !

The Clothes Stores from GTA Vice City are nowhere to be found in VCS...

 

List of Icon ID's:

 

0x00 - Destination0x01 - Player direction0x02 - Player position (LCS Style)0x03 - N (North Mark from the Radar)0x04 - Ammu-Nation0x05 - Hardware Store0x06 - Save House0x07 - Triangle (From the floating arrows)0x08 - Pay 'n' Spray0x09 - Phone0x0A - Bomb Shop0x0B - Clothes Store0x0C - Power Up0x0D - Buyable Property0x0E - Race Flag0x0F - Guy0x10 - Player Target0x11 - Car0x12 - Tank0x13 - Door ?0x14 - Car Crusher0x15 - Player position (Up)0x16 - Player position (Up-Right)0x17 - Player position (Right)0x18 - Player position (Down-Right)0x19 - Player position (Down)0x1A - Player position (Down-Left)0x1B - Player position (Left)0x1C - Player position (Up-Left)0x1D - Empire Site (Good Condition)0x1E - Empire Site (Damaged)0x1F - Empire Site (Under Construction)0x20 - Small C0x21 - Medium C0x22 - Large C0x23 - F (Forbes0x24 - G (Gonzalez)0x25 - L (Lance)0x26 - Lw (Louise)0x27 - Mw (Marty)0x28 - P (Phil)0x29 - R (Reni)0x2A - D (Diaz)0x2B - Stripes (Jerry)0x2C - M (Mendez)0x2D - U (Umberto)0x2E - Plane (Aiport)0x2F - Stonewall J's0x30 - Unique Stunts0x31 - Rampages0x32 - Red Balloons0x33 - Suitcase0x34 - Bomb0x35 - Boat0x36 - Helicopter

 

 

Using it in a race type mission of your own creation:

 

 

This creates a marker:

 

marker = 0x08BF7B40;setfloat(marker, 118.71, -826.73, 10.46);setchar(marker + 0x16, 0x80, 0x40);setchar(marker + 0x1A, 0x01);setchar(marker + 0x1C, 0x06);

 

This creates an invisible zone which we use to check, if the player is standing in the marker:

 

X1 = 118.71; // The coordinates of where the zone is. Must be the same as the location of the marker ! Y1 = -826.73;checkx1 = X1 - getfloat(pplayer + 0x30);checky1 = Y1 - getfloat(pplayer + 0x34);if(sqrt(checkx1 * checkx1 + checky1 * checky1) < 2) // Check, if the player is in an area of 2 meters around the coordinates of the invisible zone, and if he is, do...{setchar(marker + 0x16, 0, 0); // ...this, to make the marker disappear !// You can add other things, you want to happen, when the marker is gone here !}

 

Here's an example of using it in a checkpoint race mission:

 

#cheat Checkpoint Race Examplevehiclespawn = 0x08E81290; // Spawns a vehicle at the starting point of the race.setint(vehiclespawn, 205);setfloat(vehiclespawn + 0x4, 291.65, -1414.97, 11.07, 270);icon = 0x08E8EFC0; // Spawns a little race flag icon on the map...setfloat(icon, 291.65, -1414.97, 11.07); // ...to show, where the race is located.setchar(icon + 0x19, 0x0E);moveto(289.53,-1421.75,10.27); // Creates a little wall to simulate the starting line of the race.object(0x1CB8,90,180,272);move(-2.66,0.10,0.00);object(0x1CB8,90,180,272);move(6.87,13.49,0.10);object(0x1CB8,90,180,90);move(-2.69,-0.06,0.00);object(0x1CB8,90,180,90);move(3.20,-1.16,0.00);object(0x1CB8,90,180,196);move(-0.97,-2.56,0.10);object(0x1CB8,90,180,196);move(-2.08,-8.76,-0.10);object(0x1CB8,90,180,196);move(0.73,2.51,0.00);object(0x1CB8,90,180,196);X1 = 291.65;Y1 = -1414.97;checkx1 = X1-getfloat(pobj + 0x30);checky1 = Y1-getfloat(pobj + 0x34);if(getshort(pcar + 0x56) == 205 && sqrt(checkx1*checkx1 + checky1*checky1)<2) // If the id of your car is 205 and you are in the area of 2 meters around X1 and Y1, then...{setshort(0x08E90DD8, 1, '~', 'h', '~', 'C', 'h', 'e', 'c', 'k', 'p', 'o', 'i', 'n', 't', ' ', 'R', 'a', 'c', 'e', '~', 'w', '~', 0); // Display a race started text.}if(getshort(pcar + 0x56) == 205) // If you're still in the car with id 205 then...{setshort(0x08e90bd8, 1, 'G', 'e', 't', ' ', 't', 'o', ' ', 't', 'h', 'e', ' ', 'n', 'e', 'x', 't', ' ', '~', 'h', '~', 'C', 'h', 'e', 'c', 'k', 'p', 'o', 'i', 'n', 't', '~', 'w', '~', ' ', '!');static time; // Create a timer and show it on the screen.setshort(0x08BF81FE, 'T', 'i', 'm', 'e', ':', ' ', time, time, time, ' ', 0);time++;if(time >= 1400){setchar(0x08E937B5, 0x01);}if(time == 1500) // If the timer has reached 1500 it's...{setshort(0x08e90DD8, 1, 'T', 'i', 'm', 'e', ' ', 'o', 'u', 't', ' ', '!', 0); // ...time out ! And everything resets back to what it was, before the race started.setchar(0x08E937B5, 0x01);playerx = getfloat(pobj + 0x030);playery = getfloat(pobj + 0x034);playerz = getfloat(pobj + 0x038);time = 0;setfloat(marker, 0, 0, 0);setchar(marker + 0x1A, 0x00);setchar(marker + 0x1C, 0x00);setfloat(icon, 0, 0, 0);setchar(icon + 0x19, 0x07);teleport(playerx, playery, playerz);}marker = 0x08BF7B40; // An example checkpoint for the race.setfloat(marker, 321.90, -1420.41, 11.07);setchar(marker + 0x1A, 0x01);setchar(marker + 0x1C, 0x06);setfloat(icon, 321.90, -1420.41, 11.07);setchar(icon + 0x19, 0x00);}X2 = 321.90;Y2 = -1420.41;checkx2 = X2-getfloat(pobj + 0x30);checky2 = Y2-getfloat(pobj + 0x34);if(getshort(pcar + 0x56) == 205 && sqrt(checkx2*checkx2 + checky2*checky2)<2)setshort(0x08E90DD8, 1, '~', 'h', '~', 'Y', 'O', 'U', ''', 'R', 'E', ' ', 'W', 'I', 'N', 'N', 'E', 'R', ' ', '!', '~', 'w', '~', 0); // Mission passed text after te player has reached the checkpoint.playerx = getfloat(pobj + 0x030);playery = getfloat(pobj + 0x034);playerz = getfloat(pobj + 0x038);setfloat(marker, 0, 0, 0);setchar(marker + 0x1A, 0x00);setchar(marker + 0x1C, 0x00);setfloat(icon, 0, 0, 0);setchar(icon + 0x19, 0x07);teleport(playerx, playery, playerz);

 

I'm sorry, if this was too complicated, but you must know, that advanced mission creating isn't easy, for a beginner...

 

If you have some basic programming knowledge of C, or even another similar programming language, then understanding this stuff will be much, much easier for you...

 

3.

Example:

 

setchar(0x08E937B5, 0x01); // This must be set to 0x01, to create a textbox onscreen, which we'll use to display a text.static address; // You can name this address, text, poop, whatever...if(!address) // This short if part should be used when you created static's, to make sure, that they are set to the value you want them to have, when you turn the cheat on.{address = 0;}if(address == 0 && press & CTRL_RIGHT) // IF address is 0, which it is, because of the line above, and you press the RIGHT butten...{setchar(0x08E937B5, 0x01); // Make a little beep sound and...address = 1; // ...set address to 1.}if(address == 1 && press & CTRL_LEFT) //The reverse, if address is 1, because you pressed RIGHT, and your press LEFT...{setchar(0x08E937B5, 0x01); // ...beep...address = 0; // ...and change it back to 0.}if(address == 0) // Now here's, what happens during the time, address is 0:{setshort(0x08E92FFC, 'Y', 'e', 'a', 'h', ',', ' ', 'i', 't', ''', 's', ' ', '0', ' ', 'a', 't', ' ', 't', 'h', 'e', ' ', 'm', 'o', 'm', 'e', 'n', 't', ' ', '!', ); // This text is shown in a box on the screen, while address is 0 !setshort(0x08E931FC, 'Y', 'e', 'a', 'h', ',', ' ', 'i', 't', ''', 's', ' ', '0', ' ', 'a', 't', ' ', 't', 'h', 'e', ' ', 'm', 'o', 'm', 'e', 'n', 't', ' ', '!', ); // Don't wonder about this too much, you need to write your text three times, with those addresses, to make it work right !setshort(0x08E933FC, 'Y', 'e', 'a', 'h', ',', ' ', 'i', 't', ''', 's', ' ', '0', ' ', 'a', 't', ' ', 't', 'h', 'e', ' ', 'm', 'o', 'm', 'e', 'n', 't', ' ', '!', ); // The 3rd time...}else if(address == 1) // Now here's, what happens during the time, address is 1 (meaning, you've pressed RIGHT):{setshort(0x08E92FFC, 'Y', 'e', 'a', 'h', ',', ' ', 'i', 't', ''', 's', ' ', '1', ' ', 'a', 't', ' ', 't', 'h', 'e', ' ', 'm', 'o', 'm', 'e', 'n', 't', ' ', '!', ); // 1st address for showing a textbox.setshort(0x08E931FC, 'Y', 'e', 'a', 'h', ',', ' ', 'i', 't', ''', 's', ' ', '1', ' ', 'a', 't', ' ', 't', 'h', 'e', ' ', 'm', 'o', 'm', 'e', 'n', 't', ' ', '!', ); // 2nd one.setshort(0x08E933FC, 'Y', 'e', 'a', 'h', ',', ' ', 'i', 't', ''', 's', ' ', '1', ' ', 'a', 't', ' ', 't', 'h', 'e', ' ', 'm', 'o', 'm', 'e', 'n', 't', ' ', '!', ); // 3rd one.}

Was this understandable ?

To explain it simple, all it does is saying "Yeah, it's 0 at the moment !" in a little box on the screen, when you turn the cheat on, and the text in the box will change to "Yeah, it's 1 at the moment !", when you press RIGHT on the D-pad !

 

It also makes a little beep, when you press LEFT or RIGHT, to switch between the two text variants.

 

Instead of making the text change when pressing a button like in this example, you can also make it change when other things happen, like, when you walk through a marker etc. ...

 

4.

 

#cheat Mark a place on the map with the Clothes Store Iconicon = 0x08E8EFC0;setfloat(icon, -1077.40, 312.63, 11.26); // X, Y, Z coordinates of the place (Z tells you, if you're above/below the icon, if it's a marker).setchar(icon + 0x19, 0x0B); // What icon you want.icon += 0x30;

 

Icon list:

 

0x00 - Destination0x01 - Player direction0x02 - Player position (LCS Style)0x03 - N (North Mark from the Radar)0x04 - Ammu-Nation0x05 - Hardware Store0x06 - Save House0x07 - Triangle (From the floating arrows)0x08 - Pay 'n' Spray0x09 - Phone0x0A - Bomb Shop0x0B - Clothes Store0x0C - Power Up0x0D - Buyable Property0x0E - Race Flag0x0F - Guy0x10 - Player Target0x11 - Car0x12 - Tank0x13 - Door ?0x14 - Car Crusher0x15 - Player position (Up)0x16 - Player position (Up-Right)0x17 - Player position (Right)0x18 - Player position (Down-Right)0x19 - Player position (Down)0x1A - Player position (Down-Left)0x1B - Player position (Left)0x1C - Player position (Up-Left)0x1D - Empire Site (Good Condition)0x1E - Empire Site (Damaged)0x1F - Empire Site (Under Construction)0x20 - Small C0x21 - Medium C0x22 - Large C0x23 - F (Forbes0x24 - G (Gonzalez)0x25 - L (Lance)0x26 - Lw (Louise)0x27 - Mw (Marty)0x28 - P (Phil)0x29 - R (Reni)0x2A - D (Diaz)0x2B - Stripes (Jerry)0x2C - M (Mendez)0x2D - U (Umberto)0x2E - Plane (Aiport)0x2F - Stonewall J's0x30 - Unique Stunts0x31 - Rampages0x32 - Red Balloons0x33 - Suitcase0x34 - Bomb0x35 - Boat0x36 - Helicopter

 

Edited by Josh?
Link to comment
Share on other sites

 

Spawn Functions: AI controlled Car Spawns

A simple script I came up with which could be great for custom missions!

 

It allows you to spawn a vehicle with two cop drivers anywhere:

 

#cheat AI Vehicle Script

static spawn;

if (spawn != 2)

{

spawn = 1;

}

if (spawn == 1)

{

static time;

time++;

if (time <= 50)

{

static counter;

setint(0x08C73A70, 207);

setchar(0x08C73A94, 0, 0, 0);

setchar(0x08C73A98, 0, 0, 0);

vspawn = 0x08E82CA0;

spawnid = 171; // The vehicle ID

setint(vspawn, spawnid);

setfloat(vspawn + 0x04, -1077.40, 312.63, 11.26, 180); // The vehicle spawn coordinates

if (counter++ % 30 == 0)

{

for (p = 0x098EDCC0; p <= 0x099019A0; p += 0x0820)

{

checkid = getshort(p + 0x56);

if (checkid == spawnid)

{

setchar(p + 0x0267, 0x75);

}

}

}

}

if (time >= 51 && time <= 100)

{

for (p2 = 0x098EDCC0; p2 <= 0x099019A0; p2 += 0x0820)

{

setchar(p2 + 0x0267, 0x44);

}

}

if (time >= 101)

{

spawn = 2;

time = 0;

}

}

#off

spawn = time = counter = 0;

 

 

Change the lines colored in red to whatever you like to make it fit your needs!

(I did not use the "code" tag, because I wouldn't be able to color the text)

Link to comment
Share on other sites

 

Edit Functions: Edit the world map

user posted image

user posted image

 

Size modifiers:

 

Map Size Address 1:

0x08E752AB

 

Map Size Address 2:

0x08E75AEB

 

The two addresses are indentical in appearance and effect.

The game randomly switches between the two addresses, so you have to edit both of them in your cheats to make sure it'll always work !

 

 

#cheat Normal Map Sizesetchar(0x08E752AB, 0x43);setchar(0x08E75AEB, 0x43);

 

Use this to turn the map back to normal again.

 

 

#cheat Shrink the Mapsetchar(0x08E752AB, 0x41);setchar(0x08E75AEB, 0x41);

 

The map will shrink a little and Vic's feet will stick into the ground.

 

 

#cheat Screw the Worldmapsetchar(0x08E752AB, 0x42);setchar(0x08E75AEB, 0x42);

 

This cheat turns the worldmap into a weird looking stretchy randomness.

 

Collision addresses:

Use those to edit the whole map:

 

#cheat Raise The World +1mfor (p = 0x09436E40; p < 0x09526720; p += 0x60)setfloat(p + 0x38, getfloat(p + 0x38) + 1.0);setfloat(pplayer + 0x38, getfloat(pplayer + 0x38) + 1.0);setfloat(pcar + 0x38, getfloat(pcar + 0x38) + 1.0);off();#cheat Lower The World -0.5mfor (p = 0x09436E40; p < 0x09526720; p += 0x60)setfloat(p + 0x38, getfloat(p + 0x38) - 0.5);off();

 

Credits to Edison Carter !

 

Here's the address of a single worldmap object:

 

#cheat Raise the World of the Boatif (buttons & CTRL_UP)setfloat(0x9442038, getfloat(0x9442038)-.1);if (buttons & CTRL_DOWN)setfloat(0x9442038, getfloat(0x9442038)+.1);#offsetfloat(0x9442030, 6);#cheat Shift the world of the boatif (buttons & CTRL_LEFT)setfloat(0x9442030, getfloat(0x9442030)-.1);if (buttons & CTRL_RIGHT)setfloat(0x9442030, getfloat(0x9442030)+.1);#offsetfloat(0x9442030, 6);

 

Credits to psphacker108 !

 

 

Edit Functions: Water Edits

user posted image

user posted image

 

Water spawn addresses:

 

#cheat Water Everywhereif(getchar(0x0954A000) != 0){for(p = 0x09549D80; p < 0x0954E580; p++)setchar(p, 0x00);}

 

Places water under the whole map !

 

Credits to Edison Carter !

 

 

#cheat Water Height Modifier (Left or Right)if(buttons & CTRL_LEFT)setfloat(0x096C96B0, getfloat(0x096C96B0) - .1);if(buttons & CTRL_RIGHT)setfloat(0x096C96B0, getfloat(0x096C96B0) + .1);#offsetfloat(0x096C96B0, 6);#cheat Wave Size/Speed Modifier (Up or Down)static fInit;if(!fInit){fInit = true;Wave = getfloat(0x08BB3BB0);}if(buttons & CTRL_DOWN)Wave = Wave - .1;if(buttons & CTRL_UP)Wave = Wave + .1;setfloat(0x08BB3BB0, Wave);

 

Credits to Vettefan88 !

 

 

Edit Functions: In-game Texture Edits

Now you can edit the textures of the worldmap !

user posted image

user posted image

 

The texture spawn addresses:

 

Start of the spawning functions: 0x0871C490

End of the spawning functions: 0x087EAFF0

 

Here are the memory locations of some important textures:

 

0x0871D280 = Outer Compound Walls0x0871D300 = Inner Compound Walls0x0871D380 = Ground of the Compound0x0871D400 = Roof of the Compound Hangar0x0871D480 = Ground of the Compound Hangar0x0871D500 = Wooden Door of the Compound Garage0x0871D5C0 = Street Sidewalks0x0871D640 = Streets0x0871D740 = Little Haiti Harbor Ground0x0871C840 = Random Store Signs (Fidl etc.)

 

Here's an example cheat which removes the texture of some wall near the Compound:

 

#cheat Remove Compound Wall Texturesetchar(0x0871D280, 0x00);#offsetchar(0x0871D280, 0x01);

 

And here's a texture edit on the same wall:

 

#cheat Funky Compound Wallssetchar(0x0871D288, 0x01);#offsetchar(0x0871D288, 0x04);

 

It's the one you can see in the picture !

 

It's even possible to change the resolution of the textures:

 

#cheat Low Res Compound Texturessetchar(0x0871D28F, 0xC6);#offsetchar(0x0871D28F, 0xC7);

 

Create your own hell:

 

#cheat Welcome to Hellsetchar(0x0871D58F, 0xDF);setchar(0x0871D5CF, 0xDF);#offsetchar(0x0871D58F, 0xC7);setchar(0x0871D5CF, 0xC7);

 

This is complete madness, be sure to give it a try !

 

Important note:

All of those cheats only work when your game was saved at the Compound !

That's because the addresses change depending on the place where you saved your game and all of my addresses are based on a Compound savegame...

Edited by Josh?
Link to comment
Share on other sites

 

Edit Functions: Edit the colour of user inserted text

Originally written by Upaluppa.

 

Let's say, we have this text:

setshort(0x08BA09CC, 'U', 'p', 'a', 'l', 'u', 'p', 'p', 'a', ' ', 'r', 'u', 'l', 'e', 's', ' ', '!', '!', '!', '!', ' ');

 

Now you want to make the word 'U', 'p', 'a', 'l', 'u', 'p', 'p', 'a', appear in neon blue color !

 

To do this, you have to add '~', 'h', '~', right before the word (or part of your text) and '~', 'w', '~', behind that word/part of text.

 

So it would look like this:

 

setshort(0x08BA09CC, '~', 'h', '~', 'U', 'p', 'a', 'l', 'u', 'p', 'p', 'a',  '~', 'w', '~', ' ', 'r', 'u', 'l', 'e', 's', ' ', '!', '!', '!', '!', ' ');

 

You can also color it in a normal blue, by adding '~', 'b', '~', before, and '~', 'w', '~', behind the word/part of text.

Red is also possible, by adding '~', 'h', '~', '~', 'r', '~', before and '~', 'w', '~', '~', 'a', '~', behind the word/part of text.

Link to comment
Share on other sites

 

Edit Functions: Character Skin Change Cheat

Here's a little explanatory video of the character select code:

 

If you do it just like I did in the video it should work!

 

Remember that not all ID's (numbers shown in the money counter) work correctly!

Some of them might crash the game at times, in this case try again and use a different ID!

 

Note:

I know, my voice is terrible...

And believe me, I don't sound like this normally, I am just not self confident enough when speaking English and recording it.

Link to comment
Share on other sites

 

Propagate Object: How to create a moving door

Moving Door:

 

#cheat Interactive Door at the Compound// By Upaluppamoveto(-1095.99, 288.11, 13.26); object(0x1C99, 0, 0, 180); // Creates a wall left of the doormoveto(-1096.00, 299.31, 13.26); object(0x1C99, 0, 0, 180); // Creates a wall right of the doorstatic Marker1; // Invisible marker to check, if the player is standing near...X1 = -1096.00; // ...this X coordinate...Y1 = 293.71; // ...and this Y coordinate.if (!Marker1) // When the marker is not ready yet... { Marker1 = 1; // ...activate it now. }checkx1 = X1 - getfloat(pobj + 0x30); // This compares the players X coordinate with the one from our marker.checky1 = Y1 - getfloat(pobj + 0x34); // This compares the players Y coordinate with the one from our marker.if (sqrt(checkx1 * checkx1 + checky1 * checky1) < 5) // And if they are equal, or atleast just about 5 meters in difference... { setchar(0x08E93604, 0x1); // ...show a message to the player, how to use the door. setshort(0x08E92FFC, 'P', 'r', 'e', 's', 's', ' ', '~', 'h', '~', 'U', 'p', '~', 'w', '~', '/', '~', 'h', '~', 'D', 'o', 'w', 'n', '~', 'w', '~', ' ', 't', 'o', ' ', 'o', 'p', 'e', 'n', '/','c', 'l', 'o', 's', 'e', ' ', 't', 'h', 'e', ' ', 'd', 'o', 'o', 'r', '!'); // Message part 1 setshort(0x08E931FC, 'P', 'r', 'e', 's', 's', ' ', '~', 'h', '~', 'U', 'p', '~', 'w', '~', '/', '~', 'h', '~', 'D', 'o', 'w', 'n', '~', 'w', '~', ' ', 't', 'o', ' ', 'o', 'p', 'e', 'n', '/','c', 'l', 'o', 's', 'e', ' ', 't', 'h', 'e', ' ', 'd', 'o', 'o', 'r', '!'); // Message part 2 setshort(0x08E933FC, 'P', 'r', 'e', 's', 's', ' ', '~', 'h', '~', 'U', 'p', '~', 'w', '~', '/', '~', 'h', '~', 'D', 'o', 'w', 'n', '~', 'w', '~', ' ', 't', 'o', ' ', 'o', 'p', 'e', 'n', '/','c', 'l', 'o', 's', 'e', ' ', 't', 'h', 'e', ' ', 'd', 'o', 'o', 'r', '!'); // Message part 3 }top = 15.66; // How much the door will raise it's Z position, when it opens.bottom = 13.26; // The doors Z position, when it's closedxpos = -1096.00; // The doors X positionypos = 293.71; // The doors Y positionstatic obj; // Prevents the door from disappearing, by making it's variable static.static state; // This variable saves the doors state (open/closed).if (!obj) // When the door is not created yet... { moveto(xpos, ypos, bottom); obj = object(0x1C99, 0, 0, 180); // ...create it now. }else // If it is already created... { selectobject(obj); // ...select it. if (state == 0) // 0 = idle door state (i. e. not moving up/down).   {   if (getfloat(obj + 0x38) >= top && buttons & CTRL_DOWN && sqrt(checkx1 * checkx1 + checky1 * checky1) < 5) // When door is opened set it's state to 2 when pressing down.     {     state = 2;     }   if (getfloat(obj + 0x38) <= bottom && buttons & CTRL_UP && sqrt(checkx1 * checkx1 + checky1 * checky1) < 5) // When door is closed set it's state to 1 when pressing up.     {     state = 1;     }   } if (state == 1) // If the player pressed up (i. e. set the door state to 1)...   {   setfloat(obj + 0x38, getfloat(obj + 0x38) + 0.01); // ...make the door move up until...   if (getfloat(obj + 0x38) >= top) // ...the top Z coordinate is reached...     state = 0; // ...then stop movement by settting state back to 0 (idle).   } else if (state == 2) // same as with 1 above, but the reverse (down instead of up).   {   setfloat(obj + 0x38, getfloat(obj + 0x38) - 0.01);   if (getfloat(obj + 0x38) <= bottom)     state = 0;   } propagateobject(); // This is a special Cheatdevice command, which makes it possible to move objects around. (Write this after your movement code, or it won't work !) }#offobj = state = 0;

 

This explanation should make it easy to create your own moving doors for missions, constructions etc.

 

Some examples of this thing in action:

 

#cheat Interactive Door Testmoveto(-1095.99,288.11,13.26); object(0x1C99,0,0,180);moveto(-1096.00,299.31,13.26); object(0x1C99,0,0,180);static Marker1;X1 = -1096.00;Y1 = 293.71;if(!Marker1){Marker1 = 1;}checkx1 = X1-getfloat(pobj+0x30);checky1 = Y1-getfloat(pobj+0x34);if(sqrt(checkx1*checkx1+checky1*checky1)<5){setchar(0x08E93604, 0x1);setshort(0x08E92FFC, 'P', 'r', 'e', 's', 's', ' ', '~', 'h', '~', 'U', 'p', '~', 'w', '~', '/', '~', 'h', '~', 'D', 'o', 'w', 'n', '~', 'w', '~', ' ', 't', 'o', ' ', 'o', 'p', 'e', 'n', '/','c', 'l', 'o', 's', 'e', ' ', 't', 'h', 'e', ' ', 'd', 'o', 'o', 'r', '!');setshort(0x08E931FC, 'P', 'r', 'e', 's', 's', ' ', '~', 'h', '~', 'U', 'p', '~', 'w', '~', '/', '~', 'h', '~', 'D', 'o', 'w', 'n', '~', 'w', '~', ' ', 't', 'o', ' ', 'o', 'p', 'e', 'n', '/','c', 'l', 'o', 's', 'e', ' ', 't', 'h', 'e', ' ', 'd', 'o', 'o', 'r', '!');setshort(0x08E933FC, 'P', 'r', 'e', 's', 's', ' ', '~', 'h', '~', 'U', 'p', '~','w', '~', '/', '~', 'h', '~', 'D', 'o', 'w', 'n', '~', 'w', '~', ' ', 't', 'o',' ', 'o', 'p', 'e', 'n', '/','c', 'l', 'o', 's', 'e', ' ', 't', 'h', 'e', ' ', 'd', 'o', 'o', 'r', '!');}top = 15.66;bottom = 13.26;xpos = -1096.00;ypos = 293.71;static obj;static state;if(!obj){moveto(xpos,ypos,bottom);obj = object(0x1C99,0,0,180);}else{selectobject(obj);if(state == 0){if(getfloat(obj+0x38) >= top&&buttons&CTRL_DOWN&&sqrt(checkx1*checkx1+checky1*checky1)<5){ state = 2;}if(getfloat(obj+0x38) <=bottom&&buttons&CTRL_UP&&sqrt(checkx1*checkx1+checky1*checky1)<5){ state = 1;}}if(state == 1){setfloat(obj+0x38, getfloat(obj+0x38)+0.01);if(getfloat(obj+0x38) >= top) state = 0;}else if(state == 2){setfloat(obj+0x38, getfloat(obj+0x38)-0.01);if(getfloat(obj+0x38) <= bottom) state = 0;}propagateobject();}#offobj = state = 0;

 

You can open and close it with the press of a button !

 

You`ll find it at your Compound Savehouse, at the entrance to the hangar:

 

Here's a different take on the interactive door:

 

#cheat Bone Crushermoveto(-1095.99,288.11,13.26); object(0x1C99,0,0,180);moveto(-1096.00,299.31,13.26); object(0x1C99,0,0,180);top = 15.66;bottom = 13.26;xpos = -1096.00;ypos = 293.71;static obj;static state;if(!obj){moveto(xpos,ypos,bottom);obj = object(0x1C99,0,0,180);}else{selectobject(obj);if(state == 0){if(getfloat(obj+0x38) >= top){ state = 2;}if(getfloat(obj+0x38) <= bottom){ state = 1;}}if(state == 1){setfloat(obj+0x38, getfloat(obj+0x38)+0.05);if(getfloat(obj+0x38) >= top) state = 0;}else if(state == 2){setfloat(obj+0x38, getfloat(obj+0x38)-0.05);if(getfloat(obj+0x38) <= bottom) state = 0;}propagateobject();}ptouch = getint(pobj+0x150);if (ptouch&&getshort(ptouch+0x56) == 7321){setfloat(pplayer+0x4e4, 0);setfloat(pplayer+0x4e8, 0);setchar(0x08be3a20, 1);setfloat(0x08be3a30, getfloat(pcar+0x30), getfloat(pcar+0x34), getfloat(pcar+0x38));setfloat(pcar+0x27C, 0);setshort(0x08e90DD8, 1, 'C', 'r', 'u', 's', 'h', 'e', 'd', ' ', 't', 'o', ' ', 'd', 'e', 'a', 't', 'h', ' ', '!', 0);setchar(pplayer+0x8B4, 0x3A);obj = state = 0;playerx = getfloat(pobj+0x030);playery = getfloat(pobj+0x034);playerz = getfloat(pobj+0x038);teleport(playerx, playery, playerz);}#offobj = state = 0;

 

At the same location as the previous example, but this one will try to crush you ! wow.gifwow.gifwow.gif

 

 

Excuse the crappy writing style in the examples, they are from my earlier cheating times, when I didn't care about the importance of easy readable and understandable codes. :oops:

 

A second tutorial, about working elevators, should follow tomorrow ! wink.gif

Link to comment
Share on other sites

 

Random: Interior related documentation

We can't really spawn interiors, but we have found location modifiers which allow you to replace interiors with others of the same type !

You can also control other interior related actions like trigger empire site attacks, start a new game etc. !

 

user posted image

 

Store Location Modifiers:

 

Inside Interior Check:

0x08BF3884

 

0 = Outside of Interior

1 = Inside Interior

 

Location ID:

0x08BF3848

 

ID List:

5 = Curve (Little Havana)

6 = Nalgas Grandes (Little Haiti)

9 = Fidl (Little Haiti)

 

Here are example cheats:

 

#cheat Force the Player to leave any Store Interiorsetchar(0x08BF3884, 0);#cheat Turn any Store into Curvesetchar(0x08BF3848, 5);

 

 

Gunshop Location Modifiers:

 

Selected weapon:

0x08BF255C

 

0 = First weapon from the left

 

Location ID:

0x08BF2544

 

ID List:

0 = Ammu-Nation (Ocean Beach)

3 = Stonewall J's (Little Havana)

 

Here are example cheats:

 

#cheat Downtown Ammu-Nation sells nothing but Body Armorsetchar(0x08BF255C, 5);#cheat Turn any Gunshop into Stonewall J'ssetchar(0x08BF2544, 3);

 

 

Savehouse Location Modifiers:

 

Timemachine:

0x08BF2D3C

 

2 = Start a new game

 

Location ID:

0x08BF2DB0

 

ID List:

0 = Barracks (Fort Baxter)

1 = 101 Bayshore Avenue (Viceport)

2 = The Compound (Little Haiti)

3 = Clymenus Suite (Vice Point)

 

Here are example cheats:

 

#cheat Start a new gamesetchar(0x08BF2D3C, 2);#cheat Turn any Savehouse into Fort Baxter Barrackssetchar(0x08BF2DB0, 0);

 

 

Empire Site Location Modifiers:

 

Inside Empire Site Check:

0x08BF3CCC

 

0 = Outside of Interior

1 = Inside Interior

 

Gang Attack Trigger:

0x08BF42B8

 

7 = Trigger empire attacks

 

Reload Empire Site:

0x08BF3C74

 

0 = Reload Empire Site

 

Location ID:

0x08BF3DFC

 

ID List:

4 = Little Havana Empire Site

 

Here are example cheats:

 

#cheat Force the Player to leave Empire Site Interiorssetchar(0x08BF3CCC, 0);off()#cheat Trigger Empire Attackssetchar(0x08BF42B8, 7);#cheat Reload Empire Sitesetchar(0x08BF3C74, 0);#cheat Turn any Empire Site into the Little Havana Empire Sitesetchar(0x08BF3DFC, 4);

 

 

Mission Interior Location Modifiers:

 

Location ID:

0x08BF5534

 

ID List:

2 = Ship (Viceport)

 

Here are example cheats:

 

#cheat Turn any Mission Interior into the Shipsetchar(0x08BF5534, 2);

 

Link to comment
Share on other sites

 

Example Cheat: Walton Warfare

 

user posted image

 

I always enjoyed to jump on the back of a Bobcat or something similar and shoot on everything that gets in the way.

 

Well, since there aren't many Bobcats in VCS I've created a little mission script that gives you instant access to some driveby fun from the back of a Walton truck:

 

#cheat Walton Warfare// Made by Upaluppastatic begin;if (! begin) { moveto(89.86, 273.48, 21.88); object(0x1CA4, 0, 0, 157); // A wall to stop one of the PIG's from entering the Walton. move(2.46, -0.95, 0.00); object(0x1CA4, 0, 0, 247); pickup = 0x08C6A330; // Spawns a weapon pickup to the player. setfloat(pickup, 89.81, 279.31, 21.78); setint(pickup + 0x2C, 0xFF); setshort(pickup + 0x34, 0x0160); setchar(pickup + 0x38, 0x03); setfloat(pplayer + 0x30, 89.81, 279.31, 21.78); // Teleport the player to the starting point of the mission when the cheat is activated for the first time. setshort(0x08E90DD8, 1, 'G', 'e', 't',  ' ', 'o', 'n', ' ', 't', 'h', 'e', ' ', 'b', 'a', 'c', 'k', ' ', 'o', 'f', ' ', 't', 'h', 'e', ' ', 't', 'r', 'u', 'c', 'k', ' ', '!', 0); begin = 1; }setint(0x08E81D40, 217); // Turns the Caddy at Leaf Links into a Walton for use in the mission.setchar(0x08BB329C, 0x00);static timer;if (timer % 150 == 0) // Timer to give the peds some time to spawn before the mission starts. { static driver; if (! driver)   {   for (i = 0; 0x098B4A40 + i <= 0x098ECF90; i += 0x0D10) // This loop searches through the ped pointers...     {     id = getshort(0x098B4A40 + i + 0x56);     if (id == 99) // ...until it finds the peds with the id 99 (PIG's).       {       setchar(0x098B4A40 + i + 0x0894, 0x17); // Orders the PIG's to drive the Walton.       setint(0x098B4A40 + i + 0x0890, pplayer);       driver = 1; // To tell the game, that the PIG is driving the Walton and the mission is ready to begin.       }     }   } }timer++;#offtimer = driver = id = 0; // Removes all variables created in this cheat when you turn it off.setint(0x08E81D40, 184); // Turns the Walton back into a Caddy.

 

Nothing big, but I think I'll make some more out of this idea in the near future !

A race, maybe ? :?:

 

I really need to find out how to control the vehicle ai, to make things like vehicles chasing you possible...

 

By the way, what do you guys think of my new programming style ?

I think it makes it easier to read and understand my cheats from now on. wink.gif

Link to comment
Share on other sites

 

Dev Downloads: Cheatpad.ide

 

Here's what DDM has to say about his new app:

 

It's going to be basically like notepad, but with a few extra features. These may include:

Syntax highlighting (highlights variables, characters, etc. in special colors)

Automatic indentation (if you open an if statement, it will automatically drop to the next line with one extra indentation)

A text formatter (will correct any formatting mistakes you've made)

A few automatic code generators (spawns, etc.)

 

Here's the download link:

http://mhty.webs.com/vcs/Cheat_Pad_IDE.jar

 

Enjoy!

 

 

Dev Downloads: VCS Extended Hex Editor

 

This is a bare-bones hex editor that allows you to:

-Search the memory in-game

-Toggle freezing the game on/off while the menu is up

-Save addresses you have visited before

-Follow pointers with the click of a button.

-Edit the values of different hexes

-View the live values of each address in char, int, float, and byte data types

 

all while playing VCS!

 

To bring up the menu, hit L + Left/Right.

Extended controls will show up on screen.

 

Download:

http://rapidshare.com/files/219684707/VCSUHE.zip

 

 

 

 

Dev Downloads: VCS Address Collection

 

If you`re looking for a handy collection of useful pointers, memory adresses and example cheats I have just what you need !

 

Enjoy my personal VCS Hacking Docs:

http://rapidshare.com/files/219685253/GTA_...acking_Docs.zip

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.