FANDOM


Player and PedestriansEdit

Because of the fact that Vic is a pedestrian, pedestrians and Vic have everything in common around the pplayer area, only his data there is edited through the controls. There are a few things (such as what pedestrian Vic is aiming at and more) that are discussed on this page that dwell outside of the pplayer area.


pplayerEdit

-pplayer is a variable declared by the Cheat Device that holds the address to Vic's representing pedestrian object in memory. Likewise, each pedestrian has its own object in memory that represents them - their weapons, health, location, decisions, speed, etc. - everything that makes the pedestrian, well, a pedestrian.


ppedEdit

-pped is a general term that was made to represent pedestrians in memory. pped is defined by the cheat writer, and if you look at pretty much any cheat that involves a pedestrian being manipulated, pped is used. pped usually holds the memory address of a pedestrian, and can then be used just like pplayer would.



For example, if you wanted to get the pedestrian that Vic is aiming at you would do...

pped = getint(0x08BA1D70);

Which could then be used to manipulate the pedestrian.



These two terms will be used to represent Vic (the player) and any pedestrian that might be being manipulated.


The BreakdownEdit

RotationEdit

pplayer or pped + 0x0 float

First off, right at pplayer or pped are 3 floats. These represent the right hand vectors of the X, Y, and Z rotations of our pedestrian.


pplayer or pped + 0x10 float

Next are another 3 floats that represent the three forward vectors of X, Y, and Z rotation.


pplayer or pped + 0x20 float

And last but not least are another 3 floats that represent up vectors of X, Y, and Z rotation.



More will be added here later on...


LocationEdit

pplayer or pped + 0x30 float

+0x30 is by far one of the most commonly used addresses in all cheats. The reason being because it represents the X, Y, and Z location of your pedestrian.



Example:

#cheat Set player coordinates to 0.0, 0.0, 0.0
setfloat(pplayer + 0x30, 0.0, 0.0, 0.0);

This would set the player's coordinates in game to 0, 0, 0 (X, Y, Z), moving Vic somewhere under Leaf Links. This would not work if the player was in a car.


TouchedEdit

pplayer or pped + 0x4C char/boolean

Changes to 0x2 when ped is touching something, 0x0 otherwise.


Object IDEdit

pplayer or pped + 0x56 short

Most objects in VCS have an ID which is a short at 0x56. This tells the game which model and collision model will be used as well as what voices to use and more. We can use this to identify if the given object is a pedestrian. It is highly reccomended that you do not mess with this, otherwise the game might crash! You can check it, but do not modify it!


Rotational SpeedEdit

pplayer or pped + 0x70 float

Rotational speed is basically a measure of how fast the pedestrian or other object is spinning. Just like the rotation and location addresses, these go in the order of X, Y, and Z. To rotate a pedestrian in the cardinal directions, you would edit +0x78, the Z axis, because the Z axis manipulates the X and Y axi.



Example:

  1. cheat Slowly turn Vic in the cardinal directions

setfloat(pplayer + 0x78, 0.1);

This would, as the cheat's name says, slowly make Vic turn around in place.


Touch LocationEdit

pplayer or pped + 0x80 float

Seems to display where ped is being touched relative to his position. Has X, Y, and Z but you rarely will see the Z have a non-zero value.


Object UnderEdit

pplayer or pped + 0xF0 int pointer

This pointer points to the object being stood on by the pedestrian. This could be a car, a road, a building, or anything.



Example:

  1. cheat Remove what Vic is standing on

setfloat(getint(pplayer + 0xF0) + 0x38, -10000.0);

off();

This would instantly remove the object that Vic is standing on by:

getint(pplayer + 0xF0)

getting the address of what the player is standing on...

+ 0x38

adding 0x38 to it to access its Z location...

, -10000.0

and setting this value to -10,000.0, leaving the object 10,000 meters below Vice City!


Last Object TouchedEdit

pplayer or pped + 0xF4 int pointer

Points to the last object that ped touched.


Terrain UnderEdit

pplayer or pped + 0x137 char

Changes depending on what terrain you are standing on.

Terrain

Value

Default (Unimportant?)
0x00
Road
0x01
Grass 0x02
Sidewalk
0x05

Example:

  1. cheat Keep off the Grass!


//Kills you if you step on grass!


if(getchar(pplayer + 0x137) == 0x02) //If on grass

    setfloat(pplayer + 0x4E4, 0); //Die!


Directional SpeedEdit

pplayer or pped + 0x140 float

Directional speed is how fast the pedestrian or other object is going on the X, Y, and Z axi. As with the others, this goes in X, Y, Z order. Note that negative and positive values effect which direction you will be going in.



Example:

  1. cheat Make Vic fly straight up


setshort(pplayer + 0x1C8, 0x1020);//Get player off ground (see below)


setfloat(pplayer + 0x148, -50.0);


off();

Would cause Vic to fly straight up into the air until his Z speed caught back up with him, causing him to fall back to earth!


Object TouchedEdit

pplayer or pped + 0x150 int pointer

This pointer points to the object that the pedestrian is touching, whether it be a car, another pedestrian, or an object.



Example:

  1. cheat Remove whatever Vic touches


ptouch = getint(pplayer + 0x150);


if(ptouch){


    setfloat(ptouch + 0x38, -10000.0);


    off();


}

Would cause the first object that Vic touches to be placed 10,000 meters below Vice City.




Pedestrian on Ground or NotEdit

pplayer or pped + 0x190 char/boolean

Non-zero if the ped is on land, 0 otherwise.




Dropping RateEdit

pplayer or pped + 0x1C4 float

Represents the acceleration of a ped falling down to earth. Begins at 0 until it slowly reaches 11.0, which it then stays constant until the ped lands.


Mounted to GroundEdit

pplayer or pped + 0x1C8 short

If set to 0x1020 the ped is unmounted from the ground, meaning you can use directional speed to move it away from the ground. If you attempt to use directional speed to move it without this short being set correctly it will not leave the ground.




Ped on Ground/In Air/LandingEdit

pplayer or pped + 0x1C9 char

Divide by 0x10 and the value below will show if the ped is on the ground, in the air, or landing/rolling after falling.


Represents...

Value

On the Ground

0x04

In the Air

0x05
Rolling/Landing 0x06



Ped Falling in WaterEdit

pplayer or pped + 0x1D8 char

Divide by 0x10 and the value below will show whether or not the ped is falling into water.


Represents...

Value

Not falling in water

0x00

Falling in water

0x08



Ped in Water or NotEdit

pplayer or pped + 0x1DB char

Divide by 0x10 and value below will show whether or not the ped is in water.


Represents...

Value

Out of Water

0x00

In Water (Swimming)

0x08



Distance from Car Being EnteredEdit

pplayer or pped + 0x420 float

Gives the distance between the ped and the car it is entering in X, Y, Z order.




Location of Car Being EnteredEdit

pplayer or pped + 0x440 float

Gives the X, Y, Z coordinates of the car being entered.


FocusEdit

pplayer or pped + 0x450 int pointer

This is a pointer to what I like to call the ped's current "focus." This can be the car the ped is getting into, another ped the ped is aiming at, and many other things.


Occupied VehicleEdit

pplayer or pped + 0x480 int pointer

This is a pointer the the vehicle the ped is in, and can be used just like pcar.


Vehicle Being EnteredEdit

pplayer or pped + 0x484 int pointer

This pointer shows the vehicle that the ped is entering. This must be used in order to make the pedestrian get into a vehicle using the AI commands later in this section.


Health and ArmorEdit

pplayer or pped + 0x4E4 float

These two floats represent the amount of health and armor the pedestrian has, in that order. If the pedestrian's health reaches 0, regardless of the amount of armor it has, it will die.



Examples:

  1. cheat Kill Vic!


setfloat(pplayer + 0x4E4, 0.0);



  1. cheat Full Armor

setfloat(pplayer + 0x4E8, 100.0);


Weapon Slots and IDsEdit

pplayer or pped + slot char

Refer to table below for slot offsets and weapon IDs. This is the char that represents which weapon is in that slot.



pplayer or pped + slot + 0x04 char

Set to the following values depending on what the weapon is doing.


Represents...

Value

Ready to fire

0x00

Chambering

0x01
Reloading 0x02


pplayer or pped + slot + 0x08 int

This is the amount of ammo in the ped's current clip.



pplayer or pped + slot + 0x0C int

This is the amount of ammo the ped has for the given weapon.



Each slot is 0x1C bytes in length.



Example:

  1. cheat 1,000 Grenades


setchar(pplayer + 0x5B0, 0x0C);


//0x5b0 for the thrown slot ID,


//0x0c for the grenades ID


setint(pplayer + 0x5B0 + 0x0C, 1000);


//0x5B0 for the thrown slot ID,


//+0x0C for the ammo offset

//1000 to give the ped 1,000 grenades


Slot/Weapon

Offset /Value

Slot 1 - FistEdit

+ 0x578Edit

Fist
0x00
Brass Knuckles
0x01

Slot 2 - MeleeEdit

+ 0x594Edit

Butterfly Knife

0x02

Golf Club

0x03

Police Batton

0x04
Knife 0x05
Baseball Bat 0x06
Hand Axe 0x07
Cane 0x08
Machete 0x09
Katana 0x0A
Chainsaw 0x0B

Slot 3 - ThrownEdit

+ 0x5B0Edit

Grenades 0x0C
Remote Grenades 0x0D
Landmines 0x0E
Empty Slot 0x0F
Teargas 0x10
Molotov Cocktails 0x11
Rocket 0x12

Slot 4 - PistolEdit

+ 0x5CCEdit

Pistol 0x13
Equalizer 0x14

Slot 5 - ShotgunEdit

+ 0x5E8 Edit

Shotgun 0x15
Spaz 12 0x16
Stubby Shotgun 0x17

Slot 6 - SMGEdit

+ 0x604Edit

Scorpion 0x18
Micro SMG 0x19
Silent Micro SMG 0x1A
SMG 0x1B

Slot 7 - AssaultEdit

+ 0x620Edit

M4 Assault Rifle 0x1C
AK47 0x1D

Slot 8 - HeavyEdit

+ 0x63CEdit

Rocket Launcher 0x20
Flamethrower 0x21
M60 0x22
Minigun 0x23

Slot 9 - SniperEdit

+ 0x658Edit

Sniper Rifle 0x1E
Laser Sniper Rifle 0x1F

Slot 10 - ToolsEdit

+ 0x674Edit

Detonator 0x24
Heli Cannon 0x25
Camera 0x26
Binoculars 0x27



Closest Ped/Ped to be Aimed AtEdit

pplayer or pped + 0x6F8 int pointer

Pointer to the ped that is closest to the player and the first ped that will be aimed at when the player hits R.


Aiming InformationEdit

pplayer or pped + 0x81C int pointer

This is a pointer to a) the ped the ped is aiming at or b) where Vic is aiming if he is in manual aim mode. Points to 0x09914520 if in manual aim.



paim = getint(pplayer + 0x81C);

paim + 0x30 float

This is the X, Y, and Z information as to where Vic is aiming if he is in manual aim mode, otherwise it is the location of the ped he is aiming at. This could be used to make a cheat that locks onto things.


Action TargetEdit

pplayer or pped + 0x890 int pointer

This is a pointer to what I like to call the "Action Target," which is basically the pedestrian's focus. It points to another pedestrian to be used with the AI/Commands in the next section. If you set this to pplayer, then whatever the ped is doing will be focused towards Vic.


AI CommandsEdit

pplayer or pped + 0x894 char

This address is still very untested - there are many different things you can do with it, including forcing people in and out of your car, causing people to instantly drop dead, causing people to attack or follow you, etc. The limits are endless, as long as you know what you are doing. Most of these do work with Vic, but not all.

Known values and their effects:Edit

Value

Effect

0x04

Enables AI Walking, causing Vic to walk around Leaf Links.

0x08
Causes ped to attack its Action Target. See above.
0x0A Runs away from Action Target. See above.
0x0B Runs away from Action Target. See above.
0x0C
Follows Action Target, running after them. See above.
0x0D Follows Action Target, walking after them. See above.
0x0E Walks to Action Target, then walks away as if nothing happened. See above.
0x0F Runs to Action Target and continues running into it, as if trying to take its place. See above.
0x10 Exits the current vehicle. Does nothing if not in one.
0x11 Gets into the closest car as a passenger. Does nothing if already in one.
0x12 Gets into driver seat of nearest car. Does nothing if already in one.
0x16
Attacks the current vehicle.
0x17
Enables AI Driving, causing Vic to drive around Leaf Links.
0x18
Enables AI Walking, causing Vic to walk around Leaf Links.
0x19
Enables AI Sprinting, causing Vic to sprint around Leaf Links.
0x20
Call for Taxi.
0x21
Gets into the closest car as a passenger.
0x26 Throws the ped out of the occupied car.
0x31

Enables AI Running, causing Vic to run around Leaf Links.


Animations and Other CommandsEdit

pplayer or pped + 0x8B4 char

This controls the animation of the pedestrian, making them do different things like drop dead, wave, fall over, etc.


Value

Effect

0x05 Throws hands up.
0x10 Using weapon.
0x11

In melee combat.

0x16 Aiming at another ped.
0x18

Running to vehicle.

0x19

Walking to vehicle.

0x24

Phone to head animation

0x2B Jumping
0x2C
Warp away and show up in the middle of Leaf Links
0x2D
Fall down and get up animation
0x2E
Fall down and get up animation 2 (looks exactly the same)
0x32
Lock on mode (camera acts weird)
0x33 In passenger seat of vehicle.
0x37
Warp back on the driverseat of the last entered vehicle (set to this if in a car)
0x39
Get wasted (without blood)
0x3A
Get wasted 2 (with blood)
0x3D Entering Car
0x3F Exiting car.
0x40
Hands up/Back up animation (random, sometimes hands up, sometimes back up)
0x41
Get busted
0x44

Get drown in water


Movement InformationEdit

pplayer or pped + 0x8C4 char

Displays the following values depending on what the ped is doing.


Represents...

Value

Getting out of Car 0x00

Standing

0x01

Walking

0x02
Running 0x04
Sprinting 0x05



Location of TargetEdit

pplayer or pped + 0xC80 float

Displays the location in X, Y, Z order of the ped's target.


Player-Only AddressesEdit

Player's TargetEdit

0x08BA1D70 int pointer This is a pointer to which pedestrian the player is targeting.

From VCS Cracked Open

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.