Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

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

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

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

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

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

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

    2. Forum Support

    3. Suggestions

The thread that started it all


Demarest
 Share

Recommended Posts

just a thought but would it be possible to find pedestrians from gta iv and convert them to vice and use them, just with a slight retexture? I know it would be a lot of work but the end result would be a higher quality ped and player even.

Oh my, what a horrid idea. It's much, much, easier to convert III peds to VC. If you want IV peds in GTA: LC then you're on your own.

Link to comment
Share on other sites

Craig Kostelecky

Looks like he's been busted. If anybody can get in contact with him outside the forums that would help.

 

Although ped conversion could be useless if ModelingMan can figure out his automation.

 

And there's never a problem bumping any category in this forum. Every topic is open game (except the locked ones of course).

 

And yes, we're going for a GTA III conversion. Any work from IV would be an unofficial add-on.

Link to comment
Share on other sites

spaceeinstein

Wall of code to replace. This will make the mission "A Drop in the Ocean" more authentic to GTA 3. I hope I didn't mess anything up. The most noticeable change is that the pickup now bobs up and down with the water. Now the next step is to replace the object with the one from GTA 3.

 

Between

 

004D: jump_if_false @LabelLC07A3E6 

 

and

 

004D: jump_if_false @LabelLC07A7CD 

 

 

Replace with

 

004D: jump_if_false @LabelLC07A3E6 0213: $LC13688 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768 03DC: $PACKAGE1MARKER = create_marker_above_pickup $LC13688 0165: set marker $PACKAGE1MARKER color to 20086: $LC13772 = $LC13760  // floating-point values only 0086: $LC13776 = $LC13764  // floating-point values only 0004: $LC13732 = 1  // integer values :LabelLC07A3E600D6: if  0038:   $LC13724 == 1  // integer values 004D: jump_if_false @LabelLC07A41D 0213: $LC13692 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768 03DC: $PACKAGE2MARKER = create_marker_above_pickup $LC13692 0165: set marker $PACKAGE2MARKER color to 20086: $LC13780 = $LC13760  // floating-point values only 0086: $LC13784 = $LC13764  // floating-point values only 0004: $LC13736 = 1  // integer values :LabelLC07A41D00D6: if  0038:   $LC13724 == 2  // integer values 004D: jump_if_false @LabelLC07A454 0213: $LC13696 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768 03DC: $PACKAGE3MARKER = create_marker_above_pickup $LC13696 0165: set marker $PACKAGE3MARKER color to 20086: $LC13788 = $LC13760  // floating-point values only 0086: $LC13792 = $LC13764  // floating-point values only 0004: $LC13740 = 1  // integer values :LabelLC07A45400D6: if  0038:   $LC13724 == 3  // integer values 004D: jump_if_false @LabelLC07A48B 0213: $LC13700 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768 03DC: $PACKAGE4MARKER = create_marker_above_pickup $LC13700 0165: set marker $PACKAGE4MARKER color to 20086: $LC13796 = $LC13760  // floating-point values only 0086: $LC13800 = $LC13764  // floating-point values only 0004: $LC13744 = 1  // integer values :LabelLC07A48B00D6: if  0038:   $LC13724 == 4  // integer values 004D: jump_if_false @LabelLC07A4C2 0213: $LC13704 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768 03DC: $PACKAGE5MARKER = create_marker_above_pickup $LC13704 0165: set marker $PACKAGE5MARKER color to 20086: $LC13804 = $LC13760  // floating-point values only 0086: $LC13808 = $LC13764  // floating-point values only 0004: $LC13748 = 1  // integer values :LabelLC07A4C200D6: if  0038:   $LC13724 == 5  // integer values 004D: jump_if_false @LabelLC07A4F9 0213: $LC13708 = create_pickup -139 (BRIEFCASE) type 14 at $LC13760 $LC13764 $LC13768 03DC: $PACKAGE6MARKER = create_marker_above_pickup $LC13708 0165: set marker $PACKAGE6MARKER color to 20086: $LC13812 = $LC13760  // floating-point values only 0086: $LC13816 = $LC13764  // floating-point values only 0004: $LC13752 = 1  // integer values :LabelLC07A4F90008: $LC13724 += 1  // integer values :LabelLC07A50000D6: if and 0018:   $LC13732 > 0  // integer values 001A:   6 > $LC13756  // integer values 004D: jump_if_false @LabelLC07A52B 01E5: text_1number_highpriority 'LOVE3_3' $LC13724 5000 ms 1   // ~g~The plane has dropped ~1~ of 6 packages.:LabelLC07A52B00D6: if  0038:   $LC13732 == 1  // integer values 004D: jump_if_false @LabelLC07A59F 00D6: if  0214:   pickup $LC13688 picked_up004D: jump_if_false @LabelLC07A59F 0164: disable_marker $PACKAGE1MARKER 018C: play_sound 82 at 0.0 0.0 0.0 0008: $LC13756 += 1  // integer values 00D6: if  0038:   $LC13672 == 0  // integer values 004D: jump_if_false @LabelLC07A589 03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:0004: $LC13672 = 1  // integer values :LabelLC07A5890008: $LC13684 += 1  // integer values 010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684 0004: $LC13732 = 2  // integer values :LabelLC07A59F00D6: if  0038:   $LC13736 == 1  // integer values 004D: jump_if_false @LabelLC07A613 00D6: if  0214:   pickup $LC13692 picked_up004D: jump_if_false @LabelLC07A613 0164: disable_marker $PACKAGE2MARKER 018C: play_sound 82 at 0.0 0.0 0.0 0008: $LC13756 += 1  // integer values 00D6: if  0038:   $LC13672 == 0  // integer values 004D: jump_if_false @LabelLC07A5FD 03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:0004: $LC13672 = 1  // integer values :LabelLC07A5FD0008: $LC13684 += 1  // integer values 010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684 0004: $LC13736 = 2  // integer values :LabelLC07A61300D6: if  0038:   $LC13740 == 1  // integer values 004D: jump_if_false @LabelLC07A687 00D6: if  0214:   pickup $LC13696 picked_up004D: jump_if_false @LabelLC07A687 0164: disable_marker $PACKAGE3MARKER 018C: play_sound 82 at 0.0 0.0 0.0 0008: $LC13756 += 1  // integer values 00D6: if  0038:   $LC13672 == 0  // integer values 004D: jump_if_false @LabelLC07A671 03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:0004: $LC13672 = 1  // integer values :LabelLC07A6710008: $LC13684 += 1  // integer values 010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684 0004: $LC13740 = 2  // integer values :LabelLC07A68700D6: if  0038:   $LC13744 == 1  // integer values 004D: jump_if_false @LabelLC07A6FB 00D6: if  0214:   pickup $LC13700 picked_up004D: jump_if_false @LabelLC07A6FB 0164: disable_marker $PACKAGE4MARKER 018C: play_sound 82 at 0.0 0.0 0.0 0008: $LC13756 += 1  // integer values 00D6: if  0038:   $LC13672 == 0  // integer values 004D: jump_if_false @LabelLC07A6E5 03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:0004: $LC13672 = 1  // integer values :LabelLC07A6E50008: $LC13684 += 1  // integer values 010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684 0004: $LC13744 = 2  // integer values :LabelLC07A6FB00D6: if  0038:   $LC13748 == 1  // integer values 004D: jump_if_false @LabelLC07A76F 00D6: if  0214:   pickup $LC13704 picked_up004D: jump_if_false @LabelLC07A76F 0164: disable_marker $PACKAGE5MARKER 018C: play_sound 82 at 0.0 0.0 0.0 0008: $LC13756 += 1  // integer values 00D6: if  0038:   $LC13672 == 0  // integer values 004D: jump_if_false @LabelLC07A759 03C4: set_status_text_to $LC13756 0  'COLLECT'   // COLLECTED:0004: $LC13672 = 1  // integer values :LabelLC07A7590008: $LC13684 += 1  // integer values 010E: set_player $PLAYER_CHAR minimum_wanted_level_to $LC13684 0004: $LC13748 = 2  // integer values :LabelLC07A76F00D6: if  0038:   $LC13752 == 1  // integer values 004D: jump_if_false @LabelLC07A7E3 00D6: if  0214:   pickup $LC13708 picked_up004D: jump_if_false @LabelLC07A7E3 0164: disable_marker $PACKAGE6MARKER 018C: play_sound 82 at 0.0 0.0 0.0 0008: $LC13756 += 1  // integer values 00D6: if  0038:   $LC13672 == 0  // integer values 004D: jump_if_false @LabelLC07A7CD 

 

 

Find the comment

 

TODO - These values were not changed. They MAY need to be.

 

and safely remove the comment (not the code). That section just controls the camera based on the position of the Panlantic van. It doesn't depend on the world coordinates so nothing needs to be changed.

Edited by spaceeinstein
Link to comment
Share on other sites

Craig Kostelecky

Nice job space. I've replaced that code and it seems to work fine. I even failed it by the police getting to a package first. And I'm not sure if that happened with the old code (I never attempted it and I haven't read the old code that closely either)

 

Do you know if we're able to replace that model with a full-winged Dodo with everything we currently have?

 

EDIT: I think I have Sayonara Salvatore done! The Mafia guys and Sal all walk to the street properly. The timing is very close to GTA3. Also Salvatore will enter the car and drive away if he's not sniped first. There may be a few minor bugs, but I think it's close enough. I've been trying to get that mission working now for over five years (not straight of course). Finally, it's done! biggrin.gifmonocle.gif

 

You can try it (as well as space's new code for A Drop in the Ocean) here.

 

Now my next step is to take the last code from SteaVor's updates, install them on my computer and integrate my changes to it. Then test the hell out of it. The scm is now much closer to being "done" than ever before.

Edited by Craig Kostelecky
Link to comment
Share on other sites

ModelingMan

 

Although ped conversion could be useless if ModelingMan can figure out his automation.

About that, I think I may have posted this screenshot at the time I did it, but this demonstrates the conversion of Claude to VC purely through copying of the original data with a skeleton added. Obviously, rotations are off on certain parts of the body but this is due to me creating the bone matrix based upon the frames of the III model. The solution I've came to is to make a program which loads in III ped models, automates what I did by hand then allow the manual rotation of body parts (or if all the peds have the exact same rotation problems just automate the rotations).

 

user posted image

 

Now cutscene actor heads... There's 2 solutions I can think of. Since VC doesn't contain the RenderWare functions for loading and using the .anm format then the solution is to either 1) recreate the neccesary RW functions or 2) convert the .anm to .ifp format. Weighing the pros and cons of both solutions, the first solution would be the most "authentic" in terms of using the same model as the ingame ped but with the cutscene head (attached through the more "authentic" way of using opcodes). With the help of a new plugin for IDA the process of recreating functions from assembly can go a bit quicker (the plugin generates C code from assembly; messy code, but is a better reference to work from than assembly).

 

Since I'm eager to begin working on this I'll try and spare some time to start it.

 

Craig's edit: they fixed the img tag, so that's all I changed

Edited by Craig Kostelecky

abstract_sig.png

Link to comment
Share on other sites

Craig Kostelecky

I see nothing wrong with that image tounge.gif

 

It looks like you've got the right ideas. I look forward to seeing what comes of it.

Link to comment
Share on other sites

Craig Kostelecky
Some more exe hacking may need to be done to finish that properly.

I'm one of the few people left who can still do EXE hacking, and I'm interested in helping with the finalization of this legendary mod. smile.gif

Got another exe challenge for you. We tried this many years ago, but maybe you'd have better luck.

 

Do you think we can expand the weapon slots so the rocket launcher and flamethrower aren't shared? Same with the grenades and molotovs.

Link to comment
Share on other sites

spaceeinstein

Here's a fix for Blow Fish that will make the explosion biblical again.

 

Between

 

004D: jump_if_false @LabelLC047B3E

 

and

 

0107: $LC7948 = create_object #FISH01 at 647.0 -1103.75 26.375

 

 

Replace with

 

004D: jump_if_false @LabelLC047B3E 039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0 0002: jump @LabelLC048241 :LabelLC047B3E0050: gosub @LabelLC048343 0050: gosub @LabelLC048587 00AA: store_car $BLOWFISH_GARBAGE_TRUCK position_to $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 00D6: if  00DC:   player $PLAYER_CHAR driving $BLOWFISH_GARBAGE_TRUCK 004D: jump_if_false @LabelLC047BA0 00D6: if  0038:   $LC7896 == 1  // integer values 004D: jump_if_false @LabelLC047BA0 018A: $LC7876 = create_checkpoint_at 630.0 -1117.0 -100.0 0004: $LC40 = 1  // integer values 0164: disable_marker $TONI5_GARBAGE_TRUCK_MARKER 0004: $LC7896 = 0  // integer values :LabelLC047BA000D6: if  80DC:   not player $PLAYER_CHAR driving $BLOWFISH_GARBAGE_TRUCK 004D: jump_if_false @LabelLC047BEF 00D6: if  0038:   $LC7896 == 0  // integer values 004D: jump_if_false @LabelLC047BEF 0186: $TONI5_GARBAGE_TRUCK_MARKER = create_marker_above_car $BLOWFISH_GARBAGE_TRUCK 0165: set marker $TONI5_GARBAGE_TRUCK_MARKER color to  00004: $LC40 = 0  // integer values 0164: disable_marker $LC7876 00BC: text_highpriority 'IN_VEH' 5000 ms 1  // ~g~Hey! Get back in the vehicle!0004: $LC7896 = 1  // integer values :LabelLC047BEF00D6: if and 8185:   not car $BLOWFISH_GARBAGE_TRUCK health >= 900 80B1:   not car $BLOWFISH_GARBAGE_TRUCK 0 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0 004D: jump_if_false @LabelLC047C49 020B: explode_car $BLOWFISH_GARBAGE_TRUCK 039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0 0002: jump @LabelLC048241 :LabelLC047C4900D6: if and 0038:   $TONI5_TIMER == 0  // integer values 80B1:   not car $BLOWFISH_GARBAGE_TRUCK 0 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0 004D: jump_if_false @LabelLC047CA2 020B: explode_car $BLOWFISH_GARBAGE_TRUCK 039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0 0002: jump @LabelLC048241 :LabelLC047CA20002: jump @LabelLC047ADC :LabelLC047CA90247: request_model #FSHFCTRY_DSTRYD 00BC: text_highpriority 'JM1_3' 5000 ms 2  // ~g~Activate the car bomb then get out of there!01B5: force_weather 0 00D6: if  0119:   car $BLOWFISH_GARBAGE_TRUCK wrecked 004D: jump_if_false @LabelLC047CE7 00BC: text_highpriority 'WRECKED' 5000 ms 1  // ~r~The vehicle is wrecked!0002: jump @LabelLC048241 :LabelLC047CE7//00D6: if                                                                      //TODO possibly enable this//8356:   not explosion_type 3 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0  //But it works with it commented out for now//004D: jump_if_false @LabelLC047E3D                                             0001: wait 0 ms 00D6: if  0119:   car $BLOWFISH_GARBAGE_TRUCK wrecked 004D: jump_if_false @LabelLC047D45 039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0 0002: jump @LabelLC047E3D :LabelLC047D450050: gosub @LabelLC048343 0050: gosub @LabelLC048587 00AA: store_car $BLOWFISH_GARBAGE_TRUCK position_to $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 00D6: if  80B1:   not car $BLOWFISH_GARBAGE_TRUCK 0 in_cube 626.0 -1112.5 18.5 634.5 -1122.75 21.0 004D: jump_if_false @LabelLC047D8C 0002: jump @LabelLC047AC1 :LabelLC047D8C00D6: if and 80DC:   not player $PLAYER_CHAR driving $BLOWFISH_GARBAGE_TRUCK 8228:   not car $BLOWFISH_GARBAGE_TRUCK bomb_status == 4   004D: jump_if_false @LabelLC047DB5 00BC: text_highpriority 'JM1_5' 5000 ms 1  // ~g~The car bomb's not set!:LabelLC047DB500D6: if  8185:   not car $BLOWFISH_GARBAGE_TRUCK health >= 900 004D: jump_if_false @LabelLC047DF6 020B: explode_car $BLOWFISH_GARBAGE_TRUCK 039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0 0002: jump @LabelLC047E3D :LabelLC047DF600D6: if  0038:   $TONI5_TIMER == 0  // integer values 004D: jump_if_false @LabelLC047E36 020B: explode_car $BLOWFISH_GARBAGE_TRUCK 039D: scatter_particles 17 4.0 0 0 0 4000 at $TONI5_GARBAGE_TRUCK_X $TONI5_GARBAGE_TRUCK_Y $TONI5_GARBAGE_TRUCK_Z 0.0 0.0 0.0 0002: jump @LabelLC047E3D :LabelLC047E360002: jump @LabelLC047CE7 :LabelLC047E3D014F: stop_timer $TONI5_TIMER 01B4: set_player $PLAYER_CHAR frozen_state 0 (frozen)  02A3: toggle_widescreen 1 (on)  01F7: set_player $PLAYER_CHAR ignored_by_cops_state_to 1 (true)  03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1 (true)  015F: set_camera_position 605.25 -1136.75 22.5 0.0 0.0 0.0 0160: point_camera 606.062 -1136.12 22.5 2 0164: disable_marker $TONI5_GARBAGE_TRUCK_MARKER 0164: disable_marker $LC7876 0001: wait 300 ms 0003: shake_camera 300 020C: create_explosion_with_radius 6 at 630.75 -1111.88 21.5 02CF: $LC7912 = create_fire_at 631.0 -1111.75 19.75 020C: create_explosion_with_radius 6 at 631.0 -1123.0 21.375 0001: wait 600 ms 0003: shake_camera 400 020C: create_explosion_with_radius 6 at 635.0 -1119.0 22.0 0001: wait 300 ms 0003: shake_camera 300 020C: create_explosion_with_radius 6 at 650.0 -1119.0 20.0 0001: wait 400 ms 0003: shake_camera 400 020C: create_explosion_with_radius 6 at 650.0 -1120.0 26.0 0001: wait 200 ms 0003: shake_camera 300 015F: set_camera_position 625.5 -1094.0 27.0625 0.0 0.0 0.0 0160: point_camera 626.188 -1094.6899 26.75 2 020C: create_explosion_with_radius 6 at 634.188 -1104.0 24.25 0001: wait 300 ms 0003: shake_camera 400 020C: create_explosion_with_radius 6 at 633.375 -1119.1899 23.375 0001: wait 200 ms 0003: shake_camera 300 020C: create_explosion_with_radius 6 at 644.375 -1103.88 24.875 0001: wait 300 ms 0003: shake_camera 400 020C: create_explosion_with_radius 6 at 641.0 -1108.25 27.375 0001: wait 300 ms 0003: shake_camera 300 039D: scatter_particles 17 5.0 0 0 0 5000 at 634.75 -1104.88 24.6875 0.0 0.0 0.0 020C: create_explosion_with_radius 6 at 637.688 -1102.1899 24.5 020C: create_explosion_with_radius 6 at 651.25 -1103.38 20.6875 0107: $LC7932 = create_object #FISH01 at 637.688 -1103.5601 26.5625 0107: $LC7936 = create_object #FISH01 at 637.688 -1103.1899 26.5625 0107: $LC7940 = create_object #FISH01 at 643.75 -1107.1899 27.5625 0107: $LC7944 = create_object #FISH01 at 644.75 -1105.1899 27.5625 0392: object $LC7932 toggle_in_moving_list 1 0392: object $LC7936 toggle_in_moving_list 1 0392: object $LC7940 toggle_in_moving_list 1 0392: object $LC7944 toggle_in_moving_list 1 0381: throw_object $LC7932 distance -10.0 6.0 18.0 0381: throw_object $LC7936 distance 8.0 7.0 16.0 0381: throw_object $LC7940 distance -7.0 10.0 14.0 0381: throw_object $LC7944 distance 9.0 6.0 15.0 018C: play_sound 0 at 634.75 -1104.88 24.6875 0001: wait 400 ms 0003: shake_camera 500 039D: scatter_particles 17 5.0 0 0 0 5000 at 639.188 -1129.75 25.5 0.0 0.0 0.0 020C: create_explosion_with_radius 6 at 647.0 -1102.75 23.375 020C: create_explosion_with_radius 6 at 638.562 -1128.75 25.56250107: $LC7948 = create_object #FISH01 at 647.0 -1103.75 26.375

 

Edited by spaceeinstein
Link to comment
Share on other sites

Craig Kostelecky

Very nice! I had to play it before I changed it because I didn't know how un-Biblical it was. Much better now.

 

Since I've got my major issues with the scm worked out now, I'm in the process of taking the last files that SteaVor released and updating them with our new work. When I get that done, I'll put together a Beta3 release that we can piece together for the final version.

Link to comment
Share on other sites

spaceeinstein

About the full-winged Dodo problem, the only thing I have in mind is to have variations in the model and use the variation opcode (0506) to get a fake full-winged Dodo. I don't exactly know how to prevent the full-wing variant from spawning but have a look at the Taxis and see how they get the "lightless variant" from not spawning in the game. The best solution is to get control of NPC Dodos but I have no idea how to do that.

 

Here's a fix to add in the correct particles for Grand Theft Aero.

 

Between

 

004D: jump_if_false @LabelLC08D792

 

and

 

:LabelLC08DB8D

 

 

Replace with

 

004D: jump_if_false @LabelLC08D792039D: scatter_particles 15 .375 0 0 0 200 at $LC16444 $LC16448 $LC16452 0.0 0.0 0.0 :LabelLC08D79200D6: if  0018:   $LC16640 > 6000  // integer values 004D: jump_if_false @LabelLC08D7C7 039D: scatter_particles 11 .25 0 0 0 200 at $LC16444 $LC16448 $LC16452 0.0 0.0 0.0 :LabelLC08D7C700D6: if  0038:   $LC16588 == 0  // integer values 004D: jump_if_false @LabelLC08D851 01BB: store_object $LC16412 position_to $LC16456 $LC16460 $LC16464 00D6: if  001A:   4000 > $LC16640  // integer values 004D: jump_if_false @LabelLC08D81C 039D: scatter_particles 15 .375 0 0 0 200 at $LC16456 $LC16460 $LC16464 0.0 0.0 0.0 :LabelLC08D81C00D6: if  0018:   $LC16640 > 4000  // integer values 004D: jump_if_false @LabelLC08D851 039D: scatter_particles 11 .25 0 0 0 200 at $LC16456 $LC16460 $LC16464 0.0 0.0 0.0 :LabelLC08D85100D6: if  0038:   $LC16592 == 0  // integer values 004D: jump_if_false @LabelLC08D8DB 01BB: store_object $LC16416 position_to $LC16468 $LC16472 $LC16476 00D6: if  001A:   7000 > $LC16640  // integer values 004D: jump_if_false @LabelLC08D8A6 039D: scatter_particles 15 .375 0 0 0 200 at $LC16468 $LC16472 $LC16476 0.0 0.0 0.0 :LabelLC08D8A600D6: if  0018:   $LC16640 > 7000  // integer values 004D: jump_if_false @LabelLC08D8DB 039D: scatter_particles 11 .25 0 0 0 200 at $LC16468 $LC16472 $LC16476 0.0 0.0 0.0 :LabelLC08D8DB00D6: if  0038:   $LC16596 == 0  // integer values 004D: jump_if_false @LabelLC08D965 01BB: store_object $LC16420 position_to $LC16480 $LC16484 $LC16488 00D6: if  001A:   3500 > $LC16640  // integer values 004D: jump_if_false @LabelLC08D930 039D: scatter_particles 15 .375 0 0 0 200 at $LC16480 $LC16484 $LC16488 0.0 0.0 0.0 :LabelLC08D93000D6: if  0018:   $LC16640 > 3500  // integer values 004D: jump_if_false @LabelLC08D965 039D: scatter_particles 11 .25 0 0 0 200 at $LC16480 $LC16484 $LC16488 0.0 0.0 0.0 :LabelLC08D96500D6: if  0038:   $LC16600 == 0  // integer values 004D: jump_if_false @LabelLC08D9EF 01BB: store_object $LC16424 position_to $LC16492 $LC16496 $LC16500 00D6: if  001A:   8000 > $LC16640  // integer values 004D: jump_if_false @LabelLC08D9BA 039D: scatter_particles 15 .375 0 0 0 200 at $LC16492 $LC16496 $LC16500 0.0 0.0 0.0 :LabelLC08D9BA00D6: if  0018:   $LC16640 > 8000  // integer values 004D: jump_if_false @LabelLC08D9EF 039D: scatter_particles 11 .25 0 0 0 200 at $LC16492 $LC16496 $LC16500 0.0 0.0 0.0 :LabelLC08D9EF00D6: if  0038:   $LC16604 == 0  // integer values 004D: jump_if_false @LabelLC08DA79 01BB: store_object $LC16428 position_to $LC16504 $LC16508 $LC16512 00D6: if  001A:   6000 > $LC16640  // integer values 004D: jump_if_false @LabelLC08DA44 039D: scatter_particles 15 .375 0 0 0 200 at $LC16504 $LC16508 $LC16512 0.0 0.0 0.0 :LabelLC08DA4400D6: if  0018:   $LC16640 > 6000  // integer values 004D: jump_if_false @LabelLC08DA79 039D: scatter_particles 11 .25 0 0 0 200 at $LC16504 $LC16508 $LC16512 0.0 0.0 0.0 :LabelLC08DA7900D6: if  0038:   $LC16608 == 0  // integer values 004D: jump_if_false @LabelLC08DB03 01BB: store_object $LC16432 position_to $LC16516 $LC16520 $LC16524 00D6: if  001A:   7500 > $LC16640  // integer values 004D: jump_if_false @LabelLC08DACE  039D: scatter_particles 15 .375 0 0 0 200 at $LC16516 $LC16520 $LC16524 0.0 0.0 0.0 :LabelLC08DACE00D6: if  0018:   $LC16640 > 7500  // integer values 004D: jump_if_false @LabelLC08DB03 039D: scatter_particles 11 .25 0 0 0 200 at $LC16516 $LC16520 $LC16524 0.0 0.0 0.0 :LabelLC08DB0300D6: if  0038:   $LC16612 == 0  // integer values 004D: jump_if_false @LabelLC08DB8D 01BB: store_object $LC16436 position_to $LC16528 $LC16532 $LC16536 00D6: if  001A:   4750 > $LC16640  // integer values 004D: jump_if_false @LabelLC08DB58 039D: scatter_particles 15 .375 0 0 0 200 at $LC16528 $LC16532 $LC16536 0.0 0.0 0.0 :LabelLC08DB5800D6: if  0018:   $LC16640 > 4750  // integer values 004D: jump_if_false @LabelLC08DB8D  039D: scatter_particles 11 .25 0 0 0 200 at $LC16528 $LC16532 $LC16536 0.0 0.0 0.0 :LabelLC08DB8D

 

Edited by spaceeinstein
Link to comment
Share on other sites

Craig Kostelecky

Code updated. I'll wait to release the code until I have all the files ready for the first Beta3 release.

Link to comment
Share on other sites

Craig Kostelecky

I decided to redo the checklist here because the old one was far too picky. If we tried to do everything on the old list, we'd be working on this forever (as if we already haven't). So this will be the realistic list of things to accomplish before we release the "Final" version of GTA:LC. It won't be as pretty as the old topics made by Ben or SteaVor as I don't have the time, patience, or desire to make fancy tables or colors. If someone else wants to clean it up, go ahead and I'll edit the post.

 

This list can and will change as I do more testing. And I will upload my test files in the near future if other people want to help with the testing process. Of course if someone else sees something wrong with any of the files that isn't mentioned here and is willing to fix it, by all means go ahead and do it. I will not turn away any files that improve the mod. For example, the missions spaceeinstein has fixed lately did not change the way the mission played, but it greatly improved the visual aspect of the missions in subtle ways. Those were great fixes, but if I did not receive them, I wouldn't feel bad about the way the missions were before. As long as it plays close to the way GTA3 plays, I'm happy.

 

 

SCM/EXE Coding

The Plaster Blaster bodycast opcode should be converted - not vital, mission plays close enough to GTA3 as is

Fix the cars in Bait so they chase closer to like they do in GTAIII

The FW dodo from A Drop in the Ocean spawns in the airport after that mission is complete

Change Triads spawning density in Trial by Fire if possible

Modify the camera in the RC missions so it's angled lower like in GTAIII

Enable the scrolling text boards/clocks around LC

Enable the head models for the cutscenes

 

Modeling

Convert the peds/actors from the XBOX version

 

Other

I would like to get the paths completely redone from the original GTAIII files. There's a few missions that don't play quite right

Whatever else we can think of and finish in a reasonable amount of time

 

EDIT: Finally updated for the 3.3 Beta

Edited by Craig Kostelecky
Link to comment
Share on other sites

I've found an error in the mission 'Van Heist'

 

If you bust the van so that the doors fall off, the men will bail but the destination where you need to take the Securicar doesn't appear and the blue arrow will remain floating above the van making the mission unbeatable and you cannot leave the mission unless you kill yourself.

 

I would fix it myself but I only have minimal knowlege of SCM coding.

Link to comment
Share on other sites

Craig Kostelecky

Have you been able to duplicate that? I just played that mission today, and I thought the doors came off the van as well. I passed it just fine.

Link to comment
Share on other sites

Yes I have. At one point I thought it was the new update screwing me up because i had tried it 5 times with the mission failing to load anything after the men bail. Then i tested it with knocking the driver's side door off and it did the same thing. Then i tried jumping on top of the van and continuously hitting it with a baseball bat and the guys eventually bailed and i was able to pass.

 

For all i know, it's not the doors causing this.

 

Oh and i was not talking about the doors on the back of the van. im talking about the doors that get into the cab of the vehicle, just in case if thats what you thought i meant.

Link to comment
Share on other sites

Craig Kostelecky

I've tried to recreate that bug, but in four attempts to even get the door off, I could not do it. And if it's that hard to create a bug, I'm not worried about fixing it too much.

Link to comment
Share on other sites

spaceeinstein

I giant lightbulb lit up in my head and I spent four hours into the night working on this. It is a better workaround for 041C than what we have right now. Here's a huge list of changes that are needed.

 

1. Place somewhere

 

create_thread @LabelRandomAudio

 

 

2. Find

 

004D: jump_if_false @LabelLC013FAE

 

Remove below

 

03CF: load_wav 'AMU1' as 10050: gosub @LabelLoadAudioGosub

 

Replace with

 

$AudioEnable = 103

 

 

3. Find

 

004D: jump_if_false @LabelLC013FC7

 

Remove below

 

03CF: load_wav 'AMU2' as 10050: gosub @LabelLoadAudioGosub

 

Replace with

 

$AudioEnable = 104

 

 

4. Find

 

004D: jump_if_false @LabelLC013FE0

 

Remove below

 

03CF: load_wav 'AMU3' as 10050: gosub @LabelLoadAudioGosub

 

Replace with

 

$AudioEnable = 105

 

 

5. Find

 

:LabelLoadAudioGosub

 

Remove

 

:LabelLoadAudioGosub00D6: if  83D0:   not wav 1 loaded 004D: jump_if_false @LabelPlayAudioGosub 0001: wait 0 ms 0002: jump @LabelLoadAudioGosub :LabelPlayAudioGosub03D1: play_wav 1 0051: return 

 

 

6. Find

 

004D: jump_if_false @LabelLC014A8E

 

Remove below

 

03CF: load_wav 'AMU1' as 10050: gosub @LabelLoadAudioGosub

 

Replace with

 

$AudioEnable = 103

 

 

7. Find

 

004D: jump_if_false @LabelLC014AA7

 

Remove below

 

03CF: load_wav 'AMU2' as 10050: gosub @LabelLoadAudioGosub

 

Replace with

 

$AudioEnable = 104

 

 

8. Find

 

004D: jump_if_false @LabelLC014AC0

 

Remove below

 

03CF: load_wav 'AMU3' as 10050: gosub @LabelLoadAudioGosub

 

Replace with

 

$AudioEnable = 105

 

 

9. Find

 

//-------------Mission 0---------------

 

Add above

 

:LabelRandomAudio03A4: name_thread 'RAUD' //00A0: store_actor $PLAYER_ACTOR position_to [email protected] [email protected] [email protected] :LabelRandomAudioLoopwait 250{if$AudioEnable == 95 // chunkyjf @LabelVHAudio00A0: store_actor $CHUNKY_LEE_CHONG position_to [email protected] [email protected] [email protected]  jump @LabelRandomAudioPlay:LabelVHAudio}if$AudioEnable == 96 // van heist passengerjf @LabelAmmuAudio100A0: store_actor $JOEY3_VAN_PASSENGER position_to [email protected] [email protected] [email protected] // WILL CRASH if actor not available, did this on purpose 0209: [email protected] = random_int 1 9 // doesn't include 9if  [email protected] == 1004D: jump_if_false @LabelVHRandomAudio203CF: load wav 'VH1' as 1jump @LabelRandomAudioPlay:LabelVHRandomAudio2if  [email protected] == 2004D: jump_if_false @LabelVHRandomAudio303CF: load wav 'VH2' as 1jump @LabelRandomAudioPlay:LabelVHRandomAudio3if  [email protected] == 3004D: jump_if_false @LabelVHRandomAudio403CF: load wav 'VH3' as 1jump @LabelRandomAudioPlay:[email protected] == 4004D: jump_if_false @LabelVHRandomAudio503CF: load wav 'VH4' as 1jump @LabelRandomAudioPlay:L[email protected] == 5004D: jump_if_false @LabelVHRandomAudio603CF: load wav 'VH5' as 1jump @LabelRandomAudioPlay:LabelVHRandomAudio6if [email protected] == 6004D: jump_if_false @LabelVHRandomAudio703CF: load wav 'VH6' as 1jump @LabelRandomAudioPlay:[email protected] == 7004D: jump_if_false @LabelVHRandomAudio803CF: load wav 'VH7' as 1jump @LabelRandomAudioPlay:LabelVHRandomAudio803CF: load wav 'VH8' as 1jump @LabelRandomAudioPlay{:LabelSwat1Audioif$AudioEnable == 101 // unforunately needs different numbers for each swatjf @LabelSwat2Audio:LabelSwat2Audioif$AudioEnable == 101jf @LabelSwat3Audio:LabelSwat3Audioif$AudioEnable == 101jf @LabelSwat4Audio:LabelSwat4Audioif$AudioEnable == 101jf @LabelAmmuAudio1}:LabelAmmuAudio1if$AudioEnable == 103 // sam 1jf @LabelAmmuAudio200A0: store_actor $CHAR_GUNSHOPOWNER position_to [email protected] [email protected] [email protected] // WILL CRASH if actor not available, did this on purpose 03CF: load_wav 'AMU1' as 1jump @LabelRandomAudioPlay:LabelAmmuAudio2if$AudioEnable == 104 // sam 2jf @LabelAmmuAudio300A0: store_actor $CHAR_GUNSHOPOWNER position_to [email protected] [email protected] [email protected] // WILL CRASH if actor not available, did this on purpose 03CF: load_wav 'AMU2' as 1jump @LabelRandomAudioPlay:LabelAmmuAudio3if$AudioEnable == 105 // sam 3jf @LabelRandomAudioLoop00A0: store_actor $CHAR_GUNSHOPOWNER position_to [email protected] [email protected] [email protected] // WILL CRASH if actor not available, did this on purpose 03CF: load_wav 'AMU3' as 1jump @LabelRandomAudioPlay:LabelRandomAudioPlaywait 0if03D0:   wav 1 loadedjf @LabelRandomAudioPlay 03D7: set_wav 1 location [email protected] [email protected] [email protected]: play_wav 1:LabelRandomAudioEndwait 0if03D2:   wav 1 ended jf @LabelRandomAudioEnd040D: unload_wav 1 $AudioEnable = 0jump @LabelRandomAudioLoopend_thread

 

 

10. Find

 

:LabelLC03D86E

 

Remove above

 

0050: gosub @LabelVHRandomAudio0050: gosub @LabelLoadAudioGosub  

 

Replace with

 

$AudioEnable = 96

 

 

11. Find

 

:LabelLC03D9D4

 

Remove above

 

0050: gosub @LabelVHRandomAudio                  //TODO test replacement, doesn't work right0050: gosub @LabelLoadAudioGosub

 

Replace with

 

$AudioEnable = 96

 

 

12. Find

 

:LabelVHRandomAudio

 

Remove

 

:LabelVHRandomAudio0209: $VH_Wav = random int  1  800D6: if  0  0038:   $VH_Wav == 1004D: jump_if_false @LabelVHRandomAudio203CF: load wav 'VH1' as 10051: return:LabelVHRandomAudio200D6: if  0  0038:   $VH_Wav == 2004D: jump_if_false @LabelVHRandomAudio303CF: load wav 'VH2' as 10051: return:LabelVHRandomAudio300D6: if  0  0038:   $VH_Wav == 3004D: jump_if_false @LabelVHRandomAudio403CF: load wav 'VH3' as 10051: return:LabelVHRandomAudio400D6: if  0  0038:   $VH_Wav == 4004D: jump_if_false @LabelVHRandomAudio503CF: load wav 'VH4' as 10051: return:LabelVHRandomAudio500D6: if  0  0038:   $VH_Wav == 5004D: jump_if_false @LabelVHRandomAudio603CF: load wav 'VH5' as 10051: return:LabelVHRandomAudio600D6: if  0  0038:   $VH_Wav == 6004D: jump_if_false @LabelVHRandomAudio703CF: load wav 'VH6' as 10051: return:LabelVHRandomAudio700D6: if  0  0038:   $VH_Wav == 7004D: jump_if_false @LabelVHRandomAudio803CF: load wav 'VH7' as 10051: return:LabelVHRandomAudio803CF: load wav 'VH8' as 10051: return

 

 

wow.gif So the audio in Van Heist is now working and the Ammu-Nation worker will be using the same code that the Van Heist passenger will be using.

Edited by spaceeinstein
Link to comment
Share on other sites

Craig Kostelecky

Very cool. The Ammunation guys all spoke correctly for me, but I did not hear the Van Heist driver at all. Weird. I'll double check my work to see if I got it all right.

Link to comment
Share on other sites

Craig Kostelecky
hey, have you got all the weapons HUD sorted, i could help out.

Actually, there are a few VC weapons I'd like to have redone in the GTA3 style. See the list of the weapons that need updating in the checklist topic.

Link to comment
Share on other sites

spaceeinstein

Crap, this section is wrong

 

 

if{$AudioEnable == 95 // chunkyjf @LabelVHAudio00A0: store_actor $CHUNKY_LEE_CHONG position_to [email protected] [email protected] [email protected]  jump @LabelRandomAudioPlay:LabelVHAudio}if

 

 

It should have been

 

{if$AudioEnable == 95 // chunkyjf @LabelVHAudio00A0: store_actor $CHUNKY_LEE_CHONG position_to [email protected] [email protected] [email protected]  jump @LabelRandomAudioPlay:LabelVHAudio}if

 

 

I fixed the previous code. There might be other errors but this one is a big one. It was weird that I got the audio to work even with that mistake.

Edited by spaceeinstein
Link to comment
Share on other sites

XEPOMAHT007

What is the tentative release date of the final version GTA:LC?

Link to comment
Share on other sites

Craig Kostelecky

I've never put dates on releases before, but with my situation it would be best if we could finish before July hits. And with what's left, that might be doable.

 

And we can also release a GTA:LC Final v1 and release updates along the way to improve that which we couldn't get done in time.

 

I will also try to upload my current files and call it Beta 3 in the next few days.

Link to comment
Share on other sites

 

There's a weird thing involving 030D. If you start a new game using a German language, the total mission points is decreased by 2 from the set amount. Is the German version of VC missing two missions? This might affect 100% completion for this mod if people are playing with the German language.

 

To clear this matter up:

 

Yes, the German version of VC skips two of the missions (the wreak-havoc mission by Big Mitch Baker and the last one by Auntie Poulet where you need to snipe the Haitians), so that's the reason, even though I have no idea why this would be hardcoded into non-German EXE files. I thought this was one of the reasons the special German EXE was created for after all.

 

Thank you all for reviving the mod, I'd love to get involved again (would've preferred even more to not have been forced to disappear abruptly), although it doesn't look like I'm going to have any free time to spend anytime soon.

Edited by SteaVor
Link to comment
Share on other sites

In case you were unsuccesful in getting hold of my last update (20090908), it differed from the 20090906 one in that I had slightly modified the script to drop the superfluous extra "Label" in each label (i.e. I replaced all occurrences of "LabelLC" with "LC" etc.) and renamed MASTERLCEXTRAS1 to MASTERLCEXTRAS. tounge.gif

 

Other than these cosmetical changes I had tried to implement a more accurate method of calculating the crusher reward, taking into account the the class and the health of the vehicle crushed.

I'm posting the code here in case it's not included in the files you're using.

 

Notes:

1. This should yield fairly accurate results.

2. It's still in Mission Builder format, sorry.

3. Take note that the labels and jumps don't the "Label" inside the label.

4. This replaces the code beginning with :(Label)CCGetStuffInIt up to and including the :(Label)CCCrushing label

 

 

 

:CCGetStuffInIt0001: wait 250 ms00D6: if 0  0038:   $CCHaveCar == 0004D: jump_if_false ££CCGetStuffInIt053E: $CCCraneCar = get_random_car -1 in_area 801.63 57.8 814.0 63.300D6: if 0  8038:   NOT $CCCraneCar == -1004D: jump_if_false ££CCGetStuffInIt00D6: if 000B1:   car $CCCraneCar 0 ()in_cube 801.63 57.8 5.0 814.0 63.3 9.0004D: jump_if_false ££CCGetStuffInIt0004: $CCHaveCar = 1  0007: [email protected] = -90.0  :CCCalculateRewardByVehicleClass  ;; vehicle class and car health used as modifier for reward0007: [email protected] = 70.0                  ;; reward base value used for all models not listed below00D6: if  26                      ;; poorfamily0137:   car $CCCraneCar id == #ESPERANT0137:   car $CCCraneCar id == #IDAHO0137:   car $CCCraneCar id == #MANANA0137:   car $CCCraneCar id == #MOONBEAM0137:   car $CCCraneCar id == #PEREN0137:   car $CCCraneCar id == #RUMPO0137:   car $CCCraneCar id == #STALLION004D: jump_if_false ££CCCalculateReward2 0007: [email protected] = 30.00002: jump ££CCCalculateFinalReward:CCCalculateReward200D6: if  23                      ;; worker0137:   car $CCCraneCar id == #BOBCAT0137:   car $CCCraneCar id == #MULE0137:   car $CCCraneCar id == #PONY0137:   car $CCCraneCar id == #YANKEE004D: jump_if_false ££CCCalculateReward3 0007: [email protected] = 45.00002: jump ££CCCalculateFinalReward:CCCalculateReward300D6: if  25                      ;; taxi / normal / moped0137:   car $CCCraneCar id == #TAXI0137:   car $CCCraneCar id == #CABBIE0137:   car $CCCraneCar id == #MRWHOOP  0137:   car $CCCraneCar id == #PATRIOT0137:   car $CCCraneCar id == #FAGGIO0137:   car $CCCraneCar id == #PIZZABOY004D: jump_if_false ££CCCalculateReward4 0007: [email protected] = 55.00002: jump ££CCCalculateFinalReward:CCCalculateReward400D6: if  26                      ;; richfamily / motorbike0137:   car $CCCraneCar id == #BLISTA0137:   car $CCCraneCar id == #KURUMA0137:   car $CCCraneCar id == #LANDSTAL  0137:   car $CCCraneCar id == #ANGEL0137:   car $CCCraneCar id == #FREEWAY0137:   car $CCCraneCar id == #PCJ600      0137:   car $CCCraneCar id == #SANCHEZ004D: jump_if_false ££CCCalculateReward5 0007: [email protected] = 85.00002: jump ££CCCalculateFinalReward    :CCCalculateReward500D6: if  25                      ;; big0137:   car $CCCraneCar id == #BUS0137:   car $CCCraneCar id == #COACH0137:   car $CCCraneCar id == #FLATBED 0137:   car $CCCraneCar id == #LINERUN0137:   car $CCCraneCar id == #SECURICA0137:   car $CCCraneCar id == #TRASH004D: jump_if_false ££CCCalculateReward6 0007: [email protected] = 100.00002: jump ££CCCalculateFinalReward:CCCalculateReward600D6: if  25                      ;; executive0137:   car $CCCraneCar id == #BANSHEE0137:   car $CCCraneCar id == #CHEETAH0137:   car $CCCraneCar id == #INFERNUS  0137:   car $CCCraneCar id == #SENTINEL0137:   car $CCCraneCar id == #STINGER0137:   car $CCCraneCar id == #STRETCH   004D: jump_if_false ££CCCalculateFinalReward 0007: [email protected] = 115.0:CCCalculateFinalReward                               0227: [email protected]  = car $CCCraneCar health;; used as modifier for reward  008F: [email protected] = integer to float [email protected]      0017: [email protected] /= 1000.0                ;; max health is 1000, so we need to divide by this factor006B: [email protected] *= [email protected]      008E: [email protected] = float [email protected] to integer    0001: wait 3250 ms                ;; synchronize movement of magnet and lid:CCCloseLid0001: wait 25 ms00D6: if  00033:   0.0 >= [email protected]: jump_if_false ££CCCloseLidDone000B: [email protected] +=  1.0;; floating-point values0453: object $CClid set_rotation [email protected] 0.0 0.00002: jump ££CCCloseLid:CCCloseLidDone    0004: $IS_CAR_CRUSHED = 10453: object $CClid set_rotation 0.0 0.0 0.0 0004: $IS_CRUSHER_CRUSHING = 100D6: if 00256:   player $PLAYER_CHAR defined004D: jump_if_false ££CCCrushing00D6: if 0  0057:   player $PLAYER_CHAR 0 ()in_cube 801.63 57.8 5.0 814.0 63.3 10.0004D: jump_if_false ££CCCrushing0222: set_player $PLAYER_CHAR health_to 00006: [email protected] = 1;; disables reward:CCCrushing;; actual crushing process - move object etc. ;018D: [email protected] = create_sound <placeholder for sfx00452> at 804.73 60.3852 7.09806 0006: [email protected] = 0;; switch used to alternate between left and right0006: [email protected] = 2000;; time span for shaking until vehicle is destroyed 0006: [email protected] = 5  ;; determines speed of shaking "anim"0006: [email protected] = 0     0050: gosub ££CCShakeLoop00A6: destroy_car $CCCraneCar 0006: [email protected] = 1000;; time span for shaking after vehicle is destroyed 0006: [email protected] = 0 0050: gosub ££CCShakeLoop   ;018E: stop_sound [email protected]             ;; end of crushing, give reward if player wasn't killed in the crusher00D6: if 10256:   player $PLAYER_CHAR defined0039:   [email protected] == 0 004D: jump_if_false ££CCLiftLid    0109: player $PLAYER_CHAR money += [email protected]

 

Edited by SteaVor
Link to comment
Share on other sites

Craig Kostelecky

Great to see you! The door is wide open for you to contribute in any way you are able to. I'm also not sure if I have the latest files you last released. The last update file I could track down was from Sept 06. I've hacked apart that scm and redone a lot of stuff so even if I received a new scm, I'd just try to grab the latest stuff and add it to mine.

Link to comment
Share on other sites

Craig Kostelecky

Thanks for the update. It's integrated into my code and I'm about to test it.

Link to comment
Share on other sites

Great, let me know whether it works the way it should.

 

For clarification of the "fairly accurate" bit:

- as far as I could deduce by testing, the III EXE doesn't add a random element into the equation, so I didn't either. I tested about 15 different combinations of models and health states and always got results that were very close to the III results.

 

I've made the base reward depend on the vehicle classes, but I didn't verify whether all of the models would yield the same results in III and LC, but as mentioned above the models I did use for comparison gave pretty accurate results.

After all it was only supposed to be the first try at getting more accurate crusher rewards and it's definitely better than the placeholder "let's add up model id and health" approach.

Link to comment
Share on other sites

Craig Kostelecky

Close is plenty good enough. Especially since money in GTA3/LC is pretty meaningless.

 

I did add a couple of lines to the code, although I wasn't sure if it was necessary. It just sets [email protected] to 120.0 if the vehicle being crushed is any other vehicle that's not specifically mentioned above in the code. That way if someone enables a Vice City car (or crushes the General Lee) it should still work.

 

Maybe that was factored in there somewhere, but I didn't see it in the short time I looked.

Link to comment
Share on other sites

I had added a default / fallback value of 70.0 in the code, just above the first model check:

 

 

0007: [email protected] = 70.0                 ;; reward base value used for all models not listed below

 

 

Link to comment
Share on other sites

Craig Kostelecky

Silly me. By the way, did you mean to remove this line from the end of that code (just before the player's given money)

 

00A5: [email protected] += [email protected]

 

 

It seems like with that removed they only get the value of the class of the car with nothing taken into account with the health of the vehicle.

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
 Share

  • 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.