Seemann Posted August 19, 2005 Share Posted August 19, 2005 (edited) 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 Further reading at GTAMods.com: Sanny Builder Mission_Scripting (Overview) CLEO Follow me @SannyBuilderDev | Dev Page on GitHub Edited August 4, 2021 by Seemann inkoalawetrust, t0grul, Silent and 13 others 16 Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/ Share on other sites More sharing options...
Demarest Posted August 19, 2005 Share Posted August 19, 2005 Does it support Direct Memory Access? Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112157 Share on other sites More sharing options...
Seemann Posted August 19, 2005 Author Share Posted August 19, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112167 Share on other sites More sharing options...
Un3462 Posted August 19, 2005 Share Posted August 19, 2005 got a screenshot? code sample? Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112245 Share on other sites More sharing options...
Seemann Posted August 19, 2005 Author Share Posted August 19, 2005 got a screenshot? code sample? mmm... download program by link and try Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112301 Share on other sites More sharing options...
random_download Posted August 19, 2005 Share Posted August 19, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112316 Share on other sites More sharing options...
Seemann Posted August 19, 2005 Author Share Posted August 19, 2005 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. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112342 Share on other sites More sharing options...
Un3462 Posted August 19, 2005 Share Posted August 19, 2005 found a screenshot anyway. syntax seems to be very builder-like, with a touch of gtama. good job, i say, but builder syntax is too fugly for me. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112374 Share on other sites More sharing options...
Demarest Posted August 19, 2005 Share Posted August 19, 2005 syntax seems to be very builder-like Sure does. But without DMA. from me. Not that I can do any better, but DMA is too fun. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112387 Share on other sites More sharing options...
steve-m Posted August 19, 2005 Share Posted August 19, 2005 Erm, what is actually different from builder syntax, except the labels? Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112406 Share on other sites More sharing options...
jonc Posted August 19, 2005 Share Posted August 19, 2005 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. Although personally I'm still partial to Point. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3112589 Share on other sites More sharing options...
DaEllum67 Posted August 20, 2005 Share Posted August 20, 2005 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 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. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3114346 Share on other sites More sharing options...
Seemann Posted August 20, 2005 Author Share Posted August 20, 2005 (edited) 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 August 20, 2005 by Seemann Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3114454 Share on other sites More sharing options...
Craig Kostelecky Posted August 20, 2005 Share Posted August 20, 2005 Point is still in development. You can see it at Jon's website. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3114741 Share on other sites More sharing options...
Demarest Posted August 20, 2005 Share Posted August 20, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3114748 Share on other sites More sharing options...
Seemann Posted September 3, 2005 Author Share Posted September 3, 2005 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. 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3160787 Share on other sites More sharing options...
demonj0e Posted September 3, 2005 Share Posted September 3, 2005 cool but i downloaded and the files are corrupt Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3161152 Share on other sites More sharing options...
Demarest Posted September 3, 2005 Share Posted September 3, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3161211 Share on other sites More sharing options...
spaceeinstein Posted September 3, 2005 Share Posted September 3, 2005 (edited) 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 September 3, 2005 by spaceeinstein Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3161347 Share on other sites More sharing options...
random_download Posted September 3, 2005 Share Posted September 3, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3161807 Share on other sites More sharing options...
superglitch Posted September 3, 2005 Share Posted September 3, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3162203 Share on other sites More sharing options...
spaceeinstein Posted September 4, 2005 Share Posted September 4, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3163005 Share on other sites More sharing options...
Demarest Posted September 4, 2005 Share Posted September 4, 2005 Besides that, @33 is the maximum in threads. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3163072 Share on other sites More sharing options...
Seemann Posted September 4, 2005 Author Share Posted September 4, 2005 @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 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 Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3163849 Share on other sites More sharing options...
Demarest Posted September 4, 2005 Share Posted September 4, 2005 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. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3163917 Share on other sites More sharing options...
random_download Posted September 4, 2005 Share Posted September 4, 2005 Declaring variables would probably work better than asking the user to say float/integer every time. Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3163926 Share on other sites More sharing options...
ZAZ Posted September 4, 2005 Share Posted September 4, 2005 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 Thanks for the tip ! I found no working link of seemann, serving with firefox Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3164012 Share on other sites More sharing options...
spaceeinstein Posted September 4, 2005 Share Posted September 4, 2005 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 https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3164212 Share on other sites More sharing options...
Seemann Posted September 5, 2005 Author Share Posted September 5, 2005 (edited) @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 September 5, 2005 by Seemann Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3166058 Share on other sites More sharing options...
spaceeinstein Posted September 5, 2005 Share Posted September 5, 2005 Wow, thanks. Anyway to make the local variable check an option? Link to comment https://gtaforums.com/topic/211077-rel-sanny-builder/?do=findComment&comment=3166097 Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now