:
Destination Time
:
Present Time
:
Last Time Departed
BTTFModMachine

Back To The Future: San Andreas Modifications by BTTFModMachine

Recommended Posts

OK. Now I have another question:

I am editing the BTTF SA train push scene script. I want to make a black particle come out of the funnel of the train until the presto log activates. The presto log effects loop over and over again. However, when I add a black smoke particle (which is an edited version of the presto log particle) to the script, it only activates once and fades away.

Here is the code snippet:

06D8: 4@ = create_train_at 802.3121 2611.383 20.56644 type 0 direction 0 
072B: put_actor $PLAYER_ACTOR into_car 4@ passengerseat -1 
07CC: set_player $PLAYER_CHAR can_enter_exit_vehicles 0 
Model.Destroy(#FREIGHT)
Model.Destroy(#FREIFLAT)
Camera.Restore
Camera.OnVehicle(0@, 18, 2)
Player.CanMove($PLAYER_CHAR) = True
081D: set_car 0@ engine_broken 1 
0918: set_car 0@ engine_operation 0 
07CC: set_player $PLAYER_CHAR can_enter_exit_vehicles 0 
Audiostream.PerformAction(7@, STOP)
Audiostream.PerformAction(7@, PLAY)
if
32@ < 76500 //value before presto log activates
then
066B: 17@ = attach_particle "TRAIN_TRAILB" to_car 4@ with_offset 0.0 6.0 2.25 type 1 
064C: make_particle 17@ visible 
064F: remove_references_to_particle 17@
else
end

//More code in-between

:TRAIN_TRAIL_2622
  32@ >= 76500 //value after presto log activates
else_jump @TRAIN_TRAIL_2387 
0407: store_coords_to 1@ 2@ 3@ from_car 4@ with_offset 0.0 0.0 0.0 
0565: create_soundless_explosion_at 1@ 2@ 3@ type 10 
06DD: set_train 4@ speed 19.0 
12@ = 47.0 
32@ = 0 
33@ = 0

:TRAIN_TRAIL_2715
wait 1 
if and
   not Car.Wrecked(0@)
   not Car.Wrecked(4@)
   not Actor.Dead($PLAYER_ACTOR)
8741:   not actor $PLAYER_ACTOR busted 
else_jump @TRAIN_TRAIL_11129 
gosub @TRAIN_TRAIL_11498 
Car.LockInCurrentPosition(4@) = 4
0508: car 4@ close_all_doors 
0629: change_integer_stat 181 to 4 
  33@ >= 350 
else_jump @TRAIN_TRAIL_2994 
066B: 13@ = attach_particle "TRAIN_TRAIL3" to_car 4@ with_offset 0.0 7.5 -2.0 type 1 
064C: make_particle 13@ visible 
064F: remove_references_to_particle 13@ 
066B: 17@ = attach_particle "TRAIN_TRAILG" to_car 4@ with_offset 0.0 6.0 2.25 type 1 
064C: make_particle 17@ visible 
064F: remove_references_to_particle 17@ 
066B: 21@ = attach_particle "TRAIN_TRAILG" to_car 4@ with_offset 0.0 6.0 2.25 type 1 
064C: make_particle 21@ visible 
064F: remove_references_to_particle 21@ 
066B: 22@ = attach_particle "TRAIN_TRAILG" to_car 4@ with_offset 0.0 6.0 2.25 type 1 
064C: make_particle 22@ visible 
064F: remove_references_to_particle 22@ 
33@ = 0 

EDIT: Never mind. It was an effects.fxp issue. :facepalm:

Edited by BTTFModMachine

Share this post


Link to post
Share on other sites

Apart from the fact that time dependant teleporting doesn't make any sense, it's actually quite fun. :D

I'll see if I can improve it a little.

I'll add a global CLEO variable (var 15) to toggle teleporting on/off and include that in in 'keypad.cs'.

I think the "devide" key is OK.

What do you think?

  • Like 1

Share this post


Link to post
Share on other sites

I've got an issue:

I attached a smoke particle to the train in SA, but the particle stream is slow and the individual particles are far from each other.
Can this problem be fixed?

I've already tried:

Making the particle bigger (which is too big for the train).

AND

Making the effect life very short (which doesn't look good).

Edited by BTTFModMachine

Share this post


Link to post
Share on other sites

Have you tryed editing the version of 'timetravel.s' you're using and does it work so far?

--

Sorry, no help about effects from my side. I know they can be made move faster but I can't tell what to edit.

It's also possible to increase intensity/amount but I'm not sure how either.

Share this post


Link to post
Share on other sites

I'm trying to incorporate it into timecircuits.cs. I have way too many timetravel.s files. One for each of my deloreans. :P

Edited by BTTFModMachine

Share this post


Link to post
Share on other sites

Some little improvement for the teleport stuff.

Camera position while time traveling in cutscene mode is now fixed. Wasn't that hard actually. Just got confused by some descriptions of opcodes.

Teleporting while instant time traveling corrected too. Now the lag / screen freeze (when the game loads the destinational part of the map) happens during screen fade.

Added population ratio dependant on the year.

Key for disableing teleporting not yet done.

Would be good if you could test this any time soon so I don't do it for nothing.. (;

So, for the first function call (instant tt), I moved it down a little just after the 'fade'.

Also, I reduced the 'wait', which is near the bottom, by "50" and put a 'wait 50' before the call.

Furthermore, It plays the cutscene reentry sound. It's odd if it enters the wormhole with a boom but exits it silently.

            ...
            if
                30@ == 0
            then
                0AB4: 24@ = var 900
                0AAD: set_mp3 24@ perform_action 0                
                0AC5: link_3d_audiostream 24@ to_vehicle 0@
                0AAD: set_mp3 24@ perform_action 1
                0169: set_fade_color_RGB 255 255 255
                016A: fade 0 time 0

                //  ---  BEGIN (part 1/2)
                wait 50
                0AB1: call_scm_func @TimeTeleport num_params 2 car 0@ nop 0 store_to 11@ 12@ 13@
                0AB4: 24@ = var 910
                0AAD: set_mp3 24@ perform_action 0                
                0AC5: link_3d_audiostream 24@ to_vehicle 0@
                0AAD: set_mp3 24@ perform_action 1
                //  ---  END (part 1/2)

                // Regenerate world and clear wanted level
                03BA: clear_cars_from_cube_cornerA -100000.0 -100000.0 -100000.0  cornerB 100000.0  100000.0  100000.0
                042B: clear_peds_from_cube_cornerA -100000.0 -100000.0 -100000.0  cornerB 100000.0  100000.0  100000.0
                06DB: destroy_all_trains
                0395: clear_area 2 at 11@ 12@ 13@ radius 100000.0
                Player.ClearWantedLevel($PLAYER_CHAR)
                0AB3: var 9 = 1
                wait 50   
                // set past time
                0085: 5@ = 3@ // (int)
                0085: 6@ = 4@ // (int)   
                016A: fade 1 time 50
                0AB3: var 0 = 0
                066B: 18@ = attach_particle "BLUEEXPLOSION" to_car 0@ with_offset 0.0 2.0 0.0 flag 1
                064C: make_particle 18@ visible
                0003: shake_camera 160
                064F: remove_references_to_particle 18@
//                09E5: create_flash_light_at 11@ 12@ 13@ RGB_mask 60 180 255 radius 10.0
                04D5: create_corona_at 11@ 12@ 13@ radius 4.2 type 1 flare 0 RGB 200 200 200 // GREY - Star
                04D5: create_corona_at 11@ 12@ 13@ radius 4.2 type 0 flare 1 RGB 0 0 80      // BLUE - Corona        
                04D5: create_corona_at 11@ 12@ 13@ radius 4.0 type 2 flare 0 RGB 80 0 0      // RED  - Moon
                2@ = 1
                29@ = 0
                33@ = 0
                0AB4: 27@ = var 14
                27@ -= 1

                //  ---  BEGIN (part 2/2)
                //wait 100
                wait 50
                //  ---  END (part 2/2)

                0AB3: var 14 = 27@      
                0A92: create_custom_thread "bttf_cold.s" 0@
                0A92: create_custom_thread "bttf_vent.s" 0@
                return                
            // Cutscene Time Travel
            else
            ...

For cutscene, just put the call between 0650: destroy_particle and 03BA: clear_cars_fro... :

Keep in mind it's not the exact same as in the above code.

            ...
            // Cutscene Time Travel
            else                
                // Disable shadows.  They still show if you're invisible.                                       
                0A8D: 2@ = read_memory 0xA9AE54 size 1 virtual_protect 0
                0A8C: write_memory 0xA9AE54 size 1 value 0 virtual_protect 0
                // Make character unable to leave car and ignored_by_everyone
                07CC: set_player $PLAYER_CHAR button_15 0
                03BF: set_player $PLAYER_CHAR ignored_by_everyone 1
                gosub @TimeEntry
                wait 500
                0169: set_fade_color 0 0 0
                016A: fade 0 time 500
                wait 500                      
                0650: destroy_particle 18@
                0650: destroy_particle 19@

                //  ---  BEGIN
                0AB1: call_scm_func @TimeTeleport num_params 2 car 0@ dummy 30@ store_to 11@ 12@ 13@  // Just this one
                //  ---  END

                03BA: clear_cars_from_cube_cornerA -100000.0 -100000.0 -100000.0  cornerB 100000.0  100000.0  100000.0
                042B: clear_peds_from_cube_cornerA -100000.0 -100000.0 -100000.0  cornerB 100000.0  100000.0  100000.0
                06DB: destroy_all_trains
                0395: clear_area 2 at 11@ 12@ 13@ radius 100000.0
                Player.ClearWantedLevel($PLAYER_CHAR)
                0AB3: var 9 = 1  
                wait 1400
                016A: fade 1 time 500
                wait 1000
            end            ...

And this just at the very end of the script.

:TimeTeleport    
0AB4: 3@ = var 3  // Var 3: Destination MDY
0085: 4@ = 3@ // (int)
4@ /= 10000
4@ *= 10000
0062: 3@ -= 4@ // (int)

 //0AB4: 11@ = var 15
if  //aNd
 //11@ == 1
0AB6:   store_target_marker_coords_to 4@ 5@ 6@ // IF and SET
then
    02CE: 10@ = ground_z_at 4@ 5@ 6@
else
    IF
    3@ >= 3000
    THEN
        03DE: set_pedestrians_density_multiplier_to 10.0
        01EB: set_traffic_density_multiplier_to 10.0
        0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 0.0
    ELSE
        IF
        3@ > 2015
        THEN
            //0AD1: show_formatted_text_highpriority "Where is my scooter brother?" time 4500
            // TEST - LV Stadium
            4@ = 1099.7675
            5@ = 1530.5302
            6@ = 52.5875
            03DE: set_pedestrians_density_multiplier_to 2.0
            01EB: set_traffic_density_multiplier_to 2.0
        ELSE
            if
            3@ == 2015
            then
                //0AD1: show_formatted_text_highpriority "Welcome to the future!" time 4500
                // TEST - LV Airport
                4@ = 1412.1206
                5@ = 1566.6691
                6@ = 18.1073
                03DE: set_pedestrians_density_multiplier_to 1.0
                01EB: set_traffic_density_multiplier_to 1.0            
            else
                IF
                3@ > 1985
                THEN
                    03DE: set_pedestrians_density_multiplier_to 1.0
                    01EB: set_traffic_density_multiplier_to 1.0
                    0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 0.0
                ELSE
                    IF
                    3@ == 1985
                    THEN
                        //0AD1: show_formatted_text_highpriority "Uh, yeah.. The 80s!" time 4500
                        03DE: set_pedestrians_density_multiplier_to 0.6
                        01EB: set_traffic_density_multiplier_to 0.6
                        0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 0.0
                    ELSE
                        if
                        3@ == 1955
                        then
                            //0AD1: show_formatted_text_highpriority "uokk'N'Roll, baby!" time 4500
                            059A:  return_false
                            03DE: set_pedestrians_density_multiplier_to 0.4
                            01EB: set_traffic_density_multiplier_to 0.2
                            0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 0.0
                        else
                            IF
                            3@ == 1885
                            THEN
                                //0AD1: show_formatted_text_highpriority "Beware the cows, boy!" time 4500
                                03DE: set_pedestrians_density_multiplier_to 0.2
                                01EB: set_traffic_density_multiplier_to 0.0
                                0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 0.0
                            ELSE
                                if
                                3@ < 1885
                                then
                                    //0AD1: show_formatted_text_highpriority "Don't get erased from existance by killing anyone!" time 4500
                                    03DE: set_pedestrians_density_multiplier_to 0.1
                                    01EB: set_traffic_density_multiplier_to 0.0
                                    0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 0.0
                                else
                                    //0AD1: show_formatted_text_highpriority "~n~Welcome to~n~%d" time 4500 1@
                                    0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 0.0
                                end
                            END
                        end
                    END
                END
            end
        END
    END
    02CE: 10@ = ground_z_at 4@ 5@ 6@    
end

0AB4: 11@ = var 11
if
    11@ == 0
then
    06A2: get_car 0@ velocity_in_direction_XYZ 7@ 8@ 9@
    04E4: refresh_game_renderer_at 4@ 5@
    03CB: set_rendering_origin_at 4@ 5@ 10@    
    08C7: put_actor $PLAYER_ACTOR at 4@ 5@ -100.0 dont_warp_gang // versionB
    7@ /= 50.0
    8@ /= 50.0
    9@ /= 50.0    
    07D5: set_car 0@ velocity_in_direction_XYZ 7@ 8@ 9@ rotation_velocitiesXY 0.0 0.0 unk 0.0
else
    04E4: refresh_game_renderer_at 4@ 5@
    03CB: set_rendering_origin_at 4@ 5@ 10@
    01BC: put_object 1@ at 4@ 5@ 6@
    Camera.Restore_WithJumpCut()
end
0AB2: ret 3 4@ 5@ 6@

EDIT: Updated. was crashy.

Edited by uokka

Share this post


Link to post
Share on other sites

Nice! However, I think I would have some difficulty taking this from timetravel.s and putting it into timecircuits.cs. In timecircuits.cs, traffic by year and all the ped settings are already in place. All I need is a teleport section. Or, at least my modded timecircuits.cs in Delorean88MP's mod.

Share this post


Link to post
Share on other sites

Oh, well then just comment out / delete what you don't need.

--

EDIT

It wouldn't make sense to integrate this into timecircuit.cs because timetravel.s already takes care of recreating the time machine after time traveling for both modes independantly, playing sounds, attaching stuff to the car etc, which variables are stored local in this script. The 'time values' from timecircuit.cs however are globally accessable so it's simpler (which is mostly always better) to not dublicate code.

That population stuff is rather simple though and doesn't need to be in a special place I'd say. Just delete it from my script.

Hmm, although I could think that it would work better to set the new population value before the map gets cleared of all cars and peds (which always happens when timetraveling). But I'm totally guessing here. If it works from within timecircuit.cs, why not.

Edited by uokka

Share this post


Link to post
Share on other sites

Can anyone help me out with this (who knows C++):

I'm trying to make an ASI plugin for VC that removes the transparent light blocks. I have a series of memory addresses I had gotten from a cleo script by ThirteenAG that does the same thing. Here's what I have:

// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "memory.h"
#include <windows.h>
#include <iostream>

#pragma unmanaged

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )

{
	DisableThreadLibraryCalls(hModule);
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		// DO STUFF HERE
		//VirtualProtectEx(NULL, (LPVOID)0x543A4A, sizeof(0x00695870), PAGE_EXECUTE_READWRITE, 0); // Remove protection on protected addresses 
		//WriteProcessMemory(NULL, (LPVOID)0x543A4A, (LPCVOID)0x00695870, sizeof(0x00695870), NULL);
		// VirtualProtectEx(NULL, (LPVOID)0x543A4A, sizeof(0x00695870), 0, 0); // Restore protection to address after write
		//	VirtualProtectEx(NULL, (LPVOID)0x0058D8FE, sizeof(0x74), PAGE_EXECUTE_READWRITE, 0); // Remove protection on protected addresses 
		//WriteProcessMemory(NULL, (LPVOID)0x0058D8FE, (LPCVOID)0x74, sizeof(0x74), NULL);
		//  VirtualProtectEx(NULL, (LPVOID)0x0058D8FE, sizeof(0x74), 0, 0); // Restore protection to address after write
		//	VirtualProtectEx(NULL, (LPVOID)0x0058D972, sizeof(0x74), PAGE_EXECUTE_READWRITE, 0); // Remove protection on protected addresses 
		//	WriteProcessMemory(NULL, (LPVOID)0x0058D972, (LPCVOID)0x74, sizeof(0x74), NULL);
		//   VirtualProtectEx(NULL, (LPVOID)0x0058D972, sizeof(0x74), 0, 0); // Restore protection to address after write
		//	VirtualProtectEx(NULL, (LPVOID)0x0058E0A3, sizeof(0x74), PAGE_EXECUTE_READWRITE, 0); // Remove protection on protected addresses 
		//	WriteProcessMemory(NULL, (LPVOID)0x0058E0A3, (LPCVOID)0x74, sizeof(0x74), NULL);
		//     VirtualProtectEx(NULL, (LPVOID)0x0058E0A3, sizeof(0x74), 0, 0); // Restore protection to address after write
		//	VirtualProtectEx(NULL, (LPVOID)0x0058E10D, sizeof(0x74), PAGE_EXECUTE_READWRITE, 0); // Remove protection on protected addresses 
		//	WriteProcessMemory(NULL, (LPVOID)0x0058E10D, (LPCVOID)0x74, sizeof(0x74), NULL);
		//     VirtualProtectEx(NULL, (LPVOID)0x0058E10D, sizeof(0x74), 0, 0); // Restore protection to address after write
		//	VirtualProtectEx(NULL, (LPVOID)0x00543B92, sizeof(0x0067E188), PAGE_EXECUTE_READWRITE, 0); // Remove protection on protected addresses 
		//	WriteProcessMemory(NULL, (LPVOID)0x00543B92, (LPCVOID)0x0067E188, sizeof(0x0067E188), NULL);
		//     VirtualProtectEx(NULL, (LPVOID)0x00543B92, sizeof(0x0067E188), 0, 0); // Restore protection to address after write
		//	VirtualProtectEx(NULL, (LPVOID)0x00543A52, sizeof(0x00696AA0), PAGE_EXECUTE_READWRITE, 0); // Remove protection on protected addresses 
		//	WriteProcessMemory(NULL, (LPVOID)0x00543A52, (LPCVOID)0x00696AA0, sizeof(0x00696AA0), NULL);
		//     VirtualProtectEx(NULL, (LPVOID)0x00543A52, sizeof(0x00696AA0), 0, 0); // Restore protection to address after write

		Unprotect(0x543A4A, 4);
		memset((PVOID)0x543A4A, 0x00695870, 4);
		Unprotect(0x0058D8FE, 1);
		memset((PVOID)0x0058D8FE, 0x74, 1);
		Unprotect(0x0058D972, 1);
		memset((PVOID)0x0058D972, 0x74, 1);
		Unprotect(0x0058E0A3, 1);
		memset((PVOID)0x0058E0A3, 0x74, 1);
		Unprotect(0x0058E10D, 1);
		memset((PVOID)0x0058E10D, 0x74, 1);
		Unprotect(0x00543B92, 4);
		memset((PVOID)0x00543B92, 0x0067E188, 4);
		Unprotect(0x00543A52, 4);
		memset((PVOID)0x00543A52, 0x00696AA0, 4);
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
	return TRUE;
}

Here is ThirteenAG's script:

           05DF: write_memory 0x543A4A size 4 value 0x00695870 virtual_protect 1 
            
            05DF: write_memory 0x0058D8FE size 1 value 0x74 virtual_protect 1     //disable lightbox 1     
            05DF: write_memory 0x0058D972 size 1 value 0x74 virtual_protect 1     //disable lightbox 2
            05DF: write_memory 0x0058E0A3 size 1 value 0x74 virtual_protect 1     //disable lightbox 3
            05DF: write_memory 0x0058E10D size 1 value 0x74 virtual_protect 1     //disable lightbox 4  
                
            05DF: write_memory 0x00543B92 size 4 value 0x0067E188  virtual_protect 1     //lamp corona stretch
            05DF: write_memory 0x00543A52 size 4 value 0x00696AA0  virtual_protect 1     //car lights stretch

When I run VC, it freezes as soon as Marty appears in the game. What am I doing wrong?

Is there any way to fix this?

Edited by BTTFModMachine

Share this post


Link to post
Share on other sites

Er- I'm having some problems here installing the beta 3 of your mod. I have a clean install of San Andreas with Delorean88MP's BTTF mod, it works fine. I install your mod, then when I start up GTA SA and open a save, the screen flickers then goes back to normal windows. No error report, or crash log or anything of the sort. And I can confirm that when I remove your mod, it works fine. Am I forgeting a step?

Share this post


Link to post
Share on other sites

I've updated the ASI.

// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include <memory.h>
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <minwindef.h>

//#pragma unmanaged

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)

{
	DisableThreadLibraryCalls(hModule);
	switch (ul_reason_for_call)
	{
	    case DLL_PROCESS_ATTACH:
		{
	       Unprotect(0x543A4A, 4);
		   memset((PVOID)0x543A4A, 0x00695870, 4);
		   Unprotect(0x0058D8FE, 1);
		   memset((PVOID)0x0058D8FE, 0x74, 1);
		   Unprotect(0x0058D972, 1);
		   memset((PVOID)0x0058D972, 0x74, 1);
		   Unprotect(0x0058E0A3, 1);
		   memset((PVOID)0x0058E0A3, 0x74, 1);
		   Unprotect(0x0058E10D, 1);
		   memset((PVOID)0x0058E10D, 0x74, 1);
		   Unprotect(0x00543B92, 4);
		   memset((PVOID)0x00543B92, 0x0067E188, 4);
		   Unprotect(0x00543A52, 4);
		   memset((PVOID)0x00543A52, 0x00696AA0, 4);
		   break;
		}	
	}
	return TRUE;
}

I still get unhandled exception c0000005 at address 00543b90. I am using this script as an example:

https://code.google.com/p/vcmp-enhancement-asi/source/browse/VCMPEnhance/dllmain.cpp

Share this post


Link to post
Share on other sites

Hey Guys if got an sa limit adjuster crash as soon when im in the main menu after i started my game.

GTA:SA Crashed, Debug Info Follows:






GTA Info:






Version: US 1.0


Last File Loaded: MODELS\FRONTEN2.TXD


Last Library Loaded: 


Error: Unknown






Assembly Info:






Exception At Address: 0x004DFE92


Exception Code: 0xc0000005 (EXCEPTION_ACCESS_VIOLATION)






Registers:


EAX: 0x0CC3B1FC EBX: 0x0404A81E


ECX: 0x03138EB7 EDX: 0x040B7ED0


ESI: 0x117A7A06 EDI: 0x0ADBF000


EBP: 0x0404A780 ESP: 0x0028FD4C

Share this post


Link to post
Share on other sites

"data execution preventation" or something like that. Try google. ;)

  • Like 1

Share this post


Link to post
Share on other sites

I have a load of gta vc bttf files and quite a few bttf san an files ,that i have downloaded over the last few years.

I was looking at installing the san an bttf mods,but the is so many different files ,it's hard to know where to start.

Is there a simple way to get the latest and best installed in to the game?

I have a few versions of a mod by someone called el0daniell10 or edi ,2 are abiout 80mb and one is 500mb approx.(they have the 1.3.2 mini installer included)

I have grabbed all the files from BTTFModMachine 's page.

Can anyone ,help to simplfy this ,thanks.

Edited by chubbychops

Share this post


Link to post
Share on other sites

el0daniell10's mod and Delorean88MP's mod are the same. The only difference between the two is the way they're installed. I would go with Delorean88MP's mod because it has a single installer (extractor).

The rule of thumb: to get the latest and best of the BTTFSA mod, you really have to custom build it yourself (combine features from multiple BTTFSA mods). You also have to know some coding principles. :thumbs:

The main files you want to change are the files in \CLEO\, \models\gta3.img, and \data. To modify cleo scripts, use Sanny Builder. http://sannybuilder.com/

To install vehicles use GGMM: http://www.gtagarage.com/mods/show.php?id=434

To install other model mods in SA use Alci's IMG Editor: http://www.gtagarage.com/mods/show.php?id=17269

When you install vehicles, you also have to modify files in \data\: vehicles.ide, carcols.dat, handling.cfg, carmods.dat, etc.

If you install more deloreans, you might have to add engine sounds in other sound banks. To do this, use SAAT (San Andreas Audio Toolkit): http://www.gtagarage.com/mods/show.php?id=5777

I recommend uokka's radio control delorean script rather than the one included with Delorean88MP's mod (crashes). I also recommend uokka's hover script rather than the model switch helicopter hover. Remember, uokka's scripts require CLEO 4. The BTTFSA mod has CLEO 3 installed. Make a note of that. I do not recommend Programist's Jan 03 2012 mod along with uokka's scripts (I just took sounds and effects from Programist's).

Make sure you back up your SA installation before installing these mods. That way, you don't have to run the installer from the disk again.

So, that's the long explanation. Heavy, huh?

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for the reply .

I think the 500mb approx is the one i got from a googledrive link posted by Delorean88mp on his utube channel.

I've been looking at a few sites and it does seem that some of the best work doesn't see a public release.

Though some great things do get released from time to time.

I have a few files from uokka ,so it's good to know ,some of his work is good to install.

Anyway ,this has helped alot ,now i get to do the fun part..,installling them.

Thanks again.

.

This point you made about the use of cleo 3 for the mod and cleo4 .

Are you saying i can't use the mini mod1..3.2 ,if i'm going to use cleo 4?

(and do you mean the newest cleo 4?)

p.s..i have all the tools saved from ages ago in a very large backup.

Have u heard of one called G-IMG ?

I think it was abandoned though.,it was by david brennan.

GGMM is an excellent program,though it's a shame ,it hasn't ever been updated or improved upon.

Edited by chubbychops

Share this post


Link to post
Share on other sites