The Improved Scripting Tutorial, v2 + New Tool

Tutorials for the Xbox version of Halo 2.
User avatar
Agent ME




Articulatist 500

Posts: 881
Joined: Tue Jun 21, 2005 6:00 pm
Location: California, USA
Contact:

The Improved Scripting Tutorial, v2 + New Tool

Post by Agent ME »

I have made many additions onto the Soldier of Light's original scripting tutorial, with new information gathered by I and Soldier of Light himself.

The new texts in the tutorial include a new explanation of the Sibling-Child relationship concept, and info on many of the more advanced syntaxes, such as referencing globals, referencing other scripts, referencing AI by actor, squad, or platoon, constants, and maybe some other things I've missed.

There are also quite a few easy-to-read decompiled examples included to demonstrate many of these concepts. There is also a new updated value list and a complex command list with the data types of the command's possible arguments, courtesy of Soldier of Light.

Download

And info on my new tool - http://files.halomods.com/viewtopic.php?p=645406#645406
Last edited by Agent ME on Tue Oct 24, 2006 7:30 pm, edited 1 time in total.
t_mann05




Articulatist 250

Posts: 361
Joined: Fri Dec 02, 2005 7:46 pm

Post by t_mann05 »

yesss great job Agent! now i hope i can understand how to use it :D This will be very useful 10/10!
User avatar
ScottyGEE




Visioneer Vector Mad Hatter Artisan
Snitch! Enthraller Pi Critic
Sorceror Droplet Scorched Earth Socialist
Advisor Articulatist 500

Posts: 7352
Joined: Sun Aug 15, 2004 9:08 pm
Location: Down under
Contact:

Post by ScottyGEE »

I, like everyone else, I'd say appreciates such research and releasing said research...I still havn't had the time nor patience to look fully into it to ever try and help you guys out or anything but someday I would like to understand it for its potential uses...
Image
This collaboration is not endorsed by Halomods
Technically its only me animating though ;)
xXtR1Xm1Xx




Recreator

Posts: 406
Joined: Thu Aug 31, 2006 5:14 pm
Location: Queens

Post by xXtR1Xm1Xx »

Nice, I might just get in to scripting now.
Image
Click here for something you might like
Last edited by xXtR1Xm1Xx on Wed May 2, 1992 3:40 pm; edited 2,500 times in total
Shalted




Eureka Translator

Posts: 565
Joined: Wed Nov 17, 2004 8:41 am
Location: Vancouver, BC This is where people put their modding team because they feel important.
Contact:

Post by Shalted »

You guys might want to wait a little bit, a *new* scripting tool may be coming soon, and it pwns my compiler ;). All from a n00b at C#. (He knows who he is :))
Awaiting connection...
User avatar
Geo
Forum Manager




Illusionist Stylist Advisor Pi
Connoisseur Pyre Socialist Tsunami

Posts: 4404
Joined: Sun Jun 19, 2005 1:01 am
Location: United Kingdom
Contact:

Post by Geo »

I know who he is too :P

I really need to learn scripting, it baffles me but you guys seem to get excited when scripting news is released, so it must be good.
Image
For extremely cheap web hosting and domains, PM me. Includes excellent control panel software and instant activation!
User avatar
TheTyckoMan




Artisan Socialist Decryptor Droplet

Posts: 854
Joined: Fri Apr 02, 2004 11:22 am
Location: Tea co not Tie co...

Post by TheTyckoMan »

Shalted wrote:You guys might want to wait a little bit, a *new* scripting tool may be coming soon, and it pwns my compiler ;). All from a n00b at C#. (He knows who he is :))
Ah but that's like saying that when halo 2 came out the researchers were n00bs at it.... ;p
Sweetness.......Visual Security: 9-block IP Identification
"Teenagers, plus anonymity, plus microphone = idiot."-Bungie
slayer410





Posts: 738
Joined: Mon Oct 03, 2005 1:41 pm
Location: Texas

Post by slayer410 »

Nothing I didn't know, but never the less, good job. :wink:
User avatar
0mfc0





Posts: 218
Joined: Sun May 07, 2006 11:10 am
Location: Indiana

Post by 0mfc0 »

Shalted wrote:You guys might want to wait a little bit, a *new* scripting tool may be coming soon, and it pwns my compiler ;). All from a n00b at C#. (He knows who he is :))
He's not fully a n00b, He actually learned C# quite fast.
He never even asked me for help much.

And yes it does pwn Shalted compiler :P
Last edited by 0mfc0 on Sat Oct 21, 2006 10:17 am, edited 1 time in total.
-DeToX-




Illusionist Recreator Connoisseur Acolyte
Sigma Decryptor Droplet Pyre
Blacksmith Socialist New Age System Engineer
ONI

Posts: 4589
Joined: Sun Jun 18, 2006 3:58 pm
Location: ...

Post by -DeToX- »

Nice job.
Image
Sergeant_Ten





Posts: 7
Joined: Wed Oct 18, 2006 9:14 pm
Contact:

Post by Sergeant_Ten »

nice...

two thumbs up!
Image
User avatar
Agent ME




Articulatist 500

Posts: 881
Joined: Tue Jun 21, 2005 6:00 pm
Location: California, USA
Contact:

Post by Agent ME »

As soon as I get the documentation done, I'm going to release a tool I've been working on. It'll will allow people to script much faster, but is not a full-blown syntax compiler. It doesn't even inject the script into the map for you, do to its nature. It's web-based, programmed in PHP.

You'll still need to understand how to code through the hex, but this tool will take care of setting up a lot of the hex, including messing with the expression, sibling, and child pointers.

To compile a piece of code like this:

Code: Select all

(begin
  (physics_set_gravity 0.5)
  (ai_place {Squad 9})
)
You'd enter the following code into it:

Code: Select all

(
~0
  ; COMMENT LOL~!
(
~127   ; physics_set_gravity is command #127
r6,3F000000
)

(
~290
asquad,9
)
)
As an experienced scripter could see, there's one line per syntax chunk, and lines for closing parenthesis, and ~ indicates a command number. The "r" type takes two arguments, the data type, in this case 6 (real) and the value spot for the hex, (which the tool endian-swaps), and then later the line asquad,9 references Squad 9.

There's also built in support for all of the string constants in the advanced section of my tutorial built-in to the tool (to say ai_current_actor, you'd use the type c, so the line would be cai_current_actor).

It'll be out soon as I get the docs done. It won't be a replacement for full-blown compilers, but it'll be for the advanced scripters that need to do what the existing ones can't do.

EDIT: PS: Here's the code that the above script compiled to. Note that this is starting at Expression Pointer 74E3. That is configurable inside the tool to be what you want easily.

Code: Select all

74 E3 00 00 04 00 08 00 FF FF FF FF 00 00 00 00 02 00 75 E3 75 E3 00 00 02 00 09 00 03 00 76 E3 00 00 00 00 00 00 00 00 76 E3 7F 00 04 00 08 00 06 00 79 E3 00 00 00 00 04 00 77 E3 77 E3 7F 00 02 00 09 00 05 00 78 E3 00 00 00 00 00 00 00 00 78 E3 06 00 06 00 09 00 FF FF FF FF 00 00 00 00 00 00 00 3F 79 E3 22 01 04 00 08 00 FF FF FF FF 00 00 00 00 07 00 7A E3 7A E3 22 01 02 00 09 00 08 00 7B E3 00 00 00 00 00 00 00 00 7B E3 13 00 13 00 09 00 FF FF FF FF 00 00 00 00 09 00 00 00
gamefreak249





Posts: 215
Joined: Thu Jun 16, 2005 3:06 am
Location: Probably around somewhere...

Post by gamefreak249 »

You so smat, you maka' me hony :D
Gamefreak249 needs a sig. PM me if you can make me one.
Or add me on MSN.
User avatar
0mfc0





Posts: 218
Joined: Sun May 07, 2006 11:10 am
Location: Indiana

Post by 0mfc0 »

Trust me people just wait for the tool thats going to come out.
User avatar
Agent ME




Articulatist 500

Posts: 881
Joined: Tue Jun 21, 2005 6:00 pm
Location: California, USA
Contact:

Post by Agent ME »

It could be a long time until its out, and it might have glitches, or unfunctional parts.

The reason I started getting into the advanced parts of scripting was so I could make an advance myself, and help others due that too, rather than repeat the last 3 months of advances in scripting. Which was nothing, other than people waiting for a compiler, or a better compiler. Waiting for progress in others in modding didn't get me anywhere in those months, and that's not something I'm ever doing again. I don't mind if a better compiler is released a day after I make my tool public. I don't care if a better one is released a day before I make it public. I care that I'm making progress, and that others that are capable are able to learn something from it as soon as possible.
Shalted




Eureka Translator

Posts: 565
Joined: Wed Nov 17, 2004 8:41 am
Location: Vancouver, BC This is where people put their modding team because they feel important.
Contact:

Post by Shalted »

0mfc0 wrote:
Shalted wrote:You guys might want to wait a little bit, a *new* scripting tool may be coming soon, and it pwns my compiler ;). All from a n00b at C#. (He knows who he is :))
He's not fully a n00b, He actually learned C# quite fast.
He never even asked me for help much.

And yes it does pwn Shalted's compiler :P
Well, that was obviously a joke, but I guess if you can't understand a simple form of sarcasm, too bad for you....

AgentME, I'm sorry but that's a horrible way of writing scripts, LISP in it self is an easy to understand language, why overcomplicate a simple language? Also, I fear it sways away too much from Bungie's original design.
Awaiting connection...
User avatar
Snave




Socialist Designer Golden Age Bloodhound
Illusionist Commentator

Posts: 1161
Joined: Sun Jul 25, 2004 5:46 am
Location: United Kingdom
Contact:

Post by Snave »

It's good to know there are still smart people left in this community.
DWells55





Posts: 1445
Joined: Mon Dec 27, 2004 7:47 am

Post by DWells55 »

Dead link...
User avatar
Agent ME




Articulatist 500

Posts: 881
Joined: Tue Jun 21, 2005 6:00 pm
Location: California, USA
Contact:

Post by Agent ME »

Shalted wrote:AgentME, I'm sorry but that's a horrible way of writing scripts, LISP in it self is an easy to understand language, why overcomplicate a simple language? Also, I fear it sways away too much from Bungie's original design.
It's supposed to be easier to use than writing hex itself, which it obviously is (unless you're missing every button on your keyboard except for 0-9 and A-F). I think Bungie overcomplicated LISP with the hex code :P [/half-sarcasm]

I'd much rather code in the low-level form rather than code in hex. Least I don't have to bother with any expression pointers and indexes.

The reason I made it that way was it was much easier and quicker to build that than a full string parser. I figured I'd let SoL make the real string parser, and anyone interested in scripting would just use your or my compiler until then.
DWells55 wrote:Dead link...
The FriHost servers seem to be bouncing on and off. Try every few minutes if it doesn't seem to be alive - it seems the downtime is a few minutes max usually. It works at the time of this edit.
Shalted




Eureka Translator

Posts: 565
Joined: Wed Nov 17, 2004 8:41 am
Location: Vancouver, BC This is where people put their modding team because they feel important.
Contact:

Post by Shalted »

Well, I'll give you that, but you'll have to admit, entering a decimal float value rather than representing it with it's hex equvilent is much more simple and efficient, good work none the less.

In regards to my compiler, I no longer have the will and/or hardware to research, develop or test anything related to scripting in Halo 2, so mine's dead and I have no plans on ressurecting it(Unless someone wants to buy me an Xbox), but that'll be redundant as soon as SoL's is released...
Awaiting connection...
Post Reply