:
Destination Time
:
Present Time
:
Last Time Departed

uokka

Advanced Members
  • Content Count

    361
  • Joined

  • Last visited

  • Days Won

    36

Posts posted by uokka


  1. [...]

    uokka,i found your modloader on gta garage, [...]

    Not my ModLoader. Made by LINK/2012.

    --

    .DLLs and .ASIs Don't work well currently. Also several file formats are not yet supported. But the most important stuff, which makes ModLoader so awesome for me, are .DFFs, .TXDs and AUDIO files. Also several config files. You can even create one folder inside the ModLoader folder, containing a vehicle .DFF & .TXD, plus its required handling.cfg / vehicle.ide / carcols.dat / carmods.dat lines in a single text file. Bam.. installed. Oh, I'm off-topicking again..

    If you want to load UltraThing while already using a d3d9.dll, you can either try NTAuthority's 'fixed' SALA (sorry, dont have a link) or try chainloading it with ENBSeries. The latter is what I did to make UT's reflections work on Win7, without even having ENB activated.

    [PROXY]
    EnableProxyLibrary=1
    InitProxyFunctions=1
    ProxyLibrary=d3d9_UltraThing.dll
    ...
    

  2. @ BTTFModMachine,

    I agree. It's a great tool for testing mods.

    But it's not limited to just testing.. I just tryed to install Indra P's HQ hand models on my Anderius installation, but the .DFF allone, which I had to extract from my modded SA (since the server for Indra P's downloads is down), doesn't seem to be the complete mod. Now I have no idea what else belongs to that mod. This wouldn't have happen if I was using ML for that mod in the first place. (;

    Also, the tools used to edit GTA's files are mostly pretty old and buggy and can even sometimes produce bad results / corrupted files.

    With ModLoader, you never have to repair your installation - Re/Moving a single folder is enough.

    Imagine how easy it is to install mods for people that never modded GTA before.. Ah, so easy! I think I fell in love, sorry.

    • Like 1

  3. You don't know what complexity those things will have in the finished mod, neither do I. So I think It'd be pretty inaccurate to predict a time line for completition of such things from our point of view, especially if the mod team itself can't really tell when they're done.

    Also, if you build a boat and when you're nearly finished you notice that there is something really important not working as you planned, you shouldn't let anybody get in there or they won't be satisfied of sealing at all.


  4. FIRST! :P

    {CLEO .cs}
    0000:
     
    // Activate cheats
    //0A8C: write_memory 0x969166 size 1 value 1 virtual_protect 0  // "Cars Float Away when hit"
    //0A8C: write_memory 0x969152 size 1 value 1 virtual_protect 0  // "Cars can drive on water"
     
    // Deactivate cheats
    0A8C: write_memory 0x969166 size 1 value 0 virtual_protect 0  // "Cars Float Away when hit"
    0A8C: write_memory 0x969152 size 1 value 0 virtual_protect 0  // "Cars can drive on water"
     
    0a93: end_custom_tread
    

    Give it a file name with 'late' letters so it runs after the script that might activate the cheats (like 'z_cheats.cs').


  5. Its not a glitch but a feature.

    Its the "Cars Float Away when hit" cheat, activated via memory.

    Open the scripts with Sanny Builder and search for this:

    0A8C: write_memory 0x969166 size 1 value 1 virtual_protect 0
    

    Or this (same thing):

    0A8C: write_memory 9867622 size 1 value 1 virtual_protect 0
    

    IIRC, the "Cars can drive on water" cheat is also used.

    0x969152
    

    9867602
    

    When found, delete it and recompile.

    • Like 1

  6. The team won't loose that much if users getting bored lurking the forum (or asking 'the question'). Whenever they'll have something to show, or share, everyone will be back anyway. And a couple of geeks will always be here so the team won't feel lonly either. q:

    • Like 1

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


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


  9. The "Last file loaded" isn't necessarily the file thats causing the issue. In fact, it mostly never is.

    I was just reading on GTAF about project 2dfx, where guys increase certain model/map draw distance stuff. People there have as well reported crashes on leaving interiors (or rather entering back the real map).

    SALA (used in the bttf mod - d3d9.dll) is pretty buggy thus 'might' be causing those crashes.

    2dfx, which is a collection of mods, also includes an alternate limit adjuster. I'm not sure if it supports the same hacks but might be worth a try to get rid of SALA and use "limit_adjuster_gta3vcsa.asi" (yep, supports all three games).

    Additionally, you might want to update to Silent's ASI loader.

    • Like 1

  10. @Darth-Sidious,

    yeah, I understand. You can choose original bugs or user made bugs. q:

    @BTTFModMachine,

    The edited 'BttF_TimeTravel.s' works pretty well.

    I tryed to set the camera behind the car when time traveling in cut scene mode but that would need dozens of lines of code for funky math stuff because there seems to be no simple opcode available for that. I decided its not necessary.

    I left out remote controlled teleporting. Who needs that anyway.

    As you might have noticed, the car keeps its velocity. You better be aware of that when teleporting near buildings etc. (;

    OK.. put all this stuff at the very end of your timetravel.s so "nothing" is after that (except other functions or gosubs which do a 'return').

    :TimeTeleport    
    0AB4: 3@ = var 3  // Var 3: Destination MDY
    0085: 4@ = 3@ // (int)
    4@ /= 10000
    4@ *= 10000
    0062: 3@ -= 4@ // (int)
    
    if
    0AB1: call_scm_func @GetTargetByYear 1 3@ store_to 4@ 5@ 6@ 10@
    then
    else
        if
        0AB1: call_scm_func @GetTargetMarkerCoords 0 store_to 4@ 5@ 6@ 10@
        then
        else
            //0407: store_coords_to 2@ 3@ 4@ from_car 0@ with_offset 0.0 0.0 0.0
            059A:  return_false
        end
    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@
        0815: put_object 1@ at 4@ 5@ 6@ and_keep_rotation
    end    
    0AB2: ret 3 4@ 5@ 6@
    
    :GetTargetMarkerCoords
    if
    0AB6:   store_target_marker_coords_to 0@ 1@ 2@ // IF and SET
    then
        02CE: 3@ = ground_z_at 0@ 1@ 2@
        0AB2: ret 4 0@ 1@ 2@ 3@
    else
        059A:  return_false
    end
    
    :GetTargetByYear
    if
    0@ < 0
    then
        0AD1: show_formatted_text_highpriority "WARNING!~n~The Space-Time-Continuum is about to collapse.." time 3500
        059A:  return_false
    else
        IF
        0@ > 2015
        THEN
            0AD1: show_formatted_text_highpriority "Where is my scooter brother?" time 4500
            // TEST - LV Stadium
            0@ = 1099.7675
            1@ = 1530.5302
            2@ = 52.5875
            0485:  return_true
        ELSE
            if
            0@ == 2015
            then
                0AD1: show_formatted_text_highpriority "Welcome to the future!" time 4500
                // TEST - LV Airport
                0@ = 1412.1206
                1@ = 1566.6691
                2@ = 18.1073
                0485:  return_true
            else
                IF
                0@ == 1985
                THEN
                    0AD1: show_formatted_text_highpriority "Uh, yeah.. The 80s!" time 4500
                    059A:  return_false
                ELSE
                    if
                    0@ == 1955
                    then
                        0AD1: show_formatted_text_highpriority "uokk'N'Roll, baby!" time 4500
                        059A:  return_false
                    else
                        IF
                        0@ == 1885
                        THEN
                            0AD1: show_formatted_text_highpriority "Beware the cows, boy!" time 4500
                            059A:  return_false
                        ELSE
                            if
                            0@ < 1885
                            then
                                0AD1: show_formatted_text_highpriority "Don't get erased from existance by killing anyone!" time 4500
                                059A:  return_false
                            else
                                0AD1: show_formatted_text_highpriority "~n~Welcome to~n~%d" time 4500 0@
                                059A:  return_false
                            end
                        END
                    end
                END
            end
        END
    end
    02CE: 3@ = ground_z_at 0@ 1@ 2@
    0AB2: ret 4 0@ 1@ 2@ 3@
     
    

    Then scroll back up (at about line 165 in my script) and insert this line.

    0AB1: call_scm_func @TimeTeleport 2 0@ 0 store_to 11@ 12@ 13@
    

    It has to be placed in the part of the code which handles instant time traveling.

    EXAMPLE:

                ...
                0AB3: var 0 = 1                
                // Instant Time Travel  
                0AB4: 30@ = var 11
                if
                    30@ == 0
                then
                
                    0AB1: call_scm_func @TimeTeleport 2 0@ 0 store_to 11@ 12@ 13@    //  <--  Only me!
    
                    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
    
                    // 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 
                    ...
    

    Now, for the cut scene mode, the line is slightly different !

    0AB1: call_scm_func @TimeTeleport 2 0@ 30@ store_to 11@ 12@ 13@
    

    In my code edits, it's about 60 lines below.

    EXAMPLE:

                ...
                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@
    
                    0AB1: call_scm_func @TimeTeleport 2 0@ 30@ store_to 11@ 12@ 13@    //  <--  Me too!
     
                    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
                ...
    

    oops, made a mistake. Edited..

    • Like 1

  11. @Darth-Sidious, I'd say you're actually pretty off-topic..

    You need only the latest 'source code'. It will replace the old scripts.

    About the 'patches' (Models 11242009) I'm not absolutely sure. They are older than the latest 'main release', though.

    So I'd say you have the correct stuff.

    Unfortunately, those debug messages don't provide any info for mortals like us (or me at least). It needs pretty skilled hackers to investigate those memory addresses and find out what happened. I havn't seen anyone replying to such things here.

    The "last file loaded" does not tell you that this file contains a bug.

    Yep, it definitely has its bugs. In my edits, I removed some models and sounds. I'm speculating that, besides scripting bugs, GTAs limits are getting exceeded. Thats why SALA is used by the mod to increasing certain limits which again makes the game unstable too.

    However, crashes micht also be caused by incorrectly editing the came files, meaning the tools used for installing might have messed up something in the first place. You could try extracting the files from the installer using 7zip and install manuall using IMG Tool or similar.

    --

    @BTTFModMachine,

    I'm half way through with 'timetravel.s'. I'm making a 'function' that you can add at the end of the script and then call it from anywhere in that script so no need to move hand over hand and edit small parts everywhere. I'm having difficulties though setting the camera position while in cut scene. And I can't really test it for remote controlling because my remote script is super bugged. :P