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

    3. Suggestions

Code little help


Diegoti
 Share

Recommended Posts

Code .cs

 

 

{$CLEO .cs}//-------------MAIN---------------0000: NOP 0570: [email protected] = create_asset_radar_marker_with_icon 52 at -1872.4995 -218.2075 18.375Model.Load(#PEREN):startwait 0 if and0AB0:   key_pressed 51 0AB0:   key_pressed 6600FE:   actor $PLAYER_ACTOR sphere 0 in_sphere -1872.4995 -218.2075 18.375 radius 3.0 3.0 3.0else_jump @start wait 0if010F:   player $PLAYER_CHAR wanted_level > 0jf @wl1jump @go:wl1Player.Money($PLAYER_CHAR) += [email protected] = Car.Create(#PEREN, -1885.355, -208.8602, 23.0923)Car.Angle([email protected]) = 270.0:gowait 1000jump @start 

 

 

 

It spawn a car when press 1+b it that are and it correctly but i want to add more (2+b or 3+b) in the same script

i just need someone add 2 more X+b and ill see how to do it be my self in a future.

 

Please help and thanks

Edited by Diegoti
Link to comment
Share on other sites

First of all.
Without making any changes in your script logic, i rewrote it in order to be more readable and understandable:

Take a look:

 

{$CLEO .cs}//-------------MAIN---------------thread 'Script' // you can replace "0000: nop" instructions by naming thread instructions, it makes code more elegant and after decompiling (you really don't need to decompile your scripts) labels will decompile as "YourThreadNames_X" instead of simply "NONAME_X"0570: [email protected] = create_asset_radar_marker_with_icon 52 at -1872.4995 -218.2075 18.375Model.Load(#PEREN)while true    repeat    wait 0     until 0AB0:   key_pressed 51 and 0AB0:   key_pressed 66 and 00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere -1872.4995 -218.2075 18.375 radius 3.0 3.0 3.0        if 810F:   not player $PLAYER_CHAR wanted_level > 0    then        Player.Money($PLAYER_CHAR) += -10        [email protected] = Car.Create(#PEREN, -1885.355, -208.8602, 23.0923)        Car.Angle([email protected]) = 270.0    end        wait 1000end

 



As general tip, always use high level syntax instead of low level syntax. Using Labels and jump instructions to labels is a headache you can avoid completely by using high level. Did you notice i didn't need a single label in the code? Of course you will need labels mandatory when creating subroutines:

 

{$CLEO .cs}thread 'ExampleScript'gosub @MySubroutine0A93: end_custom_thread//==============:MySubroutineif [email protected] == 0then    // Do somethingelse    // Do other stuffendreturn

 



You can read more about high level SCM coding here. Or simply consult Sanny Builder Help Sections.



Now to your question:
I'm not sure what exactly do you want to do but i think something like this:

 

{$CLEO .cs}//-------------MAIN---------------thread 'Script'0570: [email protected] = create_asset_radar_marker_with_icon 52 at -1872.4995 -218.2075 18.375Model.Load(#PEREN)// Load other modelswhile true    wait 0        if 00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere -1872.4995 -218.2075 18.375 radius 3.0 3.0 3.0    then        if 810F:   not player $PLAYER_CHAR wanted_level > 0        then            if 010A:   player $PLAYER_CHAR money > 10            then                if 0AB0:   key_pressed 66 // Key B                then                    if 0AB0:   key_pressed 0x31 // Key 1                    then                        [email protected]=#PEREN                        gosub @DestroyCar                        gosub @TakeMoney_And_CreateCar                        wait 1000                    end                    if 0AB0:   key_pressed 0x32 // Key 2                    then                        [email protected]=#PEREN // Put other model here                        gosub @DestroyCar                        gosub @TakeMoney_And_CreateCar                        wait 1000                    end                    if 0AB0:   key_pressed 0x33 // Key 3                    then                        [email protected]=#PEREN // Put other model here                        gosub @DestroyCar                        gosub @TakeMoney_And_CreateCar                        wait 1000                    end                end            else 0ACC: show_text_lowpriority "~r~You don't have enough money!" time 4000            end        else 0ACC: show_text_lowpriority "~r~Lose your Wanted Level first!" time 4000        end    endend:DestroyCarif 056E:   car [email protected] definedthen 00A6: destroy_car [email protected]:TakeMoney_And_CreateCarPlayer.Money($PLAYER_CHAR) += [email protected] = Car.Create([email protected], -1885.355, -208.8602, 23.0923)Car.Angle([email protected]) = 270.0return




Be careful when you want to do stuff when pressing two keys at the same time, if you check presses like this:

if and
keypressed key1
keypressed key2
then // Do action
end

Game will not behave as expected, but will validate the condition with only key1 pressing!


A question you may ask when you are starting to learn SCM: "How can i know which opcode is the best to solve this particular problem?"

The answer is: use Sanny Builder opcodes search, and use keywords.
Most common keywords are: actor, car, sphere, marker, path, AS (for animations), remove, destroy, create, release, load, checkpoint, particle, camera.
Study different opcodes, do experiments, read main.scm (specially when you want to know how to achieve something the game do in a particular mission). Watch missions walkthrough, it can give you interesting ideas about stuff to make.

If you find an opcode don't know how to use it (its use is not intuitive), here are your options:
1. Google search: "opcode XXXX". You'll always find a gta-dedicated page with documented opcodes.
2. If 1 doesn't help, search the opcode in main.scm decompiled, and see how they use it.

3. If previous doesn't help, you can always ask in the forums of course :pp

 

If you are struggling to understand all of this, you should consider reading SCM tutorials and understand the most basic principles.

 

Hope it helps!

Edited by Sloth-
Link to comment
Share on other sites

First of all.

Without making any changes in your script logic, i rewrote it in order to be more readable and understandable:

 

Take a look:

 

 

{$CLEO .cs}//-------------MAIN---------------thread 'Script' // you can replace "0000: nop" instructions by naming thread instructions, it makes code more elegant and after decompiling (you really don't need to decompile your scripts) labels will decompile as "YourThreadNames_X" instead of simply "NONAME_X"0570: [email protected] = create_asset_radar_marker_with_icon 52 at -1872.4995 -218.2075 18.375Model.Load(#PEREN)while true    repeat    wait 0     until 0AB0:   key_pressed 51 and 0AB0:   key_pressed 66 and 00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere -1872.4995 -218.2075 18.375 radius 3.0 3.0 3.0        if 810F:   not player $PLAYER_CHAR wanted_level > 0    then        Player.Money($PLAYER_CHAR) += -10        [email protected] = Car.Create(#PEREN, -1885.355, -208.8602, 23.0923)        Car.Angle([email protected]) = 270.0    end        wait 1000end

 

 

 

As general tip, always use high level syntax instead of low level syntax. Using Labels and jump instructions to labels is a headache you can avoid completely by using high level. Did you notice i didn't need a single label in the code? Of course you will need labels mandatory when creating subroutines:

 

 

 

{$CLEO .cs}thread 'ExampleScript'gosub @MySubroutine0A93: end_custom_thread//==============:MySubroutineif [email protected] == 0then    // Do somethingelse    // Do other stuffendreturn

 

 

 

You can read more about high level SCM coding here. Or simply consult Sanny Builder Help Sections.

 

 

 

Now to your question:

I'm not sure what exactly do you want to do but i think something like this:

 

 

 

{$CLEO .cs}//-------------MAIN---------------thread 'Script'0570: [email protected] = create_asset_radar_marker_with_icon 52 at -1872.4995 -218.2075 18.375Model.Load(#PEREN)// Load other modelswhile true    wait 0        if 00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere -1872.4995 -218.2075 18.375 radius 3.0 3.0 3.0    then        if 810F:   not player $PLAYER_CHAR wanted_level > 0        then            if 010A:   player $PLAYER_CHAR money > 10            then                if 0AB0:   key_pressed 66 // Key B                then                    if 0AB0:   key_pressed 0x31 // Key 1                    then                        [email protected]=#PEREN                        gosub @DestroyCar                        gosub @TakeMoney_And_CreateCar                        wait 1000                    end                    if 0AB0:   key_pressed 0x32 // Key 2                    then                        [email protected]=#PEREN // Put other model here                        gosub @DestroyCar                        gosub @TakeMoney_And_CreateCar                        wait 1000                    end                    if 0AB0:   key_pressed 0x33 // Key 3                    then                        [email protected]=#PEREN // Put other model here                        gosub @DestroyCar                        gosub @TakeMoney_And_CreateCar                        wait 1000                    end                end            else 0ACC: show_text_lowpriority "~r~You don't have enough money!" time 4000            end        else 0ACC: show_text_lowpriority "~r~Lose your Wanted Level first!" time 4000        end    endend:DestroyCarif 056E:   car [email protected] definedthen 00A6: destroy_car [email protected]:TakeMoney_And_CreateCarPlayer.Money($PLAYER_CHAR) += [email protected] = Car.Create([email protected], -1885.355, -208.8602, 23.0923)Car.Angle([email protected]) = 270.0return

 

 

 

 

Be careful when you want to do stuff when pressing two keys at the same time, if you check presses like this:

 

if and

keypressed key1

keypressed key2

then // Do action

end

 

Game will not behave as expected, but will validate the condition with only key1 pressing!

 

 

A question you may ask when you are starting to learn SCM: "How can i know which opcode is the best to solve this particular problem?"

 

The answer is: use Sanny Builder opcodes search, and use keywords.

Most common keywords are: actor, car, sphere, marker, path, AS (for animations), remove, destroy, create, release, load, checkpoint, particle, camera.

Study different opcodes, do experiments, read main.scm (specially when you want to know how to achieve something the game do in a particular mission). Watch missions walkthrough, it can give you interesting ideas about stuff to make.

 

If you find an opcode don't know how to use it (its use is not intuitive), here are your options:

1. Google search: "opcode XXXX". You'll always find a gta-dedicated page with documented opcodes.

2. If 1 doesn't help, search the opcode in main.scm decompiled, and see how they use it.

3. If previous doesn't help, you can always ask in the forums of course :pp

 

If you are struggling to understand all of this, you should consider reading SCM tutorials and understand the most basic principles.

 

Hope it helps!

Best answer of all times :D

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.