<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.oni2.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Your+Mom</id>
	<title>OniGalore - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.oni2.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Your+Mom"/>
	<link rel="alternate" type="text/html" href="https://wiki.oni2.net/Special:Contributions/Your_Mom"/>
	<updated>2026-04-30T08:52:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=10142</id>
		<title>AE talk:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=10142"/>
		<updated>2008-05-31T05:57:47Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Chars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This area is for reporting or documenting crashes or other bugs for [[AE:OTA|Oni Team Arena]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crash reports==&lt;br /&gt;
==Chars==&lt;br /&gt;
:I crashed on compound even with the Daodan dll in. I was using the plugin version of the EXE if it matters&lt;br /&gt;
::[[User:Gumby|Gumby]] 00:00, 27 May 2008 (CEST)&lt;br /&gt;
:Did you use the cache fix? I don&#039;t know if it was fixed in Daodan dll. I know for sure it&#039;s fine with the cache fix EXE. It&#039;d be troublesome if the plugin EXE didn&#039;t have the cache fix...&lt;br /&gt;
::[[User:Your_Mom|Your_Mom]] 10:47, 27 May 2008 (PST)&lt;br /&gt;
:Indeed, not many people are aware of the issue with the pathfinding grid cache, and I&#039;m not sure who released the plugin-ready EXE. Could you guys link to it?&lt;br /&gt;
:The latest version of the [[Daodan DLL]] takes care of the pathfinding grid cache (and enables plugins, too), so you can use it with the original &amp;quot;Engrish&amp;quot; EXE.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
:Another issue that systematically causes crashes is Loser&#039;s latest contribution to the Edition (TRAM hacks). Roll back to the New Year&#039;s release and report.&lt;br /&gt;
:I feel really sorry for not tracking down those of the upgrades that cause memory corruption, but Loser&#039;s TRAM are a lot of stuff to go through. Patience...&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
:The plugin EXE was posted by EdT [[http://oni.bungie.org/community/forum/viewtopic.php?id=508 here]]. The plugin EXE is hosted on Paradox&#039;s oni2.net site.&lt;br /&gt;
::[[User:Your_Mom|Your_Mom]] 22:55, 30 May 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bug reports==&lt;br /&gt;
===Players that just stand and stare===&lt;br /&gt;
:This apparently has to do with the number of &amp;quot;duels&amp;quot; that Oni can handle simultaneously. 2x7 players usually work out fine, but for more players it can happen that some characters are singled out and can&#039;t start a fight with anyone, because the rest of the players already form a network that has the maximum number of &amp;quot;duels&amp;quot;. This could be fixed by making some players forget their opponents, allowing for new awareness/duel links to be created.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Resolved issues==&lt;br /&gt;
===Insufficient pathfinding grid cache===&lt;br /&gt;
:This used to cause crashes for battles spanning a few [[AKVA|BNV]]s cumulating too many pathfinding grid squares. Typically, this happens in the TCTF parking lot, in some areas of the Airport, and in some multi-storey areas of the Bio-Research Lab. The fix is either to lock out a few areas (e.g. lock the doors between the TCTF parking lot and the main building) or, ultimately, to increase the size of the pathfinding grid cache. This has been available as an in-place patch for the EXE, and is now handled by the Daodan DLL.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
===Inconsistent pathfinding data===&lt;br /&gt;
:The only example of that so far is the main gate of the Bio-Research Lab. Even though it&#039;s closed, the pathfinding graph is the same as if it was wide open. Therefore, the AI may attempt to pathfind through it, and Oni may crash when they are blocked by the gate. This used to occur in the acid room: enemies falling to the &amp;quot;garage&amp;quot; side would start running out the garage and around the block and through the main gate and up the aisle and into the lobby and up the stairs and into the acid room again. The obvious fix to this was to lock a few doors.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=10141</id>
		<title>AE talk:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=10141"/>
		<updated>2008-05-31T05:56:23Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Chars */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This area is for reporting or documenting crashes or other bugs for [[AE:OTA|Oni Team Arena]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Crash reports==&lt;br /&gt;
==Chars==&lt;br /&gt;
:I crashed on compound even with the Daodan dll in. I was using the plugin version of the EXE if it matters&lt;br /&gt;
::[[User:Gumby|Gumby]] 00:00, 27 May 2008 (CEST)&lt;br /&gt;
:Did you use the cache fix? I don&#039;t know if it was fixed in Daodan dll. I know for sure it&#039;s fine with the cache fix EXE. It&#039;d be troublesome if the plugin EXE didn&#039;t have the cache fix...&lt;br /&gt;
::[[User:Your_Mom|Your_Mom]] 10:47, 27 May 2008 (PST)&lt;br /&gt;
:Indeed, not many people are aware of the issue with the pathfinding grid cache, and I&#039;m not sure who released the plugin-ready EXE. Could you guys link to it?&lt;br /&gt;
:The latest version of the [[Daodan DLL]] takes care of the pathfinding grid cache (and enables plugins, too), so you can use it with the original &amp;quot;Engrish&amp;quot; EXE.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
:Another issue that systematically causes crashes is Loser&#039;s latest contribution to the Edition (TRAM hacks). Roll back to the New Year&#039;s release and report.&lt;br /&gt;
:I feel really sorry for not tracking down those of the upgrades that cause memory corruption, but Loser&#039;s TRAM are a lot of stuff to go through. Patience...&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
:The plugin EXE was posted by EdT [[http://oni.bungie.org/community/forum/viewtopic.php?id=508 here]]. The plugin EXE is hosted on Paradox&#039;s oni2.net site.&lt;br /&gt;
::[[User:Your_Mom|Your_Mom]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Bug reports==&lt;br /&gt;
===Players that just stand and stare===&lt;br /&gt;
:This apparently has to do with the number of &amp;quot;duels&amp;quot; that Oni can handle simultaneously. 2x7 players usually work out fine, but for more players it can happen that some characters are singled out and can&#039;t start a fight with anyone, because the rest of the players already form a network that has the maximum number of &amp;quot;duels&amp;quot;. This could be fixed by making some players forget their opponents, allowing for new awareness/duel links to be created.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
==Resolved issues==&lt;br /&gt;
===Insufficient pathfinding grid cache===&lt;br /&gt;
:This used to cause crashes for battles spanning a few [[AKVA|BNV]]s cumulating too many pathfinding grid squares. Typically, this happens in the TCTF parking lot, in some areas of the Airport, and in some multi-storey areas of the Bio-Research Lab. The fix is either to lock out a few areas (e.g. lock the doors between the TCTF parking lot and the main building) or, ultimately, to increase the size of the pathfinding grid cache. This has been available as an in-place patch for the EXE, and is now handled by the Daodan DLL.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
===Inconsistent pathfinding data===&lt;br /&gt;
:The only example of that so far is the main gate of the Bio-Research Lab. Even though it&#039;s closed, the pathfinding graph is the same as if it was wide open. Therefore, the AI may attempt to pathfind through it, and Oni may crash when they are blocked by the gate. This used to occur in the acid room: enemies falling to the &amp;quot;garage&amp;quot; side would start running out the garage and around the block and through the main gate and up the aisle and into the lobby and up the stairs and into the acid room again. The obvious fix to this was to lock a few doors.&lt;br /&gt;
::[[User:Geyser|geyser]] 16:25, 28 May 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=10078</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=10078"/>
		<updated>2008-05-28T05:52:32Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Website */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Website ==&lt;br /&gt;
[http://your-mom.oni2.net/ Link]&lt;br /&gt;
After a year and three months, I have resumed work on the website. Hopefully, I can remeber enough finish the Analysis and Secrets, though those should really be, and are, here. If I can find my old TXT files, I&#039;ll upload em all...&lt;br /&gt;
&lt;br /&gt;
And...I seem to not have gotten much of it done... *sigh*&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;br /&gt;
&lt;br /&gt;
Specifically, this is what it says:&lt;br /&gt;
&lt;br /&gt;
An error was encountered&lt;br /&gt;
Error: Could not connect to smtp host &amp;quot;bungie.org&amp;quot; (60) (Operation timed out). &lt;br /&gt;
&lt;br /&gt;
Thats two account names and two emails tried...no cigar. Apparently it creates the account, but it doesn&#039;t send me my confirmation email, therefore I can&#039;t login since I don&#039;t know my password... :(&lt;br /&gt;
&lt;br /&gt;
-Y_M&lt;br /&gt;
----&lt;br /&gt;
:Harry says you should try and register again.&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
:No can do for a thorough update on the projects...&lt;br /&gt;
:Too busy working on them ^^ Public overviews are the way.&lt;br /&gt;
:Basically, BIP and OTA are all part of [[ONK:ONK|ONK]] now.&lt;br /&gt;
:They&#039;re not dead by any means. There&#039;s a lot of hot new OBD stuff.&lt;br /&gt;
:However, there&#039;s no proper release apart from Loser&#039;s [[ONK:Warehouse|Warehouse Minus]] (beefed-up level0_Final)&lt;br /&gt;
:OUP still can&#039;t patch DAT stuff in a user-friendly (cross-version-compatible) way.&lt;br /&gt;
:But RAW stuff (BINA, TRAM tracks can very well be released as neat bundles).&lt;br /&gt;
:Loser has released a few such things, but nothing close to a &amp;quot;release&amp;quot; ^^&lt;br /&gt;
:(putting those together is probably more annoying than &amp;quot;experimenting&amp;quot;)&lt;br /&gt;
:Loser has done a lot of things apart from that: moveable furniture, &#039;&#039;much&#039;&#039; smarter AI...&lt;br /&gt;
::but none of that has been relelased yet. Loser tries to cram it all into Warehouse Too&lt;br /&gt;
:::(unfortunately not in a modular and globally useful way, I&#039;m afraid; we should talk)&lt;br /&gt;
:As for OTA, I hate to say that I didn&#039;t release anything since the Dev Mode came out.&lt;br /&gt;
::nothing but the pre-alpha of OTA2 that you had already seen.&lt;br /&gt;
:::I&#039;m working on a completely new core, though. OTA3 or something.&lt;br /&gt;
::Looks really cool, but unfortunately it&#039;s mostly in my head, so you can&#039;t really enjoy it ^^&lt;br /&gt;
:::I&#039;m distilling primary features (interface) one by one, and actual gameplay is secondary ATM.&lt;br /&gt;
::But it will be there. Will have to. I want OTA to totally rock by the end of the year.&lt;br /&gt;
:(it&#039;s already praised as the best Oni script mod &amp;quot;evah&amp;quot; by independent critics... congrats ^^ )&lt;br /&gt;
:EdT and you have really done a great job on that one... Thanks again, and welcome back...&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Affirmative, I&#039;ll try registering again...or...just sending that email to me :) EDIT: Worked :D&lt;br /&gt;
&lt;br /&gt;
I&#039;ll just opt for a clean re-install of the game and hope it works again...&lt;br /&gt;
Modding in the other community has died down for now, its hit a dead phase. So, mght as well [ick up work again here, unless I forget about it again (I&#039;m absent-minded of thing&#039;s I&#039;m not immediately aware of need of doing). If you&#039;re still in need of a porter, there might be something I can do, giving its not too complex...I hope I remeber which values to change... So a combined thing, nice. OTA was fun with BIP-improved levels...in fact, I found it the easy way of testing the changes, rather than just play through the level...&lt;br /&gt;
&lt;br /&gt;
Good to be back,&lt;br /&gt;
-Y_M&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=10077</id>
		<title>AE talk:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=10077"/>
		<updated>2008-05-28T05:51:50Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CRASH REPORTS==&lt;br /&gt;
&lt;br /&gt;
This area is for reporting or documenting crashes on OniTeamArena (OTA)&lt;br /&gt;
Please report ANY CRASHES to this area.&lt;br /&gt;
&lt;br /&gt;
Thank You&lt;br /&gt;
&lt;br /&gt;
CRASH REPORTS :&lt;br /&gt;
----&lt;br /&gt;
The following crash report is for BRL arena 1.0 (Bio Research Lab)&lt;br /&gt;
&lt;br /&gt;
Crash Occurs : During Game-play, time varying&lt;br /&gt;
&lt;br /&gt;
Crash Origin : (Quote geyser): &#039;At the moment I &amp;quot;positively assume&amp;quot; or &amp;quot;definitely guess&amp;quot; or (whatever it&#039;s called) that the problem is with pathfinding on overlapping quads where AI can be simultaneously. Like being on the stairs, then falling and instantaneously being on the quad that goes under the stairs. It all apparently depends a lot on how it&#039;s done in a particular level. Big spaces covered with overlapping quads, ramps that emerge in the middle of a quad, stairs without railings... those are my &amp;quot;usual suspects&amp;quot; of the moment.&#039;&lt;br /&gt;
&lt;br /&gt;
Crash History : Similar crash experienced in &amp;lt;Airport Arena&amp;gt; all 1.X verions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging Status : Completed Contact [[User:geyser|geyser]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I crashed on compound even with the Daodan dll in. I was using the plugin version of the EXE if it matters [[User:Gumby|Gumby]] 00:00, 27 May 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Did you use the cache fix? I don&#039;t know if it was fixed in Daodan dll. I know for sure it&#039;s fine with the cache fix EXE. It&#039;d be troublesome if the plugin EXE didn&#039;t have the cache fix... [[User:Your_Mom|Your_Mom]] 10:47, 27 May 2008 (PST)&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:OTA&amp;diff=10076</id>
		<title>AE:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:OTA&amp;diff=10076"/>
		<updated>2008-05-28T05:46:40Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Where do I get it? - fixed a broken link */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
|[[Image:ONK.png]]&lt;br /&gt;
|}&lt;br /&gt;
{|align=right border=1 cellspacing=0&lt;br /&gt;
|&lt;br /&gt;
{|cellspacing=0&lt;br /&gt;
!OTA TALK ON [http://oni.bungie.org/forums/ OCF]&lt;br /&gt;
|-&lt;br /&gt;
|*[http://oni.bungie.org/forums/index.php?threadid=142 Major releases]&lt;br /&gt;
|-&lt;br /&gt;
|*[http://oni.bungie.org/forums/index.php?threadid=121 Dev talk]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{|cellspacing=0&lt;br /&gt;
!CONTACT US&lt;br /&gt;
|-&lt;br /&gt;
|*[[User:Geyser|geyser]]&lt;br /&gt;
|-&lt;br /&gt;
|*[[User:Your_Mom|Your_Mom]]&lt;br /&gt;
|-&lt;br /&gt;
|*[http://edt.oni2.net EdT]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Oni Team Arena (or OTA)==&lt;br /&gt;
Oni Team Arena is a series of scripts oriented on multiplayer gameplay. You don&#039;t get to fight human opponents, but Oni&#039;s AI are treated as respawning bots.&lt;br /&gt;
&lt;br /&gt;
The interface is much inspired by that of existing FPS-shooters and other games supporting multiplayer.&lt;br /&gt;
&lt;br /&gt;
Smart bot behaviour, challenge and entertainment are the main objectives. OTA is also a playground allowing us to test complex combat situations before they get implemented in projects like Oni 2.&lt;br /&gt;
&lt;br /&gt;
We try to implement as many popular multiplayer features as possible: random spawn positions, random weapons and powerups, frag-related messages, sounds and visuals, bot model selection etc. In the case of advanced features like teleporters and jump platforms, we&#039;re limited by the original AI. Otherwise, anything goes. &lt;br /&gt;
--------&lt;br /&gt;
&amp;quot;We&amp;quot; is [[User:geyser|geyser]] for the core scripting, [[User:Your_Mom|Your_Mom]] for cross-level porting on PC, and (since recently) [http://edt.oni2.net EdT] for porting 1.1 onto Mac OS9. [http://script10000.oni2.net/ Script 10000] provided the initial idea.&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
==What exactly is Oni Team Arena?==&lt;br /&gt;
What we do is a large number of comparatively small arena-like setups in appropriate spots throughout Oni. There are two teams of bots, you get to lead one, and a boss character gets to lead the other.&lt;br /&gt;
&lt;br /&gt;
The number of players can vary, but we try to make it large, starting at 16 (which is the number of network/online players supported by Serious Engine 2). &lt;br /&gt;
&lt;br /&gt;
Teams don&#039;t just fight with each other, they score points and the first team to reach a set amount of points wins. There can be neutral characters who attack either team or just annoy everybody.&lt;br /&gt;
&lt;br /&gt;
===Game modes===&lt;br /&gt;
*Team Deathmatch : teams score a frag every time a player of the opposite team dies. - IMPLEMENTED, currently in final stage of development&lt;br /&gt;
*Tag a.k.a. Oni : the player is &amp;quot;it&amp;quot; (a.k.a. the Oni), alone against the AI. When an AI dies, it becomes the Oni : it respawns, and the player gets to control this new character. The old Oni becomes an enemy AI. - IMPLEMENTED, being added to release versions&lt;br /&gt;
*Capture The Flag : teams score points by stealing the enemy flag and bringing it home. - IN PROJECT&lt;br /&gt;
*Oni Rugby : teams score points by carrying an object (the ball) and marking a point with it in the enemy camp. - IN PROJECT&lt;br /&gt;
*Bonuses : Stuff like a fun shooting range with a score, not really an arena, but something we might want to throw in a pack.&lt;br /&gt;
*More bonuses : Advanced scripting choreography and camera management (fighting/dancing/moviemaking)...&lt;br /&gt;
*Other stuff, not clearly defined yet &lt;br /&gt;
&lt;br /&gt;
Both time limit and frag limit are supported in the most recent DM packs.&lt;br /&gt;
&lt;br /&gt;
===Fighting modes===&lt;br /&gt;
*total melee : no weapons&lt;br /&gt;
*balanced gameplay : limited number of randomly chosen weapons.&lt;br /&gt;
*single-weapon gameplay : limited number of weapons of one given type.&lt;br /&gt;
Weapons can be given at respawn-time or they can be spawned on the ground.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Where do I get it?==&lt;br /&gt;
The downloads section is in construction.&lt;br /&gt;
&lt;br /&gt;
These are stand-alone scripts that install in a level&#039;s script folder and don&#039;t have [[IGMD/global|IGMD/global]] elements.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;ONI TEAM ARENA 1.0 (TEAM DEATHMATCH) OUTDATED&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Available&lt;br /&gt;
!Certified (YES/NO)&lt;br /&gt;
!Stable (YES/NO)&lt;br /&gt;
!Readme file&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota_1/roof_arena.zip ROOFTOPS DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota_1/roof_arena/README.TXT README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/ACC2.zip ATMOSPHERIC PROCESSORS 2 DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_acc2.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/SMC.zip SYNDICATE MOUNTAIN COMPOUND DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_smc.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/TSP.zip TCTF SCIENCE PRISON DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_tsp.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/RSB_arena.zip REGIONAL STATE BUILDING DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_rsb.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/Brl_Arena.zip BIO RESEARCH LAB DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|NO&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_brl.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/ACH.zip AIRPORT CARGO HANGARS DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_ach.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/TRH.zip TCTF REGIONAL HQ DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/MMP.zip MUSASHI MANUFACTURING DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
||[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/DHL.zip KONOKO&#039;S DREAM WORLD DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;ONI TEAM ARENA 1.1 (TEAM DEATHMATCH)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Available&lt;br /&gt;
!Certified (YES/NO)&lt;br /&gt;
!Stable (YES/NO)&lt;br /&gt;
!Readme file&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota1_1/roofDM1_1.zip ROOFTOPS DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota1_1/roof_arena/README.TXT README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20V.1.1/ACC(2)_1.1.zip ATMOSPHERIC PROCESSORS 2 DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES (?)&lt;br /&gt;
|NOT AVAILABLE (Included in ZIP)&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/WIP/HQfixed.zip TCTF REGIONAL HQ DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE (Included in ZIP)&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/WIP/ABPbis.zip AIRPORT ASSAULT DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota1_1/AirportBatteryPack/README.TXT README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20V.1.1/SMC1.1.zip SYNDICATE MOUNTAIN COMPOUND DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES* Requires Cache Fix [http://oni.bungie.org/community/forum/viewtopic.php?pid=2243#p2243 Here]&lt;br /&gt;
|NOT AVAILABLE (Included in ZIP)&lt;br /&gt;
|}&lt;br /&gt;
Global version coming soon...&lt;br /&gt;
&lt;br /&gt;
[http://oni.bungie.org/forums/index.php?threadid=121&amp;amp;page=40#pager HERE] are a few recent builds. Check them out :)&lt;br /&gt;
&lt;br /&gt;
==How can I help?==&lt;br /&gt;
Beta-testing of any available OTA release listed above is welcome. We have a stability issue (read : we get &amp;quot;Blam! Oni crashed&amp;quot;) on some levels with the most recent and full-featured versions of OTA (1.1)&lt;br /&gt;
&lt;br /&gt;
Please check back on this page now and then, download and test everything that doesn&#039;t have a YES/NO &amp;quot;Stable&amp;quot; label.&lt;br /&gt;
Any level labeled as &amp;quot;unstable&amp;quot; will get a dedicated crash report and discussion page.&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re interested in helping to cross-level port or debug, please contact us (contact links are at the top of the page).&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripts]]&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Talk:Oni_(folder)/GameDataFolder/IGMD&amp;diff=7757</id>
		<title>Talk:Oni (folder)/GameDataFolder/IGMD</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Talk:Oni_(folder)/GameDataFolder/IGMD&amp;diff=7757"/>
		<updated>2008-02-11T02:37:31Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What does IGMD stand for? ==&lt;br /&gt;
&lt;br /&gt;
The only thing I can come up with is In-Game Meta Data... &#039;&#039;&#039;-YM&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:OTA&amp;diff=7750</id>
		<title>AE:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:OTA&amp;diff=7750"/>
		<updated>2008-02-10T07:03:11Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Where do I get it? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
|[[Image:ONK.png]]&lt;br /&gt;
|}&lt;br /&gt;
{|align=right border=1 cellspacing=0&lt;br /&gt;
|&lt;br /&gt;
{|cellspacing=0&lt;br /&gt;
!OTA TALK ON [http://oni.bungie.org/forums/ OCF]&lt;br /&gt;
|-&lt;br /&gt;
|*[http://oni.bungie.org/forums/index.php?threadid=142 Major releases]&lt;br /&gt;
|-&lt;br /&gt;
|*[http://oni.bungie.org/forums/index.php?threadid=121 Dev talk]&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{|cellspacing=0&lt;br /&gt;
!CONTACT US&lt;br /&gt;
|-&lt;br /&gt;
|*[[User:Geyser|geyser]]&lt;br /&gt;
|-&lt;br /&gt;
|*[[User:Your_Mom|Your_Mom]]&lt;br /&gt;
|-&lt;br /&gt;
|*[http://edt.oni2.net EdT]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Oni Team Arena (or OTA)==&lt;br /&gt;
Oni Team Arena is a series of scripts oriented on multiplayer gameplay. You don&#039;t get to fight human opponents, but Oni&#039;s AI are treated as respawning bots.&lt;br /&gt;
&lt;br /&gt;
The interface is much inspired by that of existing FPS-shooters and other games supporting multiplayer.&lt;br /&gt;
&lt;br /&gt;
Smart bot behaviour, challenge and entertainment are the main objectives. OTA is also a playground allowing us to test complex combat situations before they get implemented in projects like Oni 2.&lt;br /&gt;
&lt;br /&gt;
We try to implement as many popular multiplayer features as possible: random spawn positions, random weapons and powerups, frag-related messages, sounds and visuals, bot model selection etc. In the case of advanced features like teleporters and jump platforms, we&#039;re limited by the original AI. Otherwise, anything goes. &lt;br /&gt;
--------&lt;br /&gt;
&amp;quot;We&amp;quot; is [[User:geyser|geyser]] for the core scripting, [[User:Your_Mom|Your_Mom]] for cross-level porting on PC, and (since recently) [http://edt.oni2.net EdT] for porting 1.1 onto Mac OS9. [http://script10000.oni2.net/ Script 10000] provided the initial idea.&lt;br /&gt;
-----------&lt;br /&gt;
&lt;br /&gt;
==What exactly is Oni Team Arena?==&lt;br /&gt;
What we do is a large number of comparatively small arena-like setups in appropriate spots throughout Oni. There are two teams of bots, you get to lead one, and a boss character gets to lead the other.&lt;br /&gt;
&lt;br /&gt;
The number of players can vary, but we try to make it large, starting at 16 (which is the number of network/online players supported by Serious Engine 2). &lt;br /&gt;
&lt;br /&gt;
Teams don&#039;t just fight with each other, they score points and the first team to reach a set amount of points wins. There can be neutral characters who attack either team or just annoy everybody.&lt;br /&gt;
&lt;br /&gt;
===Game modes===&lt;br /&gt;
*Team Deathmatch : teams score a frag every time a player of the opposite team dies. - IMPLEMENTED, currently in final stage of development&lt;br /&gt;
*Tag a.k.a. Oni : the player is &amp;quot;it&amp;quot; (a.k.a. the Oni), alone against the AI. When an AI dies, it becomes the Oni : it respawns, and the player gets to control this new character. The old Oni becomes an enemy AI. - IMPLEMENTED, being added to release versions&lt;br /&gt;
*Capture The Flag : teams score points by stealing the enemy flag and bringing it home. - IN PROJECT&lt;br /&gt;
*Oni Rugby : teams score points by carrying an object (the ball) and marking a point with it in the enemy camp. - IN PROJECT&lt;br /&gt;
*Bonuses : Stuff like a fun shooting range with a score, not really an arena, but something we might want to throw in a pack.&lt;br /&gt;
*More bonuses : Advanced scripting choreography and camera management (fighting/dancing/moviemaking)...&lt;br /&gt;
*Other stuff, not clearly defined yet &lt;br /&gt;
&lt;br /&gt;
Both time limit and frag limit are supported in the most recent DM packs.&lt;br /&gt;
&lt;br /&gt;
===Fighting modes===&lt;br /&gt;
*total melee : no weapons&lt;br /&gt;
*balanced gameplay : limited number of randomly chosen weapons.&lt;br /&gt;
*single-weapon gameplay : limited number of weapons of one given type.&lt;br /&gt;
Weapons can be given at respawn-time or they can be spawned on the ground.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Where do I get it?==&lt;br /&gt;
The downloads section is in construction.&lt;br /&gt;
&lt;br /&gt;
These are stand-alone scripts that install in a level&#039;s script folder and don&#039;t have [[IGMD/global|IGMD/global]] elements.&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;ONI TEAM ARENA 1.0 (TEAM DEATHMATCH) OUTDATED&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Available&lt;br /&gt;
!Certified (YES/NO)&lt;br /&gt;
!Stable (YES/NO)&lt;br /&gt;
!Readme file&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota_1/roof_arena.zip ROOFTOPS DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota_1/roof_arena/README.TXT README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/ACC2.zip ATMOSPHERIC PROCESSORS 2 DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_acc2.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/SMC.zip SYNDICATE MOUNTAIN COMPOUND DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_smc.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/TSP.zip TCTF SCIENCE PRISON DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_tsp.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/RSB_arena.zip REGIONAL STATE BUILDING DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_rsb.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/Brl_arena.zip BIO RESEARCH LAB DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|NO&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_brl.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/ACH.zip AIRPORT CARGO HANGARS DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://your-mom.oni2.net/Help%20and%20Troubleshooting%20Items/readme_ach.txt README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/TRH.zip TCTF REGIONAL HQ DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/MMP.zip MUSASHI MANUFACTURING DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE&lt;br /&gt;
|-&lt;br /&gt;
||[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20v.1.0%20Scripts/DHL.zip KONOKO&#039;S DREAM WORLD DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;ONI TEAM ARENA 1.1 (TEAM DEATHMATCH)&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Available&lt;br /&gt;
!Certified (YES/NO)&lt;br /&gt;
!Stable (YES/NO)&lt;br /&gt;
!Readme file&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota1_1/roofDM1_1.zip ROOFTOPS DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota1_1/roof_arena/README.TXT README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20V.1.1/ACC(2)_1.1.zip ATMOSPHERIC PROCESSORS 2 DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES (?)&lt;br /&gt;
|NOT AVAILABLE (Included in ZIP)&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/WIP/HQfixed.zip TCTF REGIONAL HQ DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|NOT AVAILABLE (Included in ZIP)&lt;br /&gt;
|-&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/WIP/ABPbis.zip AIRPORT ASSAULT DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES&lt;br /&gt;
|[http://geyser.oni2.net/OniTeamArena/ota1_1/AirportBatteryPack/README.TXT README.TXT]&lt;br /&gt;
|-&lt;br /&gt;
|[http://your-mom.oni2.net/Downloads/Arena%20Scripts/Arena%20V.1.1/SMC1.1.zip SYNDICATE MOUNTAIN COMPOUND DM PACK]&lt;br /&gt;
|YES&lt;br /&gt;
|YES* Requires Cache Fix [http://oni.bungie.org/community/forum/viewtopic.php?pid=2243#p2243 Here]&lt;br /&gt;
|NOT AVAILABLE (Included in ZIP)&lt;br /&gt;
|}&lt;br /&gt;
Global version coming soon...&lt;br /&gt;
&lt;br /&gt;
[http://oni.bungie.org/forums/index.php?threadid=121&amp;amp;page=40#pager HERE] are a few recent builds. Check them out :)&lt;br /&gt;
&lt;br /&gt;
==How can I help?==&lt;br /&gt;
Beta-testing of any available OTA release listed above is welcome. We have a stability issue (read : we get &amp;quot;Blam! Oni crashed&amp;quot;) on some levels with the most recent and full-featured versions of OTA (1.1)&lt;br /&gt;
&lt;br /&gt;
Please check back on this page now and then, download and test everything that doesn&#039;t have a YES/NO &amp;quot;Stable&amp;quot; label.&lt;br /&gt;
Any level labeled as &amp;quot;unstable&amp;quot; will get a dedicated crash report and discussion page.&lt;br /&gt;
&lt;br /&gt;
Also, if you&#039;re interested in helping to cross-level port or debug, please contact us (contact links are at the top of the page).&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:Warehouse&amp;diff=5496</id>
		<title>AE:Warehouse</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:Warehouse&amp;diff=5496"/>
		<updated>2007-08-10T03:51:15Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Change log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Warehouse Mod==&lt;br /&gt;
===Download directory===&lt;br /&gt;
[http://geyser.oni2.net/ONK/warehouse/WarehouseMod HERE] (pay attention to the file sizes : it&#039;s over 30 megs...)&lt;br /&gt;
*level0_Final.rar holds level0_Final.dat and level0_Final.raw : they go in your [[GameDataFolder]] (backup the originals)&lt;br /&gt;
*OniLevel1a.rar holds level1_Final.dat and the level logic folder : the former goes in [[GameDataFolder]] (backup the original), the latter in [[GameDataFolder]]/[[OSL:IGMD|IGMD]], replacing the original [[OSL:IGMD/EnvWarehouse|EnvWarehouse]] folder (which you should backup too : rename it or move it away)&lt;br /&gt;
*OniLevel1b.rar holds level1_Final.raw, which goes in [[GameDataFolder]] as well (backup the original)&lt;br /&gt;
===Sorta change log===&lt;br /&gt;
Adding text files to the download directory above some time, maybe...&lt;br /&gt;
====level0_Final====&lt;br /&gt;
Globally effective changes&lt;br /&gt;
*Swapped run/dash anims for Strikers and Comguys (affects everyone except Thugs, Tankers, Ninjas, Elites and Mutant Muro)&lt;br /&gt;
*Swapped particle tracks (flashier combos)&lt;br /&gt;
*Striker front throw replaced with Comguy disarm (flashier, looks like a Fury throw)&lt;br /&gt;
*Konoko&#039;s front kick throw replaced with stepping disarm (no crowd-clearing effect)&lt;br /&gt;
*One of Konoko&#039;s running kick throws replaced with a Running Lariat&lt;br /&gt;
*Something with the Sledgehammer Heel&lt;br /&gt;
*Konoko&#039;s combos &#039;&#039;not&#039;&#039; unlocked&lt;br /&gt;
*Other stuff&lt;br /&gt;
====level1_Final====&lt;br /&gt;
*Relocated (hidden) datapad&lt;br /&gt;
*Much healthier AI&lt;br /&gt;
*Ninja particles for &amp;quot;Ninja Bots&amp;quot;&lt;br /&gt;
*Thugs fight like Griffin&lt;br /&gt;
*Other stuff&lt;br /&gt;
====EnvWarehouse====&lt;br /&gt;
Completely rewritten level logic, surprise, surprise!&lt;br /&gt;
*Scripted combo overrides for boss fight&lt;br /&gt;
*Scripted weapon holstering for some AI&lt;br /&gt;
*Locked doors (must seek alternate routes)&lt;br /&gt;
*(Annoyingly) hard fights&lt;br /&gt;
*Plenty ways to lose (e.g. warehouse manager can die...)&lt;br /&gt;
*Controllable warehouse manager (nice, but buggy)&lt;br /&gt;
*Other stuff&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==Warehouse Mod Too==&lt;br /&gt;
===Planned changes aka &amp;quot;what I WANT in it&amp;quot;, not &amp;quot;what WILL be in it&amp;quot;===&lt;br /&gt;
[[ONK_talk:Warehouse|DISCUSSION]]&lt;br /&gt;
====level0_Final====&lt;br /&gt;
Globally effective changes &lt;br /&gt;
*edit some melee files for new experience (we are used to old patterns)&lt;br /&gt;
&#039;&#039;(Don&#039;t minimize the impact of scripting and exotic MELE/TRAC pairing. I wouldn&#039;t touch the &amp;quot;old&amp;quot; melee patterns without a &#039;&#039;&#039;very&#039;&#039;&#039; good reason. [[User:Geyser|geyser]])&lt;br /&gt;
*edit some combat files for better AI behavior&lt;br /&gt;
*edit some weapon files, add secondary fire mode (tribute to Geyser), make AI smarter with guns and aganist guns*&lt;br /&gt;
&#039;&#039;(Those two are complementary, and further complemented by level-and-ONCC-specific [[OBD:ONCC#0x15C_-_0x293|AI skills]]. Handle with care. [[User:Geyser|geyser]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(In particular, secondary fire modes need to have consistent AI skill ID, for the AI to use appropriate fire rate etc. Every ONCC needs to be edited accordingly, which is a lot of work. And ONCC are not patch-friendly. Dunno. [[User:Geyser|geyser]])&lt;br /&gt;
*flashy attacks again but this time better used particles (I hope)&lt;br /&gt;
*maybe something else&lt;br /&gt;
 *try a little experiment: take A_t48 thug in EnvWarehouse and make him invincible. Then get w1_tap(Equalizer) or w2_sap(Black adder) and turn on superammo cheat. Now startle thug, don&#039;t shoot. Lead him to the side opposite of the locked door which leads out of the building. Now dash to the door (so there is big hole between you and thug) and start permanent fire. You will see that after second or two he begins to strafe and he&#039;s trying to hide behind corners and objects. If he&#039;s too close, he will attack you. Problem is that w1_tap and w2_sap are only guns with that effect. Aganist other ones he just run towards his death.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Actually (see [[OBD:ONWC|HERE]]), the weapons originally using that feature are w1_tap, w2_sap and w4_psm. The effect is harder to notice with w4_psm, because AI often get knocked down before they can dodge or run for cover. [[User:Geyser|geyser]])&lt;br /&gt;
====level1_Final====&lt;br /&gt;
Changes to level 1 binaries &lt;br /&gt;
*edit characters ONCC files, add idle animations for some chars, health correction, some AI events(rotation, getups etc)&lt;br /&gt;
&#039;&#039;(&amp;quot;correction&amp;quot;, heh... not feeling too good about that, somehow... [[User:Geyser|geyser]])&lt;br /&gt;
*mix few textures and models to create Casey Shanagan character &#039;&#039;(obstinately misspelling him, huh? [[User:Geyser|geyser]])&#039;&#039;&lt;br /&gt;
&#039;&#039;(I&#039;d say Karen&#039;s head mesh, definitely, with a slightly modified female skeleton, upscaled. [[User:Geyser|geyser]])&lt;br /&gt;
*edit thug TRAC so it will be Casey&#039;s TRAC. try to edit some thug TRAMs into Casey&#039;s unique fight style*&lt;br /&gt;
&#039;&#039;(You can handle Casey the same way as a boss, script-mixing anims from different TRAC, without changing anything to the binary. [[User:Geyser|geyser]])&lt;br /&gt;
*TRAC game: Thugs will receive Comguy TRAC, Casey will receive changed Thug TRAC, Kojiro and his minions will have Ninja TRAC&lt;br /&gt;
&#039;&#039;(I&#039;d say make it low priority. Unless it&#039;s not too time consuming, just leave it : we may have an animating pipeline Soon(TM). [[User:Geyser|geyser]])&lt;br /&gt;
*&#039;&#039;&#039;edit character bina file in way I need (renamed characters, changed patrols, switched character classes etc.)&lt;br /&gt;
*&#039;&#039;&#039;edit flag bina file in way I need&lt;br /&gt;
*&#039;&#039;&#039;edit patrol paths bina file, again try to refresh game experience&lt;br /&gt;
*&#039;&#039;&#039;edit some trigger volumes bina files in way I need(mainly positions)&lt;br /&gt;
&#039;&#039;(Those four : a) are most important for custom level logic; b) can be released as 100% PC/Mac-compatible OUP patches. High priority. Edit the RAW part, export from OUP, share. [[User:Geyser|geyser]])&lt;br /&gt;
*edit some TXMPs and TXANs, try to create some moving monitors as it was in trailer&lt;br /&gt;
&#039;&#039;(Eye candy. Not too portable at the moment. Low priority. [[User:Geyser|geyser]])&lt;br /&gt;
*probably all ^_-&lt;br /&gt;
 *I welcome any tips and hints for his moves.Please write them to {{OCF}}. But remember: Those moves can&#039;t be as clean and perfect as original because I can only reverse hack them (I don&#039;t have Bungie&#039;s animation program).&lt;br /&gt;
&#039;&#039;(We could be able to exchange Oni animation tracks with a semi-professional animating tool some time soon. Working on it. [[User:Geyser|geyser]])&lt;br /&gt;
====EnvWarehouse====&lt;br /&gt;
Scripted level logic&lt;br /&gt;
*this time totally rewritten, not just improved original&lt;br /&gt;
&#039;&#039;(Lots of non-linearities, I hope... [[User:Geyser|geyser]])&#039;&#039;&lt;br /&gt;
*again holstering enemies, this time I hope that in combination with Combat.bina file hack it will be more useful&lt;br /&gt;
&#039;&#039;(There are pretty reliable way to script that. How about a few practical code samples : a mini-script with one smart AI or two? [[User:Geyser|geyser]])&lt;br /&gt;
*some boss fight surprises&lt;br /&gt;
&#039;&#039;(I have a few ideas in store : some of them I&#039;ve already talked about on {{OCF}}. Curious about yours. [[User:Geyser|geyser]])&lt;br /&gt;
*again alternate routes&lt;br /&gt;
&#039;&#039;(Jetpacks, powersuits, and more generally slightly enhanced jumping could make new routes possible.. [[User:Geyser|geyser]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(I&#039;d reveal the 15 hidden doors. Either by scripting, or in binary (have to find the quads first...). Fixing the pathfinding grids would be great, too. [[User:Geyser|geyser]])&lt;br /&gt;
*a bit rewritten story*, possibility of two alternate endings of this level, which can affect next level gameplay&lt;br /&gt;
*through the level you will play as Konoko and as Casey(depends on situations)&lt;br /&gt;
*something more???&lt;br /&gt;
 *For Geyser: I would like to talk only with you about this. I want this mod to be entertaining so players can&#039;t know all details now. Plus your sharp critics. :)&lt;br /&gt;
&#039;&#039;(PM/mail details, discuss more general ideas here. Honestly, the wiki isn&#039;t all that popular so far, and as for those who read it, a big &#039;&#039;&#039;SPOILER WARNING : DEVELOPER AREA&#039;&#039;&#039; should be dissuasive enough : if they want to enjoy the mod, they just won&#039;t read any further. [[User:Geyser|geyser]])&lt;br /&gt;
&lt;br /&gt;
Overall, if this mod is successful (or ever made ^_^&#039;), I will create another one of level two with alternate storylines (depends on ending of level 1). Long-time goal is to remake whole game :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Hey, that&#039;s what [[ONK:ONK|ONK]] is all about. Welcome on board. [[User:Geyser|geyser]])&lt;br /&gt;
&lt;br /&gt;
Written by Loser 26th July 2006&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Derived==&lt;br /&gt;
===Warehouse Mod Minus The Warehouse===&lt;br /&gt;
Basically the global component of the Warehouse Mod above : get it [http://geyser.oni2.net/ONK/warehouse/GlobalHacks/level0_Enhanced.rar HERE] (11 MB)&lt;br /&gt;
&lt;br /&gt;
(both files in the archive should go in [[GameDataFolder]], backup the originals, yada yada)&lt;br /&gt;
====Change log====&lt;br /&gt;
Detailed change logs : [http://geyser.oni2.net/ONK/warehouse/GlobalHacks/dat.log DAT] [http://geyser.oni2.net/ONK/warehouse/GlobalHacks/raw.log RAW]&lt;br /&gt;
*Unlocked all of Konoko&#039;s combos&lt;br /&gt;
*&amp;quot;Pseudo-dashing&amp;quot; for Konoko, Strikers and Comguys (running TRAMS link to same resources as sprinting TRAMS)&lt;br /&gt;
**All characters are affected except Thugs, Tankers, Ninjas, Elites and Mutant Muro&lt;br /&gt;
**Player is also affected (i.e. Konoko pseudo-dashes instead of running)&lt;br /&gt;
**Konoko&#039;s sliding is enabled for pseudo-dashing to avoid frustration ^^&lt;br /&gt;
*Flashy particles for :&lt;br /&gt;
**Dashing and &amp;quot;pseudo-dashing&amp;quot;&lt;br /&gt;
**Spinning Sidekick (KONCOMcomb_k_k_k)&lt;br /&gt;
**Triple-Hit Haymaker (KONCOMcomb_p_p_p)&lt;br /&gt;
**Sledgehammer Heel (KONCOMcomb_p_p_k)&lt;br /&gt;
**Crescent Kick (KONCOMcomb_k_k_kfw)&lt;br /&gt;
**Twister Kicks (KONCOMlt_fw_kick/KONCOMrt_fw_kick)&lt;br /&gt;
**Striker Triple Kick (STRCOMcomb_k_k_k)&lt;br /&gt;
**Striker Triple Punch (STRCOMcomb_p_p_p)&lt;br /&gt;
**Comguy Triple Punch (COMCOMcomb_p_p_p)&lt;br /&gt;
**Comguy Double Kick (COMCOMcomb_k_k)&lt;br /&gt;
*&amp;quot;Radio Saber!&amp;quot; alternates at random with &amp;quot;Static Fist!&amp;quot;&lt;br /&gt;
*Muro&#039;s glows and trails are made framerate-friendlier (mercilessly trimmed)&lt;br /&gt;
And that&#039;s about it...&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=5495</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=5495"/>
		<updated>2007-08-08T01:45:07Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Downloading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
==Project Points==&lt;br /&gt;
===Global improvements (level 0)===&lt;br /&gt;
*Unlocked combat moves for Konoko and female civilians&lt;br /&gt;
*Two new weapons : WMC Lite (a WMC you can run with and that everybody can collect and reload) and F3 - Framerate Friendly Fireworks&lt;br /&gt;
*Cool-looking particles for special moves of basic character classes : Konoko, Comguys, Strikers.&lt;br /&gt;
*run=dash, so AI automatically dash instead of running (for everyone but Elites, Ninjas, Tankers and Thugs)&lt;br /&gt;
The last point (dashing AI) has a few issues in its current state, so I propose we switch to Alloc&#039;s Trainer for a change.&lt;br /&gt;
===Level-specific improvements===&lt;br /&gt;
*Systematic names for AI and related events (hurt, death, dying, reload, etc), for more powerful scripting&lt;br /&gt;
*Improved AI (using complex AI melee patterns rather than basic ones)&lt;br /&gt;
*Wider range of spawnable characters (more random skins, harder enemy types, more enemy types where available)&lt;br /&gt;
*New enemy type (Comguy with Ninja skills) in levels 1, 12 and 19&lt;br /&gt;
*AI-endowed Konoko for all levels (Players will now use &amp;quot;ai_0&amp;quot; as their player character)&lt;br /&gt;
*More&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
The ones currently available are the first generation.&lt;br /&gt;
They only contain functions for death and hurt. (And some other things which you must find out on your own :p)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_Final&lt;br /&gt;
|Available *&lt;br /&gt;
|-&lt;br /&gt;
|level1_Final&lt;br /&gt;
|Available&lt;br /&gt;
|-&lt;br /&gt;
|level2_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_Final&lt;br /&gt;
|Available [http://your_mom.oni2.net/Downloads/CompoundB.rar HERE!]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_Final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ok, File(s) Back Online (well, mine, Loser&#039;s are gone :S )&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=5494</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=5494"/>
		<updated>2007-08-08T01:44:25Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Downloading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
==Project Points==&lt;br /&gt;
===Global improvements (level 0)===&lt;br /&gt;
*Unlocked combat moves for Konoko and female civilians&lt;br /&gt;
*Two new weapons : WMC Lite (a WMC you can run with and that everybody can collect and reload) and F3 - Framerate Friendly Fireworks&lt;br /&gt;
*Cool-looking particles for special moves of basic character classes : Konoko, Comguys, Strikers.&lt;br /&gt;
*run=dash, so AI automatically dash instead of running (for everyone but Elites, Ninjas, Tankers and Thugs)&lt;br /&gt;
The last point (dashing AI) has a few issues in its current state, so I propose we switch to Alloc&#039;s Trainer for a change.&lt;br /&gt;
===Level-specific improvements===&lt;br /&gt;
*Systematic names for AI and related events (hurt, death, dying, reload, etc), for more powerful scripting&lt;br /&gt;
*Improved AI (using complex AI melee patterns rather than basic ones)&lt;br /&gt;
*Wider range of spawnable characters (more random skins, harder enemy types, more enemy types where available)&lt;br /&gt;
*New enemy type (Comguy with Ninja skills) in levels 1, 12 and 19&lt;br /&gt;
*AI-endowed Konoko for all levels (Players will now use &amp;quot;ai_0&amp;quot; as their player character)&lt;br /&gt;
*More&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
The ones currently available are the first generation.&lt;br /&gt;
They only contain functions for death and hurt. (And some other things which you must find out on your own :p)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_Final&lt;br /&gt;
|Available *&lt;br /&gt;
|-&lt;br /&gt;
|level1_Final&lt;br /&gt;
|Available&lt;br /&gt;
|-&lt;br /&gt;
|level2_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_Final&lt;br /&gt;
|Available [http://your_mom.oni2.net/Downloads/CompoundB.rar HERE!]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_Final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ok, File(s) Back Online (hopefully)&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=5422</id>
		<title>Oni (folder)/GameDataFolder/IGMD/compound</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=5422"/>
		<updated>2007-07-14T19:55:51Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Available mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Level logic for Chapter 14:DAWN OF THE CHRYSALIS==&lt;br /&gt;
aka &#039;&#039;&#039;Syndicate Mountain Compound&#039;&#039;&#039; (Sturmanderung)&lt;br /&gt;
===Associated binaries===&lt;br /&gt;
*level19_Final.dat&lt;br /&gt;
*level19_Final.raw&lt;br /&gt;
===Original contents===&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound.bsl compound.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_cutscene.bsl compound_cutscene.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_main.bsl compound_main.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/particle_scripts.bsl particle_scripts.bsl]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Overcommented&amp;quot; version (not online yet)===&lt;br /&gt;
*compound.bsl&lt;br /&gt;
*compound_cutscene.bsl&lt;br /&gt;
*compound_main.bsl&lt;br /&gt;
*particle_scripts.bsl&lt;br /&gt;
===Rewritten version (not online yet)===&lt;br /&gt;
*different filenames...&lt;br /&gt;
&lt;br /&gt;
==Available mods==&lt;br /&gt;
&lt;br /&gt;
*[http://your_mom.oni2.net/Downloads/My%20Other%20Scripts/mountainrallyv1.1.zip MR 1.1]&lt;br /&gt;
*[http://your_mom.oni2.net/Downloads/Scripts%20By%20Various%20Authors/Mirage.zip Mirage]&lt;br /&gt;
&lt;br /&gt;
==Related issues==&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=5421</id>
		<title>Oni (folder)/GameDataFolder/IGMD/compound</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=5421"/>
		<updated>2007-07-14T19:55:35Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Available mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Level logic for Chapter 14:DAWN OF THE CHRYSALIS==&lt;br /&gt;
aka &#039;&#039;&#039;Syndicate Mountain Compound&#039;&#039;&#039; (Sturmanderung)&lt;br /&gt;
===Associated binaries===&lt;br /&gt;
*level19_Final.dat&lt;br /&gt;
*level19_Final.raw&lt;br /&gt;
===Original contents===&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound.bsl compound.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_cutscene.bsl compound_cutscene.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_main.bsl compound_main.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/particle_scripts.bsl particle_scripts.bsl]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Overcommented&amp;quot; version (not online yet)===&lt;br /&gt;
*compound.bsl&lt;br /&gt;
*compound_cutscene.bsl&lt;br /&gt;
*compound_main.bsl&lt;br /&gt;
*particle_scripts.bsl&lt;br /&gt;
===Rewritten version (not online yet)===&lt;br /&gt;
*different filenames...&lt;br /&gt;
&lt;br /&gt;
==Available mods==&lt;br /&gt;
&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/My%20Other%20Scripts/mountainrallyv1.1.zip MR 1.1] &amp;lt;br&amp;gt;&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/Scripts%20By%20Various%20Authors/Mirage.zip Mirage]&lt;br /&gt;
&lt;br /&gt;
==Related issues==&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=5420</id>
		<title>Oni (folder)/GameDataFolder/IGMD/compound</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=5420"/>
		<updated>2007-07-14T19:55:26Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Available mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Level logic for Chapter 14:DAWN OF THE CHRYSALIS==&lt;br /&gt;
aka &#039;&#039;&#039;Syndicate Mountain Compound&#039;&#039;&#039; (Sturmanderung)&lt;br /&gt;
===Associated binaries===&lt;br /&gt;
*level19_Final.dat&lt;br /&gt;
*level19_Final.raw&lt;br /&gt;
===Original contents===&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound.bsl compound.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_cutscene.bsl compound_cutscene.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_main.bsl compound_main.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/particle_scripts.bsl particle_scripts.bsl]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Overcommented&amp;quot; version (not online yet)===&lt;br /&gt;
*compound.bsl&lt;br /&gt;
*compound_cutscene.bsl&lt;br /&gt;
*compound_main.bsl&lt;br /&gt;
*particle_scripts.bsl&lt;br /&gt;
===Rewritten version (not online yet)===&lt;br /&gt;
*different filenames...&lt;br /&gt;
&lt;br /&gt;
==Available mods==&lt;br /&gt;
&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/My%20Other%20Scripts/mountainrallyv1.1.zip MR 1.1]&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/Scripts%20By%20Various%20Authors/Mirage.zip Mirage]&lt;br /&gt;
&lt;br /&gt;
==Related issues==&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4971</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4971"/>
		<updated>2007-02-15T03:11:56Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Website ==&lt;br /&gt;
[http://your_mom.oni2.net/ Link]&lt;br /&gt;
After a year and three months, I have resumed work on the website. Hopefully, I can remeber enough finish the Analysis and Secrets, though those should really be, and are, here. If I can find my old TXT files, I&#039;ll upload em all...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;br /&gt;
&lt;br /&gt;
Specifically, this is what it says:&lt;br /&gt;
&lt;br /&gt;
An error was encountered&lt;br /&gt;
Error: Could not connect to smtp host &amp;quot;bungie.org&amp;quot; (60) (Operation timed out). &lt;br /&gt;
&lt;br /&gt;
Thats two account names and two emails tried...no cigar. Apparently it creates the account, but it doesn&#039;t send me my confirmation email, therefore I can&#039;t login since I don&#039;t know my password... :(&lt;br /&gt;
&lt;br /&gt;
-Y_M&lt;br /&gt;
----&lt;br /&gt;
:Harry says you should try and register again.&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
:No can do for a thorough update on the projects...&lt;br /&gt;
:Too busy working on them ^^ Public overviews are the way.&lt;br /&gt;
:Basically, BIP and OTA are all part of [[ONK:ONK|ONK]] now.&lt;br /&gt;
:They&#039;re not dead by any means. There&#039;s a lot of hot new OBD stuff.&lt;br /&gt;
:However, there&#039;s no proper release apart from Loser&#039;s [[ONK:Warehouse|Warehouse Minus]] (beefed-up level0_Final)&lt;br /&gt;
:OUP still can&#039;t patch DAT stuff in a user-friendly (cross-version-compatible) way.&lt;br /&gt;
:But RAW stuff (BINA, TRAM tracks can very well be released as neat bundles).&lt;br /&gt;
:Loser has released a few such things, but nothing close to a &amp;quot;release&amp;quot; ^^&lt;br /&gt;
:(putting those together is probably more annoying than &amp;quot;experimenting&amp;quot;)&lt;br /&gt;
:Loser has done a lot of things apart from that: moveable furniture, &#039;&#039;much&#039;&#039; smarter AI...&lt;br /&gt;
::but none of that has been relelased yet. Loser tries to cram it all into Warehouse Too&lt;br /&gt;
:::(unfortunately not in a modular and globally useful way, I&#039;m afraid; we should talk)&lt;br /&gt;
:As for OTA, I hate to say that I didn&#039;t release anything since the Dev Mode came out.&lt;br /&gt;
::nothing but the pre-alpha of OTA2 that you had already seen.&lt;br /&gt;
:::I&#039;m working on a completely new core, though. OTA3 or something.&lt;br /&gt;
::Looks really cool, but unfortunately it&#039;s mostly in my head, so you can&#039;t really enjoy it ^^&lt;br /&gt;
:::I&#039;m distilling primary features (interface) one by one, and actual gameplay is secondary ATM.&lt;br /&gt;
::But it will be there. Will have to. I want OTA to totally rock by the end of the year.&lt;br /&gt;
:(it&#039;s already praised as the best Oni script mod &amp;quot;evah&amp;quot; by independent critics... congrats ^^ )&lt;br /&gt;
:EdT and you have really done a great job on that one... Thanks again, and welcome back...&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Affirmative, I&#039;ll try registering again...or...just sending that email to me :) EDIT: Worked :D&lt;br /&gt;
&lt;br /&gt;
I&#039;ll just opt for a clean re-install of the game and hope it works again...&lt;br /&gt;
Modding in the other community has died down for now, its hit a dead phase. So, mght as well [ick up work again here, unless I forget about it again (I&#039;m absent-minded of thing&#039;s I&#039;m not immediately aware of need of doing). If you&#039;re still in need of a porter, there might be something I can do, giving its not too complex...I hope I remeber which values to change... So a combined thing, nice. OTA was fun with BIP-improved levels...in fact, I found it the easy way of testing the changes, rather than just play through the level...&lt;br /&gt;
&lt;br /&gt;
Good to be back,&lt;br /&gt;
-Y_M&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4970</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4970"/>
		<updated>2007-02-15T02:44:37Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Website ==&lt;br /&gt;
[http://your_mom.oni2.net/ Link]&lt;br /&gt;
After a year and three months, I have resumed work on the website. Hopefully, I can remeber enough finish the Analysis and Secrets, though those should really be, and are, here. If I can find my old TXT files, I&#039;ll upload em all...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;br /&gt;
&lt;br /&gt;
Specifically, this is what it says:&lt;br /&gt;
&lt;br /&gt;
An error was encountered&lt;br /&gt;
Error: Could not connect to smtp host &amp;quot;bungie.org&amp;quot; (60) (Operation timed out). &lt;br /&gt;
&lt;br /&gt;
Thats two account names and two emails tried...no cigar. Apparently it creates the account, but it doesn&#039;t send me my confirmation email, therefore I can&#039;t login since I don&#039;t know my password... :(&lt;br /&gt;
&lt;br /&gt;
-Y_M&lt;br /&gt;
----&lt;br /&gt;
:Harry says you should try and register again.&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
:No can do for a thorough update on the projects...&lt;br /&gt;
:Too busy working on them ^^ Public overviews are the way.&lt;br /&gt;
:Basically, BIP and OTA are all part of [[ONK:ONK|ONK]] now.&lt;br /&gt;
:They&#039;re not dead by any means. There&#039;s a lot of hot new OBD stuff.&lt;br /&gt;
:However, there&#039;s no proper release apart from Loser&#039;s [[ONK:Warehouse|Warehouse Minus]] (beefed-up level0_Final)&lt;br /&gt;
:OUP still can&#039;t patch DAT stuff in a user-friendly (cross-version-compatible) way.&lt;br /&gt;
:But RAW stuff (BINA, TRAM tracks can very well be released as neat bundles).&lt;br /&gt;
:Loser has released a few such things, but nothing close to a &amp;quot;release&amp;quot; ^^&lt;br /&gt;
:(putting those together is probably more annoying than &amp;quot;experimenting&amp;quot;)&lt;br /&gt;
:Loser has done a lot of things apart from that: moveable furniture, &#039;&#039;much&#039;&#039; smarter AI...&lt;br /&gt;
::but none of that has been relelased yet. Loser tries to cram it all into Warehouse Too&lt;br /&gt;
:::(unfortunately not in a modular and globally useful way, I&#039;m afraid; we should talk)&lt;br /&gt;
:As for OTA, I hate to say that I didn&#039;t release anything since the Dev Mode came out.&lt;br /&gt;
::nothing but the pre-alpha of OTA2 that you had already seen.&lt;br /&gt;
:::I&#039;m working on a completely new core, though. OTA3 or something.&lt;br /&gt;
::Looks really cool, but unfortunately it&#039;s mostly in my head, so you can&#039;t really enjoy it ^^&lt;br /&gt;
:::I&#039;m distilling primary features (interface) one by one, and actual gameplay is secondary ATM.&lt;br /&gt;
::But it will be there. Will have to. I want OTA to totally rock by the end of the year.&lt;br /&gt;
:(it&#039;s already praised as the best Oni script mod &amp;quot;evah&amp;quot; by independent critics... congrats ^^ )&lt;br /&gt;
:EdT and you have really done a great job on that one... Thanks again, and welcome back...&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Affirmative, I&#039;ll try registering again...wait, tell Harry to delete the &amp;quot;Your_Mom&amp;quot; and &amp;quot;Droid&amp;quot; accounts...I don&#039;t have anymore email adresses and I can&#039;t register using an email adress I&#039;v already used...&lt;br /&gt;
&lt;br /&gt;
I&#039;ll just opt for a clean re-install of the game and hope it works again...&lt;br /&gt;
Modding in the other community has died down for now, its hit a dead phase. So, mght as well [ick up work again here, unless I forget about it again (I&#039;m absent-minded of thing&#039;s I&#039;m not immediately aware of need of doing). If you&#039;re still in need of a porter, there might be something I can do, giving its not too complex...I hope I remeber which values to change... So a combined thing, nice. OTA was fun with BIP-improved levels...in fact, I found it the easy way of testing the changes, rather than just play through the level...&lt;br /&gt;
&lt;br /&gt;
Good to be back,&lt;br /&gt;
-Y_M&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4969</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4969"/>
		<updated>2007-02-15T01:33:18Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Website ==&lt;br /&gt;
[http://your_mom.oni2.net/ Link]&lt;br /&gt;
After a year and three months, I have resumed work on the website. Hopefully, I can remeber enough finish the Analysis and Secrets, though those should really be, and are, here. If I can find my old TXT files, I&#039;ll upload em all...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;br /&gt;
&lt;br /&gt;
Specifically, this is what it says:&lt;br /&gt;
&lt;br /&gt;
An error was encountered&lt;br /&gt;
Error: Could not connect to smtp host &amp;quot;bungie.org&amp;quot; (60) (Operation timed out). &lt;br /&gt;
&lt;br /&gt;
Thats two account names and two emails tried...no cigar. Apparently it creates the account, but it doesn&#039;t send me my confirmation email, therefore I can&#039;t login since I don&#039;t know my password... :(&lt;br /&gt;
&lt;br /&gt;
-Y_M&lt;br /&gt;
----&lt;br /&gt;
:Harry says you should try and register again.&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
:No can do for a thorough update on the projects...&lt;br /&gt;
:Too busy working on them ^^ Public overviews are the way.&lt;br /&gt;
:Basically, BIP and OTA are all part of [[ONK:ONK|ONK]] now.&lt;br /&gt;
:They&#039;re not dead by any means. There&#039;s a lot of hot new OBD stuff.&lt;br /&gt;
:However, there&#039;s no proper release apart from Loser&#039;s [[ONK:Warehouse|Warehouse Minus]] (beefed-up level0_Final)&lt;br /&gt;
:OUP still can&#039;t patch DAT stuff in a user-friendly (cross-version-compatible) way.&lt;br /&gt;
:But RAW stuff (BINA, TRAM tracks can very well be released as neat bundles).&lt;br /&gt;
:Loser has released a few such things, but nothing close to a &amp;quot;release&amp;quot; ^^&lt;br /&gt;
:(putting those together is probably more annoying than &amp;quot;experimenting&amp;quot;)&lt;br /&gt;
:Loser has done a lot of things apart from that: moveable furniture, &#039;&#039;much&#039;&#039; smarter AI...&lt;br /&gt;
::but none of that has been relelased yet. Loser tries to cram it all into Warehouse Too&lt;br /&gt;
:::(unfortunately not in a modular and globally useful way, I&#039;m afraid; we should talk)&lt;br /&gt;
:As for OTA, I hate to say that I didn&#039;t release anything since the Dev Mode came out.&lt;br /&gt;
::nothing but the pre-alpha of OTA2 that you had already seen.&lt;br /&gt;
:::I&#039;m working on a completely new core, though. OTA3 or something.&lt;br /&gt;
::Looks really cool, but unfortunately it&#039;s mostly in my head, so you can&#039;t really enjoy it ^^&lt;br /&gt;
:::I&#039;m distilling primary features (interface) one by one, and actual gameplay is secondary ATM.&lt;br /&gt;
::But it will be there. Will have to. I want OTA to totally rock by the end of the year.&lt;br /&gt;
:(it&#039;s already praised as the best Oni script mod &amp;quot;evah&amp;quot; by independent critics... congrats ^^ )&lt;br /&gt;
:EdT and you have really done a great job on that one... Thanks again, and welcome back...&lt;br /&gt;
::[[User:Geyser|geyser]] 01:43, 15 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Affirmative, I&#039;ll try registering again.&lt;br /&gt;
I&#039;ll just opt for a clean re-install of the game and hope it works again...&lt;br /&gt;
Modding in the other community has died down for now, its hit a dead phase. So, mght as well [ick up work again here, unless I forget about it again (I&#039;m absent-minded of thing&#039;s I&#039;m not immediately aware of need of doing). If you&#039;re still in need of a porter, there might be something I can do, giving its not too complex...I hope I remeber which values to change... So a combined thing, nice. OTA was fun with BIP-improved levels...in fact, I found it the easy way of testing the changes, rather than just play through the level...&lt;br /&gt;
&lt;br /&gt;
Good to be back,&lt;br /&gt;
-Y_M&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4944</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4944"/>
		<updated>2007-02-13T04:59:05Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Website ==&lt;br /&gt;
[http://your_mom.oni2.net/ Link]&lt;br /&gt;
After a year and three months, I have resumed work on the website. Hopefully, I can remeber enough finish the Analysis and Secrets, though those should really be, and are, here. If I can find my old TXT files, I&#039;ll upload em all...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;br /&gt;
&lt;br /&gt;
Specifically, this is what it says:&lt;br /&gt;
&lt;br /&gt;
An error was encountered&lt;br /&gt;
Error: Could not connect to smtp host &amp;quot;bungie.org&amp;quot; (60) (Operation timed out). &lt;br /&gt;
&lt;br /&gt;
Thats two account names and two emails tried...no cigar. Apparently it creates the account, but it doesn&#039;t send me my confirmation email, therefore I can&#039;t login since I don&#039;t know my password... :(&lt;br /&gt;
&lt;br /&gt;
-Y_M&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4943</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4943"/>
		<updated>2007-02-13T03:41:15Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;br /&gt;
&lt;br /&gt;
Specifically, this is what it says:&lt;br /&gt;
&lt;br /&gt;
An error was encountered&lt;br /&gt;
Error: Could not connect to smtp host &amp;quot;bungie.org&amp;quot; (60) (Operation timed out). &lt;br /&gt;
&lt;br /&gt;
Thats two account names and two emails tried...no cigar. Apparently it creates the account, but it doesn&#039;t send me my confirmation email, therefore I can&#039;t login since I don&#039;t know my password... :(&lt;br /&gt;
&lt;br /&gt;
-Y_M&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4942</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4942"/>
		<updated>2007-02-13T03:40:49Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;br /&gt;
&lt;br /&gt;
Specifically, this is what it says:&lt;br /&gt;
&lt;br /&gt;
An error was encountered&lt;br /&gt;
Error: Could not connect to smtp host &amp;quot;bungie.org&amp;quot; (60) (Operation timed out). &lt;br /&gt;
&lt;br /&gt;
Thats two account names and two emails tried...no cigar. Apparently it creates the account, but it doesn&#039;t send me my confirmation email, therefore I can&#039;t login since I don;t know my password... :(&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4941</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4941"/>
		<updated>2007-02-13T03:37:16Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;br /&gt;
----&lt;br /&gt;
:Hm, what kind of feedback are you expecting?&lt;br /&gt;
:I remember you, if that&#039;s what you&#039;re asking.&lt;br /&gt;
:3D stuff &#039;&#039;might&#039;&#039; be exportable... Soon(TM).&lt;br /&gt;
:But I tend to promise less rather than more.&lt;br /&gt;
:Good to know you&#039;re not dead, anyway.&lt;br /&gt;
:Weird how you can&#039;t register on the new {{OCF}}&lt;br /&gt;
::(looks like job for the Troubleshooter in Chief)&lt;br /&gt;
:Cheerios&lt;br /&gt;
::[[User:Geyser|geyser]] 19:13, 12 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
That (^) would have done.&lt;br /&gt;
Not gone and forgotten, might pick up modding this again. A great game, I want to go beat up some strikers again...&lt;br /&gt;
Well, anyhow, I need a refresher as to what&#039;s new in the way of the BIP, or if it died or something. Same with OTA.&lt;br /&gt;
I&#039;ll try registering again to see if it makes a difference...&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4892</id>
		<title>User:Your Mom</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Your_Mom&amp;diff=4892"/>
		<updated>2007-02-11T06:04:18Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*Real Name: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Birthday: February&lt;br /&gt;
*Job: &amp;lt;Unknown&amp;gt;&lt;br /&gt;
*Email: rcmpyourmom@hotmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== I&#039;M NOT DEAD! ==&lt;br /&gt;
&lt;br /&gt;
I haven&#039;t played Oni in a while, I forgot what scripts and HEX-edited things I had and ended up giving up trying to restore it (all me levels came out blank). I&#039;ve forgotten most of the stuff, thank goodness for programming at school keeping me in tough with my FUNCs and VARs. Else i&#039;d be totally lost into HTML and XML /CSS that I&#039;d have no room left in my brain for um...actual coding? Scripting? whatever.&lt;br /&gt;
&lt;br /&gt;
If you people ever check this, its not that I don&#039;t want to register on the new forums, I&#039;ve tried several times, it just keeps giving me an error, something about timing out. Anyhow, don&#039;t expect anything from me anytime soon, but I&#039;m feeling all nostalgic. I feel like opening up those *.BSL files and writing a new story script. I feel like running Un-Packer and making my own weapons. I can&#039;t do that anymore though. I have my obligations and deadlines to hold up both in life and the modding world (mod teams), as well as a community to please over at Star Wars Empire at War. I&#039;ve never forgotten this game, Oni, and its lure - it dragged me into modding and into intrest in coding and programming. In a sense, this started my current career path. Ify ou ever manage to get those models exported, or if someone with 3D-Studio max would liek to model for me, I&#039;d make a mod for that game, though its not the best engine, I&#039;m wasting the space engine and the galactic map, but hey, I&#039;d like to see the troops and heroes again. Maybe I can spark interst and make a squad-based FPS. Anyhow, good on this community for trying without mod tools. Makes it so only the most elite can produce high-quality mods. I haven&#039;t seen a n00b here yet ;)&lt;br /&gt;
&lt;br /&gt;
Well, there&#039;s much I want to write, but hey, why right it if noone&#039;s going to read it? this is probably going to be buried under centuries of dust with noone to take a look at it.&lt;br /&gt;
&lt;br /&gt;
I&#039;ll check back in a week or so, and that may be the last time. Not sure. Depending on what I feedback I get here.&lt;br /&gt;
&lt;br /&gt;
Bye for now,&lt;br /&gt;
&lt;br /&gt;
Your_Mom (What a fool I was choosing this name, I would much rather sign &amp;quot;D803&amp;quot; or &amp;quot;Droid #803&amp;quot; or even Unit-803 (Star wars thing)). Well, it goes to show how one changes.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=STURMANDERUNG&amp;diff=1472</id>
		<title>STURMANDERUNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=STURMANDERUNG&amp;diff=1472"/>
		<updated>2006-05-07T05:02:24Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Meaning ==&lt;br /&gt;
STURMANDERUNG, when broken into Sturm-änderung means storm-change in german.&lt;br /&gt;
This name fits because &amp;quot;Changing the Storm&amp;quot; would be &amp;quot;Changing the Weather&amp;quot;, which is what it was designed to do. Although the word &amp;quot;änderung&amp;quot; isn&#039;t a violent change as suggested by the name, it should merely have been an overlook by the storyboard writers. Perhaps they just stuck it into the translator.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Project: STURMANDERUNG ==&lt;br /&gt;
Project &amp;quot;Sturmanderung&amp;quot; was the name of [[Muro]]&#039;s &amp;quot;master plan&amp;quot;. It was to reprogram the world&#039;s [[Atmospheric Conversion Centers]] to putrefy the air rather than purify it. The obvious reason he doesn&#039;t care himself is because his [[Daodan Chyrasalis]] would change his body to adapt to the new environment. Most likey, he planned to implant one into most of his men, or have them wear gas masks.&lt;br /&gt;
The reason he started this project is unknown. Perhaps he wishes to profit by selling the chrysalis, posing as a savior. Perhaps he plans to wipe out the world&#039;s population. Whatever the reason, it was his master plan.&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
The project was based at a Mountain Compound. At the heart of it lay the massive Sturmanderung Supercomputer, which controlled the core logic. A sattleite dish was built into a nearby bunker, and could be raised to the surface when the time came to initate the project. Several sattleites in orbit were to be used to rebound the signal to the Atmospheric Conversion Centers.&lt;br /&gt;
&lt;br /&gt;
=== Endgame ===&lt;br /&gt;
When Konoko infiltrated the facility, she reprogrammed the signal to overload the stations rather than reverse them, and activated them before the sattleites were aligned, allowing some of the Atmospheric Conversion Centers to survive. In a final attmept to stop his sister, Muro faced her himself, and was killed, foiling the Syndicate Leader&#039;s plans for the final time. Whether or not Konoko&#039;s choice was a good one is debated, as it &amp;quot;saved&amp;quot; the world, but at a horrible cost.&lt;br /&gt;
&amp;lt;Insert Quotes Here&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=STURMANDERUNG&amp;diff=1471</id>
		<title>STURMANDERUNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=STURMANDERUNG&amp;diff=1471"/>
		<updated>2006-05-05T01:00:00Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;StormChange&amp;quot;&lt;br /&gt;
&lt;br /&gt;
More to Come...&lt;br /&gt;
&lt;br /&gt;
Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Pre-beta_content&amp;diff=2000</id>
		<title>Pre-beta content</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Pre-beta_content&amp;diff=2000"/>
		<updated>2006-05-05T00:56:27Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Pre-beta levels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right border=1&lt;br /&gt;
|&#039;&#039;&#039;Almost all available shots of&amp;lt;br&amp;gt;pre-beta content are here,&amp;lt;br&amp;gt;compared to final content&amp;lt;br&amp;gt;when applicable&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Most pictures are half-sized&amp;lt;br&amp;gt;(click to enlarge)&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
==Final levels==&lt;br /&gt;
There are a few snapshots from the 1999 trailer worth adding... soon...&lt;br /&gt;
===Syndicate Warehouse===&lt;br /&gt;
There are 15 hidden doors there. When revealed, they turn this very linear level into a completely non-linear structure (more like a real warehouse).&lt;br /&gt;
{|&lt;br /&gt;
|+4 extra doors can be seen on the left picture&lt;br /&gt;
|[http://geyser.oni2.net/genesis/screenshots/EnvWarehouse/warehouse_old.jpg http://geyser.oni2.net/genesis/screenshots/EnvWarehouse/_warehouse_old.jpg]&lt;br /&gt;
|[http://geyser.oni2.net/genesis/screenshots/EnvWarehouse/warehouse_new.jpg http://geyser.oni2.net/genesis/screenshots/EnvWarehouse/_warehouse_new.jpg]&lt;br /&gt;
|}&lt;br /&gt;
A whole lotta crates have been added, different door textures... and the forklift is higher now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Manufacturing Plant (Musashi Manufacturing)===&lt;br /&gt;
This one has evolved quite a lot :&lt;br /&gt;
{|&lt;br /&gt;
|+The room where the &amp;quot;engines of evil&amp;quot; are, and the foyer&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic26.htm http://geyser.oni2.net/genesis/screenshots/_oni_26.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic42.htm http://geyser.oni2.net/genesis/screenshots/_oni_42.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/manplant/ot2_manplant1.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/manplant/ot2_manplant2.jpg&lt;br /&gt;
|}&lt;br /&gt;
Note the door from the foyer (last pic) : there was a corridor running through the middle of the building.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Halls and ramps are almost unrecognizable because of the brick walls and wooden floor&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic51.htm http://geyser.oni2.net/genesis/screenshots/_oni_51.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic52.htm http://geyser.oni2.net/genesis/screenshots/_oni_52.jpg]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Inner flyway and back of the building&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic18.htm http://geyser.oni2.net/genesis/screenshots/_oni_18.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic38.htm http://geyser.oni2.net/genesis/screenshots/_oni_38.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/manplant1.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/manplant/ot2_manplantX.jpg&lt;br /&gt;
|}&lt;br /&gt;
Since there was a passage running through the middle of the building (see foyer, pic 3), the right of the inner flyway may have looked like pic 1 at that point.&lt;br /&gt;
&amp;lt;br&amp;gt;The corridor that runs under the flyway in pic 1 is rather wide and two floors tall. Where does it end?&lt;br /&gt;
&amp;lt;br&amp;gt;At the gallery where the alarm console is now (pic 4). With stairs leading to the &#039;&#039;upper half&#039;&#039; of that gallery.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+offices&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic37.htm http://geyser.oni2.net/genesis/screenshots/_oni_37.jpg]&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/office2.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/office2bis.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/office2ter.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/office1.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/office1bis.jpg&lt;br /&gt;
|}&lt;br /&gt;
I think those were in the back of the building, on both floors, with doors and &amp;quot;windows&amp;quot; onto the &amp;quot;alarm console gallery&amp;quot; (also split in two floors).&lt;br /&gt;
&amp;lt;br&amp;gt;But, &#039;&#039;very&#039;&#039; early on... First 4 pics : lower floor, the empty dark wall on the first is where the stairs in pic 4 above are.&lt;br /&gt;
&amp;lt;br&amp;gt;Last pics : upper floor, to the left of pic 4 above. Note the stuff on the desk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Bio-Research Lab===&lt;br /&gt;
This one has kept the same basic layout, but there were a few changes&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+General layout and view from the foyer&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic06.htm http://geyser.oni2.net/genesis/screenshots/_oni_06.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic36.htm http://geyser.oni2.net/genesis/screenshots/_oni_36.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The interior is only done in one half of the lab, and it&#039;s the other one (the one on the right).&lt;br /&gt;
&amp;lt;br&amp;gt;Looks like the level was flipped horizontally at some point (and the surrounding buildings weren&#039;t there).&lt;br /&gt;
&amp;lt;br&amp;gt;In the second picture, there are buildings in the distance, but the level is still not final :&lt;br /&gt;
&amp;lt;br&amp;gt;pillars and foyer doors missing, extra ledges along the sides of the aisle...&lt;br /&gt;
&amp;lt;br&amp;gt;Wonder what she&#039;s shooting at...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Foyer and SLD wing&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic50.htm http://geyser.oni2.net/genesis/screenshots/_oni_50.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic28.htm http://geyser.oni2.net/genesis/screenshots/_oni_28.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic27.htm http://geyser.oni2.net/genesis/screenshots/_oni_27.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic49.htm http://geyser.oni2.net/genesis/screenshots/_oni_49.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The stairs in the foyer run the other way now. Like this \\ not like this //. So this is still the flipped version.&lt;br /&gt;
&amp;lt;br&amp;gt;There were &#039;&#039;stools&#039;&#039; for the scientists... Apart from that that wing is pretty much final.&lt;br /&gt;
&amp;lt;br&amp;gt;SLD-growing machines are more varied, though.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Machines in the acid room&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic44.htm http://geyser.oni2.net/genesis/screenshots/_oni_44.jpg]&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/lab/_machine_new.jpg&lt;br /&gt;
|}&lt;br /&gt;
The final ones are much thinner, and the layout of the stairs and catwalks is different.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Vansam Regional Airport===&lt;br /&gt;
{|&lt;br /&gt;
|+The airport&#039;s entrance&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic25.htm http://geyser.oni2.net/genesis/screenshots/_oni_25.jpg]&lt;br /&gt;
|}&lt;br /&gt;
This can be the &amp;quot;Arrivals&amp;quot; section (which is now completely empty).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===TCTF Regional Headquarters===&lt;br /&gt;
{|&lt;br /&gt;
|+Parking lot&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic39.htm http://geyser.oni2.net/genesis/screenshots/_oni_39.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic19.htm http://geyser.oni2.net/genesis/screenshots/_oni_19.jpg]&lt;br /&gt;
|}&lt;br /&gt;
A longer car. Different transition from the parking lot to the main building. A place for Konoko&#039;s bike.&lt;br /&gt;
Different stuff outside the parking&#039;s gates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Main entrance&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic40.htm http://geyser.oni2.net/genesis/screenshots/_oni_40.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic13.htm http://geyser.oni2.net/genesis/screenshots/_oni_13.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The room is more than 2 times wider now. There are windows on the right and catwalks running across the far side.&lt;br /&gt;
The entrance door changed a lot, but the van didn&#039;t change much...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+The &amp;quot;atrium&amp;quot; rendered from an editor&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic24.htm http://geyser.oni2.net/genesis/screenshots/_oni_24.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic46.htm http://geyser.oni2.net/genesis/screenshots/_oni_46.jpg]&lt;br /&gt;
|}&lt;br /&gt;
Another pic [http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic16.htm here]. The elevator was &#039;&#039;between&#039;&#039; the two sets of ramps. Solid floors had a tiling pattern, and ramps were transparent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Same place, other version, ingame quality&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic03.htm http://geyser.oni2.net/genesis/screenshots/_oni_03.jpg]&lt;br /&gt;
|[http://geyser.oni2.net/genesis/screenshots/tctf/lg_thumb4.jpg http://geyser.oni2.net/genesis/screenshots/tctf/_lg_thumb4.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The ramps had really nice railings (I wish they&#039;d kept them), overall the room was much lighter (there&#039;s a light wall on the far side).&lt;br /&gt;
Same &amp;quot;V&amp;quot; structures at the ceiling as above : they&#039;re gone now. The layout of the rooms on either side is different, too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Damocles&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic15.htm http://geyser.oni2.net/genesis/screenshots/_oni_15.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic43.htm http://geyser.oni2.net/genesis/screenshots/_oni_43.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The model didn&#039;t change at all, but now it&#039;s placed at the center (floor 2/3) of a really tall room rather than in that rather small one.&lt;br /&gt;
&amp;lt;br&amp;gt;As for the terminals, there are primitives with similar looks, around Damocles and elsewhere.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Regional State Building===&lt;br /&gt;
{|&lt;br /&gt;
|+The foyer&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic01.htm http://geyser.oni2.net/genesis/screenshots/_oni_01.jpg]&lt;br /&gt;
|http://geyser.oni2.net/pics/screenshots/iron_demon/demon_fight.jpg&lt;br /&gt;
|}&lt;br /&gt;
Slightly different textures, smaller windows. It also looks like there used to be doors between the two parts of the building on the ground floor. The only connections now are on the top floor and in the basement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===TCTF Science Prison===&lt;br /&gt;
{|&lt;br /&gt;
|+The scanner&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic17.htm http://geyser.oni2.net/genesis/screenshots/_oni_17.jpg]&lt;br /&gt;
|}&lt;br /&gt;
New wall textures. Looks like the scanner&#039;s textures are actually higher-res than what we have now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Syndicate Mountain Compound===&lt;br /&gt;
Old versus new :&lt;br /&gt;
{|&lt;br /&gt;
|+&amp;quot;This is the heart of the Sturmanderung Megacomputer&amp;quot;&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic14.htm http://geyser.oni2.net/genesis/screenshots/_oni_14.jpg]&lt;br /&gt;
|[http://geyser.oni2.net/genesis/screenshots/compound/compound_new1.jpg http://geyser.oni2.net/genesis/screenshots/compound/_compound_new1.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic45.htm http://geyser.oni2.net/genesis/screenshots/_oni_45.jpg]&lt;br /&gt;
|[http://geyser.oni2.net/genesis/screenshots/compound/compound_new2.jpg http://geyser.oni2.net/genesis/screenshots/compound/_compound_new2.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/compound/ot2_compound1.jpg&lt;br /&gt;
|[http://geyser.oni2.net/genesis/screenshots/compound/compound_new3.jpg http://geyser.oni2.net/genesis/screenshots/compound/_compound_new3.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/compound/ot2_compound2.jpg&lt;br /&gt;
|[http://geyser.oni2.net/genesis/screenshots/compound/compound_new4.jpg http://geyser.oni2.net/genesis/screenshots/compound/_compound_new4.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The basic layout of the room is the same, but :&lt;br /&gt;
*it was much more crowded with &amp;quot;computers&amp;quot;&lt;br /&gt;
*there were catwalks (and rooms) missing&lt;br /&gt;
*the existing catwalks were aligned differently&lt;br /&gt;
*the lowest level is close to final on picture 4; on picture 2, it&#039;s clearly lacking a lot of connections&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Pre-beta levels==&lt;br /&gt;
Just for the hell of it, here are the possible names of those missing levels :&lt;br /&gt;
*05. The Airport Part Deux (deux is 2 in French)&lt;br /&gt;
*07. Obsolete&lt;br /&gt;
*16. BGI HQ&lt;br /&gt;
*30. The Arena of Pain&lt;br /&gt;
*31. Crossing Zone&lt;br /&gt;
*32. Pit&lt;br /&gt;
*33. Crossing Zone Too&lt;br /&gt;
*34. Capture&lt;br /&gt;
*35. Territories&lt;br /&gt;
*36. Test_Stuff&lt;br /&gt;
*55. AlexTestSite&lt;br /&gt;
*66. Experimental_II&lt;br /&gt;
*68. MARTY&#039;S SOUND CORRIDOR&lt;br /&gt;
*71. FiringRange&lt;br /&gt;
*77. One Room&lt;br /&gt;
*88. One Room 2&lt;br /&gt;
*99. Test Barn II&lt;br /&gt;
&lt;br /&gt;
The E3 1998 trailer takes place in a Syndicate Warehouse that has nothing to do with the final one.&lt;br /&gt;
&lt;br /&gt;
Pictures (trailer snapshots) coming soon...&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+The HQ of the anecdotical [[BGI]] corporation?&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic08.htm http://geyser.oni2.net/genesis/screenshots/_oni_08.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic07.htm http://geyser.oni2.net/genesis/screenshots/_oni_07.jpg]&lt;br /&gt;
|}&lt;br /&gt;
Note the oddly twisted catwalk in both pictures (dynamic deformation? heat distorsion?).&lt;br /&gt;
&amp;lt;br&amp;gt;Also note that this is not the same side of a same room : probably both sides of that room.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+A deathmatch arena&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic23.htm http://geyser.oni2.net/genesis/screenshots/_oni_23.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic31.htm http://geyser.oni2.net/genesis/screenshots/_oni_31.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic32.htm http://geyser.oni2.net/genesis/screenshots/_oni_32.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic35.htm http://geyser.oni2.net/genesis/screenshots/_oni_35.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic41.htm http://geyser.oni2.net/genesis/screenshots/_oni_41.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic09.htm http://geyser.oni2.net/genesis/screenshots/_oni_09.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/arena/ot2_arena2.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/screenshots/arena/ot2_arena3.jpg&lt;br /&gt;
|}&lt;br /&gt;
Although the last 3 shots look different, it&#039;s the same layout.&lt;br /&gt;
&amp;lt;br&amp;gt;Either &amp;quot;The Arena of Pain&amp;quot; at two stages of development, or &amp;quot;One Room&amp;quot; and &amp;quot;One Room 2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+A giant playground&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic33.htm http://geyser.oni2.net/genesis/screenshots/_oni_33.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic34.htm http://geyser.oni2.net/genesis/screenshots/_oni_34.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic04.htm http://geyser.oni2.net/genesis/screenshots/_oni_04.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic10.htm http://geyser.oni2.net/genesis/screenshots/_oni_10.jpg]&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross1.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross1bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross2.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross2bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross3.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross3bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross3ter.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross5.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross4.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross4bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross4ter.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross4quater.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross10.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross10bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross6.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross6bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross7.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross7bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross7ter.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross7quater.jpg&lt;br /&gt;
|-&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross8.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/cross9.jpg&lt;br /&gt;
|}&lt;br /&gt;
Judging from the architecture (lots of massive crosses covering a few floors), I think it&#039;s Crossing Zone and Crossing Zone Too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Completely random&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/enigma1.jpg&lt;br /&gt;
|http://geyser.oni2.net/genesis/May_1999/screenshots/enigma1bis.jpg&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic11.htm http://geyser.oni2.net/genesis/screenshots/_oni_11.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The first ones beat me. Isn&#039;t the second one a Marathon level?&lt;br /&gt;
&lt;br /&gt;
Aren&#039;t the first ones Atmostpheric Conversion Center Interior? &amp;lt;Your_Mom&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+Even more random&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic20.htm http://geyser.oni2.net/genesis/screenshots/_oni_20.jpg]&lt;br /&gt;
|[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/oldpics/pic05.htm http://geyser.oni2.net/genesis/screenshots/_oni_05.jpg]&lt;br /&gt;
|}&lt;br /&gt;
The first one doesn&#039;t look like anything in the final game. The last one, well, it could be anything.&lt;br /&gt;
&amp;lt;br&amp;gt;Judjing by the floor texture, probably Crossing Zone too.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=906</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=906"/>
		<updated>2005-12-15T03:27:24Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Downloading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
==Project Points==&lt;br /&gt;
*Improved AI (Using Alternate AI Mele logic/improving mele logic)&lt;br /&gt;
*Easier to Script (AI names/functions)&lt;br /&gt;
*Wider Range of Character Classes (More random skins, harder enemy types, more enemy types where available)&lt;br /&gt;
*AI endowed Konoko for all levels (Players will now use &amp;quot;ai_0&amp;quot; as their player character)&lt;br /&gt;
*Trigger Events (hurt, death, dying, reload, ect)&lt;br /&gt;
*Better Ai Names (yes, no more annoying names. Will all be sorted likewise : AI_000_Konoko, AI_001_Thug, ect)&lt;br /&gt;
*More Coming (Yes, more!)&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
The ones currently available are the first generation.&lt;br /&gt;
They only contain functions for death and hurt. (And some other things which you must find out on your own :p)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_Final&lt;br /&gt;
|Available *&lt;br /&gt;
|-&lt;br /&gt;
|level1_Final&lt;br /&gt;
|Available&lt;br /&gt;
|-&lt;br /&gt;
|level2_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_Final&lt;br /&gt;
|Available&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_Final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sorry, but the BIP&#039;s download section has been taken down temporarily for legal reasons.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=524</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=524"/>
		<updated>2005-12-10T17:59:53Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Downloading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
==Project Points==&lt;br /&gt;
*Improved AI (Using Alternate AI Mele logic/improving mele logic)&lt;br /&gt;
*Easier to Script (AI names/functions)&lt;br /&gt;
*Wider Range of Character Classes (More random skins, harder enemy types, more enemy types where available)&lt;br /&gt;
*AI endowed Konoko for all levels (Players will now use &amp;quot;ai_0&amp;quot; as their player character)&lt;br /&gt;
*Trigger Events (hurt, death, dying, reload, ect)&lt;br /&gt;
*Better Ai Names (yes, no more annoying names. Will all be sorted likewise : AI_000_Konoko, AI_001_Thug, ect)&lt;br /&gt;
*More Coming (Yes, more!)&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
The ones currently available are the forst generation.&lt;br /&gt;
They only contain funtions for death and hurt. (And some other things which you must find out on your own :p)&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_Final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level0.rar Available Here!]*&lt;br /&gt;
|-&lt;br /&gt;
|level1_Final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level1.rar Available Here!]&lt;br /&gt;
|-&lt;br /&gt;
|level2_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_Final&lt;br /&gt;
|[http://www.your_mom.oni2.net/Downloads/CompoundB.rar Available Here!]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_Final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=494</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=494"/>
		<updated>2005-12-10T17:58:26Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Project Points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
==Project Points==&lt;br /&gt;
*Improved AI (Using Alternate AI Mele logic/improving mele logic)&lt;br /&gt;
*Easier to Script (AI names/functions)&lt;br /&gt;
*Wider Range of Character Classes (More random skins, harder enemy types, more enemy types where available)&lt;br /&gt;
*AI endowed Konoko for all levels (Players will now use &amp;quot;ai_0&amp;quot; as their player character)&lt;br /&gt;
*Trigger Events (hurt, death, dying, reload, ect)&lt;br /&gt;
*Better Ai Names (yes, no more annoying names. Will all be sorted likewise : AI_000_Konoko, AI_001_Thug, ect)&lt;br /&gt;
*More Coming (Yes, more!)&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_Final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level0.rar Available Here!]*&lt;br /&gt;
|-&lt;br /&gt;
|level1_Final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level1.rar Available Here!]&lt;br /&gt;
|-&lt;br /&gt;
|level2_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_Final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_Final&lt;br /&gt;
|[http://www.your_mom.oni2.net/Downloads/CompoundB.rar Available Here!]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_Final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=489</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=489"/>
		<updated>2005-12-08T01:58:06Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an Iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
==Project Points==&lt;br /&gt;
*Improved AI&lt;br /&gt;
*Easier to Script&lt;br /&gt;
*Wider Range of Character Classes&lt;br /&gt;
*AI endowed Konoko for all levels&lt;br /&gt;
*Trigger Events&lt;br /&gt;
*Better Ai Names&lt;br /&gt;
*More Coming&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level0.rar Available Here!]*&lt;br /&gt;
|-&lt;br /&gt;
|level1_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level1.rar Available Here!]&lt;br /&gt;
|-&lt;br /&gt;
|level2_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_final&lt;br /&gt;
|[http://www.your_mom.oni2.net/Downloads/CompoundB.rar Available Here!]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=488</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=488"/>
		<updated>2005-12-08T01:55:18Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Downloading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an Iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level0.rar Available Here!]*&lt;br /&gt;
|-&lt;br /&gt;
|level1_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level1.rar Available Here!]&lt;br /&gt;
|-&lt;br /&gt;
|level2_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_final&lt;br /&gt;
|[http://www.your_mom.oni2.net/Downloads/CompoundB.rar Available Here!]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=487</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=487"/>
		<updated>2005-12-08T01:54:43Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Downloading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an Iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level0.rar Global]*&lt;br /&gt;
|-&lt;br /&gt;
|level1_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level1.rar EnvWarehouse]&lt;br /&gt;
|-&lt;br /&gt;
|level2_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_final&lt;br /&gt;
|[http://www.your_mom.oni2.net/Downloads/CompoundB.rar compound]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=486</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=486"/>
		<updated>2005-12-04T23:13:57Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* The Binary Improvement Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely script-er friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an Iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on discussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Downloading ==&lt;br /&gt;
&lt;br /&gt;
WARNING: HUGE FILES&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level0.rar Level 0]*&lt;br /&gt;
|-&lt;br /&gt;
|level1_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level1.rar Level 1]&lt;br /&gt;
|-&lt;br /&gt;
|level2_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_final&lt;br /&gt;
|[http://www.your_mom.oni2.net/Downloads/CompoundB.rar Level 14]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*technically, level0_final is not part of the project. Level0_final improves the overall game rather than a specific level, but it is awesome nonetheless. It allows AI to dash when unarmed and has improved particles.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=483</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=483"/>
		<updated>2005-12-04T23:11:54Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* The Binary Improvement Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely scripter friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an Iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on disscussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;THE BINARY IMPROVEMENT PROJECT&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!Level&lt;br /&gt;
!Download File&lt;br /&gt;
|-&lt;br /&gt;
|level0_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level0.rar Level 0]*&lt;br /&gt;
|-&lt;br /&gt;
|level1_final&lt;br /&gt;
|[http://loser.oni2.net/Geyser_Level1.rar Level 1]&lt;br /&gt;
|-&lt;br /&gt;
|level2_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level3_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level4_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level6_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level8_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level9_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level10_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level11_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level12_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level13_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level14_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level18_final&lt;br /&gt;
|Coming Soon&lt;br /&gt;
|-&lt;br /&gt;
|level19_final&lt;br /&gt;
|[http://www.your_mom.oni2.net/Downloads/CompoundB.rar Level 14]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=482</id>
		<title>AE:BIP</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE:BIP&amp;diff=482"/>
		<updated>2005-12-04T23:06:08Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== The Binary Improvement Project ==&lt;br /&gt;
&lt;br /&gt;
The main objective of the Binary Improvement Project (BIP) will be to make extremely scripter friendly versions of all the *.dat and *.raw files. We will fix up mistakes left by the original coders, add a &amp;quot;hurt&amp;quot; and a &amp;quot;death&amp;quot; trigger for each character, and improve the binaries altogether. Making it much easier to script for beginners and experts alike.&lt;br /&gt;
&lt;br /&gt;
If you have a Hex Editor, an Iron will, and want to help out, feel free to contribute your edited *.dat and *.raw files!&lt;br /&gt;
&lt;br /&gt;
To read up on disscussion on this topic, go [http://mukade.bungie.org/cgi-bin/mukade/ikonboard.cgi?s=6516029ae2bf986cdebc05c192858e22;act=ST;f=3;t=205 here]&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD:Oni_Binary_Data&amp;diff=611</id>
		<title>OBD:Oni Binary Data</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD:Oni_Binary_Data&amp;diff=611"/>
		<updated>2005-12-04T22:59:33Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muuuuch more stuff will come here soon.&lt;br /&gt;
&lt;br /&gt;
[[OBD:OUP|OniUnPacker (OUP)]]&lt;br /&gt;
&lt;br /&gt;
[http://www.fh-eberswalde.de/user/dkriesch/onistuff/oni.htm SSGs Oni-Site] (Good starting point for information about Oni&#039;s data-files)&lt;br /&gt;
&lt;br /&gt;
[[OBD:BIP|The Binary Improvement Project]]&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=1771</id>
		<title>AE talk:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=1771"/>
		<updated>2005-12-03T20:35:05Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* CRASH REPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CRASH REPORTS==&lt;br /&gt;
&lt;br /&gt;
This area is for reporting or documenting crashes on OniTeamArena (OTA)&lt;br /&gt;
Please report ANY CRASHES to this area.&lt;br /&gt;
&lt;br /&gt;
Thank You&lt;br /&gt;
&lt;br /&gt;
CRASH REPORTS :&lt;br /&gt;
----&lt;br /&gt;
The following crash report is for BRL arena 1.0 (Bio Research Lab)&lt;br /&gt;
&lt;br /&gt;
Crash Occurs : During Game-play, time varying&lt;br /&gt;
&lt;br /&gt;
Crash Origin : (Quote geyser): &#039;At the moment I &amp;quot;positively assume&amp;quot; or &amp;quot;definitely guess&amp;quot; or (whatever it&#039;s called) that the problem is with pathfinding on overlapping quads where AI can be simultaneously. Like being on the stairs, then falling and instantaneously being on the quad that goes under the stairs. It all apparently depends a lot on how it&#039;s done in a particular level. Big spaces covered with overlapping quads, ramps that emerge in the middle of a quad, stairs without railings... those are my &amp;quot;usual suspects&amp;quot; of the moment.&#039;&lt;br /&gt;
&lt;br /&gt;
Crash History : Similar crash experienced in &amp;lt;Airport Arena&amp;gt; all 1.X verions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging Status : Completed Contact [[User:geyser|geyser]].&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=480</id>
		<title>AE talk:OTA</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=AE_talk:OTA&amp;diff=480"/>
		<updated>2005-12-03T20:29:52Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* CRASH REPORTS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CRASH REPORTS==&lt;br /&gt;
&lt;br /&gt;
This area is for reporting or documenting crashes on OniTeamArena (OTA)&lt;br /&gt;
Please report ANY CRASHES to this area.&lt;br /&gt;
&lt;br /&gt;
Thank You&lt;br /&gt;
&lt;br /&gt;
CRASH REPORTS :&lt;br /&gt;
----&lt;br /&gt;
The following crash report is for BRL arena 1.0 (Bio Research Lab)&lt;br /&gt;
&lt;br /&gt;
Crash Occurs : During Game-play, time varying&lt;br /&gt;
&lt;br /&gt;
Crash Origin : &amp;lt;UNKNOWN&amp;gt; Possibilities: &lt;br /&gt;
*A-quad pathfinding error&lt;br /&gt;
*Subterranean Arena&lt;br /&gt;
&lt;br /&gt;
Crash History : Similar crash experienced in &amp;lt;Airport Arena&amp;gt; all 1.X verions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Debugging Status : Underway. Contact [[User:geyser|geyser]] .&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/global&amp;diff=484</id>
		<title>Oni (folder)/GameDataFolder/IGMD/global</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/global&amp;diff=484"/>
		<updated>2005-12-03T20:28:12Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Why call it &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt;? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Oni global script folder==&lt;br /&gt;
&amp;quot;global&amp;quot; is a &amp;quot;secret subfolder&amp;quot; of [[OSL:IGMD|IGMD]] : a regular installation of Oni doesn&#039;t have it at all.&lt;br /&gt;
&lt;br /&gt;
But you can create it and use it and it&#039;s actually very rewarding. It&#039;s a very special folder.&lt;br /&gt;
&lt;br /&gt;
==What&#039;s so special about it?==&lt;br /&gt;
The global folder is visible from every one of Oni&#039;s levels. Rather, the scripts (files with extension BSL) in the global folder are always processed at the same time as the level logic of a particular level, when that particular level is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How do I use it?==&lt;br /&gt;
Is there really a short way to describe it? Oh well...&lt;br /&gt;
-----------&lt;br /&gt;
Let&#039;s say you want Oni to do the exact same thing every time you load a save point. Like, you&#039;ve just learned about how the [[OSL:Oni Scripting Language/functions/built-in/dmsg|&amp;lt;tt&amp;gt;dmsg&amp;lt;/tt&amp;gt;]] command works, and you want the message &amp;quot;Thank you for playing Oni!&amp;quot; to be displayed after a level loads. Then the trivial solution is to go in every level&#039;s folder, open the file where &amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; is declared and modify it as follows :&lt;br /&gt;
 func void main(void) {&lt;br /&gt;
     dmsg &amp;quot;Thank you for playing Oni!&amp;quot;&lt;br /&gt;
 #   REST OF THE MAIN FUNCTION&#039;S BODY, UNCHANGED&lt;br /&gt;
 }&lt;br /&gt;
OK. You&#039;ve done that for all 14 levels. But now, let&#039;s say you&#039;ve learned about how to add colors to debug messages, and you want the whole message to be red, except for the word Oni which shall be blue.&lt;br /&gt;
&lt;br /&gt;
What then? Load the whole level again and replace &amp;quot;Thank you for playing Oni!&amp;quot; with &amp;quot;[r.Thank you for playing ][b.Oni][r.!]&amp;quot;? 14 times?&lt;br /&gt;
&lt;br /&gt;
No. You use the global folder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt;==&lt;br /&gt;
Go to the global folder and create a file called &amp;lt;tt&amp;gt;pre.bsl&amp;lt;/tt&amp;gt;. Open it and give it the following content :&lt;br /&gt;
 func pre {&lt;br /&gt;
     dmsg &amp;quot;[r.Thank you for playing ][b.Oni][r.!]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Then go and open the 14 files where you had &amp;lt;tt&amp;gt;dmsg &amp;quot;Thank you for playing Oni!&amp;quot;&amp;lt;/tt&amp;gt;, and replace that line with &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt;, getting :&lt;br /&gt;
 func void main(void) {&lt;br /&gt;
     pre&lt;br /&gt;
 #   REST OF THE MAIN FUNCTION&#039;S BODY, UNCHANGED&lt;br /&gt;
 }&lt;br /&gt;
This is an inline call to the &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; function we have just set up in the global folder. The function &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; is &amp;quot;globally recognized&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Why call it &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt;?===&lt;br /&gt;
Because everything in &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt; is level-specific settings and/or logic, so if you want something to happen exactly the same way every time you load a level, the only place to add that something is at the very start of &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;, that is, &#039;&#039;before&#039;&#039; all the level-specific content. Which is why it&#039;s called &amp;quot;pre&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Should still work if you name it anything else though. &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; just makes the most sense.&lt;br /&gt;
&lt;br /&gt;
===Why make it inline? (WARNING : EXPERT STUFF)===&lt;br /&gt;
Because in that case, it&#039;s as if the content of &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt; got pasted at the start of &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt; which is perfectly OK for some purposes (like the &amp;lt;tt&amp;gt;dmsg &amp;quot;[r.Thank you for playing ][b.Oni][r.!]&amp;quot;&amp;lt;/tt&amp;gt; call in the example above). Three things to consider :&lt;br /&gt;
#You can always &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt; what you want to be &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;ed inside &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt;. And it will be exactly the same as if you placed the &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;ed call directly inside &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#If you put &amp;lt;tt&amp;gt;fork pre&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;, you can no longer consider that you&#039;re &amp;quot;just adding stuff to the beginning of &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;&amp;quot;. You can make an inline call into a forked call, but not the other way round.&lt;br /&gt;
#In some cases, you may want to be sure some part of &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt; is executed &#039;&#039;rigorously before&#039;&#039; &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;. And that&#039;s something you can not guarantee with a &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;ed call.&lt;br /&gt;
Sure you can&#039;t put anything you want in an inline-called &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt;, like a &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt; statement, or a call to &amp;lt;tt&amp;gt;chr_wait_animtype&amp;lt;/tt&amp;gt;.&lt;br /&gt;
It&#039;s up to you to bear in mind that what you&#039;re looking at is in fact just a part of every level&#039;s &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/global&amp;diff=478</id>
		<title>Oni (folder)/GameDataFolder/IGMD/global</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/global&amp;diff=478"/>
		<updated>2005-12-03T20:27:59Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Why call it &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt;? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Oni global script folder==&lt;br /&gt;
&amp;quot;global&amp;quot; is a &amp;quot;secret subfolder&amp;quot; of [[OSL:IGMD|IGMD]] : a regular installation of Oni doesn&#039;t have it at all.&lt;br /&gt;
&lt;br /&gt;
But you can create it and use it and it&#039;s actually very rewarding. It&#039;s a very special folder.&lt;br /&gt;
&lt;br /&gt;
==What&#039;s so special about it?==&lt;br /&gt;
The global folder is visible from every one of Oni&#039;s levels. Rather, the scripts (files with extension BSL) in the global folder are always processed at the same time as the level logic of a particular level, when that particular level is loaded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How do I use it?==&lt;br /&gt;
Is there really a short way to describe it? Oh well...&lt;br /&gt;
-----------&lt;br /&gt;
Let&#039;s say you want Oni to do the exact same thing every time you load a save point. Like, you&#039;ve just learned about how the [[OSL:Oni Scripting Language/functions/built-in/dmsg|&amp;lt;tt&amp;gt;dmsg&amp;lt;/tt&amp;gt;]] command works, and you want the message &amp;quot;Thank you for playing Oni!&amp;quot; to be displayed after a level loads. Then the trivial solution is to go in every level&#039;s folder, open the file where &amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; is declared and modify it as follows :&lt;br /&gt;
 func void main(void) {&lt;br /&gt;
     dmsg &amp;quot;Thank you for playing Oni!&amp;quot;&lt;br /&gt;
 #   REST OF THE MAIN FUNCTION&#039;S BODY, UNCHANGED&lt;br /&gt;
 }&lt;br /&gt;
OK. You&#039;ve done that for all 14 levels. But now, let&#039;s say you&#039;ve learned about how to add colors to debug messages, and you want the whole message to be red, except for the word Oni which shall be blue.&lt;br /&gt;
&lt;br /&gt;
What then? Load the whole level again and replace &amp;quot;Thank you for playing Oni!&amp;quot; with &amp;quot;[r.Thank you for playing ][b.Oni][r.!]&amp;quot;? 14 times?&lt;br /&gt;
&lt;br /&gt;
No. You use the global folder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt;==&lt;br /&gt;
Go to the global folder and create a file called &amp;lt;tt&amp;gt;pre.bsl&amp;lt;/tt&amp;gt;. Open it and give it the following content :&lt;br /&gt;
 func pre {&lt;br /&gt;
     dmsg &amp;quot;[r.Thank you for playing ][b.Oni][r.!]&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
Then go and open the 14 files where you had &amp;lt;tt&amp;gt;dmsg &amp;quot;Thank you for playing Oni!&amp;quot;&amp;lt;/tt&amp;gt;, and replace that line with &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt;, getting :&lt;br /&gt;
 func void main(void) {&lt;br /&gt;
     pre&lt;br /&gt;
 #   REST OF THE MAIN FUNCTION&#039;S BODY, UNCHANGED&lt;br /&gt;
 }&lt;br /&gt;
This is an inline call to the &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; function we have just set up in the global folder. The function &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; is &amp;quot;globally recognized&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Why call it &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt;?===&lt;br /&gt;
Because everything in &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt; is level-specific settings and/or logic, so if you want something to happen exactly the same way every time you load a level, the only place to add that something is at the very start of &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;, that is, &#039;&#039;before&#039;&#039; all the level-specific content. Which is why it&#039;s called &amp;quot;pre&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Should still work if you name it anything else though. &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; just makes athe most sense.&lt;br /&gt;
&lt;br /&gt;
===Why make it inline? (WARNING : EXPERT STUFF)===&lt;br /&gt;
Because in that case, it&#039;s as if the content of &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt; got pasted at the start of &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt; which is perfectly OK for some purposes (like the &amp;lt;tt&amp;gt;dmsg &amp;quot;[r.Thank you for playing ][b.Oni][r.!]&amp;quot;&amp;lt;/tt&amp;gt; call in the example above). Three things to consider :&lt;br /&gt;
#You can always &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt; what you want to be &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;ed inside &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt;. And it will be exactly the same as if you placed the &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;ed call directly inside &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#If you put &amp;lt;tt&amp;gt;fork pre&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;pre&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;, you can no longer consider that you&#039;re &amp;quot;just adding stuff to the beginning of &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;&amp;quot;. You can make an inline call into a forked call, but not the other way round.&lt;br /&gt;
#In some cases, you may want to be sure some part of &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt; is executed &#039;&#039;rigorously before&#039;&#039; &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;. And that&#039;s something you can not guarantee with a &amp;lt;tt&amp;gt;fork&amp;lt;/tt&amp;gt;ed call.&lt;br /&gt;
Sure you can&#039;t put anything you want in an inline-called &amp;lt;tt&amp;gt;func pre&amp;lt;/tt&amp;gt;, like a &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt; statement, or a call to &amp;lt;tt&amp;gt;chr_wait_animtype&amp;lt;/tt&amp;gt;.&lt;br /&gt;
It&#039;s up to you to bear in mind that what you&#039;re looking at is in fact just a part of every level&#039;s &amp;lt;tt&amp;gt;func main&amp;lt;/tt&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=540</id>
		<title>BSL:Tutorial/Scratch</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=540"/>
		<updated>2005-11-20T19:04:49Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Part 9: Variables and Save Points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short tutorial on how to get started on simple scripts for those who have had no experience with scripting before.&lt;br /&gt;
It will teach you, step by step, how to write a simple script. By the end of this tutorial, you will be able to move on to more advanced scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 1 : Knowing your formats ==&lt;br /&gt;
&lt;br /&gt;
The game will accept 2 types of syntax for scripts, and they are based on different styles of writing. Choose the one that suits you best.&lt;br /&gt;
&lt;br /&gt;
The types are :&lt;br /&gt;
&lt;br /&gt;
Shell-Style:&lt;br /&gt;
This is compiled much like some System-Shells. It is written in a &amp;quot;one-function-call-a-line&amp;quot; format, and is the easiest to begin with if you have had no coding experience, as the code is neatly displayed line after line. The downside of this it, that once you get into more complex scripts or scripts with many function calls, the file becomes very hard to read and very large. Also, an great tool, passing information through a command, cannot be done using Shell-Style.&lt;br /&gt;
&lt;br /&gt;
Example: [[Shell-Style]]&lt;br /&gt;
&lt;br /&gt;
C-Style:&lt;br /&gt;
This is compiled much like the popular coding style C. The syntax can be placed into multiple-function lines and functions are divided by a &#039;&#039;&#039;;&#039;&#039;&#039; . In advanced scripts, this style will allow you to condense your script and the parts will be easier to read/debug. It also allows you to utilize some of the more advanced features easily. The problem with this is, that starting off, it is harder to write if you have had no previous experience with coding.&lt;br /&gt;
&lt;br /&gt;
Example: [[C-Style]]&lt;br /&gt;
&lt;br /&gt;
Hybrid Style:&lt;br /&gt;
This is a combination between C-Style and Shell-Stlye. It keeps the easy-to-read format of Shell-Style, yet allows you to use the more advanced techniques of C-Style.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this article, we will use Shell-Style syntax for simplicity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 2: Starting Off ==&lt;br /&gt;
&lt;br /&gt;
Now, I suggest reading the original script files to get a basic idea for how scripts are laid out. This will allow us to jump-start a bit.&lt;br /&gt;
&lt;br /&gt;
Open up your IMGD and look for the following folder: EnvWarehouse.&lt;br /&gt;
Open it up, and we&#039;ll take a look at how it it laid out. There should be several files in here. Open using NOTEPAD, the one titled &#039;&#039;&#039;warehouse_main.bsl&#039;&#039;&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
    env_show 2010 0&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_blue=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_red=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_green=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_start=.99&amp;lt;br&amp;gt;&lt;br /&gt;
    gs_farclipplane_set 5000&amp;lt;br&amp;gt;&lt;br /&gt;
    obj_create 20 20&amp;lt;br&amp;gt;&lt;br /&gt;
    level_start&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example of a &#039;&#039;&#039;main&#039;&#039;&#039; file. It contains the information of how the level starts.&lt;br /&gt;
&lt;br /&gt;
Ignore the contents of the script for now, and notice that the contents of the function &amp;lt;tt&amp;gt;main&amp;lt;/tt&amp;gt; are enclosed by a set of brackets (&#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
All functions must be enclosed in this set of brackets or it will not be executed.&lt;br /&gt;
&lt;br /&gt;
Close the file, and rename the folder &amp;quot;EnvWarehouse&amp;quot; &amp;quot;EnvWarehouse_original&amp;quot;. Then, create a folder called &amp;quot;EnvWarehouse&amp;quot; and create a script file inside and name it &amp;quot;Tutorial&amp;quot;. We will be using this file to show various examples of scripts and finally, write a small script of your own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 3: Basic Commands ==&lt;br /&gt;
&lt;br /&gt;
This is just a small section explaining the commands that will be used in this tutorial. For a complete list of commands, see [http://www.fh-eberswalde.de/user/dkriesch/onistuff/commands.htm Ssg&#039;s Site] for more information.&lt;br /&gt;
&lt;br /&gt;
ai2_spawn (name) - creates and starts an AI from a character object&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport (name) (flag) - teleports a character to a flag&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup (name) (powerup) (amount) - gives a character a powerup&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 4: First Script ==&lt;br /&gt;
&lt;br /&gt;
This section will teach you how to write a very basic script (fighting script). It will start you off in the Final Training Room, where you practiced firing weapons in the original game. With this script, the room will appear very empty.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s open up the &amp;quot;Tutorial.bsl&amp;quot; file and start writing the script.&lt;br /&gt;
&lt;br /&gt;
First, declare it the &amp;quot;main&amp;quot; portion of the script by typing &amp;quot;&amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; at the very beginning of the file. This tells the game which function it is. The &amp;quot;main&amp;quot; function is the function that the game looks at first to determine what is to be executed.&lt;br /&gt;
&lt;br /&gt;
Below that line, type &#039;&#039;&#039;{&#039;&#039;&#039;. This tells the game that the function has started.&lt;br /&gt;
&lt;br /&gt;
Add a space, and then type &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;. This function teleports Konoko (her id is always 0) to the flag 7010. It is located in the final training room.&lt;br /&gt;
&lt;br /&gt;
Finish the function &amp;quot;main&amp;quot; by typing &#039;&#039;&#039;}&#039;&#039;&#039; on the next line.&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save the file, load up Oni, and click &amp;quot;New Game&amp;quot;. You should be standing in the center of the final combat training room.&lt;br /&gt;
&lt;br /&gt;
You are now on your way!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 5: Adding NPCs (AI) ==&lt;br /&gt;
&lt;br /&gt;
Before we begin, notice that there are two types of AI. AI created from character objects, and AI created from memory. AI created from character objects are created by the function call &amp;lt;tt&amp;gt;ai2_spawn (name)&amp;lt;/tt&amp;gt;, where (name) is the name of the AI. AI created from memory are created by the function call &amp;lt;tt&amp;gt;chr_create (ai_number) start,&amp;lt;/tt&amp;gt;. These AI do not have combat logic, and thus will not attack you physically but can still use weapons.&lt;br /&gt;
&lt;br /&gt;
Now, we are going to add 2 enemy AI to our script that we wrote in the last section. Open it up, and lets add some enemies for Konoko to fight.&lt;br /&gt;
&lt;br /&gt;
To recap, it should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the function call &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;, add the following 2 commands on separate lines: &amp;lt;tt&amp;gt;ai2_spawn Top_Striker&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ai2_spawn Top_Comguy&amp;lt;/tt&amp;gt;. These two commands tell the game to create 2 characters: Top_Striker, and Top_Comguy.&lt;br /&gt;
&lt;br /&gt;
Since that these characters do not spawn in the room, they must be teleported there. Using the &amp;lt;tt&amp;gt;chr_teleport&amp;lt;/tt&amp;gt; command used earlier to teleport yourself, modify it to teleport the 2 AI using their names instead of &amp;quot;0&amp;quot;. Teleport them to the flags &amp;quot;7008&amp;quot; and &amp;quot;7009&amp;quot; respectively. Refer to the example above or the list of function calls above to write this in.&lt;br /&gt;
&lt;br /&gt;
It should now look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script will now teleport you into the final training room and face you off against 2 Strikers.&lt;br /&gt;
&lt;br /&gt;
This fight too easy? In the next section, we will learn how to spice up the fight, and let you develop your own script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 6: Customization==&lt;br /&gt;
&lt;br /&gt;
Here, you will be able to split off and customize your script.&lt;br /&gt;
Each subsection will represent a way to customize the above script.&lt;br /&gt;
&lt;br /&gt;
===Weapons and Powerups===&lt;br /&gt;
These are the easiest things to add into a battle.&lt;br /&gt;
&lt;br /&gt;
Weapons can be spawned on the ground or given to characters.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Weapons====&lt;br /&gt;
&lt;br /&gt;
Giving characters weapons is very easy. Simply use the command &amp;lt;tt&amp;gt;chr_giveweapon&amp;lt;/tt&amp;gt; to give a character a weapon.&lt;br /&gt;
&lt;br /&gt;
[[OSL:Inventory|Here]] are the list of the weapon codes. For the purpose of this example, we will use &amp;lt;tt&amp;gt;w3_phr&amp;lt;/tt&amp;gt;, the plasma rifle. This command will give the two strikers plasma rifles.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_giveweapon Top_Striker w3_phr&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_giveweapon Top_Comguy w3_phr&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute.&lt;br /&gt;
&lt;br /&gt;
====Spawning Weapons on the ground====&lt;br /&gt;
&lt;br /&gt;
Spawning weapons is simple. Use the command &amp;lt;tt&amp;gt;weapon_spawn&amp;lt;/tt&amp;gt; to spawn a weapon.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 plasma rifles, one under each striker&#039;s feet. AI will automatically pick up weapons with ammo or empty weapons they have ammo for.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Powerups====&lt;br /&gt;
&lt;br /&gt;
Giving characters powerups is much like giving characters weapons. Use the command &amp;lt;tt&amp;gt;chr_givepowerup&amp;lt;/tt&amp;gt; to give a character a powerup.&lt;br /&gt;
&lt;br /&gt;
The powerups you can give a character are :&lt;br /&gt;
* shield : Gives a force shield&lt;br /&gt;
* invis : Gives a phase cloak&lt;br /&gt;
* ammo : Gives a ballistic ammo&lt;br /&gt;
* cell : Gives an energy cell.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this example, we will give the characters invisibilities.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_givepowerup Top_Striker invis -1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_givepowerup Top_Comguy invis -1&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will make the strikers permanently invisible. To make then visible after 30 seconds, erase &amp;quot;-1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Spawning Powerups on the Ground====&lt;br /&gt;
&lt;br /&gt;
Spawning powerups are simple. Use the command &amp;lt;tt&amp;gt;powerup_spawn&amp;lt;/tt&amp;gt; to spawn a powerup.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;powerup_spawn invis 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;powerup_spawn invis 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 phase cloaks beneath the striker&#039;s feet. Since AI  will not pick up powerups, this is for you only.&lt;br /&gt;
&lt;br /&gt;
===Extra Characters===&lt;br /&gt;
&lt;br /&gt;
Addubg extra characters to the script is easy. Just follow the steps for adding the first AI and follow the procedure, look for AI names [[OSL: AI names|Here]]. &lt;br /&gt;
&lt;br /&gt;
====Adding Enemies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. Most of the time, adding enemies simply involve spawning and teleporting the AI. As long as the team in &amp;quot;Syndicate&amp;quot;, it will be an enemy. If you want to add an emeny from an allied team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;Syndicate&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam griffin Syndicate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding Allies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. As long as the team is &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot;, it will be an ally for you in this script. If you want to add an ally from the enemy team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam WH_Striker_D TCTF&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overpower===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;tt&amp;gt;chr_set_health&amp;lt;/tt&amp;gt; command to set a character&#039;s health. Note that each character has a base health that may not be the same. For example, konoko&#039;s base health is 200, while a brown striker&#039;s is only 50. Keep this in mind when setting character&#039;s health. Setting it over their base health will send them into overpower - like using a hypo at full health. The health will drain at 1 every second even for AI. This example sets konoko&#039;s health to 400 - overpower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_set_health 0 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This following example shows everything listed above added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn hypo 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7007&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Striker w7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Comguy w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker ammo 15&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy cell 30&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
weapon_spawn w2_sap 7045&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn ammo 7008&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn OutroTCTF01&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport OutroTCTF01 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn WH_Thug_A&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam WH_Thug_A TCTF&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport WH_Thug_A 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn griffin&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam griffin Syndicate&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport griffin 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_set_health griffin 3900&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 7: Delay ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for some time before executing a command, use &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;. To wait for approx 5 seconds before spawning an extra drone, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep 300&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for a striker to die and then spawn some drones, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health Top_Striker 0&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Part 8: Forking and Separate Functions==&lt;br /&gt;
&lt;br /&gt;
This is the part where we start moving commands out of &amp;quot;main&amp;quot;. Create a new function called &amp;quot;logic&amp;quot; like this : type &amp;quot;func logic&amp;quot; two lines below the &#039;&#039;&#039;}&#039;&#039;&#039; of &amp;quot;main&amp;quot;. Type &#039;&#039;&#039;{&#039;&#039;&#039; nad copy out everything inside &amp;quot;main&amp;quot; into &amp;quot;logic&amp;quot;. Type &amp;lt;tt&amp;gt;fork logic&amp;lt;/tt&amp;gt; in main. It should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... being whatever you had in &amp;quot;main&amp;quot; before. Add &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; at the end of &amp;quot;logic&amp;quot;, then type &amp;lt;tt&amp;gt;fork logic2&amp;lt;/tt&amp;gt;. Create the function &amp;quot;logic2&amp;quot;. In &amp;quot;logic2&amp;quot; you can write whatever you want that you have learned before. For the prupose of this example, &#039;&#039;&#039;...&#039;&#039;&#039; will represent whatever you had, &#039;&#039;&#039;..&#039;&#039;&#039; will represent whatever you want, and typed text will represent thing that must be included.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
chr_wait_health griffin 0&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic2&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic2 {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Extra: Multiple Forking===&lt;br /&gt;
&lt;br /&gt;
More than one function can be forked in the same function. Look at ths example :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicA&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicB&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicA {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicB {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both &amp;quot;logicA&amp;quot; and &amp;quot;logicB&amp;quot; are executed at the same time. If &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; were to be removed, likewise, both &amp;quot;logic&amp;quot; and &amp;quot;logic2&amp;quot; are executed at the same time.&lt;br /&gt;
&lt;br /&gt;
== Part 9: Variables and Save Points ==&lt;br /&gt;
&lt;br /&gt;
Every wondered why there is no folder for basic training? The truth is, it is actually part of the Warehouse level and is managed by save points.&lt;br /&gt;
&lt;br /&gt;
This is the beginning of the &amp;quot;level_start&amp;quot; which is forked from &amp;quot;main&amp;quot; in the original level scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void level_start(string ai_name)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (save_point eq 0)&amp;lt;br&amp;gt;&lt;br /&gt;
    {    &amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (save_point eq 1)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using forking, you can link save points to functions. Like so :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (save_point eq 0)&amp;lt;br&amp;gt;&lt;br /&gt;
    {    &amp;lt;br&amp;gt;&lt;br /&gt;
        fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (save_point eq 1)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        fork logic2&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When save point 0 is loaded (TCTF Training), the function &amp;quot;logic&amp;quot; is executed. If save point 1 is loaded (Syndicate Warehouse), &amp;quot;logic2&amp;quot; is executed. Note that in Warehouse, the save point number in the script is one higher than in the level load list, because &amp;quot;TCTF Training&amp;quot; is SP0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                              - Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=462</id>
		<title>BSL:Tutorial/Scratch</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=462"/>
		<updated>2005-11-20T18:27:39Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Part 1 : Knowing your formats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short tutorial on how to get started on simple scripts for those who have had no experience with scripting before.&lt;br /&gt;
It will teach you, step by step, how to write a simple script. By the end of this tutorial, you will be able to move on to more advanced scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 1 : Knowing your formats ==&lt;br /&gt;
&lt;br /&gt;
The game will accept 2 types of syntax for scripts, and they are based on different styles of writing. Choose the one that suits you best.&lt;br /&gt;
&lt;br /&gt;
The types are :&lt;br /&gt;
&lt;br /&gt;
Shell-Style:&lt;br /&gt;
This is compiled much like some System-Shells. It is written in a &amp;quot;one-function-call-a-line&amp;quot; format, and is the easiest to begin with if you have had no coding experience, as the code is neatly displayed line after line. The downside of this it, that once you get into more complex scripts or scripts with many function calls, the file becomes very hard to read and very large. Also, an great tool, passing information through a command, cannot be done using Shell-Style.&lt;br /&gt;
&lt;br /&gt;
Example: [[Shell-Style]]&lt;br /&gt;
&lt;br /&gt;
C-Style:&lt;br /&gt;
This is compiled much like the popular coding style C. The syntax can be placed into multiple-function lines and functions are divided by a &#039;&#039;&#039;;&#039;&#039;&#039; . In advanced scripts, this style will allow you to condense your script and the parts will be easier to read/debug. It also allows you to utilize some of the more advanced features easily. The problem with this is, that starting off, it is harder to write if you have had no previous experience with coding.&lt;br /&gt;
&lt;br /&gt;
Example: [[C-Style]]&lt;br /&gt;
&lt;br /&gt;
Hybrid Style:&lt;br /&gt;
This is a combination between C-Style and Shell-Stlye. It keeps the easy-to-read format of Shell-Style, yet allows you to use the more advanced techniques of C-Style.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this article, we will use Shell-Style syntax for simplicity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 2: Starting Off ==&lt;br /&gt;
&lt;br /&gt;
Now, I suggest reading the original script files to get a basic idea for how scripts are laid out. This will allow us to jump-start a bit.&lt;br /&gt;
&lt;br /&gt;
Open up your IMGD and look for the following folder: EnvWarehouse.&lt;br /&gt;
Open it up, and we&#039;ll take a look at how it it laid out. There should be several files in here. Open using NOTEPAD, the one titled &#039;&#039;&#039;warehouse_main.bsl&#039;&#039;&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
    env_show 2010 0&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_blue=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_red=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_green=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_start=.99&amp;lt;br&amp;gt;&lt;br /&gt;
    gs_farclipplane_set 5000&amp;lt;br&amp;gt;&lt;br /&gt;
    obj_create 20 20&amp;lt;br&amp;gt;&lt;br /&gt;
    level_start&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example of a &#039;&#039;&#039;main&#039;&#039;&#039; file. It contains the information of how the level starts.&lt;br /&gt;
&lt;br /&gt;
Ignore the contents of the script for now, and notice that the contents of the function &amp;lt;tt&amp;gt;main&amp;lt;/tt&amp;gt; are enclosed by a set of brackets (&#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
All functions must be enclosed in this set of brackets or it will not be executed.&lt;br /&gt;
&lt;br /&gt;
Close the file, and rename the folder &amp;quot;EnvWarehouse&amp;quot; &amp;quot;EnvWarehouse_original&amp;quot;. Then, create a folder called &amp;quot;EnvWarehouse&amp;quot; and create a script file inside and name it &amp;quot;Tutorial&amp;quot;. We will be using this file to show various examples of scripts and finally, write a small script of your own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 3: Basic Commands ==&lt;br /&gt;
&lt;br /&gt;
This is just a small section explaining the commands that will be used in this tutorial. For a complete list of commands, see [http://www.fh-eberswalde.de/user/dkriesch/onistuff/commands.htm Ssg&#039;s Site] for more information.&lt;br /&gt;
&lt;br /&gt;
ai2_spawn (name) - creates and starts an AI from a character object&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport (name) (flag) - teleports a character to a flag&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup (name) (powerup) (amount) - gives a character a powerup&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 4: First Script ==&lt;br /&gt;
&lt;br /&gt;
This section will teach you how to write a very basic script (fighting script). It will start you off in the Final Training Room, where you practiced firing weapons in the original game. With this script, the room will appear very empty.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s open up the &amp;quot;Tutorial.bsl&amp;quot; file and start writing the script.&lt;br /&gt;
&lt;br /&gt;
First, declare it the &amp;quot;main&amp;quot; portion of the script by typing &amp;quot;&amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; at the very beginning of the file. This tells the game which function it is. The &amp;quot;main&amp;quot; function is the function that the game looks at first to determine what is to be executed.&lt;br /&gt;
&lt;br /&gt;
Below that line, type &#039;&#039;&#039;{&#039;&#039;&#039;. This tells the game that the function has started.&lt;br /&gt;
&lt;br /&gt;
Add a space, and then type &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;. This function teleports Konoko (her id is always 0) to the flag 7010. It is located in the final training room.&lt;br /&gt;
&lt;br /&gt;
Finish the function &amp;quot;main&amp;quot; by typing &#039;&#039;&#039;}&#039;&#039;&#039; on the next line.&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save the file, load up Oni, and click &amp;quot;New Game&amp;quot;. You should be standing in the center of the final combat training room.&lt;br /&gt;
&lt;br /&gt;
You are now on your way!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 5: Adding NPCs (AI) ==&lt;br /&gt;
&lt;br /&gt;
Before we begin, notice that there are two types of AI. AI created from character objects, and AI created from memory. AI created from character objects are created by the function call &amp;lt;tt&amp;gt;ai2_spawn (name)&amp;lt;/tt&amp;gt;, where (name) is the name of the AI. AI created from memory are created by the function call &amp;lt;tt&amp;gt;chr_create (ai_number) start,&amp;lt;/tt&amp;gt;. These AI do not have combat logic, and thus will not attack you physically but can still use weapons.&lt;br /&gt;
&lt;br /&gt;
Now, we are going to add 2 enemy AI to our script that we wrote in the last section. Open it up, and lets add some enemies for Konoko to fight.&lt;br /&gt;
&lt;br /&gt;
To recap, it should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the function call &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;, add the following 2 commands on separate lines: &amp;lt;tt&amp;gt;ai2_spawn Top_Striker&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ai2_spawn Top_Comguy&amp;lt;/tt&amp;gt;. These two commands tell the game to create 2 characters: Top_Striker, and Top_Comguy.&lt;br /&gt;
&lt;br /&gt;
Since that these characters do not spawn in the room, they must be teleported there. Using the &amp;lt;tt&amp;gt;chr_teleport&amp;lt;/tt&amp;gt; command used earlier to teleport yourself, modify it to teleport the 2 AI using their names instead of &amp;quot;0&amp;quot;. Teleport them to the flags &amp;quot;7008&amp;quot; and &amp;quot;7009&amp;quot; respectively. Refer to the example above or the list of function calls above to write this in.&lt;br /&gt;
&lt;br /&gt;
It should now look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script will now teleport you into the final training room and face you off against 2 Strikers.&lt;br /&gt;
&lt;br /&gt;
This fight too easy? In the next section, we will learn how to spice up the fight, and let you develop your own script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 6: Customization==&lt;br /&gt;
&lt;br /&gt;
Here, you will be able to split off and customize your script.&lt;br /&gt;
Each subsection will represent a way to customize the above script.&lt;br /&gt;
&lt;br /&gt;
===Weapons and Powerups===&lt;br /&gt;
These are the easiest things to add into a battle.&lt;br /&gt;
&lt;br /&gt;
Weapons can be spawned on the ground or given to characters.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Weapons====&lt;br /&gt;
&lt;br /&gt;
Giving characters weapons is very easy. Simply use the command &amp;lt;tt&amp;gt;chr_giveweapon&amp;lt;/tt&amp;gt; to give a character a weapon.&lt;br /&gt;
&lt;br /&gt;
[[OSL:Inventory|Here]] are the list of the weapon codes. For the purpose of this example, we will use &amp;lt;tt&amp;gt;w3_phr&amp;lt;/tt&amp;gt;, the plasma rifle. This command will give the two strikers plasma rifles.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_giveweapon Top_Striker w3_phr&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_giveweapon Top_Comguy w3_phr&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute.&lt;br /&gt;
&lt;br /&gt;
====Spawning Weapons on the ground====&lt;br /&gt;
&lt;br /&gt;
Spawning weapons is simple. Use the command &amp;lt;tt&amp;gt;weapon_spawn&amp;lt;/tt&amp;gt; to spawn a weapon.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 plasma rifles, one under each striker&#039;s feet. AI will automatically pick up weapons with ammo or empty weapons they have ammo for.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Powerups====&lt;br /&gt;
&lt;br /&gt;
Giving characters powerups is much like giving characters weapons. Use the command &amp;lt;tt&amp;gt;chr_givepowerup&amp;lt;/tt&amp;gt; to give a character a powerup.&lt;br /&gt;
&lt;br /&gt;
The powerups you can give a character are :&lt;br /&gt;
* shield : Gives a force shield&lt;br /&gt;
* invis : Gives a phase cloak&lt;br /&gt;
* ammo : Gives a ballistic ammo&lt;br /&gt;
* cell : Gives an energy cell.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this example, we will give the characters invisibilities.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_givepowerup Top_Striker invis -1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_givepowerup Top_Comguy invis -1&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will make the strikers permanently invisible. To make then visible after 30 seconds, erase &amp;quot;-1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Spawning Powerups on the Ground====&lt;br /&gt;
&lt;br /&gt;
Spawning powerups are simple. Use the command &amp;lt;tt&amp;gt;powerup_spawn&amp;lt;/tt&amp;gt; to spawn a powerup.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;powerup_spawn invis 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;powerup_spawn invis 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 phase cloaks beneath the striker&#039;s feet. Since AI  will not pick up powerups, this is for you only.&lt;br /&gt;
&lt;br /&gt;
===Extra Characters===&lt;br /&gt;
&lt;br /&gt;
Addubg extra characters to the script is easy. Just follow the steps for adding the first AI and follow the procedure, look for AI names [[OSL: AI names|Here]]. &lt;br /&gt;
&lt;br /&gt;
====Adding Enemies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. Most of the time, adding enemies simply involve spawning and teleporting the AI. As long as the team in &amp;quot;Syndicate&amp;quot;, it will be an enemy. If you want to add an emeny from an allied team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;Syndicate&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam griffin Syndicate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding Allies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. As long as the team is &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot;, it will be an ally for you in this script. If you want to add an ally from the enemy team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam WH_Striker_D TCTF&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overpower===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;tt&amp;gt;chr_set_health&amp;lt;/tt&amp;gt; command to set a character&#039;s health. Note that each character has a base health that may not be the same. For example, konoko&#039;s base health is 200, while a brown striker&#039;s is only 50. Keep this in mind when setting character&#039;s health. Setting it over their base health will send them into overpower - like using a hypo at full health. The health will drain at 1 every second even for AI. This example sets konoko&#039;s health to 400 - overpower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_set_health 0 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This following example shows everything listed above added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn hypo 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7007&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Striker w7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Comguy w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker ammo 15&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy cell 30&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
weapon_spawn w2_sap 7045&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn ammo 7008&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn OutroTCTF01&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport OutroTCTF01 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn WH_Thug_A&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam WH_Thug_A TCTF&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport WH_Thug_A 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn griffin&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam griffin Syndicate&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport griffin 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_set_health griffin 3900&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 7: Delay ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for some time before executing a command, use &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;. To wait for approx 5 seconds before spawning an extra drone, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep 300&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for a striker to die and then spawn some drones, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health Top_Striker 0&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Part 8: Forking and Separate Functions==&lt;br /&gt;
&lt;br /&gt;
This is the part where we start moving commands out of &amp;quot;main&amp;quot;. Create a new function called &amp;quot;logic&amp;quot; like this : type &amp;quot;func logic&amp;quot; two lines below the &#039;&#039;&#039;}&#039;&#039;&#039; of &amp;quot;main&amp;quot;. Type &#039;&#039;&#039;{&#039;&#039;&#039; nad copy out everything inside &amp;quot;main&amp;quot; into &amp;quot;logic&amp;quot;. Type &amp;lt;tt&amp;gt;fork logic&amp;lt;/tt&amp;gt; in main. It should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... being whatever you had in &amp;quot;main&amp;quot; before. Add &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; at the end of &amp;quot;logic&amp;quot;, then type &amp;lt;tt&amp;gt;fork logic2&amp;lt;/tt&amp;gt;. Create the function &amp;quot;logic2&amp;quot;. In &amp;quot;logic2&amp;quot; you can write whatever you want that you have learned before. For the prupose of this example, &#039;&#039;&#039;...&#039;&#039;&#039; will represent whatever you had, &#039;&#039;&#039;..&#039;&#039;&#039; will represent whatever you want, and typed text will represent thing that must be included.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
chr_wait_health griffin 0&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic2&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic2 {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Extra: Multiple Forking===&lt;br /&gt;
&lt;br /&gt;
More than one function can be forked in the same function. Look at ths example :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicA&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicB&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicA {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicB {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both &amp;quot;logicA&amp;quot; and &amp;quot;logicB&amp;quot; are executed at the same time. If &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; were to be removed, likewise, both &amp;quot;logic&amp;quot; and &amp;quot;logic2&amp;quot; are executed at the same time.&lt;br /&gt;
&lt;br /&gt;
== Part 9: Variables and Save Points ==&lt;br /&gt;
&lt;br /&gt;
Every wondered why there is no folder for basic training? The truth is, it is actually part of the Warehouse level and is managed by save points.&lt;br /&gt;
&lt;br /&gt;
This is the beginning of the &amp;quot;level_start&amp;quot; which is forked from &amp;quot;main&amp;quot; in the original level scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void level_start(string ai_name)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    my_save_point = save_point;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 0)&amp;lt;br&amp;gt;&lt;br /&gt;
    {    &amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 1)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 2)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 3)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 4)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 5)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                              - Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=461</id>
		<title>BSL:Tutorial/Scratch</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=461"/>
		<updated>2005-11-20T18:24:24Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Part 8: Forking and Separate Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short tutorial on how to get started on simple scripts for those who have had no experience with scripting before.&lt;br /&gt;
It will teach you, step by step, how to write a simple script. By the end of this tutorial, you will be able to move on to more advanced scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 1 : Knowing your formats ==&lt;br /&gt;
&lt;br /&gt;
The game will accept 2 types of syntax for scripts, and they are based on different styles of writing. Choose the one that suits you best.&lt;br /&gt;
&lt;br /&gt;
The types are :&lt;br /&gt;
&lt;br /&gt;
Shell-Style:&lt;br /&gt;
This is compiled much like some System-Shells. It is written in a &amp;quot;one-function-call-a-line&amp;quot; format, and is the easiest to begin with if you have had no coding experience, as the code is neatly displayed line after line. The downside of this it, that once you get into more complex scripts or scripts with many function calls, the file becomes very hard to read and very large.&lt;br /&gt;
&lt;br /&gt;
Example: [[Shell-Style]]&lt;br /&gt;
&lt;br /&gt;
C-Style:&lt;br /&gt;
This is compiled much like the popular coding style C. The syntax can be placed into multiple-function lines and functions are divided by a &#039;&#039;&#039;;&#039;&#039;&#039; . In advanced scripts, this style will allow you to condense your script and the parts will be easier to read/debug. It also allows you to utilize some of the more advanced features easily. The problem with this is, that starting off, it is harder to write if you have had no previous experience with coding.&lt;br /&gt;
&lt;br /&gt;
Example: [[C-Style]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of this article, we will use Shell-Style syntax for simplicity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 2: Starting Off ==&lt;br /&gt;
&lt;br /&gt;
Now, I suggest reading the original script files to get a basic idea for how scripts are laid out. This will allow us to jump-start a bit.&lt;br /&gt;
&lt;br /&gt;
Open up your IMGD and look for the following folder: EnvWarehouse.&lt;br /&gt;
Open it up, and we&#039;ll take a look at how it it laid out. There should be several files in here. Open using NOTEPAD, the one titled &#039;&#039;&#039;warehouse_main.bsl&#039;&#039;&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
    env_show 2010 0&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_blue=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_red=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_green=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_start=.99&amp;lt;br&amp;gt;&lt;br /&gt;
    gs_farclipplane_set 5000&amp;lt;br&amp;gt;&lt;br /&gt;
    obj_create 20 20&amp;lt;br&amp;gt;&lt;br /&gt;
    level_start&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example of a &#039;&#039;&#039;main&#039;&#039;&#039; file. It contains the information of how the level starts.&lt;br /&gt;
&lt;br /&gt;
Ignore the contents of the script for now, and notice that the contents of the function &amp;lt;tt&amp;gt;main&amp;lt;/tt&amp;gt; are enclosed by a set of brackets (&#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
All functions must be enclosed in this set of brackets or it will not be executed.&lt;br /&gt;
&lt;br /&gt;
Close the file, and rename the folder &amp;quot;EnvWarehouse&amp;quot; &amp;quot;EnvWarehouse_original&amp;quot;. Then, create a folder called &amp;quot;EnvWarehouse&amp;quot; and create a script file inside and name it &amp;quot;Tutorial&amp;quot;. We will be using this file to show various examples of scripts and finally, write a small script of your own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 3: Basic Commands ==&lt;br /&gt;
&lt;br /&gt;
This is just a small section explaining the commands that will be used in this tutorial. For a complete list of commands, see [http://www.fh-eberswalde.de/user/dkriesch/onistuff/commands.htm Ssg&#039;s Site] for more information.&lt;br /&gt;
&lt;br /&gt;
ai2_spawn (name) - creates and starts an AI from a character object&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport (name) (flag) - teleports a character to a flag&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup (name) (powerup) (amount) - gives a character a powerup&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 4: First Script ==&lt;br /&gt;
&lt;br /&gt;
This section will teach you how to write a very basic script (fighting script). It will start you off in the Final Training Room, where you practiced firing weapons in the original game. With this script, the room will appear very empty.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s open up the &amp;quot;Tutorial.bsl&amp;quot; file and start writing the script.&lt;br /&gt;
&lt;br /&gt;
First, declare it the &amp;quot;main&amp;quot; portion of the script by typing &amp;quot;&amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; at the very beginning of the file. This tells the game which function it is. The &amp;quot;main&amp;quot; function is the function that the game looks at first to determine what is to be executed.&lt;br /&gt;
&lt;br /&gt;
Below that line, type &#039;&#039;&#039;{&#039;&#039;&#039;. This tells the game that the function has started.&lt;br /&gt;
&lt;br /&gt;
Add a space, and then type &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;. This function teleports Konoko (her id is always 0) to the flag 7010. It is located in the final training room.&lt;br /&gt;
&lt;br /&gt;
Finish the function &amp;quot;main&amp;quot; by typing &#039;&#039;&#039;}&#039;&#039;&#039; on the next line.&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save the file, load up Oni, and click &amp;quot;New Game&amp;quot;. You should be standing in the center of the final combat training room.&lt;br /&gt;
&lt;br /&gt;
You are now on your way!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 5: Adding NPCs (AI) ==&lt;br /&gt;
&lt;br /&gt;
Before we begin, notice that there are two types of AI. AI created from character objects, and AI created from memory. AI created from character objects are created by the function call &amp;lt;tt&amp;gt;ai2_spawn (name)&amp;lt;/tt&amp;gt;, where (name) is the name of the AI. AI created from memory are created by the function call &amp;lt;tt&amp;gt;chr_create (ai_number) start,&amp;lt;/tt&amp;gt;. These AI do not have combat logic, and thus will not attack you physically but can still use weapons.&lt;br /&gt;
&lt;br /&gt;
Now, we are going to add 2 enemy AI to our script that we wrote in the last section. Open it up, and lets add some enemies for Konoko to fight.&lt;br /&gt;
&lt;br /&gt;
To recap, it should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the function call &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;, add the following 2 commands on separate lines: &amp;lt;tt&amp;gt;ai2_spawn Top_Striker&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ai2_spawn Top_Comguy&amp;lt;/tt&amp;gt;. These two commands tell the game to create 2 characters: Top_Striker, and Top_Comguy.&lt;br /&gt;
&lt;br /&gt;
Since that these characters do not spawn in the room, they must be teleported there. Using the &amp;lt;tt&amp;gt;chr_teleport&amp;lt;/tt&amp;gt; command used earlier to teleport yourself, modify it to teleport the 2 AI using their names instead of &amp;quot;0&amp;quot;. Teleport them to the flags &amp;quot;7008&amp;quot; and &amp;quot;7009&amp;quot; respectively. Refer to the example above or the list of function calls above to write this in.&lt;br /&gt;
&lt;br /&gt;
It should now look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script will now teleport you into the final training room and face you off against 2 Strikers.&lt;br /&gt;
&lt;br /&gt;
This fight too easy? In the next section, we will learn how to spice up the fight, and let you develop your own script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 6: Customization==&lt;br /&gt;
&lt;br /&gt;
Here, you will be able to split off and customize your script.&lt;br /&gt;
Each subsection will represent a way to customize the above script.&lt;br /&gt;
&lt;br /&gt;
===Weapons and Powerups===&lt;br /&gt;
These are the easiest things to add into a battle.&lt;br /&gt;
&lt;br /&gt;
Weapons can be spawned on the ground or given to characters.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Weapons====&lt;br /&gt;
&lt;br /&gt;
Giving characters weapons is very easy. Simply use the command &amp;lt;tt&amp;gt;chr_giveweapon&amp;lt;/tt&amp;gt; to give a character a weapon.&lt;br /&gt;
&lt;br /&gt;
[[OSL:Inventory|Here]] are the list of the weapon codes. For the purpose of this example, we will use &amp;lt;tt&amp;gt;w3_phr&amp;lt;/tt&amp;gt;, the plasma rifle. This command will give the two strikers plasma rifles.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_giveweapon Top_Striker w3_phr&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_giveweapon Top_Comguy w3_phr&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute.&lt;br /&gt;
&lt;br /&gt;
====Spawning Weapons on the ground====&lt;br /&gt;
&lt;br /&gt;
Spawning weapons is simple. Use the command &amp;lt;tt&amp;gt;weapon_spawn&amp;lt;/tt&amp;gt; to spawn a weapon.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 plasma rifles, one under each striker&#039;s feet. AI will automatically pick up weapons with ammo or empty weapons they have ammo for.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Powerups====&lt;br /&gt;
&lt;br /&gt;
Giving characters powerups is much like giving characters weapons. Use the command &amp;lt;tt&amp;gt;chr_givepowerup&amp;lt;/tt&amp;gt; to give a character a powerup.&lt;br /&gt;
&lt;br /&gt;
The powerups you can give a character are :&lt;br /&gt;
* shield : Gives a force shield&lt;br /&gt;
* invis : Gives a phase cloak&lt;br /&gt;
* ammo : Gives a ballistic ammo&lt;br /&gt;
* cell : Gives an energy cell.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this example, we will give the characters invisibilities.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_givepowerup Top_Striker invis -1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_givepowerup Top_Comguy invis -1&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will make the strikers permanently invisible. To make then visible after 30 seconds, erase &amp;quot;-1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Spawning Powerups on the Ground====&lt;br /&gt;
&lt;br /&gt;
Spawning powerups are simple. Use the command &amp;lt;tt&amp;gt;powerup_spawn&amp;lt;/tt&amp;gt; to spawn a powerup.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;powerup_spawn invis 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;powerup_spawn invis 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 phase cloaks beneath the striker&#039;s feet. Since AI  will not pick up powerups, this is for you only.&lt;br /&gt;
&lt;br /&gt;
===Extra Characters===&lt;br /&gt;
&lt;br /&gt;
Addubg extra characters to the script is easy. Just follow the steps for adding the first AI and follow the procedure, look for AI names [[OSL: AI names|Here]]. &lt;br /&gt;
&lt;br /&gt;
====Adding Enemies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. Most of the time, adding enemies simply involve spawning and teleporting the AI. As long as the team in &amp;quot;Syndicate&amp;quot;, it will be an enemy. If you want to add an emeny from an allied team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;Syndicate&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam griffin Syndicate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding Allies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. As long as the team is &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot;, it will be an ally for you in this script. If you want to add an ally from the enemy team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam WH_Striker_D TCTF&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overpower===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;tt&amp;gt;chr_set_health&amp;lt;/tt&amp;gt; command to set a character&#039;s health. Note that each character has a base health that may not be the same. For example, konoko&#039;s base health is 200, while a brown striker&#039;s is only 50. Keep this in mind when setting character&#039;s health. Setting it over their base health will send them into overpower - like using a hypo at full health. The health will drain at 1 every second even for AI. This example sets konoko&#039;s health to 400 - overpower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_set_health 0 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This following example shows everything listed above added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn hypo 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7007&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Striker w7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Comguy w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker ammo 15&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy cell 30&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
weapon_spawn w2_sap 7045&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn ammo 7008&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn OutroTCTF01&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport OutroTCTF01 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn WH_Thug_A&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam WH_Thug_A TCTF&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport WH_Thug_A 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn griffin&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam griffin Syndicate&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport griffin 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_set_health griffin 3900&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 7: Delay ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for some time before executing a command, use &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;. To wait for approx 5 seconds before spawning an extra drone, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep 300&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for a striker to die and then spawn some drones, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health Top_Striker 0&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Part 8: Forking and Separate Functions==&lt;br /&gt;
&lt;br /&gt;
This is the part where we start moving commands out of &amp;quot;main&amp;quot;. Create a new function called &amp;quot;logic&amp;quot; like this : type &amp;quot;func logic&amp;quot; two lines below the &#039;&#039;&#039;}&#039;&#039;&#039; of &amp;quot;main&amp;quot;. Type &#039;&#039;&#039;{&#039;&#039;&#039; nad copy out everything inside &amp;quot;main&amp;quot; into &amp;quot;logic&amp;quot;. Type &amp;lt;tt&amp;gt;fork logic&amp;lt;/tt&amp;gt; in main. It should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... being whatever you had in &amp;quot;main&amp;quot; before. Add &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; at the end of &amp;quot;logic&amp;quot;, then type &amp;lt;tt&amp;gt;fork logic2&amp;lt;/tt&amp;gt;. Create the function &amp;quot;logic2&amp;quot;. In &amp;quot;logic2&amp;quot; you can write whatever you want that you have learned before. For the prupose of this example, &#039;&#039;&#039;...&#039;&#039;&#039; will represent whatever you had, &#039;&#039;&#039;..&#039;&#039;&#039; will represent whatever you want, and typed text will represent thing that must be included.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
chr_wait_health griffin 0&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic2&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic2 {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Extra: Multiple Forking===&lt;br /&gt;
&lt;br /&gt;
More than one function can be forked in the same function. Look at ths example :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicA&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicB&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicA {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicB {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both &amp;quot;logicA&amp;quot; and &amp;quot;logicB&amp;quot; are executed at the same time. If &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; were to be removed, likewise, both &amp;quot;logic&amp;quot; and &amp;quot;logic2&amp;quot; are executed at the same time.&lt;br /&gt;
&lt;br /&gt;
== Part 9: Variables and Save Points ==&lt;br /&gt;
&lt;br /&gt;
Every wondered why there is no folder for basic training? The truth is, it is actually part of the Warehouse level and is managed by save points.&lt;br /&gt;
&lt;br /&gt;
This is the beginning of the &amp;quot;level_start&amp;quot; which is forked from &amp;quot;main&amp;quot; in the original level scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void level_start(string ai_name)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    my_save_point = save_point;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 0)&amp;lt;br&amp;gt;&lt;br /&gt;
    {    &amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 1)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 2)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 3)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 4)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 5)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                              - Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=460</id>
		<title>BSL:Tutorial/Scratch</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=460"/>
		<updated>2005-11-20T18:23:37Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Part 7: Delay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short tutorial on how to get started on simple scripts for those who have had no experience with scripting before.&lt;br /&gt;
It will teach you, step by step, how to write a simple script. By the end of this tutorial, you will be able to move on to more advanced scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 1 : Knowing your formats ==&lt;br /&gt;
&lt;br /&gt;
The game will accept 2 types of syntax for scripts, and they are based on different styles of writing. Choose the one that suits you best.&lt;br /&gt;
&lt;br /&gt;
The types are :&lt;br /&gt;
&lt;br /&gt;
Shell-Style:&lt;br /&gt;
This is compiled much like some System-Shells. It is written in a &amp;quot;one-function-call-a-line&amp;quot; format, and is the easiest to begin with if you have had no coding experience, as the code is neatly displayed line after line. The downside of this it, that once you get into more complex scripts or scripts with many function calls, the file becomes very hard to read and very large.&lt;br /&gt;
&lt;br /&gt;
Example: [[Shell-Style]]&lt;br /&gt;
&lt;br /&gt;
C-Style:&lt;br /&gt;
This is compiled much like the popular coding style C. The syntax can be placed into multiple-function lines and functions are divided by a &#039;&#039;&#039;;&#039;&#039;&#039; . In advanced scripts, this style will allow you to condense your script and the parts will be easier to read/debug. It also allows you to utilize some of the more advanced features easily. The problem with this is, that starting off, it is harder to write if you have had no previous experience with coding.&lt;br /&gt;
&lt;br /&gt;
Example: [[C-Style]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of this article, we will use Shell-Style syntax for simplicity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 2: Starting Off ==&lt;br /&gt;
&lt;br /&gt;
Now, I suggest reading the original script files to get a basic idea for how scripts are laid out. This will allow us to jump-start a bit.&lt;br /&gt;
&lt;br /&gt;
Open up your IMGD and look for the following folder: EnvWarehouse.&lt;br /&gt;
Open it up, and we&#039;ll take a look at how it it laid out. There should be several files in here. Open using NOTEPAD, the one titled &#039;&#039;&#039;warehouse_main.bsl&#039;&#039;&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
    env_show 2010 0&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_blue=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_red=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_green=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_start=.99&amp;lt;br&amp;gt;&lt;br /&gt;
    gs_farclipplane_set 5000&amp;lt;br&amp;gt;&lt;br /&gt;
    obj_create 20 20&amp;lt;br&amp;gt;&lt;br /&gt;
    level_start&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example of a &#039;&#039;&#039;main&#039;&#039;&#039; file. It contains the information of how the level starts.&lt;br /&gt;
&lt;br /&gt;
Ignore the contents of the script for now, and notice that the contents of the function &amp;lt;tt&amp;gt;main&amp;lt;/tt&amp;gt; are enclosed by a set of brackets (&#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
All functions must be enclosed in this set of brackets or it will not be executed.&lt;br /&gt;
&lt;br /&gt;
Close the file, and rename the folder &amp;quot;EnvWarehouse&amp;quot; &amp;quot;EnvWarehouse_original&amp;quot;. Then, create a folder called &amp;quot;EnvWarehouse&amp;quot; and create a script file inside and name it &amp;quot;Tutorial&amp;quot;. We will be using this file to show various examples of scripts and finally, write a small script of your own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 3: Basic Commands ==&lt;br /&gt;
&lt;br /&gt;
This is just a small section explaining the commands that will be used in this tutorial. For a complete list of commands, see [http://www.fh-eberswalde.de/user/dkriesch/onistuff/commands.htm Ssg&#039;s Site] for more information.&lt;br /&gt;
&lt;br /&gt;
ai2_spawn (name) - creates and starts an AI from a character object&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport (name) (flag) - teleports a character to a flag&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup (name) (powerup) (amount) - gives a character a powerup&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 4: First Script ==&lt;br /&gt;
&lt;br /&gt;
This section will teach you how to write a very basic script (fighting script). It will start you off in the Final Training Room, where you practiced firing weapons in the original game. With this script, the room will appear very empty.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s open up the &amp;quot;Tutorial.bsl&amp;quot; file and start writing the script.&lt;br /&gt;
&lt;br /&gt;
First, declare it the &amp;quot;main&amp;quot; portion of the script by typing &amp;quot;&amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; at the very beginning of the file. This tells the game which function it is. The &amp;quot;main&amp;quot; function is the function that the game looks at first to determine what is to be executed.&lt;br /&gt;
&lt;br /&gt;
Below that line, type &#039;&#039;&#039;{&#039;&#039;&#039;. This tells the game that the function has started.&lt;br /&gt;
&lt;br /&gt;
Add a space, and then type &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;. This function teleports Konoko (her id is always 0) to the flag 7010. It is located in the final training room.&lt;br /&gt;
&lt;br /&gt;
Finish the function &amp;quot;main&amp;quot; by typing &#039;&#039;&#039;}&#039;&#039;&#039; on the next line.&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save the file, load up Oni, and click &amp;quot;New Game&amp;quot;. You should be standing in the center of the final combat training room.&lt;br /&gt;
&lt;br /&gt;
You are now on your way!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 5: Adding NPCs (AI) ==&lt;br /&gt;
&lt;br /&gt;
Before we begin, notice that there are two types of AI. AI created from character objects, and AI created from memory. AI created from character objects are created by the function call &amp;lt;tt&amp;gt;ai2_spawn (name)&amp;lt;/tt&amp;gt;, where (name) is the name of the AI. AI created from memory are created by the function call &amp;lt;tt&amp;gt;chr_create (ai_number) start,&amp;lt;/tt&amp;gt;. These AI do not have combat logic, and thus will not attack you physically but can still use weapons.&lt;br /&gt;
&lt;br /&gt;
Now, we are going to add 2 enemy AI to our script that we wrote in the last section. Open it up, and lets add some enemies for Konoko to fight.&lt;br /&gt;
&lt;br /&gt;
To recap, it should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the function call &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;, add the following 2 commands on separate lines: &amp;lt;tt&amp;gt;ai2_spawn Top_Striker&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ai2_spawn Top_Comguy&amp;lt;/tt&amp;gt;. These two commands tell the game to create 2 characters: Top_Striker, and Top_Comguy.&lt;br /&gt;
&lt;br /&gt;
Since that these characters do not spawn in the room, they must be teleported there. Using the &amp;lt;tt&amp;gt;chr_teleport&amp;lt;/tt&amp;gt; command used earlier to teleport yourself, modify it to teleport the 2 AI using their names instead of &amp;quot;0&amp;quot;. Teleport them to the flags &amp;quot;7008&amp;quot; and &amp;quot;7009&amp;quot; respectively. Refer to the example above or the list of function calls above to write this in.&lt;br /&gt;
&lt;br /&gt;
It should now look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script will now teleport you into the final training room and face you off against 2 Strikers.&lt;br /&gt;
&lt;br /&gt;
This fight too easy? In the next section, we will learn how to spice up the fight, and let you develop your own script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 6: Customization==&lt;br /&gt;
&lt;br /&gt;
Here, you will be able to split off and customize your script.&lt;br /&gt;
Each subsection will represent a way to customize the above script.&lt;br /&gt;
&lt;br /&gt;
===Weapons and Powerups===&lt;br /&gt;
These are the easiest things to add into a battle.&lt;br /&gt;
&lt;br /&gt;
Weapons can be spawned on the ground or given to characters.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Weapons====&lt;br /&gt;
&lt;br /&gt;
Giving characters weapons is very easy. Simply use the command &amp;lt;tt&amp;gt;chr_giveweapon&amp;lt;/tt&amp;gt; to give a character a weapon.&lt;br /&gt;
&lt;br /&gt;
[[OSL:Inventory|Here]] are the list of the weapon codes. For the purpose of this example, we will use &amp;lt;tt&amp;gt;w3_phr&amp;lt;/tt&amp;gt;, the plasma rifle. This command will give the two strikers plasma rifles.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_giveweapon Top_Striker w3_phr&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_giveweapon Top_Comguy w3_phr&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute.&lt;br /&gt;
&lt;br /&gt;
====Spawning Weapons on the ground====&lt;br /&gt;
&lt;br /&gt;
Spawning weapons is simple. Use the command &amp;lt;tt&amp;gt;weapon_spawn&amp;lt;/tt&amp;gt; to spawn a weapon.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 plasma rifles, one under each striker&#039;s feet. AI will automatically pick up weapons with ammo or empty weapons they have ammo for.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Powerups====&lt;br /&gt;
&lt;br /&gt;
Giving characters powerups is much like giving characters weapons. Use the command &amp;lt;tt&amp;gt;chr_givepowerup&amp;lt;/tt&amp;gt; to give a character a powerup.&lt;br /&gt;
&lt;br /&gt;
The powerups you can give a character are :&lt;br /&gt;
* shield : Gives a force shield&lt;br /&gt;
* invis : Gives a phase cloak&lt;br /&gt;
* ammo : Gives a ballistic ammo&lt;br /&gt;
* cell : Gives an energy cell.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this example, we will give the characters invisibilities.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_givepowerup Top_Striker invis -1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_givepowerup Top_Comguy invis -1&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will make the strikers permanently invisible. To make then visible after 30 seconds, erase &amp;quot;-1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Spawning Powerups on the Ground====&lt;br /&gt;
&lt;br /&gt;
Spawning powerups are simple. Use the command &amp;lt;tt&amp;gt;powerup_spawn&amp;lt;/tt&amp;gt; to spawn a powerup.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;powerup_spawn invis 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;powerup_spawn invis 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 phase cloaks beneath the striker&#039;s feet. Since AI  will not pick up powerups, this is for you only.&lt;br /&gt;
&lt;br /&gt;
===Extra Characters===&lt;br /&gt;
&lt;br /&gt;
Addubg extra characters to the script is easy. Just follow the steps for adding the first AI and follow the procedure, look for AI names [[OSL: AI names|Here]]. &lt;br /&gt;
&lt;br /&gt;
====Adding Enemies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. Most of the time, adding enemies simply involve spawning and teleporting the AI. As long as the team in &amp;quot;Syndicate&amp;quot;, it will be an enemy. If you want to add an emeny from an allied team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;Syndicate&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam griffin Syndicate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding Allies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. As long as the team is &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot;, it will be an ally for you in this script. If you want to add an ally from the enemy team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam WH_Striker_D TCTF&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overpower===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;tt&amp;gt;chr_set_health&amp;lt;/tt&amp;gt; command to set a character&#039;s health. Note that each character has a base health that may not be the same. For example, konoko&#039;s base health is 200, while a brown striker&#039;s is only 50. Keep this in mind when setting character&#039;s health. Setting it over their base health will send them into overpower - like using a hypo at full health. The health will drain at 1 every second even for AI. This example sets konoko&#039;s health to 400 - overpower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_set_health 0 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This following example shows everything listed above added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn hypo 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7007&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Striker w7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Comguy w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker ammo 15&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy cell 30&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
weapon_spawn w2_sap 7045&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn ammo 7008&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn OutroTCTF01&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport OutroTCTF01 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn WH_Thug_A&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam WH_Thug_A TCTF&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport WH_Thug_A 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn griffin&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam griffin Syndicate&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport griffin 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_set_health griffin 3900&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 7: Delay ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for some time before executing a command, use &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;. To wait for approx 5 seconds before spawning an extra drone, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep 300&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for a striker to die and then spawn some drones, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health Top_Striker 0&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Part 8: Forking and Separate Functions==&lt;br /&gt;
&lt;br /&gt;
This is the part where we start moving commands out of &amp;quot;main&amp;quot;. Create a new function called &amp;quot;logic&amp;quot; like this : type &amp;quot;func logic&amp;quot; two lines below the &#039;&#039;&#039;}&#039;&#039;&#039; of &amp;quot;main&amp;quot;. Type &#039;&#039;&#039;{&#039;&#039;&#039; nad copy out everything inside &amp;quot;main&amp;quot; into &amp;quot;logic&amp;quot;. Type &amp;lt;tt&amp;gt;fork logic&amp;lt;/tt&amp;gt; in main. It should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... being whatever you had in &amp;quot;main&amp;quot; before. Add &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; at the end of &amp;quot;logic&amp;quot;, then type &amp;lt;tt&amp;gt;fork logic2&amp;lt;/tt&amp;gt;. Create the function &amp;quot;logic2&amp;quot;. In &amp;quot;logic2&amp;quot; you can write whatever you want that you have learned before. For the prupose of this example, &#039;&#039;&#039;...&#039;&#039;&#039; will represent whatever you had, &#039;&#039;&#039;..&#039;&#039;&#039; will represent whatever you want, and typed text will represent thing that must be included.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
...&amp;lt;br&amp;gt;&lt;br /&gt;
chr_wait_health griffin 0&amp;lt;br&amp;gt;&lt;br /&gt;
fork logic2&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
func logic2 {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Extra: Multiple Forking===&lt;br /&gt;
&lt;br /&gt;
More than one function can be forked in the same function. Look at ths example :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicA&amp;lt;br&amp;gt;&lt;br /&gt;
fork logicB&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicA {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
func logicB {&amp;lt;br&amp;gt;&lt;br /&gt;
..&amp;lt;br&amp;gt;}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Both &amp;quot;logicA&amp;quot; and &amp;quot;logicB&amp;quot; are executed at the same time. If &amp;lt;tt&amp;gt;chr_wait_health griffin 0&amp;lt;/tt&amp;gt; were to be removed, likewise, both &amp;quot;logic&amp;quot; and &amp;quot;logic2&amp;quot; are executed at the same time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Part 9: Variables and Save Points ==&lt;br /&gt;
&lt;br /&gt;
Every wondered why there is no folder for basic training? The truth is, it is actually part of the Warehouse level and is managed by save points.&lt;br /&gt;
&lt;br /&gt;
This is the beginning of the &amp;quot;level_start&amp;quot; which is forked from &amp;quot;main&amp;quot; in the original level scripts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void level_start(string ai_name)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    my_save_point = save_point;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 0)&amp;lt;br&amp;gt;&lt;br /&gt;
    {    &amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 1)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 2)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 3)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 4)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
    if (my_save_point eq 5)&amp;lt;br&amp;gt;&lt;br /&gt;
    {&amp;lt;br&amp;gt;&lt;br /&gt;
        ...&amp;lt;br&amp;gt;&lt;br /&gt;
    }&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                              - Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=1825</id>
		<title>Oni (folder)/GameDataFolder/IGMD/compound</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/compound&amp;diff=1825"/>
		<updated>2005-11-19T18:06:10Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Available mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Level logic for Chapter 14:DAWN OF THE CHRYSALIS==&lt;br /&gt;
aka &#039;&#039;&#039;Syndicate Mountain Compound&#039;&#039;&#039; (Sturmanderung)&lt;br /&gt;
===Associated binaries===&lt;br /&gt;
*level19_Final.dat&lt;br /&gt;
*level19_Final.raw&lt;br /&gt;
===Original contents===&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound.bsl compound.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_cutscene.bsl compound_cutscene.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/compound_main.bsl compound_main.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/compound/particle_scripts.bsl particle_scripts.bsl]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Overcommented&amp;quot; version (not online yet)===&lt;br /&gt;
*compound.bsl&lt;br /&gt;
*compound_cutscene.bsl&lt;br /&gt;
*compound_main.bsl&lt;br /&gt;
*particle_scripts.bsl&lt;br /&gt;
===Rewritten version (not online yet)===&lt;br /&gt;
*different filenames...&lt;br /&gt;
&lt;br /&gt;
==Available mods==&lt;br /&gt;
&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/My%20Other%20Scripts/mountainrallyv1.1.zip MR 1.1]&lt;br /&gt;
&lt;br /&gt;
==Related issues==&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/roof&amp;diff=1821</id>
		<title>Oni (folder)/GameDataFolder/IGMD/roof</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/roof&amp;diff=1821"/>
		<updated>2005-11-19T18:05:02Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Available mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Level logic for Chapter 10:CAT AND MOUSE==&lt;br /&gt;
aka &#039;&#039;&#039;Rooftops&#039;&#039;&#039;&lt;br /&gt;
===Associated binaries===&lt;br /&gt;
*level12_Final.dat&lt;br /&gt;
*level12_Final.raw&lt;br /&gt;
===Original contents===&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/roof/particle_scripts.bsl particle_scripts.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/roof/roof.bsl roof.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/roof/roof_cutscene.bsl roof_cutscene.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/roof/roof_main.bsl roof_main.bsl]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Overcommented&amp;quot; version (not online yet)===&lt;br /&gt;
*particle_scripts.bsl&lt;br /&gt;
*roof.bsl&lt;br /&gt;
*roof_cutscene.bsl&lt;br /&gt;
*roof_main.bsl&lt;br /&gt;
===Rewritten version (not online yet)===&lt;br /&gt;
*different filenames...&lt;br /&gt;
&lt;br /&gt;
==Available mods==&lt;br /&gt;
&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/My%20Other%20Scripts/Mukade&#039;s%20Wonderful%20Battle%20Arena.zip MWBA]&lt;br /&gt;
&lt;br /&gt;
==Related issues==&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/state&amp;diff=1820</id>
		<title>Oni (folder)/GameDataFolder/IGMD/state</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/state&amp;diff=1820"/>
		<updated>2005-11-19T18:03:41Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Available mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Level logic for Chapter 9:TRUTH AND CONSEQUENCES==&lt;br /&gt;
aka &#039;&#039;&#039;Regional State Building&#039;&#039;&#039;&lt;br /&gt;
===Associated binaries===&lt;br /&gt;
*level11_Final.dat&lt;br /&gt;
*level11_Final.raw&lt;br /&gt;
&lt;br /&gt;
===Original contents===&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/state/state_cutscene.bsl state_cutscene.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/state/state_level_logic.bsl state_level_logic.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/state/state_main.bsl state_main.bsl]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Overcommented&amp;quot; version (not online yet)===&lt;br /&gt;
*state_cutscene.bsl&lt;br /&gt;
*state_level_logic.bsl&lt;br /&gt;
*state_main.bsl&lt;br /&gt;
===Rewritten version (not online yet)===&lt;br /&gt;
*different filenames...&lt;br /&gt;
&lt;br /&gt;
==Available mods==&lt;br /&gt;
&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/Scripts%20By%20Various%20Authors/ddstate.zip DDstate]&lt;br /&gt;
&lt;br /&gt;
==Related issues==&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=459</id>
		<title>BSL:Tutorial/Scratch</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=459"/>
		<updated>2005-11-18T03:36:11Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Overpower */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short tutorial on how to get started on simple scripts for those who have had no experience with scripting before.&lt;br /&gt;
It will teach you, step by step, how to write a simple script. By the end of this tutorial, you will be able to move on to more advanced scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 1 : Knowing your formats ==&lt;br /&gt;
&lt;br /&gt;
The game will accept 2 types of syntax for scripts, and they are based on different styles of writing. Choose the one that suits you best.&lt;br /&gt;
&lt;br /&gt;
The types are :&lt;br /&gt;
&lt;br /&gt;
Shell-Style:&lt;br /&gt;
This is compiled much like some System-Shells. It is written in a &amp;quot;one-function-call-a-line&amp;quot; format, and is the easiest to begin with if you have had no coding experience, as the code is neatly displayed line after line. The downside of this it, that once you get into more complex scripts or scripts with many function calls, the file becomes very hard to read and very large.&lt;br /&gt;
&lt;br /&gt;
Example: [[Shell-Style]]&lt;br /&gt;
&lt;br /&gt;
C-Style:&lt;br /&gt;
This is compiled much like the popular coding style C. The syntax can be placed into multiple-function lines and functions are divided by a &#039;&#039;&#039;;&#039;&#039;&#039; . In advanced scripts, this style will allow you to condense your script and the parts will be easier to read/debug. It also allows you to utilize some of the more advanced features easily. The problem with this is, that starting off, it is harder to write if you have had no previous experience with coding.&lt;br /&gt;
&lt;br /&gt;
Example: [[C-Style]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of this article, we will use Shell-Style syntax for simplicity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 2: Starting Off ==&lt;br /&gt;
&lt;br /&gt;
Now, I suggest reading the original script files to get a basic idea for how scripts are laid out. This will allow us to jump-start a bit.&lt;br /&gt;
&lt;br /&gt;
Open up your IMGD and look for the following folder: EnvWarehouse.&lt;br /&gt;
Open it up, and we&#039;ll take a look at how it it laid out. There should be several files in here. Open using NOTEPAD, the one titled &#039;&#039;&#039;warehouse_main.bsl&#039;&#039;&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
    env_show 2010 0&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_blue=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_red=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_green=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_start=.99&amp;lt;br&amp;gt;&lt;br /&gt;
    gs_farclipplane_set 5000&amp;lt;br&amp;gt;&lt;br /&gt;
    obj_create 20 20&amp;lt;br&amp;gt;&lt;br /&gt;
    level_start&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example of a &#039;&#039;&#039;main&#039;&#039;&#039; file. It contains the information of how the level starts.&lt;br /&gt;
&lt;br /&gt;
Ignore the contents of the script for now, and notice that the contents of the function &amp;lt;tt&amp;gt;main&amp;lt;/tt&amp;gt; are enclosed by a set of brackets (&#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
All functions must be enclosed in this set of brackets or it will not be executed.&lt;br /&gt;
&lt;br /&gt;
Close the file, and rename the folder &amp;quot;EnvWarehouse&amp;quot; &amp;quot;EnvWarehouse_original&amp;quot;. Then, create a folder called &amp;quot;EnvWarehouse&amp;quot; and create a script file inside and name it &amp;quot;Tutorial&amp;quot;. We will be using this file to show various examples of scripts and finally, write a small script of your own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 3: Basic Commands ==&lt;br /&gt;
&lt;br /&gt;
This is just a small section explaining the commands that will be used in this tutorial. For a complete list of commands, see [http://www.fh-eberswalde.de/user/dkriesch/onistuff/commands.htm Ssg&#039;s Site] for more information.&lt;br /&gt;
&lt;br /&gt;
ai2_spawn (name) - creates and starts an AI from a character object&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport (name) (flag) - teleports a character to a flag&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup (name) (powerup) (amount) - gives a character a powerup&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 4: First Script ==&lt;br /&gt;
&lt;br /&gt;
This section will teach you how to write a very basic script (fighting script). It will start you off in the Final Training Room, where you practiced firing weapons in the original game. With this script, the room will appear very empty.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s open up the &amp;quot;Tutorial.bsl&amp;quot; file and start writing the script.&lt;br /&gt;
&lt;br /&gt;
First, declare it the &amp;quot;main&amp;quot; portion of the script by typing &amp;quot;&amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; at the very beginning of the file. This tells the game which function it is. The &amp;quot;main&amp;quot; function is the function that the game looks at first to determine what is to be executed.&lt;br /&gt;
&lt;br /&gt;
Below that line, type &#039;&#039;&#039;{&#039;&#039;&#039;. This tells the game that the function has started.&lt;br /&gt;
&lt;br /&gt;
Add a space, and then type &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;. This function teleports Konoko (her id is always 0) to the flag 7010. It is located in the final training room.&lt;br /&gt;
&lt;br /&gt;
Finish the function &amp;quot;main&amp;quot; by typing &#039;&#039;&#039;}&#039;&#039;&#039; on the next line.&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save the file, load up Oni, and click &amp;quot;New Game&amp;quot;. You should be standing in the center of the final combat training room.&lt;br /&gt;
&lt;br /&gt;
You are now on your way!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 5: Adding NPCs (AI) ==&lt;br /&gt;
&lt;br /&gt;
Before we begin, notice that there are two types of AI. AI created from character objects, and AI created from memory. AI created from character objects are created by the function call &amp;lt;tt&amp;gt;ai2_spawn (name)&amp;lt;/tt&amp;gt;, where (name) is the name of the AI. AI created from memory are created by the function call &amp;lt;tt&amp;gt;chr_create (ai_number) start,&amp;lt;/tt&amp;gt;. These AI do not have combat logic, and thus will not attack you physically but can still use weapons.&lt;br /&gt;
&lt;br /&gt;
Now, we are going to add 2 enemy AI to our script that we wrote in the last section. Open it up, and lets add some enemies for Konoko to fight.&lt;br /&gt;
&lt;br /&gt;
To recap, it should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the function call &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;, add the following 2 commands on separate lines: &amp;lt;tt&amp;gt;ai2_spawn Top_Striker&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ai2_spawn Top_Comguy&amp;lt;/tt&amp;gt;. These two commands tell the game to create 2 characters: Top_Striker, and Top_Comguy.&lt;br /&gt;
&lt;br /&gt;
Since that these characters do not spawn in the room, they must be teleported there. Using the &amp;lt;tt&amp;gt;chr_teleport&amp;lt;/tt&amp;gt; command used earlier to teleport yourself, modify it to teleport the 2 AI using their names instead of &amp;quot;0&amp;quot;. Teleport them to the flags &amp;quot;7008&amp;quot; and &amp;quot;7009&amp;quot; respectively. Refer to the example above or the list of function calls above to write this in.&lt;br /&gt;
&lt;br /&gt;
It should now look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script will now teleport you into the final training room and face you off against 2 Strikers.&lt;br /&gt;
&lt;br /&gt;
This fight too easy? In the next section, we will learn how to spice up the fight, and let you develop your own script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 6: Customization==&lt;br /&gt;
&lt;br /&gt;
Here, you will be able to split off and customize your script.&lt;br /&gt;
Each subsection will represent a way to customize the above script.&lt;br /&gt;
&lt;br /&gt;
===Weapons and Powerups===&lt;br /&gt;
These are the easiest things to add into a battle.&lt;br /&gt;
&lt;br /&gt;
Weapons can be spawned on the ground or given to characters.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Weapons====&lt;br /&gt;
&lt;br /&gt;
Giving characters weapons is very easy. Simply use the command &amp;lt;tt&amp;gt;chr_giveweapon&amp;lt;/tt&amp;gt; to give a character a weapon.&lt;br /&gt;
&lt;br /&gt;
[[OSL:Inventory|Here]] are the list of the weapon codes. For the purpose of this example, we will use &amp;lt;tt&amp;gt;w3_phr&amp;lt;/tt&amp;gt;, the plasma rifle. This command will give the two strikers plasma rifles.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_giveweapon Top_Striker w3_phr&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_giveweapon Top_Comguy w3_phr&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute.&lt;br /&gt;
&lt;br /&gt;
====Spawning Weapons on the ground====&lt;br /&gt;
&lt;br /&gt;
Spawning weapons is simple. Use the command &amp;lt;tt&amp;gt;weapon_spawn&amp;lt;/tt&amp;gt; to spawn a weapon.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 plasma rifles, one under each striker&#039;s feet. AI will automatically pick up weapons with ammo or empty weapons they have ammo for.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Powerups====&lt;br /&gt;
&lt;br /&gt;
Giving characters powerups is much like giving characters weapons. Use the command &amp;lt;tt&amp;gt;chr_givepowerup&amp;lt;/tt&amp;gt; to give a character a powerup.&lt;br /&gt;
&lt;br /&gt;
The powerups you can give a character are :&lt;br /&gt;
* shield : Gives a force shield&lt;br /&gt;
* invis : Gives a phase cloak&lt;br /&gt;
* ammo : Gives a ballistic ammo&lt;br /&gt;
* cell : Gives an energy cell.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this example, we will give the characters invisibilities.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_givepowerup Top_Striker invis -1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_givepowerup Top_Comguy invis -1&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will make the strikers permanently invisible. To make then visible after 30 seconds, erase &amp;quot;-1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Spawning Powerups on the Ground====&lt;br /&gt;
&lt;br /&gt;
Spawning powerups are simple. Use the command &amp;lt;tt&amp;gt;powerup_spawn&amp;lt;/tt&amp;gt; to spawn a powerup.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;powerup_spawn invis 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;powerup_spawn invis 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 phase cloaks beneath the striker&#039;s feet. Since AI  will not pick up powerups, this is for you only.&lt;br /&gt;
&lt;br /&gt;
===Extra Characters===&lt;br /&gt;
&lt;br /&gt;
Addubg extra characters to the script is easy. Just follow the steps for adding the first AI and follow the procedure, look for AI names [[OSL: AI names|Here]]. &lt;br /&gt;
&lt;br /&gt;
====Adding Enemies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. Most of the time, adding enemies simply involve spawning and teleporting the AI. As long as the team in &amp;quot;Syndicate&amp;quot;, it will be an enemy. If you want to add an emeny from an allied team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;Syndicate&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam griffin Syndicate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding Allies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. As long as the team is &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot;, it will be an ally for you in this script. If you want to add an ally from the enemy team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam WH_Striker_D TCTF&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overpower===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;tt&amp;gt;chr_set_health&amp;lt;/tt&amp;gt; command to set a character&#039;s health. Note that each character has a base health that may not be the same. For example, konoko&#039;s base health is 200, while a brown striker&#039;s is only 50. Keep this in mind when setting character&#039;s health. Setting it over their base health will send them into overpower - like using a hypo at full health. The health will drain at 1 every second even for AI. This example sets konoko&#039;s health to 400 - overpower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_set_health 0 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This following example shows everything listed above added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn hypo 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7007&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Striker w7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Comguy w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker ammo 15&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy cell 30&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
weapon_spawn w2_sap 7045&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn ammo 7008&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn OutroTCTF01&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport OutroTCTF01 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn WH_Thug_A&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam WH_Thug_A TCTF&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport WH_Thug_A 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn griffin&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam griffin Syndicate&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport griffin 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_set_health griffin 3900&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 7: Delay ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for some time before executing a command, use &amp;lt;tt&amp;gt;sleep&amp;lt;/tt&amp;gt;. To wait for approx 5 seconds before spawning an extra drone, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;sleep 300&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To wait for a striker to die and then spawn some drones, go like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_wait_health Top_Striker 0&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn dum_train_block&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport dum_train_block 7010&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                              - Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/power&amp;diff=1818</id>
		<title>Oni (folder)/GameDataFolder/IGMD/power</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Oni_(folder)/GameDataFolder/IGMD/power&amp;diff=1818"/>
		<updated>2005-11-18T03:19:04Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Available mods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Level logic for Chapter 7:A FRIEND IN NEED==&lt;br /&gt;
aka &#039;&#039;&#039;Atmospheric Conversion Center (exterior)&#039;&#039;&#039;&lt;br /&gt;
===Associated binaries===&lt;br /&gt;
*level9_Final.dat&lt;br /&gt;
*level9_Final.raw&lt;br /&gt;
===Original contents===&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/power/particle_scripts.bsl particle_scripts.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/power/power_cutscene.bsl power_cutscene.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/power/power_main.bsl power_main.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/power/power_objectives.bsl power_objectives.bsl]&lt;br /&gt;
*[http://geyser.oni2.net/OSL/IGMD/power/power_spawn.bsl power_spawn.bsl]&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Overcommented&amp;quot; version (not online yet)===&lt;br /&gt;
*particle_scripts.bsl&lt;br /&gt;
*power_cutscene.bsl&lt;br /&gt;
*power_main.bsl&lt;br /&gt;
*power_objectives.bsl&lt;br /&gt;
*power_spawn.bsl&lt;br /&gt;
===Rewritten version (not online yet)===&lt;br /&gt;
*different filenames...&lt;br /&gt;
&lt;br /&gt;
==Available mods==&lt;br /&gt;
&lt;br /&gt;
[http://your_mom.oni2.net/Downloads/My%20Other%20Scripts/Power%20New%20Ending.zip Save Point Six]&lt;br /&gt;
&lt;br /&gt;
==Related issues==&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Inventory_management&amp;diff=423</id>
		<title>BSL:Inventory management</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Inventory_management&amp;diff=423"/>
		<updated>2005-11-17T03:07:20Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Weapon Codes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Weapon Codes ==&lt;br /&gt;
&lt;br /&gt;
Campbell Equalizer - w1_tap&amp;lt;br&amp;gt;&lt;br /&gt;
SMG Black Adder - w2_sap&amp;lt;br&amp;gt;&lt;br /&gt;
Plasma Rifle - w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
Phase Stream Projector - w4_psm&amp;lt;br&amp;gt;&lt;br /&gt;
Superball Gun - w5_sbg&amp;lt;br&amp;gt;&lt;br /&gt;
Van De Graff Pistol - w6_vdg&amp;lt;br&amp;gt;&lt;br /&gt;
Scram Cannon - v7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
Mercury Bow - w8_mbo&amp;lt;br&amp;gt;&lt;br /&gt;
Screaming Cannon - w9_scr&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mukade&#039;s Fireworks Ring - w10_sni&amp;lt;br&amp;gt;&lt;br /&gt;
Wave Motion Cannon - w11_ba1&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other Unused Weapons&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
w0_sec&amp;lt;br&amp;gt;&lt;br /&gt;
w12_ba2&amp;lt;br&amp;gt;&lt;br /&gt;
w13_muro&amp;lt;br&amp;gt;&lt;br /&gt;
w14_muro&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Inventory_management&amp;diff=378</id>
		<title>BSL:Inventory management</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Inventory_management&amp;diff=378"/>
		<updated>2005-11-17T03:06:52Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Weapon Codes ==&lt;br /&gt;
&lt;br /&gt;
TCTF Autopistol - w1_tap&amp;lt;br&amp;gt;&lt;br /&gt;
SMG Black Adder - w2_sap&amp;lt;br&amp;gt;&lt;br /&gt;
Plasma Rifle - w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
Phase Stream Projector - w4_psm&amp;lt;br&amp;gt;&lt;br /&gt;
Superball Gun - w5_sbg&amp;lt;br&amp;gt;&lt;br /&gt;
Van De Graff Pistol - w6_vdg&amp;lt;br&amp;gt;&lt;br /&gt;
Scram Cannon - v7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
Mercury Bow - w8_mbo&amp;lt;br&amp;gt;&lt;br /&gt;
Screaming Cannon - w9_scr&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Mukade&#039;s Fireworks Ring - w10_sni&amp;lt;br&amp;gt;&lt;br /&gt;
Wave Motion Cannon - w11_ba1&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other Unused Weapons&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
w0_sec&amp;lt;br&amp;gt;&lt;br /&gt;
w12_ba2&amp;lt;br&amp;gt;&lt;br /&gt;
w13_muro&amp;lt;br&amp;gt;&lt;br /&gt;
w14_muro&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=427</id>
		<title>BSL:Tutorial/Scratch</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=BSL:Tutorial/Scratch&amp;diff=427"/>
		<updated>2005-11-17T01:52:00Z</updated>

		<summary type="html">&lt;p&gt;Your Mom: /* Overpower */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a short tutorial on how to get started on simple scripts for those who have had no experience with scripting before.&lt;br /&gt;
It will teach you, step by step, how to write a simple script. By the end of this tutorial, you will be able to move on to more advanced scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 1 : Knowing your formats ==&lt;br /&gt;
&lt;br /&gt;
The game will accept 2 types of syntax for scripts, and they are based on different styles of writing. Choose the one that suits you best.&lt;br /&gt;
&lt;br /&gt;
The types are :&lt;br /&gt;
&lt;br /&gt;
Shell-Style:&lt;br /&gt;
This is compiled much like some System-Shells. It is written in a &amp;quot;one-function-call-a-line&amp;quot; format, and is the easiest to begin with if you have had no coding experience, as the code is neatly displayed line after line. The downside of this it, that once you get into more complex scripts or scripts with many function calls, the file becomes very hard to read and very large.&lt;br /&gt;
&lt;br /&gt;
Example: [[Shell-Style]]&lt;br /&gt;
&lt;br /&gt;
C-Style:&lt;br /&gt;
This is compiled much like the popular coding style C. The syntax can be placed into multiple-function lines and functions are divided by a &#039;&#039;&#039;;&#039;&#039;&#039; . In advanced scripts, this style will allow you to condense your script and the parts will be easier to read/debug. It also allows you to utilize some of the more advanced features easily. The problem with this is, that starting off, it is harder to write if you have had no previous experience with coding.&lt;br /&gt;
&lt;br /&gt;
Example: [[C-Style]]&lt;br /&gt;
&lt;br /&gt;
For the purpose of this article, we will use Shell-Style syntax for simplicity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 2: Starting Off ==&lt;br /&gt;
&lt;br /&gt;
Now, I suggest reading the original script files to get a basic idea for how scripts are laid out. This will allow us to jump-start a bit.&lt;br /&gt;
&lt;br /&gt;
Open up your IMGD and look for the following folder: EnvWarehouse.&lt;br /&gt;
Open it up, and we&#039;ll take a look at how it it laid out. There should be several files in here. Open using NOTEPAD, the one titled &#039;&#039;&#039;warehouse_main.bsl&#039;&#039;&#039;. It should look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
    env_show 2010 0&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_blue=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_red=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_green=.15&amp;lt;br&amp;gt;&lt;br /&gt;
    gl_fog_start=.99&amp;lt;br&amp;gt;&lt;br /&gt;
    gs_farclipplane_set 5000&amp;lt;br&amp;gt;&lt;br /&gt;
    obj_create 20 20&amp;lt;br&amp;gt;&lt;br /&gt;
    level_start&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example of a &#039;&#039;&#039;main&#039;&#039;&#039; file. It contains the information of how the level starts.&lt;br /&gt;
&lt;br /&gt;
Ignore the contents of the script for now, and notice that the contents of the function &amp;lt;tt&amp;gt;main&amp;lt;/tt&amp;gt; are enclosed by a set of brackets (&#039;&#039;&#039;{&#039;&#039;&#039; and &#039;&#039;&#039;}&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
All functions must be enclosed in this set of brackets or it will not be executed.&lt;br /&gt;
&lt;br /&gt;
Close the file, and rename the folder &amp;quot;EnvWarehouse&amp;quot; &amp;quot;EnvWarehouse_original&amp;quot;. Then, create a folder called &amp;quot;EnvWarehouse&amp;quot; and create a script file inside and name it &amp;quot;Tutorial&amp;quot;. We will be using this file to show various examples of scripts and finally, write a small script of your own.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 3: Basic Commands ==&lt;br /&gt;
&lt;br /&gt;
This is just a small section explaining the commands that will be used in this tutorial. For a complete list of commands, see [http://www.fh-eberswalde.de/user/dkriesch/onistuff/commands.htm Ssg&#039;s Site] for more information.&lt;br /&gt;
&lt;br /&gt;
ai2_spawn (name) - creates and starts an AI from a character object&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport (name) (flag) - teleports a character to a flag&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup (name) (powerup) (amount) - gives a character a powerup&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 4: First Script ==&lt;br /&gt;
&lt;br /&gt;
This section will teach you how to write a very basic script (fighting script). It will start you off in the Final Training Room, where you practiced firing weapons in the original game. With this script, the room will appear very empty.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s open up the &amp;quot;Tutorial.bsl&amp;quot; file and start writing the script.&lt;br /&gt;
&lt;br /&gt;
First, declare it the &amp;quot;main&amp;quot; portion of the script by typing &amp;quot;&amp;lt;tt&amp;gt;func void main(void)&amp;lt;/tt&amp;gt; at the very beginning of the file. This tells the game which function it is. The &amp;quot;main&amp;quot; function is the function that the game looks at first to determine what is to be executed.&lt;br /&gt;
&lt;br /&gt;
Below that line, type &#039;&#039;&#039;{&#039;&#039;&#039;. This tells the game that the function has started.&lt;br /&gt;
&lt;br /&gt;
Add a space, and then type &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;. This function teleports Konoko (her id is always 0) to the flag 7010. It is located in the final training room.&lt;br /&gt;
&lt;br /&gt;
Finish the function &amp;quot;main&amp;quot; by typing &#039;&#039;&#039;}&#039;&#039;&#039; on the next line.&lt;br /&gt;
&lt;br /&gt;
It should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Save the file, load up Oni, and click &amp;quot;New Game&amp;quot;. You should be standing in the center of the final combat training room.&lt;br /&gt;
&lt;br /&gt;
You are now on your way!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 5: Adding NPCs (AI) ==&lt;br /&gt;
&lt;br /&gt;
Before we begin, notice that there are two types of AI. AI created from character objects, and AI created from memory. AI created from character objects are created by the function call &amp;lt;tt&amp;gt;ai2_spawn (name)&amp;lt;/tt&amp;gt;, where (name) is the name of the AI. AI created from memory are created by the function call &amp;lt;tt&amp;gt;chr_create (ai_number) start,&amp;lt;/tt&amp;gt;. These AI do not have combat logic, and thus will not attack you physically but can still use weapons.&lt;br /&gt;
&lt;br /&gt;
Now, we are going to add 2 enemy AI to our script that we wrote in the last section. Open it up, and lets add some enemies for Konoko to fight.&lt;br /&gt;
&lt;br /&gt;
To recap, it should look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the function call &amp;lt;tt&amp;gt;chr_teleport 0 7010&amp;lt;/tt&amp;gt;, add the following 2 commands on separate lines: &amp;lt;tt&amp;gt;ai2_spawn Top_Striker&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ai2_spawn Top_Comguy&amp;lt;/tt&amp;gt;. These two commands tell the game to create 2 characters: Top_Striker, and Top_Comguy.&lt;br /&gt;
&lt;br /&gt;
Since that these characters do not spawn in the room, they must be teleported there. Using the &amp;lt;tt&amp;gt;chr_teleport&amp;lt;/tt&amp;gt; command used earlier to teleport yourself, modify it to teleport the 2 AI using their names instead of &amp;quot;0&amp;quot;. Teleport them to the flags &amp;quot;7008&amp;quot; and &amp;quot;7009&amp;quot; respectively. Refer to the example above or the list of function calls above to write this in.&lt;br /&gt;
&lt;br /&gt;
It should now look like this :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This script will now teleport you into the final training room and face you off against 2 Strikers.&lt;br /&gt;
&lt;br /&gt;
This fight too easy? In the next section, we will learn how to spice up the fight, and let you develop your own script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Part 6: Customization==&lt;br /&gt;
&lt;br /&gt;
Here, you will be able to split off and customize your script.&lt;br /&gt;
Each subsection will represent a way to customize the above script.&lt;br /&gt;
&lt;br /&gt;
===Weapons and Powerups===&lt;br /&gt;
These are the easiest things to add into a battle.&lt;br /&gt;
&lt;br /&gt;
Weapons can be spawned on the ground or given to characters.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Weapons====&lt;br /&gt;
&lt;br /&gt;
Giving characters weapons is very easy. Simply use the command &amp;lt;tt&amp;gt;chr_giveweapon&amp;lt;/tt&amp;gt; to give a character a weapon.&lt;br /&gt;
&lt;br /&gt;
[[OSL: Weapon Codes|Here]] are the list of the weapon codes. For the purpose of this example, we will use &amp;lt;tt&amp;gt;w3_phr&amp;lt;/tt&amp;gt;, the plasma rifle. This command will give the two strikers plasma rifles.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_giveweapon Top_Striker w3_phr&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_giveweapon Top_Comguy w3_phr&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute.&lt;br /&gt;
&lt;br /&gt;
====Spawning Weapons on the ground====&lt;br /&gt;
&lt;br /&gt;
Spawning weapons is simple. Use the command &amp;lt;tt&amp;gt;weapon_spawn&amp;lt;/tt&amp;gt; to spawn a weapon.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;weapon_spawn w3_phr 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 plasma rifles, one under each striker&#039;s feet. AI will automatically pick up weapons with ammo or empty weapons they have ammo for.&lt;br /&gt;
&lt;br /&gt;
====Giving Characters Powerups====&lt;br /&gt;
&lt;br /&gt;
Giving characters powerups is much like giving characters weapons. Use the command &amp;lt;tt&amp;gt;chr_givepowerup&amp;lt;/tt&amp;gt; to give a character a powerup.&lt;br /&gt;
&lt;br /&gt;
The powerups you can give a character are :&lt;br /&gt;
* shield : Gives a force shield&lt;br /&gt;
* invis : Gives a phase cloak&lt;br /&gt;
* ammo : Gives a ballistic ammo&lt;br /&gt;
* cell : Gives an energy cell.&lt;br /&gt;
&lt;br /&gt;
For the purpose of this example, we will give the characters invisibilities.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;chr_givepowerup Top_Striker invis -1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;chr_givepowerup Top_Comguy invis -1&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will make the strikers permanently invisible. To make then visible after 30 seconds, erase &amp;quot;-1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Spawning Powerups on the Ground====&lt;br /&gt;
&lt;br /&gt;
Spawning powerups are simple. Use the command &amp;lt;tt&amp;gt;powerup_spawn&amp;lt;/tt&amp;gt; to spawn a powerup.&lt;br /&gt;
&lt;br /&gt;
Add the commands &amp;lt;tt&amp;gt;powerup_spawn invis 7008&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;powerup_spawn invis 7009&amp;lt;/tt&amp;gt; on separate lines beneath what you have already. Be sure to add it &#039;&#039;BEFORE&#039;&#039; the &#039;&#039;&#039;}&#039;&#039;&#039; or it will not execute. This command will spawn 2 phase cloaks beneath the striker&#039;s feet. Since AI  will not pick up powerups, this is for you only.&lt;br /&gt;
&lt;br /&gt;
===Extra Characters===&lt;br /&gt;
&lt;br /&gt;
Addubg extra characters to the script is easy. Just follow the steps for adding the first AI and follow the procedure, look for AI names [[OSL: AI names|Here]]. &lt;br /&gt;
&lt;br /&gt;
====Adding Enemies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. Most of the time, adding enemies simply involve spawning and teleporting the AI. As long as the team in &amp;quot;Syndicate&amp;quot;, it will be an enemy. If you want to add an emeny from an allied team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;Syndicate&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam griffin Syndicate&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Adding Allies====&lt;br /&gt;
&lt;br /&gt;
Look at the chart for what teams the AI are on. As long as the team is &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot;, it will be an ally for you in this script. If you want to add an ally from the enemy team, use the &amp;lt;tt&amp;gt;chr_changeteam&amp;lt;/tt&amp;gt; command to changet their team to &amp;quot;TCTF&amp;quot; or &amp;quot;Konoko&amp;quot; like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_changeteam WH_Striker_D TCTF&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Overpower===&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;tt&amp;gt;chr_set_health&amp;lt;/tt&amp;gt; command to set a character&#039;s health. Note that each character has a base health that may not be the same. For example, konoko&#039;s base health is 200, while a brown striker&#039;s is only 50. Keep this in mind when setting character&#039;s health. Setting it over their base health will send them into overpower - like using a hypo at full health. The health will drain at 1 every second even for AI. This example sets konoko&#039;s health to 400 - overpower.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;chr_set_health 0 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This following example shows everything listed above added.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;func void main(void)&amp;lt;br&amp;gt;&lt;br /&gt;
{&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport 0 7010&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn hypo 7010&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Striker&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn Top_Comguy&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Striker 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport Top_Comguy 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy invis -1&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7007&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn invis 7009&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Striker w7_scc&amp;lt;br&amp;gt;&lt;br /&gt;
chr_giveweapon Top_Comguy w3_phr&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Striker ammo 15&amp;lt;br&amp;gt;&lt;br /&gt;
chr_givepowerup Top_Comguy cell 30&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
weapon_spawn w2_sap 7045&amp;lt;br&amp;gt;&lt;br /&gt;
powerup_spawn ammo 7008&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn OutroTCTF01&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport OutroTCTF01 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ai2_spawn WH_Thug_A&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam WH_Thug_A TCTF&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport WH_Thug_A 7007&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;gt;&lt;br /&gt;
ai2_spawn griffin&amp;lt;br&amp;gt;&lt;br /&gt;
chr_changeteam griffin Syndicate&amp;lt;br&amp;gt;&lt;br /&gt;
chr_teleport griffin 7008&amp;lt;br&amp;gt;&lt;br /&gt;
chr_set_health griffin 3900&amp;lt;br&amp;gt;&lt;br /&gt;
}&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                              - Your_Mom&lt;/div&gt;</summary>
		<author><name>Your Mom</name></author>
	</entry>
</feed>