ScriptTools - Made by Soldier of Light Table of Contents i. Intro ii. Desc. of Files iii. Features iv. Constructor guide v. Notes vi. Credits _______________________________________________________ INTRO 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. _______________________________________________________ INCLUDED FILES 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. ________________________________________________________ FEATURES 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. ________________________________________________________ CONSTRUCTOR 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 "" 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 statements. _____________________________________________________ NOTES 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: compkid1@optonline.net email: compkid1@verizon.net 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. _______________________________________________________ CREDITS Programming - Soldier of Light Programming Help - MFC, The Tycko Man, Anthony, Pokecancer HaloMap.dll - Pokecancer Research help - Agent ME Beta-ing - Munsie, Agent ME