Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Tuners
      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. Red Dead Redemption 2

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

    1. Grand Theft Auto Series

      1. 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. Guides & Strategies
      2. Help & Support
    6. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
    7. GTA III

      1. Guides & Strategies
      2. 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. 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

      1. GTANet 20th Anniversary
    2. Support

    3. Suggestions

[REL] Sanny Builder


Seemann
 Share

Recommended Posts

Sanny Builder is a fast and powerful tool designed for the GTA 3D game series (GTA3, VC, SA, LCS, VCS). It is aimed to make the process of editing game scripts and missions as easy as it's possible.

It includes a disassembler, permitting the end-user to quickly disassemble the MAIN.SCM file which contains game scripts, and a compiler which produces a binary script file readable by the game.

 

The editor itself offers a large number of useful functions such as; syntax highlighting, error checking, advanced search tools, player coordinates reading, fast movement through code and much more.

Sanny offers an advanced code syntax which is similar to existing programming languages. This syntax includes changeable classes, keywords and high-level statements. We recommend you continue reading and fully explore the help section to learn more about SB and its capabilities. We provide a wealth of information that will help you get started in mission coding. Now that you have discovered some of the possibilities.


Official website: sannybuilder.com

Current version: 3.8.0

Released: 2021-08-04


sb3_002th.gif  sb3_003th.gif  sb3_004th.gif
 

 

Further reading at GTAMods.com:

Follow me @SannyBuilderDev | Dev Page on GitHub

Edited by Seemann
Link to comment
Share on other sites

 

Does it support Direct Memory Access?

At a current stage of development - is not present, but most likely that DMA will be in the future.

Link to comment
Share on other sites

random_download

It seems that there must be at least one mission/external script/object defined for it to compile, and I'm having trouble building an empty script. In the GTA:MA GUI you clicked on new project and it made an empty script for you.

Also, there is another compiler called Point, but it is not fully working for SA yet.

 

An example script would be nice, otherwise I have to find and decompile an scm.

Link to comment
Share on other sites

I think, it is necessary to create by pressing File/New not simply empty file, but certain totally_stripped script where already have a defines, main section, etc, but there is no code of mission. AFAIR in GTA MA it referred as Standard File. I have taken it on a note. wink.gif

Link to comment
Share on other sites

syntax seems to be very builder-like

Sure does. But without DMA. user posted image from me. Not that I can do any better, but DMA is too fun.

Link to comment
Share on other sites

Argh! Why bother making a new mission assembler when it will just use that same ugly MB syntax? Faster is better, but might as well make the syntax usable while you are at it. smile.gif Although personally I'm still partial to Point.

Link to comment
Share on other sites

Wow. I never imagined we'd have 2 bartonspeak tools for SA and no GTAMA. This is vastly superior to Barton's last installment of SAMB, but it is still using BW's code format confused.gif

 

But the code converter on your site is definately getting added to my Utilities collection, however one going the other way would be even better. cool.gif

Link to comment
Share on other sites

 

Does it support Direct Memory Access?

I'm not sure what does DMA in BW's mission builder do.

In my editor the global variable $100 (for example) points to memory address 256 (because var has hex name) multiplied on 4 of variable buffer that is in the beginning of scm, $101 points to memory address 257 * 4 an so on. For variables with text names (e.g $MyVar) memory addresses in the end of var buffer are used. You never knows which addresses will be for these variables.

You can operate with variables with hex names for DMA.

 

 

What is the Point and where I can see that?

Edited by Seemann
Link to comment
Share on other sites

Well then it sounds as if yours DOES support DMA. And with the exception of hex vs decimal, that's just one more way it's like Barton's last release.
Link to comment
Share on other sites

  • 2 weeks later...

Sanny Builder v1.0 is now released.

 

I added many new features in this version.

 

More information and screenshot are available here

http://gtacoding.nm.ru/builder/eng.html

 

In future versions I will try to make the syntax more different from the Mission Builder's one. tounge.gif

Maybe something like MB's keywords or commands like Delphi or C++

 

eg

 

 

inc($Var)

 

 

will compiled as

 

 

0008: $Var += 1;; integer values

 

 

so, as Barton will not develop his tool, do you help me to make new Builder?

Link to comment
Share on other sites

inc($Var)

 

will compiled as

 

0008: $Var += 1;; integer values

 

Opcode 0008 has two parameters. "inc($var)" makes no provision for specifying how much to increment by.

Link to comment
Share on other sites

How come when I tried to decompile a modded SCM (like my All In One), there's an error that said "Unknown file header"?

 

Everytime I decompile something, a text file is automatically saved into the computer. Can you not make it automatic?

 

The find feature kind of sucked. It either starts from the beginning or the end of the file, not from the cursor.

Edited by spaceeinstein
Link to comment
Share on other sites

inc($Var)

 

will compiled as

 

0008: $Var += 1;; integer values

 

Opcode 0008 has two parameters. "inc($var)" makes no provision for specifying how much to increment by.

In Delphi it will increment by 1 if another parameter is not specified. So doing: Inc($var, 2); will add 2 to $var.

 

Better would be to implement a system like in Point, where you can do:

 

$var:= $var2 + $var3 - 5;

And it will compile to:

 

$var = $var2$var += $var3$var -= 5

 

Link to comment
Share on other sites

GJ on the program, but horrible job on the site, well it's not bad just it qualifies as horrible because it doesn't work with firefox
Link to comment
Share on other sites

I got an error when compiling:

http://img.photobucket.com/albums/v41/spac...stein/Error.gif

I was inserting a new mission when this thing told me to use @34 as max in threads. But this is a mission!

Link to comment
Share on other sites

@spaceeinstein

 

How come when I tried to decompile a modded SCM (like my All In One), there's an error that said "Unknown file header"?
hmm. I don't know what is happened, but I'll try to fix this problem.

 

 

Can you not make it automatic?
OK. Output file will be deleted if decompilling fails.

 

 

The find feature kind of sucked
tounge.gif yeah, you are right. In future I will make new find feature, maybe like in Delphi.

 

 

I was inserting a new mission when this thing told me to use @34 as max in threads. But this is a mission!
Do you declared it as
DEFINE MISSION  at @Label

? Where do you insert it? After all missions or in the end of file?

 

@random_download

 

Better would be to implement a system like in Point, where you can do:

 

But how can I know what type of variables is used: integer or float? so, there is can be two opcodes:

 

 

0084: $var = $var2 ;; integer values and handles

 

 

 

0086: $var = $var2 ;; floating-point values only

 

 

do prompt every time when program found this, or add declaration section where you can set the type of variable, like

 

var$var : float$var2 : integer

 

?

 

@superglitch

I have no free time to make the multibrowsing site, that would be the same under all browsers. Maybe later...

 

@Demarest

 

Besides that, @33 is the maximum in threads.
oops. my bad tounge.gif

 

 

Link to comment
Share on other sites

But how can I know what type of variables is used: integer or float? so, there is can be two opcodes:

 

0084: $var = $var2;; integer values and handles

 

0086: $var = $var2;; floating-point values only

do prompt every time when program found this, or add declaration section where you can set the type of variable, like

var$var : float$var2 : integer

 

That's really up to you. If you check out Barton's readme, he used a single letter to define integers, fixed strings, etc when in a situation where the compiler had no previous data to go off of. Personally, I never minded datatypes. They told the story every bit as much as say, using 0.0 instead of 0. confused.gif

Link to comment
Share on other sites

I was inserting a new mission when this thing told me to use @34 as max in threads. But this is a mission!
Do you declared it as
DEFINE MISSION  at @Label

? Where do you insert it? After all missions or in the end of file?

I do know how to add missions successfully (Mod Shop).

 

DEFINE MISSION 134 AT @BUYPRO1

DEFINE MISSION 135 AT @R_MICH_2858

 

:BUYPRO1_4285

00BE: text_clear_all

0373: set_camera_directly_behind_player

02EB: restore_camera_with_jumpcut

01B4: set_player $PLAYER_CHAR frozen_state 1

03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 0

02A3: toggle_widescreen 0

0004: $ON_MISSION = 0 ;; integer values

01BD: $184 = current_time_in_ms

00D8: mission_cleanup

004E: end_thread

0051: return

 

;-------------Mission 135---------------

 

:R_MICH_2858

0050: gosub @R_MICH_2874

0050: gosub @R_MICH_31509

004E: end_thread

Link to comment
Share on other sites

@spaceeinstein

ok, I have solved first problem. It looks like SaMB had wrote your scm's header info incorrectly.

 

 

HOTDOG: Base = 3598795 Size = 725AAA: Base = 0 Size = 8CARDRIVER: Base = 8 Size = 17601HELIDRIVER: Base = 17609 Size = 14118

 

Base is the start point in global script code where external script should be copied from script.img.

AAA's base is always equal 0. MB should ignore this script and write correct base for next scripts: 3599520 for CARDRIVER and 3617121 for HELIDRIVER. But it doesn't. So, if you will define your scripts before AAA, like

 

DEFINE EXTERNAL_SCRIPT_NAME HOTDOG;  77  DEFINE EXTERNAL_SCRIPT_NAME CARDRIVER;  79  DEFINE EXTERNAL_SCRIPT_NAME HELIDRIVER;  80  DEFINE EXTERNAL_SCRIPT_NAME AAA;  78  

 

and recompile in MB, it should be enough. Sanny will decompile such SCM without any problem. btw, in Sanny script 'AAA' does not occurred at all.

 

Edit: About find feature. If you have checked 'Search from caret' it will search from cursor, not from beginning of the file.

 

@superglitch & ZAZ

Do you can not download rar archive from my site? Maybe problem in the hosting. I will try to mirror this file next time.

Edited by Seemann
Link to comment
Share on other sites

Wow, thanks. Anyway to make the local variable check an option?
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.