Quantcast

Jump to content

» «
Photo

[REL|VC|V5] PEDS - Just A Short (Source included!)

14 replies to this topic
ceedj
  • ceedj

    PEDS Creator

  • Feroci
  • Joined: 21 May 2005
  • None

#1

Posted 19 June 2005 - 12:34 AM

So this came out of an idea that digita1mind had, about creating a car chase type cutscene. Well, it's not exactly a cutscene, but it is a car chase! (and four minutes of wanking on the guitar is a good excuse too lol.gif )

New PEDS Video!
user posted image


(need Windows Media 7 or better, 15.5 MB)

The keypresses I assigned are listed in the code. Be careful not to press an key combo for an animation for a Ped if you don't have one created. Also, don't use the handbrake (target) and forward if in a car. Of course, you can change these keypresses to your own set up if you like. The car chase code is not included; if anyone wants it, I'll post it here.

CODE


;Create The Following Threads

004F: create_thread ££FreezeOn
004F: create_thread ££SetWeather
004F: create_thread ££Create1PedWait
004F: create_thread ££Grp1Anim

;Put this JUST ABOVE Mission 0 (near the end of MAIN)

:FreezeOn
0001: wait 250 ms
00D6: if 1
00E1: key_pressed 0 7; Prev Weapon
00E1: key_pressed 0 8; Forward
004D: jump_if_false ££FreezeOn
00BF: 1@ = current_time_hours, 2@ = current_time_minutes

:FreezeOff
0001: wait 900 ms
00C0: set_current_time 1@ 2@
01B5: force_weather $WeatherSelect
00D6: if 1
00E1: key_pressed 0 7; Prev Weapon
00E1: key_pressed 0 9; Backward
004D: jump_if_false ££FreezeOff
01B6: set_weather $WeatherSelect
0002: jump ££FreezeOn

:SetWeather
0001: wait 0 ms
0004: $WeatherSelect = 0

:SetWeatherWait
0001: wait 0 ms
00D6: if 1
00E1: key_pressed 0 7; Prev Weapon
00E1: key_pressed 0 13; Camera
004D: jump_if_false ££SetWeatherWait
0001: wsit 250 ms
0008: $WeatherSelect += 1
00D6: if 0
0038: $WeatherSelect == 6
004D: jump_if_false ££ChooseWeather
0038: $WeatherSelect == 0

:ChooseWeather
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££ChooseWeather
0169: set_fade_color 5 5 5
016A: fade 0 () 500 ms
0001: wait 1500 ms
01B6: set_weather $WeatherSelect
016A: fade 1 (back) 500 ms
0002: jump ££SetWeatherWait

:Create1PedWait
0001: wait 0 ms
00D6: if 1
00E1: key_pressed 0 7; Prev Weapon
00E1: key_pressed 0 19; Look Behind
004D: jump_if_false ££Delete1PedWait      
0050: gosub ££Old1PedCleanup
0050: gosub ££Pick1Ped

:Delete1PedWait
00D6: if 1
00E1: key_pressed 0 5; Next Weapon
00E1: key_pressed 0 19; Look Behind
004D: jump_if_false ££Create2PedsWait
0050: gosub ££Old1PedCleanup

:Create2PedsWait
0001: wait 0 ms
00D6: if 1
00E1: key_pressed 0 7; Prev Weapon
00E1: key_pressed 0 15; Enter Vehicle
004D: jump_if_false ££Delete2PedsWait
0050: gosub ££Old2PedsCleanup
0050: gosub ££Pick2Peds

:Delete2PedsWait
00D6: if 1
00E1: key_pressed 0 5; Next Weapon
00E1: key_pressed 0 15; Enter Vehicle
004D: jump_if_false ££CreateCarWait
0050: gosub ££Old2PedsCleanup

:CreateCarWait
0001: wait 0 ms
00D6: if 1
00E1: key_pressed 0 7; Prev Weapon
00E1: key_pressed 0 18; Crouch
004D: jump_if_false ££DeleteCarWait
0050: gosub ££OldCarCleanup
0050: gosub ££PickCar

:DeleteCarWait
00D6: if 1
00E1: key_pressed 0 5; Next Weapon
00E1: key_pressed 0 18; Crouch
004D: jump_if_false ££CreateCar2Wait
0050: gosub ££OldCarCleanup

:CreateCar2Wait
0001: wait 0 ms
00D6: if 1
00E1: key_pressed 0 7; Prev Weapon
00E1: key_pressed 0 17; Fire
004D: jump_if_false ££DeleteCar2Wait
0050: gosub ££OldCar2Cleanup
0050: gosub ££PickCar2

:DeleteCar2Wait
00D6: if 1
00E1: key_pressed 0 5; Next Weapon
00E1: key_pressed 0 17; Fire
004D: jump_if_false ££KillAllWait
0050: gosub ££OldCar2Cleanup

:KillAllWait
0001: wait 0 ms
00D6: if 1
00E1: key_pressed 0 4; Action
00E1: key_pressed 0 5; Next Weapon
004D: jump_if_false ££Create1PedWait
0050: gosub ££KillAllCleanup
0002: jump ££Create1PedWait

:Old1PedCleanup
034F: destroy_actor_with_fade $Grp1Ped1
0051: return  

:Old2PedsCleanup
034F: destroy_actor_with_fade $Grp2Ped1
034F: destroy_actor_with_fade $Grp2Ped2
0051: return

:OldCarCleanup
00A6: destroy_car 4@
0051: return

:OldCar2Cleanup
00A6: destroy_car 5@
0051: return

:KillAllCleanup
034F: destroy_actor_with_fade $Grp1Ped1
034F: destroy_actor_with_fade $Grp2Ped1
034F: destroy_actor_with_fade $Grp2Ped2
00A6: destroy_car 4@
00A6: destroy_car 5@
0051: return

:Pick1Ped
0001: wait 250 ms
0050: gosub ££ThePeds
0050: gosub ££CreateCoordPed
009A: $Grp1Ped1 = create_actor 4 $PedSelect at $Fish $Sock $CatFood
020F: set_actor $Grp1Ped1 look_at_player $PLAYER_CHAR
0249: release_model $PedSelect
0051: return  

:Pick2Peds
0001: wait 250 ms
0050: gosub ££ThePeds
0050: gosub ££CreateCoordPed
009A: $Grp2Ped1 = create_actor 4 $PedSelect at $Fish $Sock $CatFood
020F: set_actor $Grp2Ped1 look_at_player $PLAYER_CHAR
0249: release_model $PedSelect
0050: gosub ££ThePeds
0050: gosub ££CreateCoordPed
009A: $Grp2Ped2 = create_actor 4 $PedSelect at $Fish $Sock $CatFood
020F: set_actor $Grp2Ped2 look_at_player $PLAYER_CHAR
0249: release_model $PedSelect
0051: return

:PickCar
0050: gosub ££TheCars
0050: gosub ££CreateCoordCar
00A5:  4@ = create_car $CarSelect at  1@  2@  3@
0175: set_car  4@ z_angle_to 315
0229: set_car 4@ color_to 6@ 7@
0249: release_model $CarSelect
01C3: remove_references_to_car  4@;; Like turning a car into any random car
0001: wait  400 ms
0051: return

:PickCar2
0050: gosub ££TheCars
0050: gosub ££CreateCoordCar
00A5:  5@ = create_car $CarSelect at  1@  2@  3@
0175: set_car  5@ z_angle_to 315
0229: set_car 5@ color_to 6@ 7@
0249: release_model $CarSelect
01C3: remove_references_to_car  5@;; Like turning a car into any random car
02AC: set_car 5@ immunities 1 1 1 1 1
0001: wait  400 ms
0051: return

:ThePeds
0004: $PedSelect = 1
0002: jump ££ShowPed

:PedSelectForward
0001: wait 0 ms
00D6: if 0
00E1: key_pressed 0 5; Next Weapon
004D: jump_if_false ££PedSelectBack
0002: jump ££NSevenCheck

:PedSelectBack
0001: wait 0 ms
00D6: if 0
00E1: key_pressed 0 7; Prev Weapon
004D: jump_if_false ££PedSelect
0002: jump ££PSevenCheck

:PedSelect
0001: wait 0 ms
00D6: if 0
00E1: key_pressed 0 4; Action
004D: jump_if_false ££PedSelectForward
009b: destroy_actor $Tmp1Ped
0051: return

:NSevenCheck
00D6: if 0
0038: $PedSelect == 6
004D: jump_if_false ££NPed
0008: $PedSelect += 2

:NPed
0008: $PedSelect += 1
00D6: if 0
0038: $PedSelect == 107
004D: jump_if_false ££ShowPed
0004: $PedSelect = 1
0002: jump ££ShowPed

:PSevenCheck
00D6: if 0
0038: $PedSelect == 9
004D: jump_if_false ££PPed
000C: $PedSelect -= 2

:PPed
000C: $PedSelect -= 1
00D6: if 0
0038: $PedSelect == 0
004D: jump_if_false ££ShowPed
0004: $PedSelect = 106
0002: jump ££ShowPed

:ShowPed
0001: wait 250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££ShowPed
04C4: create_coordinate $Fish $Sock $CatFood from_actor $PLAYER_ACTOR offset 0.0 2.0 0.0
0247: request_model $PedSelect
038B: load_requested_models

:ShowPed2
00D6: if 0
0248: model  $PedSelect available
004D: jump_if_false ££ShowPed2
009b: destroy_actor $Tmp1Ped
009A: $Tmp1Ped = create_actor 4 $PedSelect at $Fish $Sock $CatFood
020F: set_actor $Tmp1Ped look_at_player $PLAYER_CHAR
0001: wait 250 ms
0249: release_model $PedSelect
0002: jump ££PedSelectForward

:CreateCoordPed
0001: wait 250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££CreateCoordPed
04C4: create_coordinate $Fish $Sock $CatFood from_actor $PLAYER_ACTOR offset 0.0 2.0 0.0
0247: request_model $PedSelect
038B: load_requested_models

:CreatePed
00D6: if 0
0248: model  $PedSelect available
004D: jump_if_false ££CreatePed
0051: return

:TheCars
0004: $CarSelect = 130
0002: jump ££ShakeItUp

:CarSelectForward
0001: wait 0 ms
00D6: if 0
00E1: key_pressed 0 5; Next Weapon
004D: jump_if_false ££CarSelectBack
0002: jump ££N180Check

:CarSelectBack
0001: wait 0 ms
00D6: if 0
00E1: key_pressed 0 7; Prev Weapon
004D: jump_if_false ££CarSelect
0002: jump ££P180Check

:CarSelect
0001: wait 0 ms
00D6: if 0
00E1: key_pressed 0 4; Action
004D: jump_if_false ££CarSelectForward
03F3: get_car 9@ color 6@ 7@
00A6: destroy_car 9@
0051: return

:N180Check
00D6: if 0
0038: $CarSelect == 179
004D: jump_if_false ££NCar
0008: $CarSelect += 5

:NCar
0008: $CarSelect += 1
00D6: if 0
0038: $CarSelect == 237
004D: jump_if_false ££ShakeItUp
0004: $CarSelect = 130
0002: jump ££ShakeItUp

:P180Check
00D6: if 0
0038: $CarSelect == 185
004D: jump_if_false ££PCar
000C: $CarSelect -= 5

:PCar
000C: $CarSelect -= 1
00D6: if 0
0038: $CarSelect == 129
004D: jump_if_false ££ShakeItUp
0004: $CarSelect = 236
0002: jump ££ShakeItUp

:ShakeItUp
0001: wait  250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££ShakeItUp
00D6: if  0
80E0:   NOT   player $PLAYER_CHAR driving
004D: jump_if_false ££ShakeItUp
0172:  0@ = actor $PLAYER_ACTOR z_angle
04C4: create_coordinate  1@  2@  3@ from_actor $PLAYER_ACTOR offset  0.0  4.0  0.0
0247: request_model $CarSelect
038B: load_requested_models

:JustWhatINeeded
0001: wait  250 ms
00D6: if  0
0248:   model $CarSelect available
004D: jump_if_false ££JustWhatINeeded
00A6: destroy_car 9@
00A5:  9@ = create_car $CarSelect at  1@  2@  3@
0175: set_car  9@ z_angle_to 315
0249: release_model $CarSelect
01C3: remove_references_to_car  9@;; Like turning a car into any random car
0001: wait  400 ms
0002: jump ££CarSelectForward

:CreateCoordCar
0001: wait  250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false ££CreateCoordCar              
00D6: if  0
80E0:   NOT   player $PLAYER_CHAR driving
004D: jump_if_false ££CreateCoordCar
0172:  0@ = actor $PLAYER_ACTOR z_angle
04C4: create_coordinate  1@  2@  3@ from_actor $PLAYER_ACTOR offset  0.0  4.0  0.0
0247: request_model $CarSelect
038B: load_requested_models

:CreateCar
00D6: if 0
0248: model  $CarSelectavailable
004D: jump_if_false ££CreateCar
0051: return

:Grp1Anim
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 6; Aim
004D: jump_if_false ££Grp1Anim2
0372: set_actor_wait_state $Grp2Ped1 19 2000 ms; Hand Guestures 1
011C: actor $Grp2Ped1 clear_objective; resets actor for new task

:Grp1Anim2
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 17; Fire
004D: jump_if_false ££Grp1Anim3
0372: set_actor_wait_state $Grp2Ped1 31 2000 ms; Hand Guestures 2
011C: actor $Grp2Ped1 clear_objective; resets actor for new task

:Grp1Anim3
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 15; Enter/Exit
004D: jump_if_false ££Grp1Anim4
0372: set_actor_wait_state $Grp2Ped2 19 2000 ms; Hand Guestures 1
011C: actor $Grp2Ped2 clear_objective; resets actor for new task

:Grp1Anim4
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 18; Crouch
004D: jump_if_false ££Grp1Anim5
0372: set_actor_wait_state $Grp2Ped2 31 2000 ms; Hand Guestures 2
011C: actor $Grp2Ped2 clear_objective; resets actor for new task

:Grp1Anim5
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 14; Jump
004D: jump_if_false ££Grp1Anim6
0247: request_model #CELLPHONE

:CellWait
0001: wait 0 ms
00D6: if 0
0248: model  #CELLPHONE available
004D: jump_if_false ££CellWait
052B: actor $Grp2Ped2  hold_cellphone 1
0001: wait 3000 ms
052B: actor $Grp2Ped2 hold_cellphone 0
0249: release_model #CELLPHONE
011C: actor $Grp2Ped2 clear_objective

:Grp1Anim6
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 8; Forward
004D: jump_if_false ££Grp1Anim7
009C: set_actor $Grp2Ped2 wander_path_to -1; away from player
0319: set_actor $Grp2Ped2 wander_state_to  1; run

:Grp1Anim7
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 9; Backwards
004D: jump_if_false ££Grp1Anim8
0372: set_actor_wait_state $Grp2Ped1 16 2000 ms; Hail Taxi
011C: actor $Grp2Ped1 clear_objective; resets actor for new task                            

:Grp1Anim8
0001: wait 50 ms
00D6: if 1
00E1: key_pressed 0 16; Sprint
00E1: key_pressed 0 19; LookBack
004D: jump_if_false ££Grp1Anim
04EB: actor $Grp2Ped2 crouch 1 2000 ms; crouch
011C: actor $Grp2Ped2 clear_objective; resets actor for new task                            
0002: jump ££Grp1Anim


As always, comments are welcome!

rah.gif

GTA3Freak-2001
  • GTA3Freak-2001

    Run out of Cake.

  • Members
  • Joined: 25 Nov 2001

#2

Posted 19 June 2005 - 01:37 AM

Wow that was actually pretty awesome, its a strong contender for upstaging Red Vs Blue or even Strangerhood lol.


Marklund
  • Marklund

    GTAStunter

  • Members
  • Joined: 28 Jan 2005

#3

Posted 19 June 2005 - 01:51 AM

Holy sh*t that's awsome.
Sweet job dude.

Nipa
  • Nipa

    Hi.

  • Members
  • Joined: 24 Apr 2005

#4

Posted 19 June 2005 - 02:53 AM

OMG it's soo damn funny! I might film a fan-made carchase... that goes through vice city! I might have two cars following the player but I don't really know I could code it... But there was only one stunt by the blue car + red car.. but the blue car's stunt got it's self pwned! Let's see...

Car Chase - Perfect
Music - Perfect
Extras(stunts) - 50%
Overall - 97%


Well, I mightttttttt get my copy of Vice City.. and start filming like hell! Then I'll need to make some music..... How long did it take for you to make this?

ceedj
  • ceedj

    PEDS Creator

  • Feroci
  • Joined: 21 May 2005
  • None

#5

Posted 19 June 2005 - 04:08 AM Edited by ceedj, 19 June 2005 - 04:18 AM.

Thanks for the comments guys!

@Nipa: I only planned three "stunts" (the car spin, red jump, blue jump), so to have gotten ANY rating on that label is an accomplishment. smile.gif

As for how long it took, about 5 days, 5-8 hours each day. Since I'm feeling especially long winded tonight, here's my workflow for the project, shamelessly cut an pasted from another site I frequent.

QUOTE
I used a modified mission script (main.scm) to control the peds and cars. In the chase itself, I created a ped inside a car, and set the follow values to max, so where ever I drove, the ped would follow. I had NO idea of the problems I would run into in shooting this.

For starters, the following ped car has a tendancy to back up first, before taking off at full speed. This makes the beginning of a shot look forced, so I have to start off WAY back to get the shot I wanted.

Another issue was the in game text. Whenever you cross a certain point on the map, text shows up on screen of where you are, then fades after a short time. It's not croppable, so I had to break the chase into chunks in order to avoid the text on the screen.

The length of the chase was a conceit, since I was aiming for fans of the game, who would appreciate the detail of running a course through the city. I paid real close attention to consistancy in the shots, making sure the cars were resonably where they should have been as they travled. The shots themselves are a product of the in game camera, which seems to change views (in that particular mode) based on map movement, and where the car is in relation to the camera. The cars are ALWAYS traveling in the right direction (if you steer properly); it's the camera the moves to a reverse angle or top down, then back to a front view, etc. Can't control it.

The other issue with that is the driving itself. All of the blue car driving (with the red car following) is me driving in this crazy view mode. I'm glad some of the frantic nature of the driving shows up in the video, but man was it HARD.

I record with FRAPS in little chunks. I wound up with about 4 or 5 shots per leg of the chase, and I think there were seven or eight legs. I've probably dumped hundreds of shots because of a bad angle, car doesn't follow, etc. To sum it up, shooting the basics of the chase took a LONG time (about three 8 hour sessions).

I then string together a rough cut of the chase in Sony Vegas, for dumping into SONAR for the music. Again, this was a bit of a conceit, since the length of the chase gave me ample time to solo like an idiot for almost two minutes. Smile After the music is done and I'm happy, I export the music track into Vegas to mix with the enviornment sound (cars, street noise) and the voices. THAT gets dumped to a file, which is dropped into another file with the preview titles and such. A lot of work, but I'm happy with the result, and I guarentee that I will NOT be doing anything this complex in the near future. Give me two peds talking, and I'm a happy guy!


Fun Facts:

- The race itself is loosely based on the last race in the Sunshine Autos racing strand, but in reverse.

- The gentleman who plays Burt is my best friend of 20 something years, who only agreed to do the show after I helped him dig 15 two-foot-deep holes in his front yard for fence posts. That was two weeks ago; still no fence. wink.gif

Thanks again for the kind words. Anyone else? colgate.gif

Bernard Jazz
  • Bernard Jazz

    Dud dats not gas, dats a chikn.

  • Members
  • Joined: 14 Apr 2004

#6

Posted 19 June 2005 - 09:00 AM

Funny..
lol.gif

imheretostay
  • imheretostay

    non-existant

  • Members
  • Joined: 04 Oct 2004

#7

Posted 19 June 2005 - 08:00 PM

That was pretty good! Keep making them! 10/10.

ceedj
  • ceedj

    PEDS Creator

  • Feroci
  • Joined: 21 May 2005
  • None

#8

Posted 20 June 2005 - 04:54 PM

Thanks very much guys! inlove.gif

For anyone else who got a "Bandwidth Exceeded" message (or something similar), it has been fixed. I never expected this kind of a response!

rah.gif

pep_gta
  • pep_gta

    Player Hater

  • Members
  • Joined: 05 Jan 2005

#9

Posted 20 June 2005 - 11:57 PM

Already hooked lol and possibilities for this series are endless, great work! cookie.gif

Psy
  • Psy

    All The Rage

  • Members
  • Joined: 25 May 2002

#10

Posted 21 June 2005 - 12:12 AM

Incredible. One of the best and most original mods I think I've ever seen for a GTA game. Nice one dude. wow.gif

RoxRox
  • RoxRox

    Deutscher Schäferhund

  • Members
  • Joined: 01 Jan 2005

#11

Posted 21 June 2005 - 12:13 AM

Is that code to make the other car follow you?

If so, it'd be nice if somebody dropped all that into a main.scm and uploaded it, seeing as i (and probably others) have no clue how to add and compile code into main.scm tounge2.gif

Oh and great movie, very redvsblue-ish, i had an idea similar to this a long time ago, but never persued it.

10/10

ceedj
  • ceedj

    PEDS Creator

  • Feroci
  • Joined: 21 May 2005
  • None

#12

Posted 21 June 2005 - 12:36 AM

QUOTE (RoxRox @ Jun 21 2005, 00:13)
Is that code to make the other car follow you?

If so, it'd be nice if somebody dropped all that into a main.scm and uploaded it, seeing as i (and probably others) have no clue how to add and compile code into main.scm tounge2.gif

Oh and great movie, very redvsblue-ish, i had an idea similar to this a long time ago, but never persued it.

10/10

If someone tells me that I can use Barton's Stripped_Complete for the basis of the scm, then I'd be all too happy to do just that, and add a proper ReadMe as well. The car chase part can easily be added to the script above, so I can do that too.

Thanks again!

happy.gif

JPBBoyce
  • JPBBoyce

    Player Hater

  • Members
  • Joined: 24 Jun 2005

#13

Posted 24 June 2005 - 12:21 AM Edited by JPBBoyce, 27 October 2013 - 12:59 AM.

-


ThaKilla
  • ThaKilla

    I'm not wack, im all wacked-out!

  • Members
  • Joined: 17 Sep 2004

#14

Posted 24 June 2005 - 01:09 AM

WOW!!!!!

That was awsome..

You should register here
http://rockstargames.com/upload/

I'm sure R* cant refuse

But tht was great... I might make my own (est. 10 months)

Nipa
  • Nipa

    Hi.

  • Members
  • Joined: 24 Apr 2005

#15

Posted 24 June 2005 - 09:12 AM Edited by Nipa, 25 June 2005 - 01:47 AM.

When you are finished with the .scm...... well I might work on a mod where you goto the film studio and you can select chase car, your car, actor, and as soon as you have finished picking chase car + actor, it automaticlly puts the actor into the chase car, and the car follows your car until you press Action + Aim and that's when the REAL car chase happens tounge.gif .

Nipa




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users