Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to Xbox Chaos: Modding Evolved

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

(H2X) ScriptTools Beta Unknown

Sign in to follow this  
Followers 0

3 Screenshots

About This File

A script compiler/decompiler created by Soldier of Light some years ago.


Original readme is below:


ScriptTools - Made by Soldier of Light

Table of Contents
i. Intro
ii. Desc. of Files
iii. Features
iv. Constructor guide
v. Notes
vi. Credits


Alrighty then, you're looking at the first real app I've ever made.
I'm actually pretty new to C#, but I picked it up pretty fast.
I made this program partly because I was bored, partly as a learning
experience, and partly 'cause none of the other tools were any good.
My intent was for this tool to help the community understand scripting,
and to make it a little easier to stomach.


Inluced in this pack is:
HaloMap.dll - Halo library made by pokecancer
ScriptTools.exe - The actual program
log.txt - Prints technical details of unknown values
db.txt - Stores the script database

If you ask me why ____ isn't supported, and can find an example of it,
then there should be some printout in log.txt.  Send it to me and
I'll do my best to add support for it.  At this point I know it prints
vehicle seats, and type 48 (damage state I believe).

All of the scripts used by the compiler and constructor are stored
in db.txt.  I've made it in an easily editable format so that
if custom commands are created, they can be added.  The format is:
Identity    Return Type    Name    Arg1    Arg2    Arg3...
If you don't understand what this means, then don't worry about it.


This program has the following features:
-It can display all of the scripts in a map.
-It can decompile a script into readable text.
-It can decompile the scripts in a map into text.
-It can compile a script from text into the map.
-It can compile a map's scripts from text into the map.
-It has a constructor view, which can guide the user through
 creating a script
-It can decompile into the constructor view.
-It can compile from the constructor view.
-It features a global editor, which can change names, types,
 and initialization expressions easily.
-It does NOT feature a chunk adder - this means you must manually add
 a script chunk using entity.  If you don't know how to do this,
 consult my technical scripting tutorial.


The wow factor of this program is without a doubt the constructor view.
I've tried to make it as intuitive as possible, but it still needs
some explanation.  Here's how it works:

It's a basic click and drag mechanism.  You can see a script tree on
the left, which can be sorted according to identity, alphabetically,
or by return type.  Once you select a script from the left, you can
drag it into a dropdown box on the right, and it will make the box
into that command.

For example, if I'm just starting, I would locate the "begin" command
in the script tree, then I would click and drag it, then drop it in
the box on the right that says "<void>"

Once you've dragged a script into the box, it generates blank spaces
for the next values, according to the database.  If it doesn't give
you the parameters that you were looking for, simply drag the command
again and it will use the next database entry for that command.

If you've run out of space for new commands, and you have a begin
statement somewhere, you can drag begin to that statement again to
add a blank dropdown to the script.

If you want to use a global or static script, then you can drag the
corresponding value to the dropdown box, and it will repopulate the
list with the correct type of value.

If you decide that you didn't want to make something a command, or
want to use a value somewhere instead of a command, simply drag
"(VALUE)" to the box, and it will erase all commands inside and change
it back into a simple value.

If at any time you need to change the value type of a specific box,
you can right-click the box, and select a new type from the form.
Most users won't need to do this, but it's necessary for static scripts
which return something, as the constructor does not auto-cast begin


While this program is in beta, there are bound to be tons of bugs.
If you find a bug, you can report it to me in one of 3 ways.
AIM: dkwiz214
MSN: [email protected]
email: [email protected]

A description of the common error messages:
"No scripts": Your map does not have any script chunks.
"Parameter mismatch" (plaintext): No variation of the specified command
takes the type of value you provided
"Return mismatch" (constructor): You tried to put a command which cannot
return the expected value; you may choose to override this.

*Please read*
My program relies on overwriting scripts.  If you have just transferred
the script chunks into your map, there will be no actual scripts
to overwrite.  Therefore, I suggest that you inject a blank script
for each chunk, using the entire map compiling feature.  A sample blank
script looks like this:
(script stub blank
 (begin true)
If you do not do this, you may get undesired results.


Programming - Soldier of Light
Programming Help - MFC, The Tycko Man, Anthony, Pokecancer
HaloMap.dll - Pokecancer
Research help - Agent ME
Beta-ing - Munsie, Agent ME


User Feedback