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

I'm making a police helicopter camera mod. I need help.


AHNHYOEUN
 Share

Recommended Posts

https://gamemodding.com/en/gta-san-andreas/cleo-scripts/51694-police-maverick-cam-mod.html
The link above is the original file. I am making a new police helicopter camera mod by modifying this file. By the way..

https://imgur.com/KuGxGUK

The texture created using 038E flickers whenever the ZOOM key is pressed. I want it to stay on and not blink. That is until you turn the feature off completely.

 

https://imgur.com/zSDLtj4

Second. This I haven't been able to solve for over a year. The principle of this mod is to summon an RC plane under the Police Maverick, hide the RC plane from view, and set the camera view to the RC plane.

Maybe that's why the point of view keeps changing. Even if I put it where I want it, after a few seconds the point of view goes somewhere else.
It seems to be similar to the phenomenon that when driving in a car in GTA:SA, even if you put the point of view at a certain location, it keeps changing to another location.
I have attached the script below, so please let me know how to solve it.

 

// HeliCam V3e by Grubitsh & Harace
{$CLEO .cs}
 
[email protected] = 1   

:HELICAM_01
wait 0 
if or 
   Actor.DrivingVehicleType($PLAYER_ACTOR, #LEVIATHN)
   Actor.DrivingVehicleType($PLAYER_ACTOR, #POLMAV)
   Actor.DrivingVehicleType($PLAYER_ACTOR, #RAINDANC)
else_jump @HELICAM_02 

:HELICAM_02
if or
   Actor.DrivingVehicleType($PLAYER_ACTOR, #LEVIATHN)
   Actor.DrivingVehicleType($PLAYER_ACTOR, #POLMAV)
   Actor.DrivingVehicleType($PLAYER_ACTOR, #RAINDANC)
else_jump @HELICAM_19 
wait 0 
Actor.StorePos($PLAYER_ACTOR, [email protected], [email protected], [email protected])
if and
   not Actor.DrivingVehicleType($PLAYER_ACTOR, #LEVIATHN)
       Actor.DrivingVehicleType($PLAYER_ACTOR, #POLMAV)
       Actor.DrivingVehicleType($PLAYER_ACTOR, #RAINDANC)
else_jump @HELICAM_03 
Camera.SetBehindPlayer
Camera.Restore_WithJumpCut

:HELICAM_03
if 
0AB0:   key_pressed 101 
else_jump @HELICAM_07 
[email protected] = Actor.CurrentCar($PLAYER_ACTOR)
wait 300
if and
056E:   car [email protected] defined 
056E:   car [email protected] defined 
else_jump @HELICAM_04 
jump @HELICAM_06 

:HELICAM_04
Model.Load(#RCBARON)

:HELICAM_05
wait 0 
if 
   Model.Available(#RCBARON)
else_jump @HELICAM_05 
[email protected] = Car.Create(#RCBARON, [email protected], [email protected], 2000.0)
[email protected] = Car.Create(#RCBARON, [email protected], [email protected], 2000.0)
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -2.5 rotation 0.0 0.0 0.0 
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -2.5 rotation 0.0 0.0 0.0 
0338: set_car [email protected] visibility 0 
0338: set_car [email protected] visibility 0 
03F0: enable_text_draw 1 

:HELICAM_06
0158: camera_on_car [email protected] mode 18 switchstyle 2
0922: set_camera_zoom_from 80.0 to 80.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~1.0X" time 4.32e+7

:HELICAM_07
wait 0
056E:   car [email protected] defined
056E:   car [email protected] defined 
else_jump @HELICAM_18
03E3: set_texture_to_be_drawn_antialiased 1 
038E: draw_box_position 278.0 224.0 size 71.4 2.4 RGBA 0 0 0 240           // 가로 왼쪽 (외곽선) 
038E: draw_box_position 362.0 224.0 size 71.4 2.4 RGBA 0 0 0 240           // 가로 오른쪽 (외곽선) 
038E: draw_box_position 320.0 192.0 size 2.0 51.0 RGBA 0 0 0 240           // 세로 아래 (외곽선) 
038E: draw_box_position 320.0 256.0 size 2.0 51.0 RGBA 0 0 0 240           // 세로 위 (외곽선) 
038E: draw_box_position 278.0 224.0 size 70.8 1.8 RGBA 255 255 255 200     // 가로 왼쪽 
038E: draw_box_position 362.0 224.0 size 70.8 1.8 RGBA 255 255 255 200     // 가로 오른쪽 
038E: draw_box_position 320.0 192.0 size 1.4 50.4 RGBA 255 255 255 200     // 세로 아래 
038E: draw_box_position 320.0 256.0 size 1.4 50.4 RGBA 255 255 255 200     // 세로 위 
else_jump @HELICAM_08 

:HELICAM_08
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -2.5 rotation 0.0 0.0 0.0 
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -2.5 rotation 0.0 0.0 0.0 
if
0AB0:   key_pressed 101 
else_jump @HELICAM_09 
0931: lock_camera_zoom 0 
Camera.SetBehindPlayer
Camera.Restore_WithJumpCut
08B1: enable_night_vision 0
00BE: text_clear_all  
[email protected] = 1 
Car.Destroy([email protected])
Car.Destroy([email protected])
wait 300 

:HELICAM_09
if 
0AB0:   key_pressed 97
else_jump @HELICAM_10
wait 300   
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 60.0 to 60.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~4.0X" time 4.32e+7

:HELICAM_10
if 
0AB0:   key_pressed 98
else_jump @HELICAM_11 
wait 300
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 40.0 to 40.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~8.0X" time 4.32e+7

:HELICAM_11
if 
0AB0:   key_pressed 99
else_jump @HELICAM_12
wait 300 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 20.0 to 20.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~16.0X" time 4.32e+7

:HELICAM_12
if 
0AB0:   key_pressed 100
else_jump @HELICAM_13
wait 300 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 10.0 to 10.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~32.0X" time 4.32e+7

:HELICAM_13
if 
0AB0:   key_pressed 102
else_jump @HELICAM_14
wait 300 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 80.0 to 80.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~1.0X" time 4.32e+7 

:HELICAM_14
if 
0AB0:   key_pressed 110 
else_jump @HELICAM_17 
[email protected] += 1 
if 
  [email protected] == 1 
else_jump @HELICAM_15  
wait 300
08B1: enable_night_vision 0 

:HELICAM_15
if 
  [email protected] == 2
else_jump @HELICAM_16   
wait 300
08B1: enable_night_vision 1
[email protected] = 0  

:HELICAM_16
wait 0 

:HELICAM_17
jump @HELICAM_07 

:HELICAM_18
jump @HELICAM_02 

:HELICAM_19
jump @HELICAM_01

 

Edited by AHNHYOEUN
Link to comment
Share on other sites

33 minutes ago, AHNHYOEUN said:

The texture created using 038E flickers whenever the ZOOM key is pressed. I want it to stay on and not blink.

The blinking is an artifact of the wait 300 statement after a keypress. This is problematic as without the wait your key press will execute multiple times.

 

Ideally, a draw loop will only have one wait statement in the entire loop. Wait 0 is a safe setting as players with very high frame rates will see flickering if the wait is too long. Any additional waits in the loop are likely to cause flickering because any wait will last at least one frame.

 

Look for a way to record which key was pressed in a variable, and then don't accept new key presses until that key is no longer pressed.

Link to comment
Share on other sites

6 hours ago, OrionSR said:

The blinking is an artifact of the wait 300 statement after a keypress. This is problematic as without the wait your key press will execute multiple times.

 

Ideally, a draw loop will only have one wait statement in the entire loop. Wait 0 is a safe setting as players with very high frame rates will see flickering if the wait is too long. Any additional waits in the loop are likely to cause flickering because any wait will last at least one frame.

 

Look for a way to record which key was pressed in a variable, and then don't accept new key presses until that key is no longer pressed.

yes. I remember compiling after recklessly modifying wait 0 to solve this method in the past.

But.. I don't know how to code by putting a variable. I'm really sorry, but can you give me a little more hint?

Link to comment
Share on other sites

Here's an untested snippet I put together based on your input codes that shows what I had in mind using high level constructs. But I think there might be an easier solution.

if
  [email protected] == 0
then
  if                                                                           
    0AB0:   key_pressed 97                                                       
  then
    [email protected] = 97                                                                      
    0931: lock_camera_zoom 0                                                     
    0922: set_camera_zoom_from 60.0 to 60.0 timelimit 100 smooth_transition 1    
    0931: lock_camera_zoom 1                                                     
    0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~4.0X" time 4.32e+7
    break // might prevent issues with multiple keys pressed         
  end                                                                             
  if                                                                           
    0AB0:   key_pressed 98                                                       
  then
    [email protected] = 98                                                                      
    0931: lock_camera_zoom 0                                                     
    0922: set_camera_zoom_from 40.0 to 40.0 timelimit 100 smooth_transition 1    
    0931: lock_camera_zoom 1                                                     
    0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~8.0X" time 4.32e+7
    break // might prevent issues with multiple keys pressed         
  end  
  {...}          
else
  if
    0AB0:   key_pressed [email protected]
  then
    [email protected] = 0
  end
end

 

It doesn't look like your draw commands respond to your inputs at all. This function could easily be farmed out to secondary script where it can happily draw at full speed until terminated by the primary script.

 

Controlling cleo script with another cleo script is pretty easy. It's too late for me to dig up a concrete example but I'll try look up some of the more useful opcodes for reference. The main trick is keeping the secondary script from executing automatically on start up. I usually change my cleo directive to {$CLEO .s}. Another strategy I've seen and am anxious to try is to call the script while passing a variable. The secondary script can be coded to terminate if the passed variable is empty.

 

Useful opcodes for managing other scripts:

0A92: stream_custom_script "ShowTextBox.s" // + arguments
0AAA: [email protected] = get_script_struct_named 'OTB'  // (if and set?)
0ABA: terminate_all_custom_scripts_with_this_name 'BENZIN'

 

Examples can be found in the link in this RTSM topic. The source text is included in the scripts - choose the source option when decompiling with Sanny. It's kind of a lot to take in all at once. It might help to read through the whole topic.

Link to comment
Share on other sites

2 hours ago, OrionSR said:

Here's an untested snippet I put together based on your input codes that shows what I had in mind using high level constructs. But I think there might be an easier solution.

if
  [email protected] == 0
then
  if                                                                           
    0AB0:   key_pressed 97                                                       
  then
    [email protected] = 97                                                                      
    0931: lock_camera_zoom 0                                                     
    0922: set_camera_zoom_from 60.0 to 60.0 timelimit 100 smooth_transition 1    
    0931: lock_camera_zoom 1                                                     
    0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~4.0X" time 4.32e+7
    break // might prevent issues with multiple keys pressed         
  end                                                                             
  if                                                                           
    0AB0:   key_pressed 98                                                       
  then
    [email protected] = 98                                                                      
    0931: lock_camera_zoom 0                                                     
    0922: set_camera_zoom_from 40.0 to 40.0 timelimit 100 smooth_transition 1    
    0931: lock_camera_zoom 1                                                     
    0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~8.0X" time 4.32e+7
    break // might prevent issues with multiple keys pressed         
  end  
  {...}          
else
  if
    0AB0:   key_pressed [email protected]
  then
    [email protected] = 0
  end
end

 

It doesn't look like your draw commands respond to your inputs at all. This function could easily be farmed out to secondary script where it can happily draw at full speed until terminated by the primary script.

 

Controlling cleo script with another cleo script is pretty easy. It's too late for me to dig up a concrete example but I'll try look up some of the more useful opcodes for reference. The main trick is keeping the secondary script from executing automatically on start up. I usually change my cleo directive to {$CLEO .s}. Another strategy I've seen and am anxious to try is to call the script while passing a variable. The secondary script can be coded to terminate if the passed variable is empty.

 

Useful opcodes for managing other scripts:

0A92: stream_custom_script "ShowTextBox.s" // + arguments
0AAA: [email protected] = get_script_struct_named 'OTB'  // (if and set?)
0ABA: terminate_all_custom_scripts_with_this_name 'BENZIN'

 

Examples can be found in the link in this RTSM topic. The source text is included in the scripts - choose the source option when decompiling with Sanny. It's kind of a lot to take in all at once. It might help to read through the whole topic.

:HELICAM_09
if or
[email protected] == 0
0AB0:   key_pressed 111
else_jump @HELICAM_10
[email protected] = 111 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 80.0 to 80.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~1.0X" time 4.32e+7 

:HELICAM_10
if or 
[email protected] == 0
0AB0:   key_pressed 97
else_jump @HELICAM_11
[email protected] = 97   
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 60.0 to 60.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~4.0X" time 4.32e+7

I applied the method you gave me and it works perfectly the way I want! Of course, I made it a little dirty.. But THANK YOU. I'll read the rest later.

However, in addition to ZOOM mode, I want to solve the flickering phenomenon in NIGHT VISION mode, but when I use this method here, an error occurs. How should I do this?
 

:HELICAM_15
if 
0AB0:   key_pressed 102 
else_jump @HELICAM_18 
[email protected] += 1 
if 
  [email protected] == 1 
else_jump @HELICAM_16 
wait 300 
08B1: enable_night_vision 0 

:HELICAM_16
if 
  [email protected] == 2
else_jump @HELICAM_17   
wait 300
08B1: enable_night_vision 1
[email protected] = 0  

 

Link to comment
Share on other sites

6 hours ago, AHNHYOEUN said:

when I use this method here, an error occurs

What error? I was expecting the script to work without flickering if all waits were removed except the single wait required for a loop.

 

I'm having a bit of trouble resolving the logic flow of this script. The labels appear to have changed in your snippet, which isn't helping. I suggest using more descriptive label names, like in this example below. I reworked the logic considerably, and used the IF..THEN..ELSE.END construct again. You can dirty things up all you want.

 

:Toggle_Night_Vision
if
  0AB0:   key_pressed 102 
then
  if
    [email protected] == 1 
  then
    [email protected] = 0
  else
    [email protected] = 1
  end
  08B1: enable_night_vision [email protected]
end

 

A couple of notes: 

0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~1.0X" time 4.32e+7

The time parameter should be an integer representing milliseconds. 4.32e+7 is a float, and will be interpreted as a monstrously large integer. Also, this is a draw loop. If you want the zoom level to always be displayed then consider drawing the text where you want it displayed and keep the text messages available for other purposes.

 

Consider moving this segment to the Initialization segment at the top of the script - codes that only need to run once.

:HELICAM_04
Model.Load(#RCBARON)

:HELICAM_05
wait 0 
if 
   Model.Available(#RCBARON)
else_jump @HELICAM_05 

 

Link to comment
Share on other sites

On 12/23/2022 at 4:10 AM, OrionSR said:

What error? I was expecting the script to work without flickering if all waits were removed except the single wait required for a loop.

 

I'm having a bit of trouble resolving the logic flow of this script. The labels appear to have changed in your snippet, which isn't helping. I suggest using more descriptive label names, like in this example below. I reworked the logic considerably, and used the IF..THEN..ELSE.END construct again. You can dirty things up all you want.

 

:Toggle_Night_Vision
if
  0AB0:   key_pressed 102 
then
  if
    [email protected] == 1 
  then
    [email protected] = 0
  else
    [email protected] = 1
  end
  08B1: enable_night_vision [email protected]
end

 

A couple of notes: 

0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~1.0X" time 4.32e+7

The time parameter should be an integer representing milliseconds. 4.32e+7 is a float, and will be interpreted as a monstrously large integer. Also, this is a draw loop. If you want the zoom level to always be displayed then consider drawing the text where you want it displayed and keep the text messages available for other purposes.

 

Consider moving this segment to the Initialization segment at the top of the script - codes that only need to run once.

:HELICAM_04
Model.Load(#RCBARON)

:HELICAM_05
wait 0 
if 
   Model.Available(#RCBARON)
else_jump @HELICAM_05 

 

 

Thank you for answer. First of all, I tried the way I told you about Night Vision, but it doesn't work and the crosshair (038E of HELICAM_07) keeps blinking. No matter how many times I tried, it still failed.

I've attached the code below, which currently works fine.
 

// TEST
{$CLEO .cs}
 
[email protected] = 1   

:HELICAM_01
wait 0 
if
   Actor.DrivingVehicleType($PLAYER_ACTOR, #POLMAV)
else_jump @HELICAM_02 

:HELICAM_02
wait 0
   Actor.DrivingVehicleType($PLAYER_ACTOR, #POLMAV)
else_jump @HELICAM_20 
Actor.StorePos($PLAYER_ACTOR, [email protected], [email protected], [email protected])
if
   not Actor.DrivingVehicleType($PLAYER_ACTOR, #POLMAV)
else_jump @HELICAM_03 
Camera.SetBehindPlayer
Camera.Restore_WithJumpCut

:HELICAM_03
if 
0AB0:   key_pressed 106 
else_jump @HELICAM_07 
[email protected] = Actor.CurrentCar($PLAYER_ACTOR)
wait 300
if and
056E:   car [email protected] defined 
056E:   car [email protected] defined 
else_jump @HELICAM_05 
jump @HELICAM_06 

:HELICAM_05
wait 0 
if or
   Model.Load(#RCBARON) 
   Model.Available(#RCBARON)
else_jump @HELICAM_05 
[email protected] = Car.Create(#RCBARON, [email protected], [email protected], 2000.0)
[email protected] = Car.Create(#RCBARON, [email protected], [email protected], 2000.0)
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -3.0 rotation 0.0 0.0 0.0 
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -3.0 rotation 0.0 0.0 0.0 
0338: set_car [email protected] visibility 0 
0338: set_car [email protected] visibility 0 
03F0: enable_text_draw 1 

:HELICAM_06
0158: camera_on_car [email protected] mode 18 switchstyle 2
0922: set_camera_zoom_from 80.0 to 80.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~1.0X" time 4.32e+7

:HELICAM_07
wait 0
056E:   car [email protected] defined
056E:   car [email protected] defined 
else_jump @HELICAM_19
03E3: set_texture_to_be_drawn_antialiased 1 
038E: draw_box_position 278.0 224.0 size 71.4 2.4 RGBA 0 0 0 240           // 가로 왼쪽 (외곽선) 
038E: draw_box_position 362.0 224.0 size 71.4 2.4 RGBA 0 0 0 240           // 가로 오른쪽 (외곽선) 
038E: draw_box_position 320.0 192.0 size 2.0 51.0 RGBA 0 0 0 240           // 세로 아래 (외곽선) 
038E: draw_box_position 320.0 256.0 size 2.0 51.0 RGBA 0 0 0 240           // 세로 위 (외곽선) 
038E: draw_box_position 278.0 224.0 size 70.8 1.8 RGBA 255 255 255 200     // 가로 왼쪽 
038E: draw_box_position 362.0 224.0 size 70.8 1.8 RGBA 255 255 255 200     // 가로 오른쪽 
038E: draw_box_position 320.0 192.0 size 1.4 50.4 RGBA 255 255 255 200     // 세로 아래 
038E: draw_box_position 320.0 256.0 size 1.4 50.4 RGBA 255 255 255 200     // 세로 위 
else_jump @HELICAM_08 

:HELICAM_08
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -3.0 rotation 0.0 0.0 0.0 
0683: attach_car [email protected] to_car [email protected] with_offset 0.0 3.0 -3.0 rotation 0.0 0.0 0.0 
if or
0AB0:   key_pressed 106
   not Actor.DrivingVehicleType($PLAYER_ACTOR, #POLMAV) 
else_jump @HELICAM_09 
0931: lock_camera_zoom 0 
Camera.SetBehindPlayer
Camera.Restore_WithJumpCut
08B1: enable_night_vision 0
00BE: text_clear_all  
[email protected] = 1 
Car.Destroy([email protected])
Car.Destroy([email protected])
wait 300 

:HELICAM_09
if or
[email protected] == 1
0AB0:   key_pressed 111
else_jump @HELICAM_10
[email protected] = 111 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 80.0 to 80.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~1.0X" time 4.32e+7

:HELICAM_10
if or 
[email protected] == 1
0AB0:   key_pressed 97
else_jump @HELICAM_11
[email protected] = 97   
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 60.0 to 60.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~4.0X" time 4.32e+7

:HELICAM_11
if or
[email protected] == 1 
0AB0:   key_pressed 98
else_jump @HELICAM_12 
[email protected] = 98
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 45.0 to 45.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~8.0X" time 4.32e+7

:HELICAM_12
if or
[email protected] == 1 
0AB0:   key_pressed 99
else_jump @HELICAM_13
[email protected] = 99 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 30.0 to 30.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~16.0X" time 4.32e+7

:HELICAM_13
if or
[email protected] == 1 
0AB0:   key_pressed 100
else_jump @HELICAM_14
[email protected] = 100 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 15.0 to 15.0 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~32.0X" time 4.32e+7

:HELICAM_14
if or
[email protected] == 1 
0AB0:   key_pressed 101
else_jump @HELICAM_15
[email protected] = 101 
0931: lock_camera_zoom 0  
0922: set_camera_zoom_from 7.5 to 7.5 timelimit 100 smooth_transition 1  
0931: lock_camera_zoom 1 
0ACD: show_text_highpriority "~N~~N~~Y~ZOOM~N~~W~64.0X" time 4.32e+7

:HELICAM_15
if 
0AB0:   key_pressed 102 
else_jump @HELICAM_18 
[email protected] += 1 
if 
  [email protected] == 1 
else_jump @HELICAM_16  
wait 350
08B1: enable_night_vision 0 

:HELICAM_16
if 
  [email protected] == 2
else_jump @HELICAM_17   
wait 350
08B1: enable_night_vision 1
[email protected] = 0   

:HELICAM_17
wait 0 

:HELICAM_18
jump @HELICAM_07 

:HELICAM_19
jump @HELICAM_02 

:HELICAM_20
jump @HELICAM_01

 

Always displaying TEXT is also beyond my ability, so I used 4.32e+7. We will use this as an FXT so that it is always visible.

Finally, we consolidated Model.Load into one label. thanks for the point

 

https://imgur.com/zSDLtj4 (watch from 0.04 sec)
But I want to address this symptom first. As you can see in the link above, the point of view is not where you want it to, and it keeps moving arbitrarily. Is there no workaround for this?

I wrote a detailed description of the symptoms in the first thread.

Link to comment
Share on other sites

7 hours ago, AHNHYOEUN said:

As you can see in the link above, the point of view is not where you want it to, and it keeps moving arbitrarily. Is there no workaround for this?

I don't have much experience with camera controls. I'm wondering if perhaps a different camera mode might be more appropriate.

 

CamOnAString = 18

 

9 hours ago, AHNHYOEUN said:

I've attached the code below, which currently works fine.

No, not really. If you were to add a command to increase player money by 1 as part of one of your zoom segments, then I'd expect the money to increase by much more than 1 when that key is pressed - the amount depending on how quickly you pressed the key and your current frame rate. That doesn't cause any damage as written, but in another situation this could cause a lot of trouble.

 

What kind of help are you really hoping for here? Would you prefer to engage in a weeks long dialog intended to improve your coding skills so you can solve these sorts of problems on your own? Or should I just take over the script and mold it into a format that takes full advantages of advanced Sanny features intended to make the scripts easier to write, understand, and edit?

 

What is the purpose of the second RC vehicle ([email protected])?

Would your prefer a zoom multiplier (*2 or /2) to the current direct zoom level strategy that's using up so many available keys?

 

I think the priority for now is working out the camera tracking bug. See what you can work out with the various camera modes. I'm confident the blinking can be fixed, but there's not much point if the tracking issue isn't resolved.

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.