1,051
edits
(I'm getting tired of having to click twice to get here...) |
m (OSL to BSL) |
||
Line 1: | Line 1: | ||
== | == Bungie Scripting Language (or BSL) == | ||
is what [[ | is what [[BSL:Scripts|Oni scripts]] are written in. It's a programming language akin to C with some shell-script features as well. | ||
== Editing Scripts == | == Editing Scripts == | ||
Line 23: | Line 23: | ||
===Knowledge database=== | ===Knowledge database=== | ||
For the theoretical minds, everything you'll ever need to know about | For the theoretical minds, everything you'll ever need to know about BSL | ||
*[[ | *[[BSL:Statements|Statements]] | ||
*[[ | *[[BSL:Variables|Variables]] | ||
*[[ | *[[BSL:Functions|Functions]] | ||
*[[ | *[[BSL:Operators|Operators]] | ||
*[[ | *[[BSL:Data|Data types]] | ||
More on modding basics | More on modding basics | ||
*[[ | *[[BSL:IGMD|IGMD folder]] | ||
*[[ | *[[BSL:IGMD/global|global folder]] | ||
And some random (so far) useful pages | And some random (so far) useful pages | ||
*[[ | *[[BSL:Inventory|Inventory management]] | ||
===[[ | ===[[BSL:Tutorial|Tutorials]]=== | ||
For the practical minds who don't care (too much) about the theory. | For the practical minds who don't care (too much) about the theory. | ||
*Wanna make minor (yet cool-looking) changes to the original level logic? | *Wanna make minor (yet cool-looking) changes to the original level logic? | ||
*Wanna script a "patch" that's effective in every level but doesn't affect the original logic? | *Wanna script a "patch" that's effective in every level but doesn't affect the original logic? | ||
*Wanna create completely new level logic from scratch? [[ | *Wanna create completely new level logic from scratch? [[BSL:Tutorial/Scratch|Here you are]] | ||
==Overview== | ==Overview== | ||
{| border="1" cellpadding="5" cellspacing="0" align="center" | {| border="1" cellpadding="5" cellspacing="0" align="center" | ||
|+''' | |+'''BSL syntax overview table''' | ||
|- | |- | ||
| align="center" style="border-bottom:3px solid grey;"| | | align="center" style="border-bottom:3px solid grey;"| | ||
{| border="0" | {| border="0" | ||
|+'' | |+''BSL separators'' | ||
|- | |- | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Statements|<tt>;</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Functions|<tt>,</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Comments|<tt>#</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Data|<tt>"</tt>]] | ||
|- | |- | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Statements|<tt>{</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Statements|<tt>}</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Functions|<tt>(</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Functions|<tt>)</tt>]] | ||
|- | |- | ||
| align="center" colspan="4" style="border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;" | | | align="center" colspan="4" style="border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;" | | ||
Line 65: | Line 65: | ||
| align="center" style="border-bottom:3px solid grey;"| | | align="center" style="border-bottom:3px solid grey;"| | ||
{| border="0" | {| border="0" | ||
|+'' | |+''BSL operators'' | ||
|- | |- | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>+</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>-</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Variables|<tt>=</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>!</tt>]] | ||
|- | |- | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>and</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>or</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>eq</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>ne</tt>]] | ||
|- | |- | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt><</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>></tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt><=</tt>]] | ||
| align="center" width="100px" | [[ | | align="center" width="100px" | [[BSL:Operators|<tt>>=</tt>]] | ||
|- | |- | ||
| align="center" colspan="4" style="border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;" | | | align="center" colspan="4" style="border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;" | | ||
Line 88: | Line 88: | ||
| align="center" style="border-bottom:3px solid grey;"| | | align="center" style="border-bottom:3px solid grey;"| | ||
{| border="0" | {| border="0" | ||
|+'' | |+''BSL keywords'' | ||
|- | |- | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>at</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Data|<tt>float</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Statements|<tt>if</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>repeat</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Data|<tt>string</tt>]] | ||
|- | |- | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Data|<tt>bool</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>for</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Data|<tt>int</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Functions|<tt>return</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>using</tt>]] | ||
|- | |- | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Statements|<tt>else</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Functions|<tt>fork</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>iterate</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>schedule</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Variables|<tt>var</tt>]] | ||
|- | |- | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>every</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Functions|<tt>func</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>over</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Keywords|<tt>sleep</tt>]] | ||
| align="center" width="75px" | [[ | | align="center" width="75px" | [[BSL:Data|<tt>void</tt>]] | ||
|- | |- | ||
| align="center" colspan="5" style="border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;" | | | align="center" colspan="5" style="border-top:1px solid red; border-right:1px solid red; border-bottom:2px solid red; border-left:1px solid red;" | |
edits