Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!   (86,200 visits to this link)

    2. News

    1. GTA Online

      1. Find Lobbies & Players
      2. Guides & Strategies
      3. Vehicles
      4. Content Creator
      5. Help & Support
    2. Crews

      1. Events
      2. Recruitment
    1. Grand Theft Auto Series

    2. GTA Next

    3. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    4. GTA IV

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA Mods
    5. GTA Chinatown Wars

    6. GTA Vice City Stories

    7. GTA Liberty City Stories

    8. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    9. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    10. GTA III

      1. Guides & Strategies
      2. Help & Support
      3. GTA Mods
    11. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    12. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    3. Featured Mods

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption 2

    2. Red Dead Redemption

    3. Rockstar Games

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Programming
      5. Movies & TV
      6. Music
      7. Sports
      8. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Forum Support

    2. Site Suggestions

Sign in to follow this  
LikeBAX

GTA VC: The Bonus Missions

Recommended Posts

LikeBAX

bezymyannyjj3.png

 

Hi everyone! Over a year ago I had an idea to continue GTA VC storyline, because it's not ended. After Keep Your Friends Close mission, Tommy receives calls from Kent Paul and Ernest Kelly (then also from Colonel Cortez). Paul tells Tommy that Mercedes became a prostitute and Kelly says that he's recovering.

Also, it's known that in hud.txd you can see an unused icon - Mitch Baker.

So, I started making 3 new missions with cut-scenes, using CLEO. One from Paul, one from Kelly, and one from Baker.

VC coding don't allow .cm missions, so I decided to write them as usual CLEO scripts.

But after some tested parts, I got trouble. First, the cut-scene was OK, and then the ingame scene and the gameplay too.

But after the third test, the game started crashing.

I don't know what to do,

I need help because it's only my 2nd script for Vice City.

The script structure:

1. Cutscene

2. Ingame scene (the game OFTEN crashes)

3. Gameplay - fighting (the game OFTEN crashes)


 

 

{$CLEO .cs}//-------------MAIN---------------0000::BANKJOB_2wait 0if andPlayer.Defined($PLAYER_CHAR)$1140 == 1 // integer valueselse_jump @BANKJOB_202A7: [email protected] = create_icon_marker_and_sphere 8 at -1153.4719 -366.4713 10.9067jump @BANKJOB_91:BANKJOB_91wait 0ifPlayer.Defined($PLAYER_CHAR)jf @BANKJOB_91wait 0if00F5: player $PLAYER_CHAR 0 -1153.4719 -366.4713 10.9067 radius 3.0 3.0 3.0else_jump @BANKJOB_91Player.CanMove($PLAYER_CHAR) = False00BA: text_styled 'GE17' 2000 ms 20164: disable_marker [email protected] @MissionStart:MissionStartfade 0 1000wait 1000058E: set_restart_mission_taxi_destination -1150.6853 -352.1239 10.9551 327.9023C: load_special_actor 1 'CSPLAY'023C: load_special_actor 2 'CSKENT'Camera.SetAtPos(-1148.4121, -382.8817, 10.8377)038B: load_requested_models:KENT1_1673if or823D: not special_actor 1 loaded823D: not special_actor 2 loadedjf @KENT1_1703wait 0jump @KENT1_1673:KENT1_170302E4: load_cutscene_data 'BONS_1A'0244: set_cutscene_pos -1148.4121 -382.8817 10.8377041D: set_camera_near_clip 0.102E5: $125 = create_cutscene_object #SPECIAL0102E6: set_cutscene_anim $125 'CSPLAY'02E5: $142 = create_cutscene_object #SPECIAL0202E6: set_cutscene_anim $142 'CSKENT'0395: clear_area 1 at 495.74 -82.79 range 9.03 1.00055: put_player $PLAYER_CHAR at -1153.8145 -385.0666 10.76330171: set_player $PLAYER_CHAR z_angle_to 211.2fade 1 200003AF: set_streaming 102E7: start_cutscene02E8: $CUT_SCENE_TIME = cutscenetime:KENT1_1853if798 > $CUT_SCENE_TIME // integer valuesjf @KENT1_1888wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_1853:KENT1_188800BC: text_highpriority 'GET1' 10000 ms 1 // Awright mush, I'm gonna save your Vera, mate.:KENT1_1903if3079 > $CUT_SCENE_TIME // integer valuesjf @KENT1_1938wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_1903:KENT1_193800BC: text_highpriority 'GET2' 10000 ms 1 // What the hell are you talking about?:KENT1_1953if4603 > $CUT_SCENE_TIME // integer valuesjf @KENT1_1988wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_1953:KENT1_198800BC: text_highpriority 'GET3' 10000 ms 1 // You know that wanker Diaz, the Bugle Master.:KENT1_2003if6776 > $CUT_SCENE_TIME // integer valuesjf @KENT1_2038wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_2003:KENT1_203800BC: text_highpriority 'GET4' 10000 ms 1 // He's got your boy, Lance. Word is your mate tried to jump him...:KENT1_2053if9460 > $CUT_SCENE_TIME // integer valuesjf @KENT1_2088wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_2053:KENT1_208800BC: text_highpriority 'GET5' 10000 ms 1 // didn't jump high enough if you know what I mean.:KENT1_2103if11736 > $CUT_SCENE_TIME // integer valuesjf @KENT1_2138wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_2103:KENT1_213800BC: text_highpriority 'GET6' 10000 ms 1 // Where did he take him? In plain English?:KENT1_2153if14992 > $CUT_SCENE_TIME // integer valuesjf @KENT1_2188wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_2153:KENT1_218800BC: text_highpriority 'GET7' 10000 ms 1 // Keep your barnet on! They got him across town at the junkyard.:KENT1_2203if20583 > $CUT_SCENE_TIME // integer valuesjf @KENT1_2238wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_2203:KENT1_223800BC: text_highpriority 'GET8' 10000 ms 1 // Bloody hell....you nutter!:KENT1_2253if22880 > $CUT_SCENE_TIME // integer valuesjf @KENT1_2288wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_2253:KENT1_2288wait 0:KENT1_2290if23352 > $CUT_SCENE_TIME // integer valuesjf @KENT1_2325wait 002E8: $CUT_SCENE_TIME = cutscenetimejump @KENT1_2290:KENT1_2325fade 0 2000:KENT1_2334iffadingjf @KENT1_2358wait 0jump @KENT1_2334:KENT1_235802EA: end_cutsceneCamera.SetBehindPlayer0296: unload_special_actor 10296: unload_special_actor 2Camera.SetAtPos(-1151.0321, -368.8126, 10.8665)00BE: text_clear_allfade 0 1000wait 100000A1: put_actor $PLAYER_ACTOR at -1151.2468 -392.3219 10.9455Model.Load(#BMYBB)Model.Load(#BMYCR)Model.Load(#BMYST)Model.Load(#BMYRI)Model.Load(#BMYBU)Model.Load(#BMOST)Model.Load(#BMODK)023C: load_special_actor 1 'IGMERC'038B: load_requested_models:6wait 1000if andModel.available(#BMYBB)Model.available(#BMYCR)Model.available(#BMYST)Model.available(#BMYRI)Model.available(#BMYBU)Model.available(#BMOST)Model.available(#BMODK)023D: special_actor 1 loadedjf @[email protected] = actor.Create(Civfemale, #SPECIAL01, -1148.851, -430.0927, 10.9455)Actor.Health([email protected]) = 10000568: set_actor [email protected] untargetable 10245: set_actor [email protected] walk_style_to 46Actor.Create([email protected],4,#BMYBB,-1143.0916, -454.0968, 10.9455)Actor.Health([email protected]) = 100Actor.Create([email protected],4,#BMYCR,-1147.943, -452.505, 10.9455)Actor.Health([email protected]) = 100Actor.Create([email protected],4,#BMYST,-1147.04, -449.8303, 10.9455)Actor.Health([email protected]) = 100Actor.Create([email protected],4,#BMYRI,-1140.1809, -451.1281, 10.9455)Actor.Health([email protected]) = 100Actor.Create([email protected],4,#BMYBU,-1147.7313, -450.543, 10.9455)Actor.Health([email protected]) = 100Actor.Create([email protected],4,#BMOST,-1146.8046, -447.4672, 10.9593)Actor.Health([email protected]) = 100Actor.Create([email protected],4,#BMOTR,-1146.1782, -445.979, 11.1213)Actor.Health([email protected]) = 100wait 1000fade 1 1000Model.Destroy(#BMYBB)Model.Destroy(#BMYCR)Model.Destroy(#BMYST)Model.Destroy(#BMYRI)Model.Destroy(#BMYBU)Model.Destroy(#BMOST)Model.Destroy(#BMODK)0296: unload_special_actor 1Camera.SetPosition(-1153.5089, -387.0351, 10.7861, 0.0, 0.0, 0.0)Camera.PointAt(-1151.9209, -392.4776, 10.9455, 2)02A3: toggle_widescreen 10239: actor $PLAYER_ACTOR run_to -1149.506 -409.160600BC: text_highpriority 'GET9' 3000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.wait 30000239: actor [email protected] run_to -1149.5605 -411.2815Camera.SetPosition(-1148.0094, -429.4462, 10.9455, 0.0, 0.0, 0.0)Camera.PointAt(-1148.7361, -426.6992, 10.9455, 2)00BC: text_highpriority 'GE10' 3000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.wait 3000Camera.SetPosition(-1157.4457, -413.2871, 10.9455, 0.0, 0.0, 0.0)Camera.PointAt(-1153.8396, -412.3368, 10.9455, 2)00BC: text_highpriority 'GE11' 5000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.wait 5000Camera.SetPosition(-1146.6191, -443.2247, 11.4354, 0.0, 0.0, 0.0)Camera.PointAt(-1145.8787, -449.8384, 10.9455, 2)00BC: text_highpriority 'GE12' 5000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.wait 5000fade 0 1000wait 100000A1: put_actor [email protected] at -1149.3788 -411.5627 10.9wait 1000fade 1 100002A3: toggle_widescreen 0Camera.Restore_WithJumpCutPlayer.CanMove($PLAYER_CHAR) = True01CA: actor [email protected] kill_player $PLAYER_CHAR01CA: actor [email protected] kill_player $PLAYER_CHAR01CA: actor [email protected] kill_player $PLAYER_CHAR01CA: actor [email protected] kill_player $PLAYER_CHAR01CA: actor [email protected] kill_player $PLAYER_CHAR01CA: actor [email protected] kill_player $PLAYER_CHAR01CA: actor [email protected] kill_player $PLAYER_CHAR:badwait 0if orwasted_or_bustedActor.Dead([email protected])jf @7jump @MissionFailed:7wait 0if andActor.Dead([email protected])Actor.Dead([email protected])Actor.Dead([email protected])Actor.Dead([email protected])Actor.Dead([email protected])Actor.Dead([email protected])Actor.Dead([email protected])jf @bad018A: [email protected] = create_checkpoint_at -375.6873 -517.59 12.793401DF: tie_actor [email protected] to_player $PLAYER_CHAR00BC: text_highpriority 'GE13' 2000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.wait 200000BC: text_highpriority 'GE14' 3000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.wait 400000BC: text_highpriority 'GE15' 2000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.wait 200000BC: text_highpriority 'GE16' 4000 ms 1 // ~g~Come back when you have finished the Haitian gang missions.:gowait 0if orwasted_or_bustedActor.Dead([email protected])jf @8jump @MissionFailed:8wait 0if0100: actor $PLAYER_ACTOR near_point_in_car -375.6873 -517.59 12.7934 radius 5.0 5.0 5.0 sphere 0jf @goMarker.Disable([email protected])gosub @MissionPassedreturn:MissionPassedwait 50000BA: text_styled 'PAS1' 5000 ms 1 // MISSION PASSED!0394: play_music 10318: set_latest_mission_passed 'GE17'$ONMISSION = 0 // integer valuesmission_cleanup05DC: end_custom_thread:MissionFailedActor.DestroyInstantly([email protected])Actor.DestroyInstantly([email protected])Actor.DestroyInstantly([email protected])Actor.DestroyInstantly([email protected])Actor.DestroyInstantly([email protected])Actor.DestroyInstantly([email protected])Actor.DestroyInstantly([email protected])Actor.DestroyInstantly([email protected])00BA: text_styled 'FAL1' 5000 ms 1 // MISSION FAILED!$ONMISSION = 0 // integer valuesmission_cleanupjump @BANKJOB_2

 

 

Edited by MC Vic

Share this post


Link to post
Share on other sites
ZAZ

Did you really made your own cutscene data? .. respect, if it works

 

The local vars in simple threads are limited to [email protected]

so this cause a crash:

018A: [email protected] = create_checkpoint_at -375.6873 -517.59 12.7934Marker.Disable([email protected])

and [email protected] is used as internal timer and can't be used for other stuff

so this cause also a crash:

Actor.Create([email protected],4,#BMOTR,-1146.1782, -445.979, 11.1213)Actor.Health([email protected]) = 100...01CA: actor [email protected] kill_player $PLAYER_CHAR..Actor.Dead([email protected]).Actor.DestroyInstantly([email protected])

test the script below to see how the internal timer works:

{$CLEO}:test_103A4: name_thread 'TEST':test_2wait 001E3: text_1number_styled 'A_TIME' [email protected] 250 ms [email protected] > 10000jf @[email protected] = 0jump @test_2

Additional advice:

 

Global vars in cleo can cause bugs and crashes

so use locals for the cutscene vars

02E5: [email protected] = create_cutscene_object #SPECIAL0102E6: set_cutscene_anim [email protected] 'CSPLAY'02E5: [email protected] = create_cutscene_object #SPECIAL0202E6: set_cutscene_anim [email protected] 'CSKENT'...02E8: [email protected] = cutscenetime..798 > [email protected] // integer values

the check for $1140 is ok if you need it, because it checks only for this global

$1140 == 1

but it isn't reliable that it always works

 

 

the wasted busted check works only in mission scripts

if orwasted_or_bustedActor.Dead([email protected])

you should do the check in this way:

:gowait 0if   Player.Defined($player_char)jf @MissionFailedif   Actor.Dead([email protected])jf @8jump @MissionFailed

It's not reliable that a conditional check with more than 7 condition works

:6wait 1000<-------- too much wait timeif andModel.available(#BMYBB)Model.available(#BMYCR)Model.available(#BMYST)Model.available(#BMYRI)Model.available(#BMYBU)Model.available(#BMOST)Model.available(#BMODK)023D: special_actor 1 loadedjf @6

you should do the check in this way:

:6await 0if023D:   special_actor 1 loadedjf @6a:6bwait 0if and   Model.Available(#BMYBB)   Model.Available(#BMYCR)   Model.Available(#BMYST)   Model.Available(#BMYRI)   Model.Available(#BMYBU)   Model.Available(#BMOST)   Model.Available(#BMODK)jf @6b

opcodes for location checks like 00F5: or 0100: can show the pink sphere

00F5: player $PLAYER_CHAR 0 -1153.4719 -366.4713 10.9067 radius 3.0 3.0 3.00100: actor $PLAYER_ACTOR near_point_in_car -375.6873 -517.59 12.7934 radius 5.0 5.0 5.0 sphere 0

it needs to set the parameter to 1, in opcode 00F5: the 2. param, in opcode 0100: the last param

 

also does it need to have max. waittime of 0 milliseconds in the loop, otherwise the sphere is flickering or not shown

 

your check have 2 wait codes and cause a flickering:

:BANKJOB_91wait 0ifPlayer.Defined($PLAYER_CHAR)jf @BANKJOB_91wait 0if00F5: player $PLAYER_CHAR 1 -1153.4719 -366.4713 10.9067 radius 3.0 3.0 3.0else_jump @BANKJOB_91Player.CanMove($PLAYER_CHAR) = False00BA: text_styled 'GE17' 2000 ms 20164: disable_marker [email protected] @MissionStart

this check shows the sphere correct

:BANKJOB_91wait 0 if    Player.Defined($player_char)jf @BANKJOB_91 if 00F5:   player $player_char 1 -1153.472 -366.4713 10.9067 radius 3.0 3.0 3.0 jf @BANKJOB_91

same for the check at script end

:gowait 0if orwasted_or_bustedActor.Dead([email protected])jf @8jump @MissionFailed:8wait 0<--- useless because next else_jump jumps to @goif0100: actor $PLAYER_ACTOR near_point_in_car -375.6873 -517.59 12.7934 radius 5.0 5.0 5.0 sphere 0<-- change it to 1jf @go

the return codes which will following now, is wrong, because return may only be use in subscripts which was called by gosub

but it will not be read, because gosub @MissionPassed leads into subscript which ends with 05DC: end_custom_thread

:8wait 0if0100: actor $PLAYER_ACTOR near_point_in_car -375.6873 -517.59 12.7934 radius 5.0 5.0 5.0 sphere 0jf @goMarker.Disable([email protected])gosub @MissionPassedreturn<-----------------------wrong

also this is useless:

gosub @MissionPassedreturn

you can also write it in this way:

:8if0100: actor $PLAYER_ACTOR near_point_in_car -375.6873 -517.59 12.7934 radius 5.0 5.0 5.0 sphere 1jf @goMarker.Disable([email protected])wait 50000BA: text_styled 'PAS1' 5000 ms 1 // MISSION PASSED!0394: play_music 10318: set_latest_mission_passed 'GE17'$ONMISSION = 0 // integer valuesmission_cleanup05DC: end_custom_thread
Edited by ZAZ

Share this post


Link to post
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
Sign in to follow this  

×

Important Information

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