<?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=Demos+kratos</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=Demos+kratos"/>
	<link rel="alternate" type="text/html" href="https://wiki.oni2.net/Special:Contributions/Demos_kratos"/>
	<updated>2026-04-27T07:53:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Japanese_matrix_on_white.jpg&amp;diff=18653</id>
		<title>File:Japanese matrix on white.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Japanese_matrix_on_white.jpg&amp;diff=18653"/>
		<updated>2011-08-07T20:55:10Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Used as a background in some Oni promo material such as the notepads and the 1999 trailer. [http://carnage.bungie.org/oniforum/oni.forum.pl?read=1199 Translated], at least partially, by an OCF member as:&lt;br /&gt;
&lt;br /&gt;
{{Pullquote|shinrai ni atai suru hito inai (there is no one I can trust)&lt;br /&gt;
&lt;br /&gt;
kiki (this is the Oni kanji repeated twice) ... kurai shorai (dark future)&lt;br /&gt;
&lt;br /&gt;
kako no aru onna (a woman with a past)&lt;br /&gt;
&lt;br /&gt;
furu kontakuto akushon (full contact action)&lt;br /&gt;
&lt;br /&gt;
buramu (blam) korutana (cortana)&lt;br /&gt;
&lt;br /&gt;
warui keikan (bad cop)}}&lt;br /&gt;
&lt;br /&gt;
:I haven&#039;t tried to confirm these readings yet, but they certainly make sense. There&#039;s also some binary numbers, but I can&#039;t derive any meaning from them. There&#039;s one large one that gives me 2892, but the rest are small numbers that mean nothing to me. It seems unlikely that Bungie would have made authentic Japanese writing, and then typed in random digits for the binary numbers, but that&#039;s what it looks like. Perhaps it&#039;s a substitute cipher? Something for someone who has a little free time to look into. --[[User:Iritscen|Iritscen]] 21:23, 7 August 2011 (CEST)&lt;br /&gt;
&lt;br /&gt;
One thing I can say for sure - They don&#039;t know Japanese. Or at least they didn&#039;t when the promo was made.&lt;br /&gt;
First: While being literally correct it is way too complicated for such an easy phrase. I&#039;d say &#039;&#039;shinyou dekiru hito ga nai&#039;&#039;.&lt;br /&gt;
Third: The translation is incorrect but I think Bungie meant exactly what translator said. &#039;&#039;kako no aru onna&#039;&#039; means &amp;quot;a certain woman of the past&amp;quot; when &#039;&#039;a woman with a past&#039;&#039; would be &#039;&#039;kako ga aru onna&#039;&#039; or &#039;&#039;kako wo motsu onna&#039;&#039;.&lt;br /&gt;
Fourth: If you look more closely you will see that there is a phrase &#039;&#039;korutana &#039;&#039;&#039;wa kuru yo&#039;&#039;&#039; &#039;&#039;which means &#039;&#039;Cortana is coming&#039;&#039;.&lt;br /&gt;
Fifth: It is correct, but the word &amp;quot;keikan&amp;quot; is rarely used in Japan. They use &amp;quot;keiji&amp;quot;. I&#039;m just pointing that out.&lt;br /&gt;
--[[User:Demos kratos|demos_kratos]] 22:55, 7 August 2011 (CEST) &lt;br /&gt;
[[Category:Logos, icons and symbols]]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=16598</id>
		<title>User:Demos kratos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=16598"/>
		<updated>2010-06-23T17:55:06Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well, let us pray.. eeeh.. start. ^_^&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Dka2.png]]&lt;br /&gt;
&lt;br /&gt;
Name: Stanislav DEMOS_KRATOS Ponomarev&lt;br /&gt;
&lt;br /&gt;
Date of birth: 23.06.1993&lt;br /&gt;
&lt;br /&gt;
Interests: Japanese language, culture and everything like that, IT, Oni(of course),Oni modding, PASCAL, Delphi and AU3 programming, Karate Kyokushinkai.&lt;br /&gt;
&lt;br /&gt;
Everything about anything else you can ask me directly at [http://oni.bungie.org/community/forum/ Oni Central]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Dka2.png&amp;diff=16597</id>
		<title>File:Dka2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Dka2.png&amp;diff=16597"/>
		<updated>2010-06-23T17:54:49Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=16596</id>
		<title>User:Demos kratos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=16596"/>
		<updated>2010-06-23T17:54:08Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well, let us pray.. eeeh.. start. ^_^&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:http://oni.bungie.org/community/forum/img/avatars/423.png]]&lt;br /&gt;
&lt;br /&gt;
Name: Stanislav DEMOS_KRATOS Ponomarev&lt;br /&gt;
&lt;br /&gt;
Date of birth: 23.06.1993&lt;br /&gt;
&lt;br /&gt;
Interests: Japanese language, culture and everything like that, IT, Oni(of course),Oni modding, PASCAL, Delphi and AU3 programming, Karate Kyokushinkai.&lt;br /&gt;
&lt;br /&gt;
Everything about anything else you can ask me directly at [http://oni.bungie.org/community/forum/ Oni Central]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD_talk:BINA/OBJC/CHAR&amp;diff=16271</id>
		<title>OBD talk:BINA/OBJC/CHAR</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD_talk:BINA/OBJC/CHAR&amp;diff=16271"/>
		<updated>2009-12-11T09:13:10Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talk==&lt;br /&gt;
Ok, I&#039;m going to ask a few dumb questions&lt;br /&gt;
*How are these teams treated: SecurityGuard, Switzerland, Who are there friends and enemies? &lt;br /&gt;
*How is SyndicateAccessory different from Syndicate?&lt;br /&gt;
*Is it possible to add BGI as another team?&lt;br /&gt;
*Can the properties of a team be changed? ie: defining its friends and enemies&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 23:55, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
From what I remember, from testing with KvW:&lt;br /&gt;
&lt;br /&gt;
Team 1:&lt;br /&gt;
SecurityGaurd+TCTF+Konoko&lt;br /&gt;
&lt;br /&gt;
Team 2:&lt;br /&gt;
Syndicate+SyndicateAccessory&lt;br /&gt;
&lt;br /&gt;
Team 3:&lt;br /&gt;
RougeKonoko&lt;br /&gt;
&lt;br /&gt;
Others:&lt;br /&gt;
Neutral, Swiss&lt;br /&gt;
&lt;br /&gt;
All 3 teams will fight against any other teams. I&#039;m not sure on the &amp;quot;Others&amp;quot;, you will have to test them out. As long as you don&#039;t have TCTF vs Syndicate vs Konoko vs BGI (4 way battling!), you should be fine. Even then, you may be able to get the Neutral or Swiss team to fight against the other 3, but I guaruntee nothing. I don&#039;t know any way to add or change teams, short of engine hacking. &lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 04:52, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the pseudocode of the function that decides who is friend/enemey. Friend/Foe have the obvious meaning and PotentialFoe means that the AI will act as a foe only if it is attacked.&lt;br /&gt;
&lt;br /&gt;
  FriendOrFoe AI2rTeam_FriendOrFoe(Team t1, Team t2)&lt;br /&gt;
    if (LastManStanding)&lt;br /&gt;
        return Foe;&lt;br /&gt;
    else if (t1 = t2) or (t1 = Switzerland) or (t2 = Switzerland)&lt;br /&gt;
        return Friend;&lt;br /&gt;
    else if (t1 = Konoko)&lt;br /&gt;
        if (t2 = TCTF)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else if (t1 = Syndicate)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = TCTF)&lt;br /&gt;
        if (t2 = Konoko)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else if (t2 = Syndicate) or (t2 = RogueKonoko)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = Syndicate)&lt;br /&gt;
        if (t2 = SyndicateAccessory)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else&lt;br /&gt;
            return Foe;&lt;br /&gt;
    else if (t1 = Neutral)&lt;br /&gt;
        return PotentialFoe;&lt;br /&gt;
    else if (t1 = SecurityGuard)&lt;br /&gt;
        if (t2 = Syndicate) or (t2 = RogueKonoko)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else &lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = RogueKonoko)&lt;br /&gt;
        if (t2 = Syndicate) or (t2 = TCTF)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = SyndicateAccessory)&lt;br /&gt;
        if (t2 = Syndicate)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
So, the difference between Switzerland and Neutral is that Switzerland will not attack you even if you attack them, but Neutral will retaliate. --[[User:Iritscen|Iritscen]] 15:08, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
O_o I guess the SecurityGaurds aren&#039;t neccessarily aligned with anyone...interesting.&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 16:39, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
So which team should BGI be assigned? [[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
RougeKonoko or Neutral in the beginning, depending on how you want the interactions to be, but for the later levels, I&#039;m not quite sure. It depends on who is in the level and the situation. Maybe SecurityGuard. (Actually, that would probably work)&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:39, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;general information&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BINACJBOCharacter.oni&#039;&#039;&#039; is level specific. (It can be found in edition/GameDataFolder/level&#039;&#039;XX&#039;&#039;_... )&lt;br /&gt;
* See [[XML basic tutorial|HERE]] if you don&#039;t know how to convert an oni file into XML and vice versa.&lt;br /&gt;
* See [[OBD_talk:BINA/OBJC|HERE]] if you are searching for more general information such as how to handle object coordinates.&lt;br /&gt;
* (An alternative is [[OBD:AISA|AISA]], import not tested.)&lt;br /&gt;
* All original characters can be seen [http://ssg.oni2.net/subfold/charas/charas.htm HERE.] (The lists include used ONCC, character&#039;s BSL name, health, team and BSL function.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni Version=&amp;quot;0.9.28.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ObjectCollection&amp;gt;&lt;br /&gt;
        &#039;&#039;&#039;&#039;&#039;[...]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;/ObjectCollection&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[...]&#039;&#039;&#039;&#039;&#039; means at least one character. Paste all character data into there (this includes &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;Object ...&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;/Object&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; tag).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
        &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;Object Id=&amp;quot;10067&amp;quot; Type=&amp;quot;CHAR&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;0&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;347.216736 756 202.2008&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;0 114.94648 0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;/Header&amp;gt;&lt;br /&gt;
            &amp;lt;OSD&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;IsPlayer&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Class&amp;gt;barabus&amp;lt;/Class&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;barabus&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Weapon&amp;gt;&amp;lt;/Weapon&amp;gt;&lt;br /&gt;
                &amp;lt;Scripts&amp;gt;&lt;br /&gt;
                    &amp;lt;Spawn&amp;gt;&amp;lt;/Spawn&amp;gt;&lt;br /&gt;
                    &amp;lt;Die&amp;gt;&amp;lt;/Die&amp;gt;&lt;br /&gt;
                    &amp;lt;Combat&amp;gt;&amp;lt;/Combat&amp;gt;&lt;br /&gt;
                    &amp;lt;Alarm&amp;gt;&amp;lt;/Alarm&amp;gt;&lt;br /&gt;
                    &amp;lt;Hurt&amp;gt;&amp;lt;/Hurt&amp;gt;&lt;br /&gt;
                    &amp;lt;Defeated&amp;gt;&amp;lt;/Defeated&amp;gt;&lt;br /&gt;
                    &amp;lt;OutOfAmmo&amp;gt;&amp;lt;/OutOfAmmo&amp;gt;&lt;br /&gt;
                    &amp;lt;NoPath&amp;gt;&amp;lt;/NoPath&amp;gt;&lt;br /&gt;
                &amp;lt;/Scripts&amp;gt;&lt;br /&gt;
                &amp;lt;AdditionalHealth&amp;gt;0&amp;lt;/AdditionalHealth&amp;gt;&lt;br /&gt;
                &amp;lt;Job&amp;gt;&lt;br /&gt;
                    &amp;lt;Type&amp;gt;Idle&amp;lt;/Type&amp;gt;&lt;br /&gt;
                    &amp;lt;PatrolPathId&amp;gt;0&amp;lt;/PatrolPathId&amp;gt;&lt;br /&gt;
                &amp;lt;/Job&amp;gt;&lt;br /&gt;
                &amp;lt;Behaviors&amp;gt;&lt;br /&gt;
                    &amp;lt;CombatId&amp;gt;9&amp;lt;/CombatId&amp;gt;&lt;br /&gt;
                    &amp;lt;MeleeId&amp;gt;25&amp;lt;/MeleeId&amp;gt;&lt;br /&gt;
                    &amp;lt;NeutralId&amp;gt;0&amp;lt;/NeutralId&amp;gt;&lt;br /&gt;
                &amp;lt;/Behaviors&amp;gt;&lt;br /&gt;
                &amp;lt;Inventory&amp;gt;&lt;br /&gt;
                    &amp;lt;Ammo&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Ammo&amp;gt;&lt;br /&gt;
                    &amp;lt;EnergyCell&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/EnergyCell&amp;gt;&lt;br /&gt;
                    &amp;lt;Hypo&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Hypo&amp;gt;&lt;br /&gt;
                    &amp;lt;Shield&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Shield&amp;gt;&lt;br /&gt;
                    &amp;lt;Invisibility&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Invisibility&amp;gt;&lt;br /&gt;
                &amp;lt;/Inventory&amp;gt;&lt;br /&gt;
                &amp;lt;Team&amp;gt;Syndicate&amp;lt;/Team&amp;gt;&lt;br /&gt;
                &amp;lt;InitialAmmo&amp;gt;100&amp;lt;/InitialAmmo&amp;gt;&lt;br /&gt;
                &amp;lt;Alert&amp;gt;&lt;br /&gt;
                    &amp;lt;Initial&amp;gt;Combat&amp;lt;/Initial&amp;gt;&lt;br /&gt;
                    &amp;lt;Minimal&amp;gt;Lull&amp;lt;/Minimal&amp;gt;&lt;br /&gt;
                    &amp;lt;JobStarting&amp;gt;Low&amp;lt;/JobStarting&amp;gt;&lt;br /&gt;
                    &amp;lt;Investigating&amp;gt;Medium&amp;lt;/Investigating&amp;gt;&lt;br /&gt;
                &amp;lt;/Alert&amp;gt;&lt;br /&gt;
                &amp;lt;AlarmGroups&amp;gt;0&amp;lt;/AlarmGroups&amp;gt;&lt;br /&gt;
                &amp;lt;Pursuit&amp;gt;&lt;br /&gt;
                    &amp;lt;nowiki&amp;gt;&amp;lt;Strong&amp;gt;4&amp;lt;/Strong&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
                    &amp;lt;Weak&amp;gt;1&amp;lt;/Weak&amp;gt;&lt;br /&gt;
                    &amp;lt;StrongSeen&amp;gt;4&amp;lt;/StrongSeen&amp;gt;&lt;br /&gt;
                    &amp;lt;WeakSeen&amp;gt;4&amp;lt;/WeakSeen&amp;gt;&lt;br /&gt;
                    &amp;lt;Lost&amp;gt;0&amp;lt;/Lost&amp;gt;&lt;br /&gt;
                &amp;lt;/Pursuit&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;/Object&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can add another character data block beneath an &amp;lt;/Object&amp;gt; tag. (Well, add as much characters as you want.) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
!XML tag&lt;br /&gt;
!description&lt;br /&gt;
!value type / flags plus description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Oni Version=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| If onisplit exe is newer then extracted file then file cannot be converted back to *.oni&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;ObjectCollection&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Object Id=&amp;quot;3860&amp;quot; Type=&amp;quot;CHAR&amp;quot;&amp;gt;&lt;br /&gt;
|Id doesn&#039;t matter and CHAR shouldn&#039;t become changed so leave them as they are.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Header&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Flags&amp;gt;&lt;br /&gt;
|unknown; usually 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Position&amp;gt;&lt;br /&gt;
|character is spawned at this xyz-position&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Rotation&amp;gt;&lt;br /&gt;
|character is spawned with this rotation&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;OSD&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top|determines some special properties&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!--: &amp;quot;IsPlayer&amp;quot; makes first character (in this file) into the character which is controlled by the player. (Usually not used with other flags.)&lt;br /&gt;
:: Multiple characters with &amp;quot;IsPlayer&amp;quot; makes it possible to change the player controlled character by using BSL commands, for example: &amp;quot;chr_delete(Muro);ai2_spawn(barabus)&amp;quot;&lt;br /&gt;
::: A delay between spawning the new and deleting the old player character can kick off a camera glitch.&lt;br /&gt;
:::: However, this became outdate when Mac engine was patched to be able using chr_set_class.--&amp;gt;&lt;br /&gt;
: IsPlayer (if you have two of them then delete one and spawn the other one at same time)&lt;br /&gt;
: RandomCostume (flag belongs to [[OBD_talk:ONCV|ONCV]])&lt;br /&gt;
: NotInitiallyPresent&lt;br /&gt;
: NonCombatant&lt;br /&gt;
: CanSpawnMultiple (needs WasSpawned)&lt;br /&gt;
: WasSpwaned (...)&lt;br /&gt;
: Unkillable (character won&#039;t loss more life points if it reaches 1, same as BSL command &amp;quot;chr_unkillable&amp;quot;)&lt;br /&gt;
: InfiniteAmmo (Raiden: &amp;quot;You got enough ?&amp;quot; Snake points to his head. &amp;quot;Infinite ammo...&amp;quot;)&lt;br /&gt;
: Omniscient (can&#039;t be knocked down)&lt;br /&gt;
: HasLSI (this character drops an level specific item like truck keys in [[CHAPTER_14_._DAWN_OF_THE_CHRYSALIS|level 19]])&lt;br /&gt;
: Boss (used for boss mode fights. makes the AI ignore this character unless there is nobody else around)&lt;br /&gt;
: UpgradeDifficulty (spawns a stronger enemy if you play on medium or hard)&lt;br /&gt;
: NoAutoDrop (doesn&#039;t drop &amp;quot;used&amp;quot; shield, &amp;quot;used&amp;quot; invisibility and LSI when killed)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Class&amp;gt;&lt;br /&gt;
|ONCC name without file pre- and suffix. Interesting for BSL command &amp;quot;chr_set_class&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Name&amp;gt;&lt;br /&gt;
|used by various BSL commands&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Weapon&amp;gt;&lt;br /&gt;
|character is spawned with weapon specified in here; weapon looked up by name (makes also custom weapons available)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Scripts&amp;gt;&lt;br /&gt;
|valign=top|independent from BSL main function&lt;br /&gt;
|&lt;br /&gt;
: &amp;lt;Spawn&amp;gt; (called when character is spawned)&lt;br /&gt;
: &amp;lt;Die&amp;gt; (called when character dies (health reaches 0); can work multiple times)&lt;br /&gt;
: &amp;lt;Combat&amp;gt; (called when character notices an enemy; works only once)&lt;br /&gt;
: &amp;lt;Alarm&amp;gt; (called when character is alarmed)&lt;br /&gt;
: &amp;lt;Hurt&amp;gt; (called when character is hurt for the first time; works only once)&lt;br /&gt;
: &amp;lt;Defeated&amp;gt; (called when character is &amp;quot;defeated&amp;quot; (health reaches 1); works only once)&lt;br /&gt;
: &amp;lt;OutOfAmmo&amp;gt; (called when character runs out of ammo (reloads a weapon with the last clip/cell); works only once, and the character must have the ammo at spawn-time)&lt;br /&gt;
: &amp;lt;font style=&amp;quot;color:#777&amp;quot;&amp;gt;&amp;lt;NoPath&amp;gt; (should be called when a character has trouble pathfinding, but isn&#039;t&amp;lt;/font&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;AdditionalHealth&amp;gt;&lt;br /&gt;
|&#039;&#039;main&#039;&#039; health is stored in ONCC, &amp;quot;additional health&amp;quot; will be added to that &#039;&#039;main&#039;&#039; health; also negative value possible here (which would then reduce main health)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Job&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Type&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: None&lt;br /&gt;
: Idle&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#777&amp;quot;&amp;gt;Guard (never used in Oni)&amp;lt;/font&amp;gt;&lt;br /&gt;
: Patrol&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#777&amp;quot;&amp;gt;Teambattle (never used in Oni)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Behaviors&amp;gt;&lt;br /&gt;
|specified by IDs linking to melee, combat and neutral profile collection file&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|[[OBD_talk:BINA/OBJC/CMBT|&amp;lt;CombatId&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0 (Stand_and_Fire)&lt;br /&gt;
: 1 (Murder)&lt;br /&gt;
: 2 (Shoot_And_Fight)&lt;br /&gt;
: 3 (Take_my_Big_Black_Stuff)&lt;br /&gt;
: 4 (Assault)&lt;br /&gt;
: 5 (Civilian)&lt;br /&gt;
: 6 (Pursuit)&lt;br /&gt;
: 7 (Group_battle)&lt;br /&gt;
: 8 (Watchman)&lt;br /&gt;
: 9 (Barabbas_TCTF)&lt;br /&gt;
: 10 (COMGUY)&lt;br /&gt;
: 11 (SuperNinja)&lt;br /&gt;
: 12 (Griffin)&lt;br /&gt;
: 13 (Mutant_Muro)&lt;br /&gt;
: 14 (Alarm Guard)&lt;br /&gt;
: 15 (Non-Combatant)&lt;br /&gt;
: 16 (Griffin_Final)&lt;br /&gt;
: 207 (Sniper)&lt;br /&gt;
: 208 (Sniper For Joe)&lt;br /&gt;
: 17 (Average_striker; new profile for AE)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;MeleeId&amp;gt;&lt;br /&gt;
|[[OBD:BINA/OBJC/MELE#All_profiles_sorted_by_ID|here are all melee IDs sorted by ID]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;NeutralId&amp;gt;&lt;br /&gt;
|[[OBD:BINA/OBJC/NEUT|...]] (no overview so far)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Inventory&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Ammo&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt; (characters can uses such items by given amount; AI cannot use hypos)&lt;br /&gt;
:&amp;lt;Drop&amp;gt; (AI characters drops such items when defeated)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;EnergyCell&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Hypo&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Shield&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Invisibility&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Team&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: Konoko&lt;br /&gt;
: TCTF&lt;br /&gt;
: Syndicate&lt;br /&gt;
: Neutral&lt;br /&gt;
: SecurityGuard&lt;br /&gt;
: RogueKonoko&lt;br /&gt;
: Switzlerland (is melee-immune)&lt;br /&gt;
: SyndicateAccessory&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;InitialAmmo&amp;gt;&lt;br /&gt;
|ammo in weapon, percent value: 0 - 100, &#039;&#039;overload&#039;&#039; not tested&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Alert&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Initial&amp;gt;&lt;br /&gt;
|valign=top|initial alert level&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Minimal&amp;gt;&lt;br /&gt;
|valign=top|minimal alert level&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;JobStarting&amp;gt;&lt;br /&gt;
|valign=top|alert level when starting a job&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Investigating&amp;gt;&lt;br /&gt;
|valign=top|alert level when investigating&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;AlarmGroups&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
It&#039;s a bitset32 converted to int32. If Ns bit = TRUE then a bot gets highest alert level by a console command ai2_tripalarm(N)&lt;br /&gt;
|&lt;br /&gt;
: &amp;lt;AlarmGroups&amp;gt;VAR&amp;lt;/AlarmGroups&amp;gt;&lt;br /&gt;
: VAR = 2^N1 + 2^N2 + 2^N3 etc.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Pursuit&amp;gt;&lt;br /&gt;
|[[CHAR#Less_basic_setup_-_Inventory.2C_team.2C_jobs.2C_alert.2Fpursuit|HERE]] are information about &amp;quot;Alert&amp;quot; and &amp;quot;Pursuit&amp;quot;.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;nowiki&amp;gt;&amp;lt;Strong&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Weak&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;StrongSeen&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;WeakSeen&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Lost&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD_talk:BINA/OBJC/CHAR&amp;diff=16270</id>
		<title>OBD talk:BINA/OBJC/CHAR</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD_talk:BINA/OBJC/CHAR&amp;diff=16270"/>
		<updated>2009-12-11T09:12:25Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Talk==&lt;br /&gt;
Ok, I&#039;m going to ask a few dumb questions&lt;br /&gt;
*How are these teams treated: SecurityGuard, Switzerland, Who are there friends and enemies? &lt;br /&gt;
*How is SyndicateAccessory different from Syndicate?&lt;br /&gt;
*Is it possible to add BGI as another team?&lt;br /&gt;
*Can the properties of a team be changed? ie: defining its friends and enemies&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 23:55, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
From what I remember, from testing with KvW:&lt;br /&gt;
&lt;br /&gt;
Team 1:&lt;br /&gt;
SecurityGaurd+TCTF+Konoko&lt;br /&gt;
&lt;br /&gt;
Team 2:&lt;br /&gt;
Syndicate+SyndicateAccessory&lt;br /&gt;
&lt;br /&gt;
Team 3:&lt;br /&gt;
RougeKonoko&lt;br /&gt;
&lt;br /&gt;
Others:&lt;br /&gt;
Neutral, Swiss&lt;br /&gt;
&lt;br /&gt;
All 3 teams will fight against any other teams. I&#039;m not sure on the &amp;quot;Others&amp;quot;, you will have to test them out. As long as you don&#039;t have TCTF vs Syndicate vs Konoko vs BGI (4 way battling!), you should be fine. Even then, you may be able to get the Neutral or Swiss team to fight against the other 3, but I guaruntee nothing. I don&#039;t know any way to add or change teams, short of engine hacking. &lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 04:52, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Here&#039;s the pseudocode of the function that decides who is friend/enemey. Friend/Foe have the obvious meaning and PotentialFoe means that the AI will act as a foe only if it is attacked.&lt;br /&gt;
&lt;br /&gt;
  FriendOrFoe AI2rTeam_FriendOrFoe(Team t1, Team t2)&lt;br /&gt;
    if (LastManStanding)&lt;br /&gt;
        return Foe;&lt;br /&gt;
    else if (t1 = t2) or (t1 = Switzerland) or (t2 = Switzerland)&lt;br /&gt;
        return Friend;&lt;br /&gt;
    else if (t1 = Konoko)&lt;br /&gt;
        if (t2 = TCTF)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else if (t1 = Syndicate)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = TCTF)&lt;br /&gt;
        if (t2 = Konoko)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else if (t2 = Syndicate) or (t2 = RogueKonoko)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = Syndicate)&lt;br /&gt;
        if (t2 = SyndicateAccessory)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else&lt;br /&gt;
            return Foe;&lt;br /&gt;
    else if (t1 = Neutral)&lt;br /&gt;
        return PotentialFoe;&lt;br /&gt;
    else if (t1 = SecurityGuard)&lt;br /&gt;
        if (t2 = Syndicate) or (t2 = RogueKonoko)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else &lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = RogueKonoko)&lt;br /&gt;
        if (t2 = Syndicate) or (t2 = TCTF)&lt;br /&gt;
            return Foe;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
    else if (t1 = SyndicateAccessory)&lt;br /&gt;
        if (t2 = Syndicate)&lt;br /&gt;
            return Friend;&lt;br /&gt;
        else&lt;br /&gt;
            return PotentialFoe;&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
So, the difference between Switzerland and Neutral is that Switzerland will not attack you even if you attack them, but Neutral will retaliate. --[[User:Iritscen|Iritscen]] 15:08, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
O_o I guess the SecurityGaurds aren&#039;t neccessarily aligned with anyone...interesting.&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 16:39, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
So which team should BGI be assigned? [[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
RougeKonoko or Neutral in the beginning, depending on how you want the interactions to be, but for the later levels, I&#039;m not quite sure. It depends on who is in the level and the situation. Maybe SecurityGuard. (Actually, that would probably work)&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:39, 31 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;general information&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BINACJBOCharacter.oni&#039;&#039;&#039; is level specific. (It can be found in edition/GameDataFolder/level&#039;&#039;XX&#039;&#039;_... )&lt;br /&gt;
* See [[XML basic tutorial|HERE]] if you don&#039;t know how to convert an oni file into XML and vice versa.&lt;br /&gt;
* See [[OBD_talk:BINA/OBJC|HERE]] if you are searching for more general information such as how to handle object coordinates.&lt;br /&gt;
* (An alternative is [[OBD:AISA|AISA]], import not tested.)&lt;br /&gt;
* All original characters can be seen [http://ssg.oni2.net/subfold/charas/charas.htm HERE.] (The lists include used ONCC, character&#039;s BSL name, health, team and BSL function.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XML structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;Oni Version=&amp;quot;0.9.28.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ObjectCollection&amp;gt;&lt;br /&gt;
        &#039;&#039;&#039;&#039;&#039;[...]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
    &amp;lt;/ObjectCollection&amp;gt;&lt;br /&gt;
 &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[...]&#039;&#039;&#039;&#039;&#039; means at least one character. Paste all character data into there (this includes &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;Object ...&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;/Object&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039; tag).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;example&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
        &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;Object Id=&amp;quot;10067&amp;quot; Type=&amp;quot;CHAR&amp;quot;&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
            &amp;lt;Header&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;0&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Position&amp;gt;347.216736 756 202.2008&amp;lt;/Position&amp;gt;&lt;br /&gt;
                &amp;lt;Rotation&amp;gt;0 114.94648 0&amp;lt;/Rotation&amp;gt;&lt;br /&gt;
            &amp;lt;/Header&amp;gt;&lt;br /&gt;
            &amp;lt;OSD&amp;gt;&lt;br /&gt;
                &amp;lt;Flags&amp;gt;IsPlayer&amp;lt;/Flags&amp;gt;&lt;br /&gt;
                &amp;lt;Class&amp;gt;barabus&amp;lt;/Class&amp;gt;&lt;br /&gt;
                &amp;lt;Name&amp;gt;barabus&amp;lt;/Name&amp;gt;&lt;br /&gt;
                &amp;lt;Weapon&amp;gt;&amp;lt;/Weapon&amp;gt;&lt;br /&gt;
                &amp;lt;Scripts&amp;gt;&lt;br /&gt;
                    &amp;lt;Spawn&amp;gt;&amp;lt;/Spawn&amp;gt;&lt;br /&gt;
                    &amp;lt;Die&amp;gt;&amp;lt;/Die&amp;gt;&lt;br /&gt;
                    &amp;lt;Combat&amp;gt;&amp;lt;/Combat&amp;gt;&lt;br /&gt;
                    &amp;lt;Alarm&amp;gt;&amp;lt;/Alarm&amp;gt;&lt;br /&gt;
                    &amp;lt;Hurt&amp;gt;&amp;lt;/Hurt&amp;gt;&lt;br /&gt;
                    &amp;lt;Defeated&amp;gt;&amp;lt;/Defeated&amp;gt;&lt;br /&gt;
                    &amp;lt;OutOfAmmo&amp;gt;&amp;lt;/OutOfAmmo&amp;gt;&lt;br /&gt;
                    &amp;lt;NoPath&amp;gt;&amp;lt;/NoPath&amp;gt;&lt;br /&gt;
                &amp;lt;/Scripts&amp;gt;&lt;br /&gt;
                &amp;lt;AdditionalHealth&amp;gt;0&amp;lt;/AdditionalHealth&amp;gt;&lt;br /&gt;
                &amp;lt;Job&amp;gt;&lt;br /&gt;
                    &amp;lt;Type&amp;gt;Idle&amp;lt;/Type&amp;gt;&lt;br /&gt;
                    &amp;lt;PatrolPathId&amp;gt;0&amp;lt;/PatrolPathId&amp;gt;&lt;br /&gt;
                &amp;lt;/Job&amp;gt;&lt;br /&gt;
                &amp;lt;Behaviors&amp;gt;&lt;br /&gt;
                    &amp;lt;CombatId&amp;gt;9&amp;lt;/CombatId&amp;gt;&lt;br /&gt;
                    &amp;lt;MeleeId&amp;gt;25&amp;lt;/MeleeId&amp;gt;&lt;br /&gt;
                    &amp;lt;NeutralId&amp;gt;0&amp;lt;/NeutralId&amp;gt;&lt;br /&gt;
                &amp;lt;/Behaviors&amp;gt;&lt;br /&gt;
                &amp;lt;Inventory&amp;gt;&lt;br /&gt;
                    &amp;lt;Ammo&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Ammo&amp;gt;&lt;br /&gt;
                    &amp;lt;EnergyCell&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/EnergyCell&amp;gt;&lt;br /&gt;
                    &amp;lt;Hypo&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Hypo&amp;gt;&lt;br /&gt;
                    &amp;lt;Shield&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Shield&amp;gt;&lt;br /&gt;
                    &amp;lt;Invisibility&amp;gt;&lt;br /&gt;
                        &amp;lt;Use&amp;gt;0&amp;lt;/Use&amp;gt;&lt;br /&gt;
                        &amp;lt;Drop&amp;gt;0&amp;lt;/Drop&amp;gt;&lt;br /&gt;
                    &amp;lt;/Invisibility&amp;gt;&lt;br /&gt;
                &amp;lt;/Inventory&amp;gt;&lt;br /&gt;
                &amp;lt;Team&amp;gt;Syndicate&amp;lt;/Team&amp;gt;&lt;br /&gt;
                &amp;lt;InitialAmmo&amp;gt;100&amp;lt;/InitialAmmo&amp;gt;&lt;br /&gt;
                &amp;lt;Alert&amp;gt;&lt;br /&gt;
                    &amp;lt;Initial&amp;gt;Combat&amp;lt;/Initial&amp;gt;&lt;br /&gt;
                    &amp;lt;Minimal&amp;gt;Lull&amp;lt;/Minimal&amp;gt;&lt;br /&gt;
                    &amp;lt;JobStarting&amp;gt;Low&amp;lt;/JobStarting&amp;gt;&lt;br /&gt;
                    &amp;lt;Investigating&amp;gt;Medium&amp;lt;/Investigating&amp;gt;&lt;br /&gt;
                &amp;lt;/Alert&amp;gt;&lt;br /&gt;
                &amp;lt;AlarmGroups&amp;gt;0&amp;lt;/AlarmGroups&amp;gt;&lt;br /&gt;
                &amp;lt;Pursuit&amp;gt;&lt;br /&gt;
                    &amp;lt;nowiki&amp;gt;&amp;lt;Strong&amp;gt;4&amp;lt;/Strong&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
                    &amp;lt;Weak&amp;gt;1&amp;lt;/Weak&amp;gt;&lt;br /&gt;
                    &amp;lt;StrongSeen&amp;gt;4&amp;lt;/StrongSeen&amp;gt;&lt;br /&gt;
                    &amp;lt;WeakSeen&amp;gt;4&amp;lt;/WeakSeen&amp;gt;&lt;br /&gt;
                    &amp;lt;Lost&amp;gt;0&amp;lt;/Lost&amp;gt;&lt;br /&gt;
                &amp;lt;/Pursuit&amp;gt;&lt;br /&gt;
            &amp;lt;/OSD&amp;gt;&lt;br /&gt;
        &#039;&#039;&#039;&amp;lt;font color=&amp;quot;#0A0&amp;quot;&amp;gt;&amp;lt;/Object&amp;gt;&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can add another character data block beneath an &amp;lt;/Object&amp;gt; tag. (Well, add as much characters as you want.) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
!XML tag&lt;br /&gt;
!description&lt;br /&gt;
!value type / flags plus description&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Oni Version=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
| If onisplit exe is newer then extracted file then file cannot be converted back to *.oni&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;ObjectCollection&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Object Id=&amp;quot;3860&amp;quot; Type=&amp;quot;CHAR&amp;quot;&amp;gt;&lt;br /&gt;
|Id doesn&#039;t matter and CHAR shouldn&#039;t become changed so leave them as they are.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Header&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Flags&amp;gt;&lt;br /&gt;
|unknown; usually 0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Position&amp;gt;&lt;br /&gt;
|character is spawned at this xyz-position&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Rotation&amp;gt;&lt;br /&gt;
|character is spawned with this rotation&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;OSD&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Flags&amp;gt;&lt;br /&gt;
|valign=top|determines some special properties&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;!--: &amp;quot;IsPlayer&amp;quot; makes first character (in this file) into the character which is controlled by the player. (Usually not used with other flags.)&lt;br /&gt;
:: Multiple characters with &amp;quot;IsPlayer&amp;quot; makes it possible to change the player controlled character by using BSL commands, for example: &amp;quot;chr_delete(Muro);ai2_spawn(barabus)&amp;quot;&lt;br /&gt;
::: A delay between spawning the new and deleting the old player character can kick off a camera glitch.&lt;br /&gt;
:::: However, this became outdate when Mac engine was patched to be able using chr_set_class.--&amp;gt;&lt;br /&gt;
: IsPlayer (if you have two of them then delete one and spawn the other one at same time)&lt;br /&gt;
: RandomCostume (flag belongs to [[OBD_talk:ONCV|ONCV]])&lt;br /&gt;
: NotInitiallyPresent&lt;br /&gt;
: NonCombatant&lt;br /&gt;
: CanSpawnMultiple (needs WasSpawned)&lt;br /&gt;
: WasSpwaned (...)&lt;br /&gt;
: Unkillable (character won&#039;t loss more life points if it reaches 1, same as BSL command &amp;quot;chr_unkillable&amp;quot;)&lt;br /&gt;
: InfiniteAmmo (Raiden: &amp;quot;You got enough ?&amp;quot; Snake points to his head. &amp;quot;Infinite ammo...&amp;quot;)&lt;br /&gt;
: Omniscient (can&#039;t be knocked down)&lt;br /&gt;
: HasLSI (this character drops an level specific item like truck keys in [[CHAPTER_14_._DAWN_OF_THE_CHRYSALIS|level 19]])&lt;br /&gt;
: Boss (used for boss mode fights. makes the AI ignore this character unless there is nobody else around)&lt;br /&gt;
: UpgradeDifficulty (spawns a stronger enemy if you play on medium or hard)&lt;br /&gt;
: NoAutoDrop (doesn&#039;t drop &amp;quot;used&amp;quot; shield, &amp;quot;used&amp;quot; invisibility and LSI when killed)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Class&amp;gt;&lt;br /&gt;
|ONCC name without file pre- and suffix. Interesting for BSL command &amp;quot;chr_set_class&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Name&amp;gt;&lt;br /&gt;
|used by various BSL commands&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Weapon&amp;gt;&lt;br /&gt;
|character is spawned with weapon specified in here; weapon looked up by name (makes also custom weapons available)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Scripts&amp;gt;&lt;br /&gt;
|valign=top|independent from BSL main function&lt;br /&gt;
|&lt;br /&gt;
: &amp;lt;Spawn&amp;gt; (called when character is spawned)&lt;br /&gt;
: &amp;lt;Die&amp;gt; (called when character dies (health reaches 0); can work multiple times)&lt;br /&gt;
: &amp;lt;Combat&amp;gt; (called when character notices an enemy; works only once)&lt;br /&gt;
: &amp;lt;Alarm&amp;gt; (called when character is alarmed)&lt;br /&gt;
: &amp;lt;Hurt&amp;gt; (called when character is hurt for the first time; works only once)&lt;br /&gt;
: &amp;lt;Defeated&amp;gt; (called when character is &amp;quot;defeated&amp;quot; (health reaches 1); works only once)&lt;br /&gt;
: &amp;lt;OutOfAmmo&amp;gt; (called when character runs out of ammo (reloads a weapon with the last clip/cell); works only once, and the character must have the ammo at spawn-time)&lt;br /&gt;
: &amp;lt;font style=&amp;quot;color:#777&amp;quot;&amp;gt;&amp;lt;NoPath&amp;gt; (should be called when a character has trouble pathfinding, but isn&#039;t&amp;lt;/font&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;AdditionalHealth&amp;gt;&lt;br /&gt;
|&#039;&#039;main&#039;&#039; health is stored in ONCC, &amp;quot;additional health&amp;quot; will be added to that &#039;&#039;main&#039;&#039; health; also negative value possible here (which would then reduce main health)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Job&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Type&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: None&lt;br /&gt;
: Idle&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#777&amp;quot;&amp;gt;Guard (never used in Oni)&amp;lt;/font&amp;gt;&lt;br /&gt;
: Patrol&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#777&amp;quot;&amp;gt;Teambattle (never used in Oni)&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Behaviors&amp;gt;&lt;br /&gt;
|specified by IDs linking to melee, combat and neutral profile collection file&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|[[OBD_talk:BINA/OBJC/CMBT|&amp;lt;CombatId&amp;gt;]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0 (Stand_and_Fire)&lt;br /&gt;
: 1 (Murder)&lt;br /&gt;
: 2 (Shoot_And_Fight)&lt;br /&gt;
: 3 (Take_my_Big_Black_Stuff)&lt;br /&gt;
: 4 (Assault)&lt;br /&gt;
: 5 (Civilian)&lt;br /&gt;
: 6 (Pursuit)&lt;br /&gt;
: 7 (Group_battle)&lt;br /&gt;
: 8 (Watchman)&lt;br /&gt;
: 9 (Barabbas_TCTF)&lt;br /&gt;
: 10 (COMGUY)&lt;br /&gt;
: 11 (SuperNinja)&lt;br /&gt;
: 12 (Griffin)&lt;br /&gt;
: 13 (Mutant_Muro)&lt;br /&gt;
: 14 (Alarm Guard)&lt;br /&gt;
: 15 (Non-Combatant)&lt;br /&gt;
: 16 (Griffin_Final)&lt;br /&gt;
: 207 (Sniper)&lt;br /&gt;
: 208 (Sniper For Joe)&lt;br /&gt;
: 17 (Average_striker; new profile for AE)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;MeleeId&amp;gt;&lt;br /&gt;
|[[OBD:BINA/OBJC/MELE#All_profiles_sorted_by_ID|here are all melee IDs sorted by ID]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;NeutralId&amp;gt;&lt;br /&gt;
|[[OBD:BINA/OBJC/NEUT|...]] (no overview so far)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Inventory&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Ammo&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt; (characters can uses such items by given amount; AI cannot use hypos)&lt;br /&gt;
:&amp;lt;Drop&amp;gt; (AI characters drops such items when defeated)&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;EnergyCell&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Hypo&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Shield&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Invisibility&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
:&amp;lt;Use&amp;gt;&lt;br /&gt;
:&amp;lt;Drop&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Team&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: Konoko&lt;br /&gt;
: TCTF&lt;br /&gt;
: Syndicate&lt;br /&gt;
: Neutral&lt;br /&gt;
: SecurityGuard&lt;br /&gt;
: RogueKonoko&lt;br /&gt;
: Switzlerland (is melee-immune)&lt;br /&gt;
: SyndicateAccessory&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;InitialAmmo&amp;gt;&lt;br /&gt;
|ammo in weapon, percent value: 0 - 100, &#039;&#039;overload&#039;&#039; not tested&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;Alert&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Initial&amp;gt;&lt;br /&gt;
|valign=top|initial alert level&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Minimal&amp;gt;&lt;br /&gt;
|valign=top|minimal alert level&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;JobStarting&amp;gt;&lt;br /&gt;
|valign=top|alert level when starting a job&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Investigating&amp;gt;&lt;br /&gt;
|valign=top|alert level when investigating&lt;br /&gt;
|&lt;br /&gt;
:lull&lt;br /&gt;
:low&lt;br /&gt;
:medium&lt;br /&gt;
:high&lt;br /&gt;
:combat&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;AlarmGroups&amp;gt;&lt;br /&gt;
|It&#039;s a bitset32 converted to int32. If Ns bit = TRUE then a bot gets highest alert level by a console command ai2_tripalarm(N)&lt;br /&gt;
|&amp;lt;AlarmGroups&amp;gt;VAR&amp;lt;/AlarmGroups&amp;gt;&lt;br /&gt;
VAR = 2^N1 + 2^N2 + 2^N3 etc.&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Pursuit&amp;gt;&lt;br /&gt;
|[[CHAR#Less_basic_setup_-_Inventory.2C_team.2C_jobs.2C_alert.2Fpursuit|HERE]] are information about &amp;quot;Alert&amp;quot; and &amp;quot;Pursuit&amp;quot;.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;nowiki&amp;gt;&amp;lt;Strong&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Weak&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;StrongSeen&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;WeakSeen&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|-&lt;br /&gt;
|valign=top|&amp;lt;Lost&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
: 0&lt;br /&gt;
: 1&lt;br /&gt;
: 2&lt;br /&gt;
: 3&lt;br /&gt;
: 4&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/Framework&amp;diff=16224</id>
		<title>Anniversary Edition/Framework</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Anniversary_Edition/Framework&amp;diff=16224"/>
		<updated>2009-11-27T18:15:08Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 2009-07 release of the Edition introduced a revised framework. You should place the unzipped contents of the AE release for your platform into a fresh copy of Oni&#039;s folder, rather than a copy of Oni that already had an older Edition installed. Following is a rundown of how globalization and mod installation work. To learn how to make your own mod package, which is required in order for the AE Installer to handle your mod properly, see [[Making a mod package]].&lt;br /&gt;
&lt;br /&gt;
==The globalization process==&lt;br /&gt;
When first running the Installer, this is a one-time process that takes the vanilla .dats in Oni&#039;s GDF and breaks them into thousands of .oni files in folders like Edition/GDF/level1_Final. Next, the Installer combines those folders of .oni files into singleton, large .oni files, one for each level, in Edition/install/VanillaDats/. Note that no data has been modded yet, just reformatted. This process of pre-compiling the data results in a large speed increase over previous recombination methods.&lt;br /&gt;
&lt;br /&gt;
==The mod installation process==&lt;br /&gt;
Right after this, the Installer prompts you to choose some mods to install. When you hit the Install button, the Installer starts off by deleting the existing .dat/.raw(/.sep) files in Edition/GDF to start from a blank slate. It then iterates through each mod package you selected, and sends a command to OniSplit to combine the singleton .oni for that level (in VanillaDats) with the .oni files in whichever packages have files meant for that level. The final .dat/.raw(/.sep) files are then created in Edition/GDF.&lt;br /&gt;
&lt;br /&gt;
==Implications of the new process==&lt;br /&gt;
The import of this is that the folders of .oni files in Edition/GDF/ &#039;&#039;are never used again&#039;&#039; after the globalization is done. In the old way of doing things, these folders were what you modded files in, and then recombined to generate new .dat/.raw(/.sep) files. However, if you tried that approach now, and altered those folders&#039; files, and recompiled them, you would find yourself playing an Oni with only your mod and no AE mods, because the &amp;lt;tt&amp;gt;-import&amp;lt;/tt&amp;gt; command you used on the &amp;quot;_Final&amp;quot; folder left out the AE&#039;s mods in Edition/install/packages/. And the next time you installed or removed a mod using the Installer, you would find yourself playing an Oni with only the AE mods, and not your own. Your modded files would still be in the &amp;quot;_Final&amp;quot; folder you placed them in, but the &amp;lt;tt&amp;gt;-import&amp;lt;/tt&amp;gt; command that the Installer used didn&#039;t look at those &amp;quot;_Final&amp;quot; folders, it worked from the giant singleton .oni files for each level that were in VanillaDats instead.&lt;br /&gt;
&lt;br /&gt;
Put even more simply, your new modded files have a mutual exclusion with the AE&#039;s modded files; only one or the other can be active at a time. No actual harm is being done in terms of lost data if you attempt to mod in this old way, but it means that the smart way to mod is always to make a package and install it through the Installer, even if you are merely testing something. This has the nice side effect of forcing you to be organized :-)&lt;br /&gt;
&lt;br /&gt;
==Package numbering==&lt;br /&gt;
When the Installer sees that one package overlaps with another in some way, such as two packages that provide new textures for the same character, which one will take precedence? The answer is that the Installer goes by the number at the front of the name of the package folder. A package numbered 11111 will override package 11110 when they are installed into Oni.&lt;br /&gt;
&lt;br /&gt;
So, how do you pick a number for your mod? Here&#039;s how you pick the first of the five digits:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10000s - Weapons&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20000s - Characters (and character textures)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30000s - Particles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;40000s - Animations (non-combat)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;50000s - Combat animations (incl. animation files)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;60000s - Sounds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;70000s - (not used yet)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;80000s - Levels (and level textures)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;90000s - Scripts (BSL)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you know which digit to start with, you should use the remaining digits to number your mod in a way that fits in with the other mod packages. For example, here&#039;s some hypothetical package numbers and what they tell you about the package:&lt;br /&gt;
&lt;br /&gt;
41000 (a mod that tweaks animations)&lt;br /&gt;
&lt;br /&gt;
41100 (this mod might be related to mod 41000, or else you are just looking for another free number and 42-4900 are taken)&lt;br /&gt;
&lt;br /&gt;
41010 (probably someone&#039;s addition or improvement to mod 41000)&lt;br /&gt;
&lt;br /&gt;
41001 (must be an addition or improvement for mod 41000, or why else would they be numbered so closely?)&lt;br /&gt;
&lt;br /&gt;
Okay, so now you get the idea, but how do you know which numbers are free? First, check the numbers in use by the AE, which are listed on the [[Anniversary Edition/Packages|AE Packages]] page. Next, go to the [http://mods.oni2.net Mod Depot], and choose &amp;quot;By Install Method&amp;gt;Package&amp;quot; from the sidebar to see all packaged mods. The names of the files (under the &amp;quot;Download Link&amp;quot; column) will tell you the numbers for these third-party packages. Any number not used by an AE package or a package on the Depot should be safe to use.&lt;br /&gt;
&lt;br /&gt;
[[Category:Anniversary Edition]]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=15504</id>
		<title>OniSplit</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=15504"/>
		<updated>2009-09-29T13:52:08Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: /* Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OniSplit&#039;&#039;&#039;, written by [[User_talk:Neo|Neo]], is an integral part of the [[Anniversary Edition]] and an essential modding tool on its own. It does the work of splitting and recombining Oni&#039;s data files.  But it also does much more, such as extracting and creating textures, 3D and .xml files.&lt;br /&gt;
&lt;br /&gt;
==Getting it==&lt;br /&gt;
===Download links===&lt;br /&gt;
* Latest version of OniSplit: [http://mods.oni2.net/system/files/OniSplit.exe_.zip v0.9.40]&lt;br /&gt;
* Latest version of OniSplit GUI can be found [http://oni.bungie.org/community/forum/viewtopic.php?pid=9323#p9323 here.]&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
OniSplit requires .NET 2.0 for Windows and the Mono framework for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
* [http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;amp;displaylang=en .NET 2.0]&lt;br /&gt;
* [http://www.go-mono.com/mono-downloads/download.html Latest version of mono (requires OS X 10.4+)]&lt;br /&gt;
* [http://edt.oni2.net/AE/MonoFramework10.3.dmg Mono for OS X 10.3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Using it==&lt;br /&gt;
The following actions are listed when calling OniSplit with the &amp;lt;tt&amp;gt;-help&amp;lt;/tt&amp;gt; option (another informative option is &amp;lt;tt&amp;gt;-version&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:The command line must be preceded by either &amp;lt;tt&amp;gt;OniSplit.exe&amp;lt;/tt&amp;gt; (Windows) or &amp;lt;tt&amp;gt;mono OniSplit.exe&amp;lt;/tt&amp;gt; (Mac OS)&lt;br /&gt;
::If OniSplit.exe is not in the current folder, you can provide the full/relative path to it or set the path variable.&lt;br /&gt;
:::On the Mac, be sure to use / rather than \ in paths. The following instructions are for Windows by default.&lt;br /&gt;
====Conversion between .dat and .oni====&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-export &amp;lt;target directory&amp;gt; &amp;lt;source file&amp;gt;&amp;lt;/tt&amp;gt;||Exports source file (.dat) to target directory&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; tries to get target file format from source SNDD&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:sep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw+.sep format (Mac and PC Demo)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw format (PC retail)&lt;br /&gt;
|}&lt;br /&gt;
:Note that -import will search subdirectories too. If you find having hundreds or thousand of files .oni in one directory to be unmanageable you can always group them in subdirectories anyway you like. The only exception is that a subdirectory named &amp;quot;noimport&amp;quot; or &amp;quot;_noimport&amp;quot; is always ignored.&lt;br /&gt;
&lt;br /&gt;
====Management of .oni files====&lt;br /&gt;
Unless mentioned otherwise, the filename field supports wildcards (&amp;quot;*&amp;quot;).&lt;br /&gt;
:OniSplit consistently detects and manages &amp;quot;dependencies&amp;quot; of .oni files.&lt;br /&gt;
::The dependencies of a file are looked up in its folder and subfolders.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-deps &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Displays a list of .oni files that the specified .oni file depends on&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-copy &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Copies .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:overwrite &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; overwrites any existing .oni files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:delete &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; doesn&#039;t overwrite; deletes source files&lt;br /&gt;
|}&lt;br /&gt;
====Conversion between .oni/.dat and 3rd party formats====&lt;br /&gt;
=====Textures=====&lt;br /&gt;
Unless mentioned otherwise, source filenames support wildcards. See [[AE:Modifying textures|HERE]] for a detailed tutorial.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dds &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:tga &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in TGA format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:png &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in PNG format&lt;br /&gt;
|-&lt;br /&gt;
|align=right|&amp;lt;tt&amp;gt;-create:txmp &amp;lt;targer directory&amp;gt; [-genmipmaps] [-nouwrap] [-novwrap]&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[-format:bgr32|bgra32|bgr555|bgra5551|bgra4444|dxt1]&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;[-envmap:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|valign=top|Creates .oni file in target directory from source image&lt;br /&gt;
|}&lt;br /&gt;
The -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMPs from a .dat file.&lt;br /&gt;
&lt;br /&gt;
=====Models=====&lt;br /&gt;
[[M3GM]]s, [[ONWC]]s, [[ONCC]]s can be exported to the Wavefront .obj and COLLADA .dae formats. For details see [[AE:Importing character models|HERE]] and [[AE:Importing weapon models|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:obj &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Wavefront OBJ files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Collada files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:m3gm &amp;lt;target directory&amp;gt; [-tex:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a M3GM .oni in target directory from an .obj file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:trbs &amp;lt;target directory&amp;gt; [-cel] [-normals] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a TRBS .oni in target directory from a .dae file&lt;br /&gt;
|}&lt;br /&gt;
The generic -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.&lt;br /&gt;
:TRBS and ONCC support additional -noanim and -anim options for -extract:dae, see [[AE:Importing character models|HERE]] for details.&lt;br /&gt;
::Imported geometry must only contain triangles. See [[AE:Importing character models|HERE]] for additional options (e.g., cel-shading)&lt;br /&gt;
&lt;br /&gt;
====Levels====&lt;br /&gt;
OniSplit can convert AKEV files (level geometry) and the associated file types to and from DAE format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;name of AKEV.oni source file&amp;gt;&amp;lt;/tt&amp;gt;   Extracts all AKEV and related instances to Collada files&lt;br /&gt;
&lt;br /&gt;
The next two steps are used on a folder in which you have placed the DAE and XML-formatted instances of the required files, as well as textures in TGA format. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; -genmipmaps -format:dxt1 &amp;lt;source directory/&amp;gt;*.xml&amp;lt;/tt&amp;gt;   Converts all AKEV and related instances to .oni files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file name&amp;gt;.dat&amp;lt;/tt&amp;gt;   The standard command for creating .dat/.raw files from .oni files (remember to use the import:sep option on Mac!)&lt;br /&gt;
&lt;br /&gt;
=====Misc=====&lt;br /&gt;
Some more import/export functions, e.g., to rip sounds or rip/replace subtitles.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:wav &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .aif into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:aif &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .aif into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:txt &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SUBT as .txt into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:subt &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a SUBT .oni file in target folder from a .txt file&lt;br /&gt;
|}&lt;br /&gt;
=====XML=====&lt;br /&gt;
One of the latest features is conversion of an .oni file (binary) into an XML metafile and back. XML files are more explicit and more readily editable.&lt;br /&gt;
::Currently xml export/import is limited to files that do not have raw/sep parts. 2-way conversion is known to work for [[BINA]], [[CONS]], [[DOOR]], [[DPge]], [[FILM]], [[HPge]], [[IGHH]], [[IPge]], [[M3GM]], [[OBAN]], [[ONCC]], [[ONCV]], [[ONLD]], [[ONLV]], [[ONGS]], [[ONSK]], [[ONVL]], [[ONWC]], [[OPge]], [[OSBD]], [[PSpc]], [[PSpL]], [[PSUI]], [[TRAC]], [[TRAM]], [[TRIG]], [[TRGE]], [[TRMA]], [[TRSC]], [[TXMB]], [[TXMP]], [[WMCL]], [[WMDD]], [[WMM_]], [[WPge]].&lt;br /&gt;
:::For detailed examples and tutorials, see [[AE:XML|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:xml &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all instances to XML files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates an .oni file in the target directory from an XML file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
BIG NOTE OF WARNING: some of the above instance types (most importantly ONWC) contain geometry data (M3GM) embedded in them. The geometry can round-trip through xml but versions of OniSplit up to and including 0.9.26 produce an invalid .oni file that may cause Oni to crash.&lt;br /&gt;
[[Category:Modding tools]][[Category:Articles that need updating]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Change Log==&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.40&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for exporting/importing [[OBD:BINA/SABD|sound animations]] to/from xml files&lt;br /&gt;
:* better Collada export for environment&lt;br /&gt;
:* support for full color transparent textures (-format:bgra32 on the command line, ARGB8888 format in an xml file)&lt;br /&gt;
:* different (hopefully better) xml export format for animations (this one is actually from 0.9.38 but since that wasn&#039;t mentioned here...)&lt;br /&gt;
:* a more or less complete animation importer. This one deservers some notes:&lt;br /&gt;
::-unlike other importers that produce .oni files this one produces and .xml file (similar to the one you get when exporting a TRAM)&lt;br /&gt;
::when you do&lt;br /&gt;
  onisplit -create:tram target_dir animation.dae&lt;br /&gt;
::in the target dir you&#039;ll get a TRAManimation.xml file.&lt;br /&gt;
::You need to add some stuff to that file to make it actually work as an animation. In particular the animation type, from/to states and varient needs to be set.&lt;br /&gt;
::-For all I know this works with animations exported from Oni and modified in Softimage. If you come up with a completly new animation it should work as long as the skeleton is similar to the one used in Oni.&lt;br /&gt;
::-Note that the geometry that is present inside the Collada file is used to compute the &amp;quot;vertical extents&amp;quot; so it better be the same or close to the one the animation is intended for.&lt;br /&gt;
::-The biggest problem are the attacks. While it&#039;s not difficult to add attacks to the xml file, computing the necessary &amp;quot;extents&amp;quot; is not going to be easy. I guess in the end I&#039;ll have to add some command to OniSplit to do it.&lt;br /&gt;
::-Everything else that I forgot :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.37.zip OniSplit v0.9.37]&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for transparency in the environment importer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.35&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* conversion of recorded films (.dat binary files) to xml files that can be used to create FILM .oni files&lt;br /&gt;
&lt;br /&gt;
    OniSplit film2xml out_dir film.dat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.34&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* SNDD importer&lt;br /&gt;
::-WAV files (.wav, mono/stereo, 22.05KHz/44.1KHz, uncompressed(PCM)/compressed(MS-ADPCM)) produce SNDD files that are compatible with Oni PC retail.&lt;br /&gt;
::-AIFC files (.aif/.aifc/.afc, mono/stereo 22.05KHz, compressed(ima4)) produce SNDD files that are compatible with Oni Mac.&lt;br /&gt;
::Example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  OniSplit -create out_dir test.aif&lt;br /&gt;
  OniSplit -create out_dir test.wav&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*LOD support for creating TRBS files. This can be done by creating an xml file containing the following:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_4.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_5.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::and running the command (assuming the created xml file&#039;s name is barabus_body.xml):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir barabus_body.xml&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not strictly necessary to create 5 different geometries for each LOD. The following works just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*An xml file can contain &amp;quot;links&amp;quot; to other xml/obj/dae files. For example you can have the following line in an ONWC xml file:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Assuming the file pistol.obj exists in the same directory an M3GM .oni file will be automatically created from it.&lt;br /&gt;
&lt;br /&gt;
::Relative paths work just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;geometry/pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*The -create:subt, -create:txmp and -create:m3gm are sort of obsolete. They still work but now you can simply use &#039;-create&#039; (or just &#039;create&#039;):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir crate.dae&lt;br /&gt;
  OniSplit create out_dir -format:bgr555 -genmipmaps pic.tga&lt;br /&gt;
  OniSplit create out_dir subtitles.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*Work in progress: the AKEV importer now reads Collada materials so the resulting AKEV is textured.&lt;br /&gt;
&lt;br /&gt;
:Sample levels:&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/noglass.zip TestLevel1] -- This level should look like this in-game: &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 1.jpg|Image 1]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 2.jpg|Image 2]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 3.jpg|Image 3]]&amp;lt;/u&amp;gt;&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/hexagon.zip TestLevel2] -- This level should look like this in-game: &amp;lt;u&amp;gt;[http://edt.oni2.net/images/hexagon1.jpg Image 1]&amp;lt;/u&amp;gt;&lt;br /&gt;
:A zip file contains the minimum needed to get a new level running in Oni. To &amp;quot;compile&amp;quot; a level extract it to a folder and run the following commands:&lt;br /&gt;
 &lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 *.xml&lt;br /&gt;
  OniSplit -import:nosep . Oni\GameDataFolder\level1_Final.dat&lt;br /&gt;
&lt;br /&gt;
:(Of course, you need to change the output .dat file path to match your Oni installation path)&lt;br /&gt;
&lt;br /&gt;
:Note1: The hexagon level needs to be scaled up to work properly. Use the envscale option for this:&lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 -envscale:40 *.xml&lt;br /&gt;
&lt;br /&gt;
:Note2: I&#039;ve updated the level files to contain 20 empty corpses to prevent crashes.&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML_talk:Basic_tutorial&amp;diff=15306</id>
		<title>XML talk:Basic tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML_talk:Basic_tutorial&amp;diff=15306"/>
		<updated>2009-09-08T18:44:54Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paradox, very nice manual you created, easy to understand.  There is an easier way to create an oni file from xml file. Go to the Import tab of AE Tools, in the top drop down menu, select the level you want to install the .oni file. Click the Import Source file and choose the xml file.  Then rebuild the level as you stated.  [[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
:Ah, you are right. -- I was on the way to update the tutorial when I encounter a new extraction problem. It looks like some empty tags are not accurately written in my XML files now.&lt;br /&gt;
:Lines like following cannot converted back into ONI format. (first example from ONCCk4_L, second from level 1 BINACJBOCharacter.)&lt;br /&gt;
:: &amp;lt;DeathParticle /&amp;gt;&lt;br /&gt;
:: &amp;lt;Spawn /&amp;gt;&lt;br /&gt;
: Fix was:&lt;br /&gt;
:: &amp;lt;DeathParticle&amp;gt;&amp;lt;/DeathParticle&amp;gt;&lt;br /&gt;
:: &amp;lt;Spawn&amp;gt;&amp;lt;/Spawn&amp;gt;&lt;br /&gt;
: --&lt;br /&gt;
: That is/was situation:&lt;br /&gt;
:* mac OS v10.5.4 running on Intel core&lt;br /&gt;
:* onisplit v0.9.37&lt;br /&gt;
:* monoframework was for OS [[Onisplit|v10.3]], updates then to [http://www.go-mono.com/mono-downloads/download.html recent mono] version, still error in XML.&lt;br /&gt;
: I even ported the mac files to windows but there onisplit exports them accurately, double checked it by porting the window&#039;s ONI file to the mac then extracted it, error. Could you please uploading that ONCC and BINACJBOCharacter file so I can compare it? [[User:Paradox-01|Paradox-01]] 09:13, 3 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Something else: Above you said that the converted file is automatically created. ONCCs are level 0 files, okay, but would AETools also know where to put in the BINACJBOCharacter? I wasn&#039;t able to test it because of empty tag error. [[User:Paradox-01|Paradox-01]] 09:13, 3 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::That&#039;s strange, I can convert the xml files with &amp;lt;DeathParticle /&amp;gt; or &amp;lt;Spawn /&amp;gt; back to oni files.  Here&#039;s my xml files: http://edt.oni2.net/files/paradox.zip.  &lt;br /&gt;
&lt;br /&gt;
:: The dropdown menu in the Import tab has all the other levels, so if you want to import a file to level3_Final, you select that level in the drop down menu. [[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
::: I&#039;m still confused of [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/talk/sick_xml.png what happened yesterday] because today everything looks alright. -- @import Ah, it stands written there. Somehow I&#039;m not myself at these days, thanks for your input.  =) [[User:Paradox-01|Paradox-01]] 12:16, 4 July 2009 (UTC)&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Maybe we have to rewrite Windows GUI part because of new OniSplit GUI? It has browse buttons...     --[[User:Demos kratos|demos_kratos]] 18:44, 8 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=XML_talk:Basic_tutorial&amp;diff=15305</id>
		<title>XML talk:Basic tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=XML_talk:Basic_tutorial&amp;diff=15305"/>
		<updated>2009-09-08T18:44:33Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paradox, very nice manual you created, easy to understand.  There is an easier way to create an oni file from xml file. Go to the Import tab of AE Tools, in the top drop down menu, select the level you want to install the .oni file. Click the Import Source file and choose the xml file.  Then rebuild the level as you stated.  [[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
:Ah, you are right. -- I was on the way to update the tutorial when I encounter a new extraction problem. It looks like some empty tags are not accurately written in my XML files now.&lt;br /&gt;
:Lines like following cannot converted back into ONI format. (first example from ONCCk4_L, second from level 1 BINACJBOCharacter.)&lt;br /&gt;
:: &amp;lt;DeathParticle /&amp;gt;&lt;br /&gt;
:: &amp;lt;Spawn /&amp;gt;&lt;br /&gt;
: Fix was:&lt;br /&gt;
:: &amp;lt;DeathParticle&amp;gt;&amp;lt;/DeathParticle&amp;gt;&lt;br /&gt;
:: &amp;lt;Spawn&amp;gt;&amp;lt;/Spawn&amp;gt;&lt;br /&gt;
: --&lt;br /&gt;
: That is/was situation:&lt;br /&gt;
:* mac OS v10.5.4 running on Intel core&lt;br /&gt;
:* onisplit v0.9.37&lt;br /&gt;
:* monoframework was for OS [[Onisplit|v10.3]], updates then to [http://www.go-mono.com/mono-downloads/download.html recent mono] version, still error in XML.&lt;br /&gt;
: I even ported the mac files to windows but there onisplit exports them accurately, double checked it by porting the window&#039;s ONI file to the mac then extracted it, error. Could you please uploading that ONCC and BINACJBOCharacter file so I can compare it? [[User:Paradox-01|Paradox-01]] 09:13, 3 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Something else: Above you said that the converted file is automatically created. ONCCs are level 0 files, okay, but would AETools also know where to put in the BINACJBOCharacter? I wasn&#039;t able to test it because of empty tag error. [[User:Paradox-01|Paradox-01]] 09:13, 3 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::That&#039;s strange, I can convert the xml files with &amp;lt;DeathParticle /&amp;gt; or &amp;lt;Spawn /&amp;gt; back to oni files.  Here&#039;s my xml files: http://edt.oni2.net/files/paradox.zip.  &lt;br /&gt;
&lt;br /&gt;
:: The dropdown menu in the Import tab has all the other levels, so if you want to import a file to level3_Final, you select that level in the drop down menu. [[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
::: I&#039;m still confused of [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/talk/sick_xml.png what happened yesterday] because today everything looks alright. -- @import Ah, it stands written there. Somehow I&#039;m not myself at these days, thanks for your input.  =) [[User:Paradox-01|Paradox-01]] 12:16, 4 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Maybe we have to rewrite Windows GUI part because of new OniSplit GUI? It has browse buttons...     --[[User:Demos kratos|demos_kratos]] 18:44, 8 September 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=15234</id>
		<title>User:Demos kratos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=15234"/>
		<updated>2009-08-31T14:21:53Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well, let us pray.. eeeh.. start. ^_^&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:dka.jpg]]&lt;br /&gt;
&lt;br /&gt;
Name: Stanislav DEMOS_KRATOS Ponomarev&lt;br /&gt;
&lt;br /&gt;
Date of birth: 23.06.1993&lt;br /&gt;
&lt;br /&gt;
Interests: Japanese language, culture and everything like that, IT, Oni(of course),Oni modding, PASCAL, Delphi and AU3 programming, Karate Kyokushinkai.&lt;br /&gt;
&lt;br /&gt;
Everything about anything else you can ask me directly at [http://oni.bungie.org/community/forum/ Oni Central]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=15233</id>
		<title>User:Demos kratos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=15233"/>
		<updated>2009-08-31T14:21:17Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well, let us pray.. eeeh.. start. ^_^&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:dka.jpg]]&lt;br /&gt;
&lt;br /&gt;
Name: Stanislav DEMOS_KRATOS Ponomarev&lt;br /&gt;
&lt;br /&gt;
Date of birth: 23.06.1993&lt;br /&gt;
&lt;br /&gt;
Interests: Japanese language, culture and everything like that, IT, Oni(of course),Oni modding, PASCAL programming, Karate Kyokushinkai.&lt;br /&gt;
&lt;br /&gt;
My favorite phrases are:&lt;br /&gt;
&lt;br /&gt;
It&#039;s bad when you don&#039;t want to do anything coz&#039; you&#039;re lazy. It&#039;s even worse when you&#039;re lazy enough to not want to do nothing. (Me)&lt;br /&gt;
&lt;br /&gt;
Tell me and I&#039;ll forget. Show me and I&#039;ll remember. Make me do this and I&#039;ll understand. (Confucius, not me)&lt;br /&gt;
&lt;br /&gt;
Everything about anything else you can ask me directly at [http://oni.bungie.org/community/forum/ Oni Central]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=File:Dka.jpg&amp;diff=15232</id>
		<title>File:Dka.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=File:Dka.jpg&amp;diff=15232"/>
		<updated>2009-08-31T14:20:52Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=15196</id>
		<title>OniSplit</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OniSplit&amp;diff=15196"/>
		<updated>2009-08-03T20:17:46Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: /* Download links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;OniSplit&#039;&#039;&#039;, written by [[User_talk:Neo|Neo]], is an integral part of the [[Anniversary Edition]] and an essential modding tool on its own. It does the work of splitting and recombining Oni&#039;s data files.  But it also does much more, such as extracting and creating textures, 3D and .xml files.&lt;br /&gt;
&lt;br /&gt;
==Getting it==&lt;br /&gt;
===Download links===&lt;br /&gt;
* Latest version of OniSplit: [http://mods.oni2.net/sites/default/files/OniSplit.exe_.zip v0.9.40]&lt;br /&gt;
* Latest version of OniSplit GUI can be found [http://oni.bungie.org/community/forum/viewtopic.php?pid=9323#p9323 here.]&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
OniSplit requires .NET 2.0 for Windows and the Mono framework for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
* [http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&amp;amp;displaylang=en .NET 2.0]&lt;br /&gt;
* [http://www.go-mono.com/mono-downloads/download.html Latest version of mono (requires OS X 10.4+)]&lt;br /&gt;
* [http://edt.oni2.net/AE/MonoFramework10.3.dmg Mono for OS X 10.3]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Using it==&lt;br /&gt;
The following actions are listed when calling OniSplit with the &amp;lt;tt&amp;gt;-help&amp;lt;/tt&amp;gt; option (another informative option is &amp;lt;tt&amp;gt;-version&amp;lt;/tt&amp;gt;)&lt;br /&gt;
:The command line must be preceded by either &amp;lt;tt&amp;gt;OniSplit.exe&amp;lt;/tt&amp;gt; (Windows) or &amp;lt;tt&amp;gt;mono OniSplit.exe&amp;lt;/tt&amp;gt; (Mac OS)&lt;br /&gt;
::If OniSplit.exe is not in the current folder, you can provide the full/relative path to it or set the path variable.&lt;br /&gt;
:::On the Mac, be sure to use / rather than \ in paths. The following instructions are for Windows by default.&lt;br /&gt;
====Conversion between .dat and .oni====&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-export &amp;lt;target directory&amp;gt; &amp;lt;source file&amp;gt;&amp;lt;/tt&amp;gt;||Exports source file (.dat) to target directory&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; tries to get target file format from source SNDD&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:sep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw+.sep format (Mac and PC Demo)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file&amp;gt;&amp;lt;/tt&amp;gt;||Imports target file (.dat) from source directory; uses .dat+.raw format (PC retail)&lt;br /&gt;
|}&lt;br /&gt;
:Note that -import will search subdirectories too. If you find having hundreds or thousand of files .oni in one directory to be unmanageable you can always group them in subdirectories anyway you like. The only exception is that a subdirectory named &amp;quot;noimport&amp;quot; or &amp;quot;_noimport&amp;quot; is always ignored.&lt;br /&gt;
&lt;br /&gt;
====Management of .oni files====&lt;br /&gt;
Unless mentioned otherwise, the filename field supports wildcards (&amp;quot;*&amp;quot;).&lt;br /&gt;
:OniSplit consistently detects and manages &amp;quot;dependencies&amp;quot; of .oni files.&lt;br /&gt;
::The dependencies of a file are looked up in its folder and subfolders.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-deps &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Displays a list of .oni files that the specified .oni file depends on&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-copy &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Copies .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; skips file if it already exists at destination&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:overwrite &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; overwrites any existing .oni files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-move:delete &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Moves an .oni file and its dependencies to target; doesn&#039;t overwrite; deletes source files&lt;br /&gt;
|}&lt;br /&gt;
====Conversion between .oni/.dat and 3rd party formats====&lt;br /&gt;
=====Textures=====&lt;br /&gt;
Unless mentioned otherwise, source filenames support wildcards. See [[AE:Modifying textures|HERE]] for a detailed tutorial.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dds &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in DDS format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:tga &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in TGA format&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:png &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all textures (TXMP) from a Oni .dat/.oni file in PNG format&lt;br /&gt;
|-&lt;br /&gt;
|align=right|&amp;lt;tt&amp;gt;-create:txmp &amp;lt;targer directory&amp;gt; [-genmipmaps] [-nouwrap] [-novwrap]&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;[-format:bgr32|bgra32|bgr555|bgra5551|bgra4444|dxt1]&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;[-envmap:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|valign=top|Creates .oni file in target directory from source image&lt;br /&gt;
|}&lt;br /&gt;
The -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMPs from a .dat file.&lt;br /&gt;
&lt;br /&gt;
=====Models=====&lt;br /&gt;
[[M3GM]]s, [[ONWC]]s, [[ONCC]]s can be exported to the Wavefront .obj and COLLADA .dae formats. For details see [[AE:Importing character models|HERE]] and [[AE:Importing weapon models|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:obj &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Wavefront OBJ files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all M3GM, ONWC and ONCC instances to Collada files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:m3gm &amp;lt;target directory&amp;gt; [-tex:texture_name] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a TRBS .oni in target directory from an .obj file&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:trbs &amp;lt;target directory&amp;gt; [-cel] [-normals] &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a TRBS .oni in target directory from a .dae file&lt;br /&gt;
|}&lt;br /&gt;
The generic -extract commands can work with .oni files (a single file or several files, wildcards possible) or rip all the TXMP from a .dat file.&lt;br /&gt;
:TRBS and ONCC support additional -noanim and -anim options for -extract:dae, see [[AE:Importing character models|HERE]] for details.&lt;br /&gt;
::Imported geometry must only contain triangles. See [[AE:Importing character models|HERE]] for additional options (e.g., cel-shading)&lt;br /&gt;
====Levels====&lt;br /&gt;
OniSplit can convert AKEV files (level geometry) and the associated file types to and from DAE format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-extract:dae &amp;lt;target directory&amp;gt; &amp;lt;name of AKEV.oni source file&amp;gt;&amp;lt;/tt&amp;gt;   Extracts all AKEV and related instances to Collada files&lt;br /&gt;
&lt;br /&gt;
The next two steps are used on a folder in which you have placed the DAE and XML-formatted instances of the required files, as well as textures in TGA format. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; -genmipmaps -format:dxt1 &amp;lt;source directory/&amp;gt;*.xml&amp;lt;/tt&amp;gt;   Converts all AKEV and related instances to .oni files&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-import:nosep &amp;lt;source directory&amp;gt; &amp;lt;target file name&amp;gt;.dat&amp;lt;/tt&amp;gt;   The standard command for creating .dat/.raw files from .oni files (remember to use the import:sep option on Mac!)&lt;br /&gt;
&lt;br /&gt;
=====Misc=====&lt;br /&gt;
Some more import/export functions, e.g., to rip sounds or rip/replace subtitles.&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:wav &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .aif into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:aif &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SNDD as .aif into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:txt &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Rips all SUBT as .txt into target folder from source .dat or .oni&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create:subt &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates a SUBT .oni file in target folder from a .txt file&lt;br /&gt;
|}&lt;br /&gt;
=====XML=====&lt;br /&gt;
One of the latest features is conversion of an .oni file (binary) into an XML metafile and back. XML files are more explicit and more readily editable.&lt;br /&gt;
::Currently xml export/import is limited to files that do not have raw/sep parts. 2-way conversion is known to work for [[BINA]], [[CONS]], [[DOOR]], [[DPge]], [[FILM]], [[HPge]], [[IGHH]], [[IPge]], [[M3GM]], [[OBAN]], [[ONCC]], [[ONCV]], [[ONLD]], [[ONLV]], [[ONGS]], [[ONSK]], [[ONVL]], [[ONWC]], [[OPge]], [[OSBD]], [[PSpc]], [[PSpL]], [[PSUI]], [[TRAC]], [[TRAM]], [[TRIG]], [[TRGE]], [[TRMA]], [[TRSC]], [[TXMB]], [[TXMP]], [[WMCL]], [[WMDD]], [[WMM_]], [[WPge]].&lt;br /&gt;
:::For detailed examples and tutorials, see [[AE:XML|HERE]]&lt;br /&gt;
{|&lt;br /&gt;
|&amp;lt;tt&amp;gt;-extract:xml &amp;lt;target directory&amp;gt; &amp;lt;filenames&amp;gt;&amp;lt;/tt&amp;gt;||Extracts all instances to XML files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;tt&amp;gt;-create &amp;lt;target directory&amp;gt; &amp;lt;filename&amp;gt;&amp;lt;/tt&amp;gt;||Creates an .oni file in the target directory from an XML file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
BIG NOTE OF WARNING: some of the above instance types (most importantly ONWC) contain geometry data (M3GM) embedded in them. The geometry can round-trip through xml but versions of OniSplit up to and including 0.9.26 produce an invalid .oni file that may cause Oni to crash.&lt;br /&gt;
[[Category:Modding tools]][[Category:Articles that need updating]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Change Log==&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.40&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for exporting/importing [[OBD:BINA/SABD|sound animations]] to/from xml files&lt;br /&gt;
:* better Collada export for environment&lt;br /&gt;
:* support for full color transparent textures (-format:bgra32 on the command line, ARGB8888 format in an xml file)&lt;br /&gt;
:* different (hopefully better) xml export format for animations (this one is actually from 0.9.38 but since that wasn&#039;t mentioned here...)&lt;br /&gt;
:* a more or less complete animation importer. This one deservers some notes:&lt;br /&gt;
::-unlike other importers that produce .oni files this one produces and .xml file (similar to the one you get when exporting a TRAM)&lt;br /&gt;
::when you do&lt;br /&gt;
  onisplit -create:tram target_dir animation.dae&lt;br /&gt;
::in the target dir you&#039;ll get a TRAManimation.xml file.&lt;br /&gt;
::You need to add some stuff to that file to make it actually work as an animation. In particular the animation type, from/to states and varient needs to be set.&lt;br /&gt;
::-For all I know this works with animations exported from Oni and modified in Softimage. If you come up with a completly new animation it should work as long as the skeleton is similar to the one used in Oni.&lt;br /&gt;
::-Note that the geometry that is present inside the Collada file is used to compute the &amp;quot;vertical extents&amp;quot; so it better be the same or close to the one the animation is intended for.&lt;br /&gt;
::-The biggest problem are the attacks. While it&#039;s not difficult to add attacks to the xml file, computing the necessary &amp;quot;extents&amp;quot; is not going to be easy. I guess in the end I&#039;ll have to add some command to OniSplit to do it.&lt;br /&gt;
::-Everything else that I forgot :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.37.zip OniSplit v0.9.37]&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* support for transparency in the environment importer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.35&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* conversion of recorded films (.dat binary files) to xml files that can be used to create FILM .oni files&lt;br /&gt;
&lt;br /&gt;
    OniSplit film2xml out_dir film.dat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New OniSplit version: OniSplit v0.9.34&lt;br /&gt;
&lt;br /&gt;
What&#039;s new:&lt;br /&gt;
&lt;br /&gt;
:* SNDD importer&lt;br /&gt;
::-WAV files (.wav, mono/stereo, 22.05KHz/44.1KHz, uncompressed(PCM)/compressed(MS-ADPCM)) produce SNDD files that are compatible with Oni PC retail.&lt;br /&gt;
::-AIFC files (.aif/.aifc/.afc, mono/stereo 22.05KHz, compressed(ima4)) produce SNDD files that are compatible with Oni Mac.&lt;br /&gt;
::Example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  OniSplit -create out_dir test.aif&lt;br /&gt;
  OniSplit -create out_dir test.wav&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*LOD support for creating TRBS files. This can be done by creating an xml file containing the following:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_4.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_5.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::and running the command (assuming the created xml file&#039;s name is barabus_body.xml):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir barabus_body.xml&lt;br /&gt;
&lt;br /&gt;
::It&#039;s not strictly necessary to create 5 different geometries for each LOD. The following works just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;Oni Version=&amp;quot;0.9.29.0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;Instance id=&amp;quot;0&amp;quot; type=&amp;quot;TRBS&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;Elements&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_1.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_2.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
              &amp;lt;Link&amp;gt;barabus_body_3.dae&amp;lt;/Link&amp;gt;&lt;br /&gt;
          &amp;lt;/Elements&amp;gt;&lt;br /&gt;
      &amp;lt;/Instance&amp;gt;&lt;br /&gt;
  &amp;lt;/Oni&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*An xml file can contain &amp;quot;links&amp;quot; to other xml/obj/dae files. For example you can have the following line in an ONWC xml file:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Assuming the file pistol.obj exists in the same directory an M3GM .oni file will be automatically created from it.&lt;br /&gt;
&lt;br /&gt;
::Relative paths work just as well:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Geometry&amp;gt;geometry/pistol.obj&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*The -create:subt, -create:txmp and -create:m3gm are sort of obsolete. They still work but now you can simply use &#039;-create&#039; (or just &#039;create&#039;):&lt;br /&gt;
&lt;br /&gt;
  OniSplit -create out_dir crate.dae&lt;br /&gt;
  OniSplit create out_dir -format:bgr555 -genmipmaps pic.tga&lt;br /&gt;
  OniSplit create out_dir subtitles.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*Work in progress: the AKEV importer now reads Collada materials so the resulting AKEV is textured.&lt;br /&gt;
&lt;br /&gt;
:Sample levels:&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/noglass.zip TestLevel1] -- This level should look like this in-game: &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 1.jpg|Image 1]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 2.jpg|Image 2]]&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;[[:Image:NoGlass Import Test 3.jpg|Image 3]]&amp;lt;/u&amp;gt;&lt;br /&gt;
:[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/hexagon.zip TestLevel2] -- This level should look like this in-game: &amp;lt;u&amp;gt;[http://edt.oni2.net/images/hexagon1.jpg Image 1]&amp;lt;/u&amp;gt;&lt;br /&gt;
:A zip file contains the minimum needed to get a new level running in Oni. To &amp;quot;compile&amp;quot; a level extract it to a folder and run the following commands:&lt;br /&gt;
 &lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 *.xml&lt;br /&gt;
  OniSplit -import:nosep . Oni\GameDataFolder\level1_Final.dat&lt;br /&gt;
&lt;br /&gt;
:(Of course, you need to change the output .dat file path to match your Oni installation path)&lt;br /&gt;
&lt;br /&gt;
:Note1: The hexagon level needs to be scaled up to work properly. Use the envscale option for this:&lt;br /&gt;
  OniSplit -create out -genmipmaps -format:dxt1 -envscale:40 *.xml&lt;br /&gt;
&lt;br /&gt;
:Note2: I&#039;ve updated the level files to contain 20 empty corpses to prevent crashes.&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=14112</id>
		<title>User:Demos kratos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=14112"/>
		<updated>2009-02-27T20:59:24Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well, let us pray.. eeeh.. start. ^_^&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:240.jpg]]&lt;br /&gt;
&lt;br /&gt;
Name: Stanislav DEMOS_KRATOS Ponomarev&lt;br /&gt;
&lt;br /&gt;
Date of birth: 23.06.1993&lt;br /&gt;
&lt;br /&gt;
Interests: Japanese language, culture and everything like that, IT, Oni(of course),Oni modding, PASCAL programming, Karate Kyokushinkai.&lt;br /&gt;
&lt;br /&gt;
My favorite phrases are:&lt;br /&gt;
&lt;br /&gt;
It&#039;s bad when you don&#039;t want to do anything coz&#039; you&#039;re lazy. It&#039;s even worse when you&#039;re lazy enough to not want to do nothing. (Me)&lt;br /&gt;
&lt;br /&gt;
Tell me and I&#039;ll forget. Show me and I&#039;ll remember. Make me do this and I&#039;ll understand. (Confucius, not me)&lt;br /&gt;
&lt;br /&gt;
Everything about anything else you can ask me directly at [http://oni.bungie.org/community/forum/ Oni Central]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=Quotes/Manual&amp;diff=11644</id>
		<title>Quotes/Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=Quotes/Manual&amp;diff=11644"/>
		<updated>2008-09-14T18:35:49Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: /* Elite Striker - Ogre Class (Green) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is based on the Oni game manual which differs from the the Flash version of the manual available on [http://www.rockstargames.com/oni/main.html Rockstar&#039;s site]&lt;br /&gt;
&lt;br /&gt;
==PRE-MISSION BRIEFINGS==&lt;br /&gt;
It&#039;s 2032 and the world ain&#039;t what it used to be.&lt;br /&gt;
&lt;br /&gt;
We have one government where there used to be hundreds. Big brother is alive and well.&lt;br /&gt;
&lt;br /&gt;
Things are pretty good in the big cities if you don&#039;t mind the fact that World Coalition Government tracks your every move. They claim they do it in the interest of the common good but it can make you feel insignificant and pretty damned helpless. No matter where you go &amp;quot;they&amp;quot; are watching you.&lt;br /&gt;
&lt;br /&gt;
In the cities most people have enough money to live quite well by the standards of the old world. An average family can afford a nice place to live, timeshare on a vehicle and a terminal that links them to the WorldNet. For most it&#039;s an acceptable payoff for a near total loss of privacy and systematic violations of our personal freedoms.&lt;br /&gt;
&lt;br /&gt;
It&#039;s best not to think about life outside the cities. The powers that be would never admit it, but the air has gone bad. The forbidden zones they euphemistically call &amp;quot;Wilderness Preserves&amp;quot; are actually massive tracts of quarantined land.&lt;br /&gt;
&lt;br /&gt;
The poor wretches who can&#039;t afford to live in the cities get as close to the atmosphere processors as they can and eke out a miserable (and dangerous) existence working on the reclamation teams who beat back the corrosive stain of the wilderness.&lt;br /&gt;
&lt;br /&gt;
From time to time someone tries to improve public awareness of the ecological nightmare but World Coalition Government controls the media and silences them before any outcry can gain momentum. Despite thei repression, there is a growing awareness that something has gone horribly wrong and that something has to be done.&lt;br /&gt;
&lt;br /&gt;
Something has to give. It&#039;s only a matter of time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==THE WORLD COALITION GOVERNMENT==&lt;br /&gt;
On January 12th, 2032 the newborn World Coalition Government annexed 80% of the countries of the world. The holdouts either reconsidered and signed treaties or were &amp;quot;dissolved&amp;quot; in a matter of months.&lt;br /&gt;
&lt;br /&gt;
The leaders of the new regime gave us all kinds of rationalizations for their actions, ranging from endless border skirmishes between impoverished nations to environmental problems that they claimed could only be solved if all of the &amp;quot;citizens of earth&amp;quot; worked together.&lt;br /&gt;
&lt;br /&gt;
If the truth were told, it was all about the money.&lt;br /&gt;
&lt;br /&gt;
Years of boom markets and reckless spending finally took their toll, leaving small countries bankrupt and superpowers teetering on the brink of collapse. By uniting the economies of the world all of the old debt was erased and everyone got a clean slate. It was a real mess but at the time it seemed like the only way out.&lt;br /&gt;
&lt;br /&gt;
At first World Coalition Government gave a lot of lip service to representing the annexed governments. There was even an advisory council modeled on  the United Nations. As the representatives began to enjoy the benefits of a global marketplace they fell silent. In a matter of years all traces of the old governments faded away. It was an economic coup on an unprecedented scale.&lt;br /&gt;
&lt;br /&gt;
World Coalition Government accomplished most of what they promised. They created &amp;quot;peacekeeping forces&amp;quot; capable of putting down any infighting and they turned around the economy.&lt;br /&gt;
&lt;br /&gt;
What they don&#039;t tell you is that the poor stayed poor and there are more of them than ever before. Sure, we have bright and beautiful cities but we pay for them by sacrificing our freedom and the well being of most of our population to the so-called &amp;quot;greater good&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is a golden age for the privileged. Their ivory towers are everything we hoped the future would be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==THE TECHNOLOGY CRIMES TASK FORCE (TCTF)==&lt;br /&gt;
One of the excuses World Coalition Government used to grab the reigns was the use of biological weapons by a few of the countries involved in border skirmishes at the time.&lt;br /&gt;
&lt;br /&gt;
Biotech is to us what nukes were to our great grandparents - an emerging technology that scares the hell out of the ignorant. Everyone was terrified that some genetically engineered super virus would spread farther than its creators intended. Horror stories of weapons that made your bones melt and your eyes explode blinded the public to the less tangible threat of a totalitarian government.&lt;br /&gt;
&lt;br /&gt;
Once the puppet masters behind the World Coalition Government had what they wanted they continued to exploit techno-phobia to keep them on top. They told us that abuse of technology was the enemy and that the Technology Crimes Task Force was our guardian. In the name of the common good they granted the TCTF blanket autority to investigate wherever and however they see fit.&lt;br /&gt;
&lt;br /&gt;
Sure, the TCTF does everything it is supposed to. They keep most of the &amp;quot;cyber drugs&amp;quot; and illegal weapons off the streets but law enforcement is a smokescreen to excuse their actual purpose.&lt;br /&gt;
&lt;br /&gt;
World Coalition Government uses the TCTF to control the evolution and distribution of new technologies. They suppress anything that could be used to undermine their authority. Their investigations are also used to violate the rights of anyone deemed &amp;quot;dangerous&amp;quot; by World Coalition Government.&lt;br /&gt;
&lt;br /&gt;
The real abuse of technology begins and ends with the government and its TCTF enforcers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==THE SYNDICATE==&lt;br /&gt;
In the shadows of the cities the Syndicate thrives by providing the desperate and the downtrodden with the opiates they need to distract themselves and the weapons they need to kill each other.&lt;br /&gt;
&lt;br /&gt;
When you really think about the power the TCTF wields it makes you wonder how the Syndicate has survived. There are a lot of theories: some say World Coalition Government lets the Syndicate slide because they keep the underclass down. Others claim a connection between the Syndicate and the remnants of the countries erased by World Coalition Government&#039;s land grab.&lt;br /&gt;
&lt;br /&gt;
No matter what the truth is behind the Syndicate&#039;s power one thing is for sure - you have to steer away from Boss Muro. Muro came out of nowhere less than ten years ago and took out all of the old Bosses. He runs the whole show now. Since he became Boss things have gone from  bad to worse. The TCTF doesn&#039;t like him. They have been at war with him for years but so far he has stayed one step ahead of the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==TECH NOTE 1==&lt;br /&gt;
The World Coalition Government realizes the extent of the ecological damage and has the ability to reverse a lot of it but has decided not to. It is in their best interest to maintain the centralization of wealth so the large population centers are preserved while &amp;quot;third world&amp;quot; regions are not. As a bonus the mounting death toll solves some of their overpopulation problems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==TECH NOTE 2==&lt;br /&gt;
Shinatama is an SLD, or Simulated Life Doll. The SLDs were the first attempt to create an android - a manufactured organism whose systems and structures imitate human biology. An SLD breathes, eats, sweats and can feel pain.  They aren&#039;t actually human so are more durable than their flesh and blood counterparts.  The brain of an SLD is created from the patterns and engrams of a human brain, often forming a close bond or link between the SLD and its human &amp;quot;pattern.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SLDs are cutting edge technology and as such are closely monitored by the TCTF. There are very few of them and most are modeled after children because the smaller bodies are easier to create (and easier to control if they run amok) The TCTF is experimenting with using &amp;quot;adult&amp;quot; SLDs as field agents because of their exceptional strength and intelligence.&lt;br /&gt;
&lt;br /&gt;
The Syndicate have also been experimenting with SLD technology, but their efforts have been progressing much more quickly without all the rigorous safeguards used by more respectable scientists.  The Tankers are the result of this experimentation: super tough, super strong SLD warriors with a seriously bad attitude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==CHARACTER BIOS - FRIENDS AND FOES==&lt;br /&gt;
===Konoko===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ko1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ko2_w1_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ko3_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ko4_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ko5_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ko6_w1_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ko7_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Orphaned at the age of 3, the woman now code-named Konoko has been raised as a ward of the World Coalition Government ever since. Her upbringing has been overseen by a legion of scientists and TCTF personnel, and she has been trained in the most advanced combat and counter-terrorism techniques. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Master of hand to hand combat, expert marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Rising Fury Punch, Devil Spin Kick, Twister Kick&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Emotional attachment to the Shinatama SLD.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Konoko has been raised by the TCTF for as long as she can remember. She knows that she is somehow &amp;quot;different&amp;quot; from other people, but she is anxious to prove herself to Commander Griffin and the rest of the TCTF.&lt;br /&gt;
|}&lt;br /&gt;
===Shinatama===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sh1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Shinatama is an SLD (simulated life doll) android, responsible for coordinating the entire regional communications spine at TCTF regional headquarters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Extensive knowledge of TCTF operational data and security protocols.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Non-combatant&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Shinatama is neurally linked to Konoko and can communicate with her at all times. The neural link gives Konoko full access to Shinatama&#039;s scanning technology and knowledge database.&lt;br /&gt;
|}&lt;br /&gt;
===Commander Griffin===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/gr1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/gr2_w6_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Regional Commander of the Technology Crimes Task Force. Currently on reserved status in the TCTF Black Ops duty roster. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Skilled in hand-to-hand combat, master marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: As a Regional Commader, Griffin enjoy total control of the personnel and equipment within his region. A cunning and dogged leader, Griffin&#039;s enemies know that he will stop at nothing to maintain order and civil control.&lt;br /&gt;
|}&lt;br /&gt;
===Dr. Kerr===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ke1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
A gifted doctor, Kerr is employed full time at the TCTF genetic engineering development lab, although it is rumored that Kerr has worked for both the WCG and the Syndicate in the past. The Rebellion has been unsuccessful in recovering specific data on Dr. Kerr&#039;s experiments.&lt;br /&gt;
|}&lt;br /&gt;
===Muro===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/mr1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
The most feared boss of the Syndicate&#039;s storied existence. Since becoming Boss, he had become one of the TCTF&#039;s biggest enemies. His Project: Sturmanderung is to sabotage the atmosphere processors that keep the cities safe, reversing them so that they will spew polluted poison rather than artificially purified air. How Muro and his men expect to remain resistant to these pollutants remains a mystery.&lt;br /&gt;
|}&lt;br /&gt;
===TCTF - Tactical Trooper===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/tc1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Tac-Ops troopers form the bulk of the fighting forces of the TCTF.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Skilled in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Leaping Hammer Punch&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Slow reaction speed. Weak Special Moves&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Well armored and well trained, the TCTF Tactical trooper is more than a match for his closest Syndicate counter part, the Grunt Striker, but the TCTF Troopers are always outnumbered by their Syndicate adversaries.&lt;br /&gt;
|}&lt;br /&gt;
===TCTF - SWAT Trooper===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/tc2_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: TCTF SWAT Troopers are the elite agents of the TCTF.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, skilled marksman, powerful.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Lion Axe, Lion Fist, Flying Cross.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Slow reaction speed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Unlike contemporary SWAT troopers TCTF SWAT are often deployed alone or in concert with standard Tac-Ops troopers. Often just the sight of these armored giants is enough to make renegade lawbreakers surrender outright.&lt;br /&gt;
|}&lt;br /&gt;
===Black Ops - Tactical Trooper===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/bo1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Black Ops tactical troopers form a special unit promoted from the elite of the TCTF.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Leaping Hammer Punch&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Fair reaction speed. Weak Special Moves.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Better trained and better armored than a TCTF Tactical trooper, and unfettered by conscience, the Black Ops TActical Trooper is a deadly foe.&lt;br /&gt;
|}&lt;br /&gt;
===Black Ops - SWAT Trooper===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/bo2_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Black Ops SWAT Troopers are the ultimate enforcers of the TCTF.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Highly skilled in lethal close-combat techniques, the Black Ops SWAT Trooper is deadly and merciless. They are only unleashed against the toughest and most dangerous foes of the WCG.&lt;br /&gt;
|}&lt;br /&gt;
===Mercenary Sniper===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sn1_w8_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Mercenary snipers are long-ranged specialist assassins that sell their services to the highest bidder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Trained in hand-to-hand combat, master marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Mercenary Snipers are veterans of the Uprising War that left the World Coalition Government in control of the globe. The oppressive nature of the WCG has left the mercenaries with numerous opportunities to hone their skills equally on enemies of the state and high-ranking government officials.&lt;br /&gt;
|}&lt;br /&gt;
===Comm Trooper===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/c1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/c2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/c3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Comm Troopers are the communications specialists for the Syndicate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Trained in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Static Fist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Comm Troopers maintain communications between Syndicate assault squads, and serve as field computer specialists.&lt;br /&gt;
|}&lt;br /&gt;
===Striker - Grunt Class (Green) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sg1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sg2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sg3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Strikers are the foot soldiers of the Syndicate criminal organization. Grunts are the lowest rank of Syndicate Strikers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Trained in hand-to-hand combat, trained marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: None&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Reaction speed is slow, combat repertoire is limited.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Though they are weak individually, Grunt Strikers often appear in numbers, augmenting their limited fighting and shooting skills.&lt;br /&gt;
|}&lt;br /&gt;
===Striker - Hoplite Class (Blue) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sb1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sb2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sb3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Strikers are the foot soldiers of the Syndicate criminal organization. Hoplites are the middle ranking Syndicate Strikers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Skilled in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Striker Slam Punch&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Favors high-risk combat maneuvers (jumping attacks). Limited range on their Special Move.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Hoplites are often deployed in support f weaker Syndicate troops. Hoplites earned their nickname through their flashy fighting style; they will often favor combat maneuvers that leave them vulnerable but can score high damage hits on their opponents.&lt;br /&gt;
|}&lt;br /&gt;
===Striker - Hussar Class (Red)===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sr1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sr2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/sr3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Strikers are the foot soldiers of the Syndicate criminal organization. Hussars are the highest ranking Syndicate Strikers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, skilled marksman, powerful Special Moves.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Striker Slam Punch, Headbutt Dash.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Headbutt Dash Special Moves leaves them vulnerable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Hussars are the most powerful class of Strikers and only appear on missions of the utmost importance,  They are suspected to have undergone extensive physical modification and wear heavily armored uniforms.&lt;br /&gt;
|}&lt;br /&gt;
===Ninja - Infiltrator Class (Green) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ng1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ng2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/ng3_w2-s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Ninjas are the spies and assassins of the Syndicate criminal organization. Infiltrators are the lowest-ranking Syndicate Ninjas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;:  Expert in hand-to-hand combat, skilled marksman, powerful Special Moves.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Volt Stomp, Volt Suplex.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Syndicate Ninjas are trained to operate alone, each one as expert hand-to-hand fighter with a number of deadly Special Moves. Infiltrator class ninjas are dispatched primarily on missions of information gathering or observation.&lt;br /&gt;
|}&lt;br /&gt;
===Ninja - Eliminator Class (Blue) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/nb1_w2-c.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/nb2_w3-s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/nb3_w0_c.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Ninjas are the spies and assassins of the Syndicate criminal organization. Eliminators are the mid-ranking Syndicate Ninjas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;:  Expert in hand-to-hand combat, skilled marksman, powerful Special Moves.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Volt Suplex, Skorp Kick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Eliminators are the syndicate assassins, often dispatched with Infiltrator class ninjas in support.&lt;br /&gt;
|}&lt;br /&gt;
===Ninja - Avenger Class (Red) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/nr1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/nr2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/nr3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Ninjas are the spies and assassins of the Syndicate criminal organization. Avengers are the highest-ranking Syndicate Ninjas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;:  Expert in hand-to-hand combat, skilled marksman, powerful Special Moves.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Volt Stomp, Volt Suplex, Skorp Kick, Lighting Driver&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Avenger Class ninjas have been personally trained by Mukade, the Syndicate master assassin. Avengers are dispatched at his direction, often to eliminate the most powerful enemies of the Syndicate.&lt;br /&gt;
|}&lt;br /&gt;
===Fury - Harridan Class (Green)===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fg1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fg2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fg3xw4-s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: The Furies are command-level Syndicate assault troops. Harridans are the lowest-ranking Syndicate Furies&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Foot Stomp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Furies are deployed as field commanders for large numbers of Syndicate assault troops. Harridans coordinate the activities of between 2 to 4 squads in the field.&lt;br /&gt;
|}&lt;br /&gt;
===Fury - Banshee Class (Blue)===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fb1_w6-c.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fb2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fb3_w4_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: The Furies are command-level Syndicate assault troops. Banshees are the mid-ranking Syndicate Furies&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Foot Stomp, Whirl Kick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Banshees oversee critical Syndicate operations or act as personal aides and bodyguards to Syndicate senior staff.&lt;br /&gt;
|}&lt;br /&gt;
===Fury - Valkyrie Class (Red)===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fr1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fr2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/fr3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: The Furies are command-level Syndicate assault troops. Valkyries are the highest-ranking Syndicate Furies&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, skilled marksman.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Foot Stomp, Whirl Kick, Ten-Shadow Punch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Physically weak.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: The Valkyries are Muro&#039;s personal aides and bodyguards. Their presence always indicates his personal involvement in an operation.&lt;br /&gt;
|}&lt;br /&gt;
===Elite Striker - Ogre Class (Green) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/eg1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/eg2_w2_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/eg1_w8_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Elite Strikers are the most powerful Syndicate troops. Ogres are the lowest class Elite Strikers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Skilled in hand-to-hand combat, trained marksman, enhanced physical strength.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Cannonball Roll.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Slow reaction speed. Cannonball Special Move leaves them vulnerable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Elite Strikers provide tremendous combat power in support of Syndicate assault troops. Though they appear slow and lumbering, their fighting style makes the most of their great physical strength. Ogre class Elites are dispatched in support of smaller, weaker assault troops.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Elite Striker - Giant Class (Blue) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/eb1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/eb2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/eb3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Elite Strikers are the most powerful Syndicate troops. Giants are the mid-ranking Elite Strikers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Skilled in hand-to-hand combat, trained marksman, enhanced physical strength.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Cannonball Roll, Whirling Dervish.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Slow reaction speed. Cannonball Special Move leaves them vulnerable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Giant class Elite Strikers function like living tanks: wading through battle while shaking off tremendous amounts of physical damage.&lt;br /&gt;
|}&lt;br /&gt;
===Elite Striker - Titan Class (Red) ===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/er1_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/er2_w0_s.gif&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/er3_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Elite Strikers are the most powerful Syndicate troops. Titans are the highest-ranking Elite Strikers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, trained marksman, enhanced physical strength.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Cannonball Roll, Whirling Dervish, Crucifix Punch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Slow reaction speed. Cannonball Special Move leaves them vulnerable.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Titan class Elite Strikers are only rumored to exist. Though no living witnesses exist to confirm reports, it is said that the Titan class Elites can absorb incredible amounts of punishment and emerge alive. &lt;br /&gt;
|}&lt;br /&gt;
===Tanker - Skirmisher Class (Green)===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/tg1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Tankers are illegal SLD androids created by the Syndicate. Skirmishers are the lowest class of Tanker SLDs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Skilled in hand-to-hand combat, trained marksman, enhanced physical strength.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Hover Kick.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Limited range on Hover Kick Special Move.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: In defiance of WCG law the Syndicate has moved forward on the development of physically mature SLD androids. Tankers are based on the engram patterns of a particular obnoxious Syndicate commander with a penchant for professional wrestling. Skirmishers are the earliest models created by the Syndicate and so are the least refined.&lt;br /&gt;
|}&lt;br /&gt;
===Tanker - Brawler Class (Blue)===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/tb1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Brawlers are illegal SLD androids created by the Syndicate. Brawlers are the mid-level class of Tanker SLDs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Skilled in hand-to-hand combat, trained marksman, enhanced physical strength.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Nuclear Tackle, Blockbuster.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Nuclear Tackle Special Move leaves them vulnerable and prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: Brawlers are considerably more advanced than the previous Tanker models, and are better able to harness their artificial strength.&lt;br /&gt;
|}&lt;br /&gt;
===Tanker - Crusher Class (Red)===&lt;br /&gt;
{|{{table}}&lt;br /&gt;
|&lt;br /&gt;
{|align=right&lt;br /&gt;
|http://ssg.oni2.net/subfold/charas/images/tr1_w0_s.gif&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Bio Data&#039;&#039;&#039;: Crushers are illegal SLD androids created by the Syndicate. Crushers are the highest level class of Tanker SLDs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Strengths&#039;&#039;&#039;: Expert in hand-to-hand combat, trained marksman, enhanced physical strength.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Special Moves&#039;&#039;&#039;: Nuclear Tackle, Blockbuster, Atomic Elbow Drop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weaknesses&#039;&#039;&#039;: Nuclear Tackle Special Move leaves them vulnerable and prone.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;: The Crusher class of SLD is a very recent addition to the Syndicate forces. Faster and stronger than all of its predecessors, the Crusher class is the ultimate expression of SLD combat technology.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User_talk:Neo&amp;diff=11498</id>
		<title>User talk:Neo</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User_talk:Neo&amp;diff=11498"/>
		<updated>2008-08-31T17:16:05Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am sorry to bother, but this can help to make h2w system look better. When character collides with wall, what REALLY collide ??? For me it seems that for char-&amp;gt;wall collision there is some invisible bounding box. Where is this bounding box, if you know (or correct me if I am wrong). How can I change it? I ask because for me (it is my guess in next sentence, nothing proven ) it seems that this &amp;quot;bounding box&amp;quot; looks like invisible sphere which is around pelvis bone. That is why you can fall and stick your torso/head/legs into next room. Engine ignores bones in char-&amp;gt;wall coll. Is this correct? + please answer if you know how to change it. Thanks a lot in any case&lt;br /&gt;
&lt;br /&gt;
P.S.:Just a curious question, no explanation needed: I know that AI2 powered characters can push away weapons which are on ground. Can it be (from engine-possibilities point of view) that in ONI we should have movable furniture (objects which can be pushed by chars)?&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 11:34, 20 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... many questions, time for a brain dump :)&lt;br /&gt;
&lt;br /&gt;
;Character - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always sphere tree-quad collision. You probably know that the sphere tree can be seen with &amp;quot;chr_debug_sphere=1&amp;quot;. One thing to note about that sphere tree is that it always &amp;quot;stays up&amp;quot; (even when the character is fallen). That&#039;s why fallen characters pass through walls, their body gets outside the sphere when that happens. &lt;br /&gt;
&lt;br /&gt;
:As for changing the radius of that sphere tree: it may be possible but it won&#039;t solve anything.&lt;br /&gt;
&lt;br /&gt;
;Character - Floor collision&lt;br /&gt;
&lt;br /&gt;
:characters also have a special function to detect floor collision which checks if a 3x3 quad intersects the floor. This is done to avoid &amp;quot;strange&amp;quot; sinking when the sphere&#039;s lowest point goes outside the floor. This is the probable cause why sometimes fallen characters hang on an edge (their 3x3 quad still intersects the floor) or fall of the edge even if their feet or head are still on the floor (the 3x3 quad is too small to cover the feet and head when the character is fallen).&lt;br /&gt;
&lt;br /&gt;
;Particle - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always point-quad collision (the point is the position of the particle)&lt;br /&gt;
&lt;br /&gt;
;Particle - Object collision (where object is anything with a physics context that supports collision: characters, [[OBOA]] objects, powerups, weapons)&lt;br /&gt;
&lt;br /&gt;
:this can be sphere-obbox or sphere-sphere collision depending on what the object has (obbox or sphere tree). The radius of the particle sphere is taken from Collision Radius property of the particle class. It can be 0 and then the collision degenerates to point-obbox/point-sphere collision.&lt;br /&gt;
&lt;br /&gt;
;Environment collision (general)&lt;br /&gt;
&lt;br /&gt;
:The engine can only do point-quad and spheretree-quad collision detection. &lt;br /&gt;
&lt;br /&gt;
;Object collision (general)&lt;br /&gt;
&lt;br /&gt;
:All objects (that have a physics context) have a sphere tree attached to them and some objects created through OBOA also have an obbox.&lt;br /&gt;
&lt;br /&gt;
;Moveable furniture&lt;br /&gt;
&lt;br /&gt;
:Yes and no. It can be done to some extent using [[OBOA]]. &lt;br /&gt;
&lt;br /&gt;
:Basically an OBOA object can be pushed if it&#039;s not animated (no OBAN link) and it has &amp;quot;physics type&amp;quot; 2 or 4 (I don&#039;t know what&#039;s the difference).&lt;br /&gt;
&lt;br /&gt;
:What doesn&#039;t work:&lt;br /&gt;
:*characters fall through objects (the character-floor collision function does not see objects)&lt;br /&gt;
:*since the environment only supports sphere-quad collision you tipically cannot push an object very close to the wall (unless of course the object itself is a sphere or close enough to one)&lt;br /&gt;
:*objects can fall but because of sphere-quad collision detection they&#039;ll get stuck somewhere above the floor&lt;br /&gt;
:*an object can fall on another object but a third object will fall through both of them; in general multiple object interaction is buggy&lt;br /&gt;
:*if I remember correctly there is 128 physics context limit. That means the number of active characters + objects + powerups and whatever else needs a physics context is limited to 128. Anyway it will very likely crawl before you reach that limit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta4.zip Beta4]&lt;br /&gt;
&lt;br /&gt;
Oh boy, were Mono developers lazy or not... :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you! BINACJBOCharacter.oni works fine, now to take a look at the melee profile file...&lt;br /&gt;
&lt;br /&gt;
Ed&lt;br /&gt;
&lt;br /&gt;
The melee profile is much more understandable. The moves are clearly identified. So  I assume, now we will be able to create a new melee profile or at the very least add new techniques to an existing profile.&lt;br /&gt;
&lt;br /&gt;
Again, THANK YOU on your awesome work on OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:17, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
2 notes about melee:&lt;br /&gt;
&lt;br /&gt;
:*I&#039;ve yet to make move types to show up as names instead of numbers. Remebering all those is not fun.&lt;br /&gt;
:*The original melee files contain what appears to be orphaned moves. Since currently moves are exported as children of techniques the orphaned moves are not exported. I don&#039;t think those moves are used by the engine but if someone knows otherwise I&#039;ll see what can be done to export them too.&lt;br /&gt;
&lt;br /&gt;
Other stuff:&lt;br /&gt;
&lt;br /&gt;
:*The general xml export was updated to export names instead of number for several enum and flags fields. For example the class of a dialog item in [[WMDD]] was previously exported as a number but now it&#039;s a string like Button, Edit etc. Flags fields are exported as a list of names (names separated by whitespace) like in this WMDD state field:&lt;br /&gt;
  &lt;br /&gt;
   &amp;lt;State&amp;gt;Visible Disabled&amp;lt;/State&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This simplifies editing but currently there is now way to discover what names are available (unless you take a look at the source code :)). I&#039;ll try to make OniSplit display such a list as part of the help or something.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey Neo, do you have any idea what the flag &amp;quot;Boss&amp;quot; does?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:02, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Not sure. It mai be connected to ai2_boss_battle script variable. And I&#039;m not sure those flags are 100% correct, it looks to me that Boss/NoAutoDrop/Omniscient are mixed up.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hello again. I am thinking of writing the Windows GUI for Onisplit. What scripting language would you suggest I write it in?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hmm... the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :). There are Perl/Python/Ruby etc. implementations for Windows but I have no idea if they can be used to make a GUI. It&#039;s likely that you&#039;ll have to use one of the &amp;quot;usual&amp;quot; languages: C/C++/C#/VB/Java/Delphi...&lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;ll do a GUI one day but it&#039;s not on my priority list, I&#039;m more interested in making importers/exporters for now.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
   the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :)&lt;br /&gt;
&lt;br /&gt;
You can also try AutoIt3: http://www.autoitscript.com/autoit3/&lt;br /&gt;
&lt;br /&gt;
It&#039;s easy to create a GUI with both of them, but AutoIt3 can&#039;t work with binary files, only text files (as far as I know). And in case of tcl/tk: It&#039;s a pain to install it. I tried and failed.&lt;br /&gt;
&lt;br /&gt;
[[User:Ssg|Ssg]] 11:44, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve worked with AutoIt3 before and I would recommend it. The GUI creation functions are both powerful and easy to use. It can work with binary files using:&lt;br /&gt;
 FileOpen(&amp;quot;filename&amp;quot;, 16)&lt;br /&gt;
If you need any help with AutoIt post a message on my talk page.&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Why would I want to open binary files? O_o. For detecting the type of .oni file I give it?&lt;br /&gt;
I have not worked with AutoIt3 before, but it doesn&#039;t look too hard, and I&#039;m sure my conglamerated knowledge of random scripting languages will help me...&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 16:57, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
http://gumby701.googlepages.com/gui.exe&lt;br /&gt;
&lt;br /&gt;
Look, its a GUI! That doesn&#039;t do anything...&lt;br /&gt;
&lt;br /&gt;
...and needs properly aligned and formatted...:D&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:23, 24 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One more beta for OBJC: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta5.zip Beta 5].&lt;br /&gt;
&lt;br /&gt;
Fixed character flags and added move type names and parameters names to melee (instead of numbers and Param0, Param1 etc.).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
This makes reading the melee much easier.  I wish I had some time to play around with making a new melee profile.&lt;br /&gt;
&lt;br /&gt;
Is this a bug or just an error in the original code. &lt;br /&gt;
In the NINJA_Easy profile I found this technique:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Technique&amp;gt;&lt;br /&gt;
 &amp;lt;Name&amp;gt;Back Kick&amp;lt;/Name&amp;gt;&lt;br /&gt;
 &amp;lt;Flags /&amp;gt;&lt;br /&gt;
 &amp;lt;Weight&amp;gt;40&amp;lt;/Weight&amp;gt;&lt;br /&gt;
 &amp;lt;Offset_0660&amp;gt;10&amp;lt;/Offset_0660&amp;gt;&lt;br /&gt;
 &amp;lt;RepeatDelay&amp;gt;0&amp;lt;/RepeatDelay&amp;gt;&lt;br /&gt;
 &amp;lt;Moves&amp;gt;&lt;br /&gt;
 &amp;lt;Position Type=&amp;quot;CloseBack&amp;quot; MinRunInDist=&amp;quot;0&amp;quot; MaxRunInDist=&amp;quot;10&amp;quot; ToleranceRange=&amp;quot;4.5&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Attack Type=&amp;quot;PB&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/Moves&amp;gt;&lt;br /&gt;
 &amp;lt;/Technique&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Even though it says Back Kick, the attack is Punch Back.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
The wiki has some pages about various melee profiles and it contains the same thing: [[OBD:BINA/OBJC/MELE/NINJA]]. So either it is just a mistake in the melee profile or the move type wiki tables are wrong, I&#039;ll have to check with the executable.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey. I got a bit of the Windows GUI done. It wasn&#039;t too hard...and tell me if the icons arent there (either for the explorer icon, or the one in the top right corner)&lt;br /&gt;
&lt;br /&gt;
http://gumby.oni2.net/GUI/LevelRecombine.exe&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]]&lt;br /&gt;
&lt;br /&gt;
Yes, the icons are OK. But is it supposed to do anything? That recombine button appears to have no effect.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I was looking at the attack moves on this page: http://wiki.oni2.net/OBD:BINA/OBJC/MELE/MoveList&lt;br /&gt;
And I gave one a try, Attack Move #28 KF KF, but got an error in OniSplit.&lt;br /&gt;
&lt;br /&gt;
Edit: Cleaning up.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 03:56, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
It&#039;s KF_KF, I cannot have spaces in those names.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks, now do you think the names of the moves on the MoveList page should match the ones in OniSplit?&lt;br /&gt;
For example on the MoveList page it has &#039;&#039;&#039;Throw-P Behind Disarm&#039;&#039;&#039; but OniSplit has it as &#039;&#039;&#039;P_BehindDisarm&#039;&#039;&#039;.&lt;br /&gt;
There are many differences between the MoveList and OniSplit syntax.&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure others will have the same issue as they start modifying the melee profile.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 16:16, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, spaces and - are not allowed in there. As for the Throw- prefix I just removed because it&#039;s kind of dumb to write &amp;lt;Throw Type=&amp;quot;Throw_P_BehindDisarn&amp;quot;.../&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The best I can do is to make sure that space is consistenly converted to _ so instead of RunLeft you get Run_Left which is closer to that table.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I think we should change the syntax on the wiki to match OniSplit. Like for example change the wiki entry Throw-P Behind Disarm to P_BehindDisarm.  The reason for this is when we want to modify the melee profile, we will look at the wiki and use the syntax there and put it in OniSplit, then we get errors.  But if the wiki has the syntax the OniSplit will use, that will eliminate the problem.&lt;br /&gt;
&lt;br /&gt;
Is there a way to get the moves syntax from OniSplit?  Then I can start updating the wiki.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 22:48, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18.zip OniSplit 0.9.18]&lt;br /&gt;
&lt;br /&gt;
I added a &amp;quot;-help enums&amp;quot; option which dumps a list with all enums and flags used in XML files. Since otherwise it seems to work fine I dropped the &amp;quot;beta&amp;quot; label.&lt;br /&gt;
&lt;br /&gt;
Feel free to update the wiki if you want but I&#039;d say to leave it like it is. The wiki is about Oni internals, not about OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I had an interesting idea today. If the only difference between a .dat file and a .oni file is that in a .oni file the .raw entries and .sep entries are stored at the end of the file, it might be possible to write a small engine hack which allows Oni to load .oni files directly as level plugins. The problem is, I&#039;m not sure whether it would be useful or possible yet.&lt;br /&gt;
&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:56, 2 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, in theory it is possible but:&lt;br /&gt;
- we may need to add the raw/sep parts at the end of existing .dat files too because supporting both styles of loading raw/sep is more difficult to implement&lt;br /&gt;
- what about Mac? I may as well rewrite all the .dat loader and replace the original one by means of vtuneapi.dll/daodan but I don&#039;t know how new code can be loaded on Macs.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
So what will you be working on next?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:23, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Don&#039;t know, it depends on how much free time I have and my mood :).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, I remember you wrote about having a folder inside the levelX_Final folder that will not be included when recompiling, I must be blind, I can&#039;t seem to find it.  What was the name for it?&lt;br /&gt;
&lt;br /&gt;
Any chance that you can find out how to add more level plugins for the Mac version.  Since Oni originally was going to have more levels, the Mac engine should be able to handle more levels without crashing.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:48, 10 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That directory is called noimport or _noimport.&lt;br /&gt;
&lt;br /&gt;
Oni may very well had more than 16 levels. For Bungie, who had the source code, it was a matter of changing one line of code to adjust the max number of levels. The story is quite different if you want to change the compiled thing.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi there Neo,&lt;br /&gt;
again I am here to seek your advice, this time it is about AI2, ONCC and MELE. &lt;br /&gt;
&lt;br /&gt;
First of all, I have tested it and it seems that AI2 powered characters can jump (they have attacks from air) but they can do only &#039;&#039;&#039;basic tap jump&#039;&#039;&#039;([[ONCC]], offset 0x010), like if you just tap spacebar. Question is: is there possibility to make them use &#039;&#039;&#039;jetpack timer&#039;&#039;&#039;(to make them &#039;hold spacebar&#039;) in order to jump higher/further ?&lt;br /&gt;
&lt;br /&gt;
Second, if AI2 character is far from you, it runs to you and uses pathfinding mode. With help of pathfinding grid it moves in space, avoids obstacles etc. Question is: Do AI2 characters ignore grid when they have MELE mode on? Do they ignore it completely/partially/they don&#039;t ignore it? I ask because when in MELE mode active, AI2 characters can pursue you even &#039;&#039;&#039;outside&#039;&#039;&#039; area with pathfinding grid, but then they won&#039;t move if you run away from them, but start attacking you(and moving) if you come close to them again. Also, in MELE mode AI2 characters can run across red pathfinding tiles (impassable) but if you get away they get stuck as if they were outside the grid (won&#039;t move until you get close). BUT, there are pathfinding tiles which look like they could be used only for jumping (border 1/2/3/4). And jumping is avilable (as far as I know) only when in MELE mode ^_~. Also, I have tested this: player is in BNV1, standing on top of some box (so he is surrounded by red tiles). AI2 is in BNV2, which is next to BNV1 but there is NO direct transition quad between those two BNVs, only there are &#039;border&#039; tiles in BNV1 near the line between BNV1 and BNV2. Now tell AI2 to attack player. If player is too far from AI2 character, AI2 will use pathfinding and it will take some long way in order to get to the player. But if player is close enough AND AI2 has in MELE some jumping attack, this AI2 will run towards border and JUMP directly to the player. So it looks like border tiles indicate space where jump attacks are prefered in order to reach enemy. Also, in devmode if you bring MELE debugging window, you can see(if AI2 is in &#039;border&#039; tiles) that next to other info about technique (like DELAY, UNBLOCKED etc.) there are also informations WORRY-FWD and DANGER-FWD which looks like they correspond to blue (border) and then orange (danger) grids.&lt;br /&gt;
&lt;br /&gt;
So question(s) for this part once again: is pathfinding grid ignored by AI2 when in MELE? If not, is there relation between some pathfinding tiles (border, danger) and MELE messages WORRY-FWD, DANGER-FWD ??? Next, how these tiles affect (if they affect) MELE attacks selection? Do they make AI2 prefer jumping attacks?&lt;br /&gt;
&lt;br /&gt;
All these questions have their sense. I am tired of being able to escape unarmed enemy just by simple jump onto nearest obstacle. I have tried to make AI2s jump, but they can do only tap jump which is not too high and they cannot jump too far + if you escape from them, they get stuck. So if You can answer me, I will see what I can do. I have done some exeriments already (see [http://www.youtube.com/watch?v=rwF0FynUhgQ THIS] video) but it is not enough IMO. Thanks for any info.&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 21:03, 14 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The short answer: I don&#039;t know.&lt;br /&gt;
&lt;br /&gt;
The long answer:&lt;br /&gt;
I haven&#039;t looked too much into Oni&#039;s AI code partly because it is quite large and complex (in fact it&#039;s probably the largest piece of code in Oni). I don&#039;t think AI can do more than simple tap jump but that really depends on how the AI controls the character:&lt;br /&gt;
&lt;br /&gt;
:*simply tell the character to execute an animation: that makes doing more than tap jumps impossible because there isn&#039;t a special animation for &amp;quot;jetpack&amp;quot; jump.&lt;br /&gt;
:*simulate keypresses and mouse input: that means that it might possible but the AI needs to simulate holding the jump key which I have no idea if it can.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;simulate keypresses&amp;quot; method is more likely to be used in Oni. In fact I know for sure it does simulate some keypresses but I don&#039;t know if that&#039;s the only way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pathfinding &amp;amp; stuff: I know there is something called &amp;quot;local movement&amp;quot; which may be what happens when the character is close by. This code seems to do character - environment collision detection so it may be true the pathfinding grid is ignored sometimes bacause there&#039;s not much point in AI doing collision detection if it always used the grid.&lt;br /&gt;
&lt;br /&gt;
Nice video anyway :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, can you program OniSplit so that it can import ONWC?  Let&#039;s say I wanted to change the 3D model of a current weapon, how could I import that 3D model?&lt;br /&gt;
Also, didn&#039;t you at one time mention about importing of M3GM with its texture map in an easier fashion?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:38, 24 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/ONWC: you can do that already. Export the ONWC to xml, remove all the M3GM related stuff (M3GM, PNTA, VCRA, TXCA) and replace the M3GM id in ONWC with a name of your choice:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;M3GMgun_x&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;#2&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can create M3GM files to be used with ONWC as usual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/TXMP: yes, I have some plans but right now nothing is implemented.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you!&lt;br /&gt;
&lt;br /&gt;
If you have some time...&lt;br /&gt;
In the Mac Oni engine, there are a few strings I&#039;ve always wondered about: at offset 0x1D9D55InitializeDeveloperKeys,  0x1D9f2C UnbindDeveloperKeys, 0x1DE24C DeveloperAccess, 0x173BBC, bad parameters on chr_location.  Do the first 3 refer to Developer Mode or something else? The last one about chr_location, could that script command could somehow be enabled?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
You probably mean: _LIrInitializeDeveloperKeys, _LIrUnbindDeveloperKeys and _ONgDeveloperAccess. The _LIr* names are functions that are supposed to be called from the &amp;quot;cheater&amp;quot; code. _ONgDevloperAccess is a variable that controls the calling of those 2 functions, it&#039;s basically the equivalent of &amp;quot;the day is mine&amp;quot; cheat.&lt;br /&gt;
&lt;br /&gt;
bad parameters on chr_location is printed from the function that set the location of a character (_iSetAnyCharacterLocation or something like that). In theory it can be made to work by registering it with the scripting engine but it&#039;s rather complicated.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you. Oh well, I guess the Mac engine will remain limited compared to the PC engine.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:40, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
There is a user on OCF that has a problem with OniSplit http://oni.bungie.org/community/forum/viewtopic.php?pid=8417&lt;br /&gt;
Can you take a look and post the answer here, then I&#039;ll make a reply on OCF.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 15:53, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... absolutely no idea. Since it works for me and others I assume it&#039;s something about his game files. Maybe some file is corrupted or he has some strange version I have never seen before.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you.&lt;br /&gt;
I exported ONWCw1_tap as .xml, and I was comparing the output with http://wiki.oni2.net/ONWC.  &lt;br /&gt;
One thing I can&#039;t find are the weapon options 0x0D4 to 0x0D6 in the xml. I want to enable secondary fire but can&#039;t figure that out. Not for this weapon, but a new one.&lt;br /&gt;
I got the model for the assault rifle from Halo, I used as a base the chaingun weapon, but now want to add grenades as secondary fire.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:10, 27 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I found it: &amp;lt;Flags&amp;gt;180272&amp;lt;/Flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 05:04, 28 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
OniSplit v0.9.21&lt;br /&gt;
&lt;br /&gt;
XML export/import for particles added.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I&#039;ve a bug for you. I converted BINA3RAPsuperglow_e01 into xml and back into oni again. The link &amp;quot;h2h_murglow_e02&amp;quot; is missing now.&lt;br /&gt;
[http://paradox.oni2.net/particle_bug_report.rar Here] are the files. (The blue glow can be seen only for one or two seconds.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:04, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Fixed&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.22.zip OniSplit v0.9.22]&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hm, it wasn&#039;t the murglow-thingy but you fixed it whatever it was, thanks.&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:54, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The particle are still a bit too big. [http://paradox.oni2.net/particle_bug_report_2.rar Here] are the files and screenshots. (Only converted to xml and back again.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 18:34, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Paradox, it might help if you provided a proper link ^_^. Have you tried reducing the size? &amp;gt;_&amp;gt; (Though that is probably the issue you are having, not being able to do that :P)&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:47, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I forgot the file suffix. Thanks for checking. ^_^&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 19:08, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Just noticed there is a new version 0.9.23, what has changed?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:59, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:There was an erroneous field type in [[OBAN]], which I discovered in XML while setting up the DeLorean for the trailer.&lt;br /&gt;
::[[User:Geyser|geyser]] 05:57, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Particle size fixed: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.24.zip OniSplit v0.9.24]&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Just curious, do you have a list of binary data files that can be exported and imported as .xml?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:15, 25 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That&#039;s quite simple: all [[OBD:BINA/OBJC|object collections]] and [[OBD:BINA/PAR3|particles]].&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you, but, I&#039;d appreciate it if/when you have time to look into this. I got an error when trying to export BINACJBOFlag.oni from level3. I have been able to export the same file from other levels. I wanted to add a few more flags, since the Mac doesn&#039;t support chr_location.&lt;br /&gt;
&lt;br /&gt;
Here is my level3 file: http://edt.oni2.net/OniSplit/level3BINACJBOFlag.oni.zip&lt;br /&gt;
&lt;br /&gt;
The error message:&lt;br /&gt;
&lt;br /&gt;
  System.ArgumentException: Input contains invalid character at 94 : &amp;amp;#x1B;&lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedBuffer (System.Char[] text, Int32 idx, Int32 length) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedString (System.String s) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteEscapedString (System.String text, Boolean isAttribute) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteString (System.String text) [0x00000] &lt;br /&gt;
  at System.Xml.XmlWriter.WriteValue (System.String value) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString (Oni.Metadata.MetaString type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaString.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.WriteFields (Oni.Metadata.Field[] fields) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct (Oni.Metadata.MetaStruct type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaStruct.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.WriteFlag () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export (Oni.FileReader reader, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportBINAInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportDescriptors (System.Collections.Generic.List`1 referencedDescriptors, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Exporter.ExportInstanceList (System.Collections.Generic.List`1 descriptors) [0x00000] &lt;br /&gt;
  at Oni.Exporter.Export (Oni.FileManager fileManager, System.String sourceFilePath, System.String filter) [0x00000] &lt;br /&gt;
  at Oni.Program.ExtractXml (System.String[] args) [0x00000] &lt;br /&gt;
  at Oni.Program.Main (System.String[] args) [0x00000]  (1)&lt;br /&gt;
&lt;br /&gt;
Thanks again. [[User:EdT|EdT]] 04:52, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well...My level 3 flag file works. Yours sounds like it is corrupted. Here is what I get when I use your file:&lt;br /&gt;
&lt;br /&gt;
 Reading file C:\Users\Franz Media Center\Desktop\BINACJBOFlag.oni&lt;br /&gt;
 Exporting 1 instance(s) to C:\xml&lt;br /&gt;
 System.ArgumentException: &#039;←&#039;, hexadecimal value 0x1B, is an invalid character.&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriterIndent.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlRawWriter.WriteValue(String value)&lt;br /&gt;
   at System.Xml.XmlWellFormedWriter.WriteValue(String value)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString(MetaString type)&lt;br /&gt;
   at Oni.Metadata.MetaString.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.WriteFields(Field[] fields)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct(MetaStruct type)&lt;br /&gt;
   at Oni.Metadata.MetaStruct.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.WriteFlag()&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.Export()&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportBINAInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportDescriptors(List`1 referencedDescriptors, XmlWriter writer)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Exporter.ExportInstanceList(List`1 descriptors)&lt;br /&gt;
   at Oni.Exporter.Export(FileManager fileManager, String sourceFilePath, String filter)&lt;br /&gt;
   at Oni.Program.ExtractXml(String[] args)&lt;br /&gt;
   at Oni.Program.Main(String[] args)&lt;br /&gt;
&lt;br /&gt;
Between the two error messages, I think you can see what went wrong. :)&lt;br /&gt;
[[User:Gumby|Gumby]] 05:48, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Gumby, can you post your file for comparison? All I can see is that there is an invalid character somewhere in my file. [[User:EdT|EdT]] 06:00, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Yes, there is an invalid character (from XML point of view) in a flag description:&lt;br /&gt;
&lt;br /&gt;
  only one of these end office thingys needs to exist.  Snip one and change the stairwell too?  �2 hrs&lt;br /&gt;
&lt;br /&gt;
That � (0x1B) is the problem because XML does not allow for such characters. &lt;br /&gt;
I&#039;ll make a fix but I have to figure out if there are any other cases where this characters is actually needed and cannot be discarded. Until then you can use a hex editor to replace it with a space.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks for the help.  How did you know where to find the character? In my hexeditor, it simply looked like a period. There are some funny notes in the flag description:&lt;br /&gt;
 This is not the access point you seek, move on (A quote from Star Wars... These are not the droids you seek)&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
Use your hexeditor to search for &amp;quot;1B&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 07:42, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hey, what about adding ieroglyphic support? All ieroglyphic symbols (or hebrew, or hindi) are replaced with &#039;3F&#039; (question mark). --[[User:Demos kratos|demos_kratos]] 20:53, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
In theory it is possible if we create new font files ([[TSFF]], [[TSFT]], [[TSFL]], [[TSGA]]) for each language. In practice I don&#039;t know if this really works. You&#039;d need some sort of tool to generate all those font files and currenly I don&#039;t think such a tool exists. I&#039;d like to add this to OniSplit in the future but currently it is not on my priority list. &lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
OK. Thanx. I&#039;ll be waitin&#039;. --[[User:Demos kratos|demos_kratos]] 21:37, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, I&#039;ve started a simple GUI for OniSplit, check it - [http://demoskratos.ifolder.ru/7931537 OniSplit Gui]&lt;br /&gt;
&lt;br /&gt;
[[User:Demos kratos|demos_kratos]] 19:16, 31 August 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User_talk:Neo&amp;diff=11486</id>
		<title>User talk:Neo</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User_talk:Neo&amp;diff=11486"/>
		<updated>2008-08-30T19:37:01Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am sorry to bother, but this can help to make h2w system look better. When character collides with wall, what REALLY collide ??? For me it seems that for char-&amp;gt;wall collision there is some invisible bounding box. Where is this bounding box, if you know (or correct me if I am wrong). How can I change it? I ask because for me (it is my guess in next sentence, nothing proven ) it seems that this &amp;quot;bounding box&amp;quot; looks like invisible sphere which is around pelvis bone. That is why you can fall and stick your torso/head/legs into next room. Engine ignores bones in char-&amp;gt;wall coll. Is this correct? + please answer if you know how to change it. Thanks a lot in any case&lt;br /&gt;
&lt;br /&gt;
P.S.:Just a curious question, no explanation needed: I know that AI2 powered characters can push away weapons which are on ground. Can it be (from engine-possibilities point of view) that in ONI we should have movable furniture (objects which can be pushed by chars)?&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 11:34, 20 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... many questions, time for a brain dump :)&lt;br /&gt;
&lt;br /&gt;
;Character - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always sphere tree-quad collision. You probably know that the sphere tree can be seen with &amp;quot;chr_debug_sphere=1&amp;quot;. One thing to note about that sphere tree is that it always &amp;quot;stays up&amp;quot; (even when the character is fallen). That&#039;s why fallen characters pass through walls, their body gets outside the sphere when that happens. &lt;br /&gt;
&lt;br /&gt;
:As for changing the radius of that sphere tree: it may be possible but it won&#039;t solve anything.&lt;br /&gt;
&lt;br /&gt;
;Character - Floor collision&lt;br /&gt;
&lt;br /&gt;
:characters also have a special function to detect floor collision which checks if a 3x3 quad intersects the floor. This is done to avoid &amp;quot;strange&amp;quot; sinking when the sphere&#039;s lowest point goes outside the floor. This is the probable cause why sometimes fallen characters hang on an edge (their 3x3 quad still intersects the floor) or fall of the edge even if their feet or head are still on the floor (the 3x3 quad is too small to cover the feet and head when the character is fallen).&lt;br /&gt;
&lt;br /&gt;
;Particle - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always point-quad collision (the point is the position of the particle)&lt;br /&gt;
&lt;br /&gt;
;Particle - Object collision (where object is anything with a physics context that supports collision: characters, [[OBOA]] objects, powerups, weapons)&lt;br /&gt;
&lt;br /&gt;
:this can be sphere-obbox or sphere-sphere collision depending on what the object has (obbox or sphere tree). The radius of the particle sphere is taken from Collision Radius property of the particle class. It can be 0 and then the collision degenerates to point-obbox/point-sphere collision.&lt;br /&gt;
&lt;br /&gt;
;Environment collision (general)&lt;br /&gt;
&lt;br /&gt;
:The engine can only do point-quad and spheretree-quad collision detection. &lt;br /&gt;
&lt;br /&gt;
;Object collision (general)&lt;br /&gt;
&lt;br /&gt;
:All objects (that have a physics context) have a sphere tree attached to them and some objects created through OBOA also have an obbox.&lt;br /&gt;
&lt;br /&gt;
;Moveable furniture&lt;br /&gt;
&lt;br /&gt;
:Yes and no. It can be done to some extent using [[OBOA]]. &lt;br /&gt;
&lt;br /&gt;
:Basically an OBOA object can be pushed if it&#039;s not animated (no OBAN link) and it has &amp;quot;physics type&amp;quot; 2 or 4 (I don&#039;t know what&#039;s the difference).&lt;br /&gt;
&lt;br /&gt;
:What doesn&#039;t work:&lt;br /&gt;
:*characters fall through objects (the character-floor collision function does not see objects)&lt;br /&gt;
:*since the environment only supports sphere-quad collision you tipically cannot push an object very close to the wall (unless of course the object itself is a sphere or close enough to one)&lt;br /&gt;
:*objects can fall but because of sphere-quad collision detection they&#039;ll get stuck somewhere above the floor&lt;br /&gt;
:*an object can fall on another object but a third object will fall through both of them; in general multiple object interaction is buggy&lt;br /&gt;
:*if I remember correctly there is 128 physics context limit. That means the number of active characters + objects + powerups and whatever else needs a physics context is limited to 128. Anyway it will very likely crawl before you reach that limit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta4.zip Beta4]&lt;br /&gt;
&lt;br /&gt;
Oh boy, were Mono developers lazy or not... :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you! BINACJBOCharacter.oni works fine, now to take a look at the melee profile file...&lt;br /&gt;
&lt;br /&gt;
Ed&lt;br /&gt;
&lt;br /&gt;
The melee profile is much more understandable. The moves are clearly identified. So  I assume, now we will be able to create a new melee profile or at the very least add new techniques to an existing profile.&lt;br /&gt;
&lt;br /&gt;
Again, THANK YOU on your awesome work on OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:17, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
2 notes about melee:&lt;br /&gt;
&lt;br /&gt;
:*I&#039;ve yet to make move types to show up as names instead of numbers. Remebering all those is not fun.&lt;br /&gt;
:*The original melee files contain what appears to be orphaned moves. Since currently moves are exported as children of techniques the orphaned moves are not exported. I don&#039;t think those moves are used by the engine but if someone knows otherwise I&#039;ll see what can be done to export them too.&lt;br /&gt;
&lt;br /&gt;
Other stuff:&lt;br /&gt;
&lt;br /&gt;
:*The general xml export was updated to export names instead of number for several enum and flags fields. For example the class of a dialog item in [[WMDD]] was previously exported as a number but now it&#039;s a string like Button, Edit etc. Flags fields are exported as a list of names (names separated by whitespace) like in this WMDD state field:&lt;br /&gt;
  &lt;br /&gt;
   &amp;lt;State&amp;gt;Visible Disabled&amp;lt;/State&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This simplifies editing but currently there is now way to discover what names are available (unless you take a look at the source code :)). I&#039;ll try to make OniSplit display such a list as part of the help or something.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey Neo, do you have any idea what the flag &amp;quot;Boss&amp;quot; does?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:02, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Not sure. It mai be connected to ai2_boss_battle script variable. And I&#039;m not sure those flags are 100% correct, it looks to me that Boss/NoAutoDrop/Omniscient are mixed up.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hello again. I am thinking of writing the Windows GUI for Onisplit. What scripting language would you suggest I write it in?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hmm... the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :). There are Perl/Python/Ruby etc. implementations for Windows but I have no idea if they can be used to make a GUI. It&#039;s likely that you&#039;ll have to use one of the &amp;quot;usual&amp;quot; languages: C/C++/C#/VB/Java/Delphi...&lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;ll do a GUI one day but it&#039;s not on my priority list, I&#039;m more interested in making importers/exporters for now.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
   the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :)&lt;br /&gt;
&lt;br /&gt;
You can also try AutoIt3: http://www.autoitscript.com/autoit3/&lt;br /&gt;
&lt;br /&gt;
It&#039;s easy to create a GUI with both of them, but AutoIt3 can&#039;t work with binary files, only text files (as far as I know). And in case of tcl/tk: It&#039;s a pain to install it. I tried and failed.&lt;br /&gt;
&lt;br /&gt;
[[User:Ssg|Ssg]] 11:44, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve worked with AutoIt3 before and I would recommend it. The GUI creation functions are both powerful and easy to use. It can work with binary files using:&lt;br /&gt;
 FileOpen(&amp;quot;filename&amp;quot;, 16)&lt;br /&gt;
If you need any help with AutoIt post a message on my talk page.&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Why would I want to open binary files? O_o. For detecting the type of .oni file I give it?&lt;br /&gt;
I have not worked with AutoIt3 before, but it doesn&#039;t look too hard, and I&#039;m sure my conglamerated knowledge of random scripting languages will help me...&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 16:57, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
http://gumby701.googlepages.com/gui.exe&lt;br /&gt;
&lt;br /&gt;
Look, its a GUI! That doesn&#039;t do anything...&lt;br /&gt;
&lt;br /&gt;
...and needs properly aligned and formatted...:D&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:23, 24 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One more beta for OBJC: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta5.zip Beta 5].&lt;br /&gt;
&lt;br /&gt;
Fixed character flags and added move type names and parameters names to melee (instead of numbers and Param0, Param1 etc.).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
This makes reading the melee much easier.  I wish I had some time to play around with making a new melee profile.&lt;br /&gt;
&lt;br /&gt;
Is this a bug or just an error in the original code. &lt;br /&gt;
In the NINJA_Easy profile I found this technique:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Technique&amp;gt;&lt;br /&gt;
 &amp;lt;Name&amp;gt;Back Kick&amp;lt;/Name&amp;gt;&lt;br /&gt;
 &amp;lt;Flags /&amp;gt;&lt;br /&gt;
 &amp;lt;Weight&amp;gt;40&amp;lt;/Weight&amp;gt;&lt;br /&gt;
 &amp;lt;Offset_0660&amp;gt;10&amp;lt;/Offset_0660&amp;gt;&lt;br /&gt;
 &amp;lt;RepeatDelay&amp;gt;0&amp;lt;/RepeatDelay&amp;gt;&lt;br /&gt;
 &amp;lt;Moves&amp;gt;&lt;br /&gt;
 &amp;lt;Position Type=&amp;quot;CloseBack&amp;quot; MinRunInDist=&amp;quot;0&amp;quot; MaxRunInDist=&amp;quot;10&amp;quot; ToleranceRange=&amp;quot;4.5&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Attack Type=&amp;quot;PB&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/Moves&amp;gt;&lt;br /&gt;
 &amp;lt;/Technique&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Even though it says Back Kick, the attack is Punch Back.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
The wiki has some pages about various melee profiles and it contains the same thing: [[OBD:BINA/OBJC/MELE/NINJA]]. So either it is just a mistake in the melee profile or the move type wiki tables are wrong, I&#039;ll have to check with the executable.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey. I got a bit of the Windows GUI done. It wasn&#039;t too hard...and tell me if the icons arent there (either for the explorer icon, or the one in the top right corner)&lt;br /&gt;
&lt;br /&gt;
http://gumby.oni2.net/GUI/LevelRecombine.exe&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]]&lt;br /&gt;
&lt;br /&gt;
Yes, the icons are OK. But is it supposed to do anything? That recombine button appears to have no effect.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I was looking at the attack moves on this page: http://wiki.oni2.net/OBD:BINA/OBJC/MELE/MoveList&lt;br /&gt;
And I gave one a try, Attack Move #28 KF KF, but got an error in OniSplit.&lt;br /&gt;
&lt;br /&gt;
Edit: Cleaning up.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 03:56, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
It&#039;s KF_KF, I cannot have spaces in those names.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks, now do you think the names of the moves on the MoveList page should match the ones in OniSplit?&lt;br /&gt;
For example on the MoveList page it has &#039;&#039;&#039;Throw-P Behind Disarm&#039;&#039;&#039; but OniSplit has it as &#039;&#039;&#039;P_BehindDisarm&#039;&#039;&#039;.&lt;br /&gt;
There are many differences between the MoveList and OniSplit syntax.&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure others will have the same issue as they start modifying the melee profile.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 16:16, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, spaces and - are not allowed in there. As for the Throw- prefix I just removed because it&#039;s kind of dumb to write &amp;lt;Throw Type=&amp;quot;Throw_P_BehindDisarn&amp;quot;.../&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The best I can do is to make sure that space is consistenly converted to _ so instead of RunLeft you get Run_Left which is closer to that table.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I think we should change the syntax on the wiki to match OniSplit. Like for example change the wiki entry Throw-P Behind Disarm to P_BehindDisarm.  The reason for this is when we want to modify the melee profile, we will look at the wiki and use the syntax there and put it in OniSplit, then we get errors.  But if the wiki has the syntax the OniSplit will use, that will eliminate the problem.&lt;br /&gt;
&lt;br /&gt;
Is there a way to get the moves syntax from OniSplit?  Then I can start updating the wiki.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 22:48, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18.zip OniSplit 0.9.18]&lt;br /&gt;
&lt;br /&gt;
I added a &amp;quot;-help enums&amp;quot; option which dumps a list with all enums and flags used in XML files. Since otherwise it seems to work fine I dropped the &amp;quot;beta&amp;quot; label.&lt;br /&gt;
&lt;br /&gt;
Feel free to update the wiki if you want but I&#039;d say to leave it like it is. The wiki is about Oni internals, not about OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I had an interesting idea today. If the only difference between a .dat file and a .oni file is that in a .oni file the .raw entries and .sep entries are stored at the end of the file, it might be possible to write a small engine hack which allows Oni to load .oni files directly as level plugins. The problem is, I&#039;m not sure whether it would be useful or possible yet.&lt;br /&gt;
&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:56, 2 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, in theory it is possible but:&lt;br /&gt;
- we may need to add the raw/sep parts at the end of existing .dat files too because supporting both styles of loading raw/sep is more difficult to implement&lt;br /&gt;
- what about Mac? I may as well rewrite all the .dat loader and replace the original one by means of vtuneapi.dll/daodan but I don&#039;t know how new code can be loaded on Macs.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
So what will you be working on next?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:23, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Don&#039;t know, it depends on how much free time I have and my mood :).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, I remember you wrote about having a folder inside the levelX_Final folder that will not be included when recompiling, I must be blind, I can&#039;t seem to find it.  What was the name for it?&lt;br /&gt;
&lt;br /&gt;
Any chance that you can find out how to add more level plugins for the Mac version.  Since Oni originally was going to have more levels, the Mac engine should be able to handle more levels without crashing.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:48, 10 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That directory is called noimport or _noimport.&lt;br /&gt;
&lt;br /&gt;
Oni may very well had more than 16 levels. For Bungie, who had the source code, it was a matter of changing one line of code to adjust the max number of levels. The story is quite different if you want to change the compiled thing.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi there Neo,&lt;br /&gt;
again I am here to seek your advice, this time it is about AI2, ONCC and MELE. &lt;br /&gt;
&lt;br /&gt;
First of all, I have tested it and it seems that AI2 powered characters can jump (they have attacks from air) but they can do only &#039;&#039;&#039;basic tap jump&#039;&#039;&#039;([[ONCC]], offset 0x010), like if you just tap spacebar. Question is: is there possibility to make them use &#039;&#039;&#039;jetpack timer&#039;&#039;&#039;(to make them &#039;hold spacebar&#039;) in order to jump higher/further ?&lt;br /&gt;
&lt;br /&gt;
Second, if AI2 character is far from you, it runs to you and uses pathfinding mode. With help of pathfinding grid it moves in space, avoids obstacles etc. Question is: Do AI2 characters ignore grid when they have MELE mode on? Do they ignore it completely/partially/they don&#039;t ignore it? I ask because when in MELE mode active, AI2 characters can pursue you even &#039;&#039;&#039;outside&#039;&#039;&#039; area with pathfinding grid, but then they won&#039;t move if you run away from them, but start attacking you(and moving) if you come close to them again. Also, in MELE mode AI2 characters can run across red pathfinding tiles (impassable) but if you get away they get stuck as if they were outside the grid (won&#039;t move until you get close). BUT, there are pathfinding tiles which look like they could be used only for jumping (border 1/2/3/4). And jumping is avilable (as far as I know) only when in MELE mode ^_~. Also, I have tested this: player is in BNV1, standing on top of some box (so he is surrounded by red tiles). AI2 is in BNV2, which is next to BNV1 but there is NO direct transition quad between those two BNVs, only there are &#039;border&#039; tiles in BNV1 near the line between BNV1 and BNV2. Now tell AI2 to attack player. If player is too far from AI2 character, AI2 will use pathfinding and it will take some long way in order to get to the player. But if player is close enough AND AI2 has in MELE some jumping attack, this AI2 will run towards border and JUMP directly to the player. So it looks like border tiles indicate space where jump attacks are prefered in order to reach enemy. Also, in devmode if you bring MELE debugging window, you can see(if AI2 is in &#039;border&#039; tiles) that next to other info about technique (like DELAY, UNBLOCKED etc.) there are also informations WORRY-FWD and DANGER-FWD which looks like they correspond to blue (border) and then orange (danger) grids.&lt;br /&gt;
&lt;br /&gt;
So question(s) for this part once again: is pathfinding grid ignored by AI2 when in MELE? If not, is there relation between some pathfinding tiles (border, danger) and MELE messages WORRY-FWD, DANGER-FWD ??? Next, how these tiles affect (if they affect) MELE attacks selection? Do they make AI2 prefer jumping attacks?&lt;br /&gt;
&lt;br /&gt;
All these questions have their sense. I am tired of being able to escape unarmed enemy just by simple jump onto nearest obstacle. I have tried to make AI2s jump, but they can do only tap jump which is not too high and they cannot jump too far + if you escape from them, they get stuck. So if You can answer me, I will see what I can do. I have done some exeriments already (see [http://www.youtube.com/watch?v=rwF0FynUhgQ THIS] video) but it is not enough IMO. Thanks for any info.&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 21:03, 14 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The short answer: I don&#039;t know.&lt;br /&gt;
&lt;br /&gt;
The long answer:&lt;br /&gt;
I haven&#039;t looked too much into Oni&#039;s AI code partly because it is quite large and complex (in fact it&#039;s probably the largest piece of code in Oni). I don&#039;t think AI can do more than simple tap jump but that really depends on how the AI controls the character:&lt;br /&gt;
&lt;br /&gt;
:*simply tell the character to execute an animation: that makes doing more than tap jumps impossible because there isn&#039;t a special animation for &amp;quot;jetpack&amp;quot; jump.&lt;br /&gt;
:*simulate keypresses and mouse input: that means that it might possible but the AI needs to simulate holding the jump key which I have no idea if it can.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;simulate keypresses&amp;quot; method is more likely to be used in Oni. In fact I know for sure it does simulate some keypresses but I don&#039;t know if that&#039;s the only way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pathfinding &amp;amp; stuff: I know there is something called &amp;quot;local movement&amp;quot; which may be what happens when the character is close by. This code seems to do character - environment collision detection so it may be true the pathfinding grid is ignored sometimes bacause there&#039;s not much point in AI doing collision detection if it always used the grid.&lt;br /&gt;
&lt;br /&gt;
Nice video anyway :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, can you program OniSplit so that it can import ONWC?  Let&#039;s say I wanted to change the 3D model of a current weapon, how could I import that 3D model?&lt;br /&gt;
Also, didn&#039;t you at one time mention about importing of M3GM with its texture map in an easier fashion?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:38, 24 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/ONWC: you can do that already. Export the ONWC to xml, remove all the M3GM related stuff (M3GM, PNTA, VCRA, TXCA) and replace the M3GM id in ONWC with a name of your choice:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;M3GMgun_x&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;#2&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can create M3GM files to be used with ONWC as usual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/TXMP: yes, I have some plans but right now nothing is implemented.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you!&lt;br /&gt;
&lt;br /&gt;
If you have some time...&lt;br /&gt;
In the Mac Oni engine, there are a few strings I&#039;ve always wondered about: at offset 0x1D9D55InitializeDeveloperKeys,  0x1D9f2C UnbindDeveloperKeys, 0x1DE24C DeveloperAccess, 0x173BBC, bad parameters on chr_location.  Do the first 3 refer to Developer Mode or something else? The last one about chr_location, could that script command could somehow be enabled?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
You probably mean: _LIrInitializeDeveloperKeys, _LIrUnbindDeveloperKeys and _ONgDeveloperAccess. The _LIr* names are functions that are supposed to be called from the &amp;quot;cheater&amp;quot; code. _ONgDevloperAccess is a variable that controls the calling of those 2 functions, it&#039;s basically the equivalent of &amp;quot;the day is mine&amp;quot; cheat.&lt;br /&gt;
&lt;br /&gt;
bad parameters on chr_location is printed from the function that set the location of a character (_iSetAnyCharacterLocation or something like that). In theory it can be made to work by registering it with the scripting engine but it&#039;s rather complicated.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you. Oh well, I guess the Mac engine will remain limited compared to the PC engine.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:40, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
There is a user on OCF that has a problem with OniSplit http://oni.bungie.org/community/forum/viewtopic.php?pid=8417&lt;br /&gt;
Can you take a look and post the answer here, then I&#039;ll make a reply on OCF.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 15:53, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... absolutely no idea. Since it works for me and others I assume it&#039;s something about his game files. Maybe some file is corrupted or he has some strange version I have never seen before.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you.&lt;br /&gt;
I exported ONWCw1_tap as .xml, and I was comparing the output with http://wiki.oni2.net/ONWC.  &lt;br /&gt;
One thing I can&#039;t find are the weapon options 0x0D4 to 0x0D6 in the xml. I want to enable secondary fire but can&#039;t figure that out. Not for this weapon, but a new one.&lt;br /&gt;
I got the model for the assault rifle from Halo, I used as a base the chaingun weapon, but now want to add grenades as secondary fire.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:10, 27 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I found it: &amp;lt;Flags&amp;gt;180272&amp;lt;/Flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 05:04, 28 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
OniSplit v0.9.21&lt;br /&gt;
&lt;br /&gt;
XML export/import for particles added.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I&#039;ve a bug for you. I converted BINA3RAPsuperglow_e01 into xml and back into oni again. The link &amp;quot;h2h_murglow_e02&amp;quot; is missing now.&lt;br /&gt;
[http://paradox.oni2.net/particle_bug_report.rar Here] are the files. (The blue glow can be seen only for one or two seconds.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:04, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Fixed&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.22.zip OniSplit v0.9.22]&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hm, it wasn&#039;t the murglow-thingy but you fixed it whatever it was, thanks.&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:54, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The particle are still a bit too big. [http://paradox.oni2.net/particle_bug_report_2.rar Here] are the files and screenshots. (Only converted to xml and back again.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 18:34, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Paradox, it might help if you provided a proper link ^_^. Have you tried reducing the size? &amp;gt;_&amp;gt; (Though that is probably the issue you are having, not being able to do that :P)&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:47, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I forgot the file suffix. Thanks for checking. ^_^&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 19:08, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Just noticed there is a new version 0.9.23, what has changed?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:59, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:There was an erroneous field type in [[OBAN]], which I discovered in XML while setting up the DeLorean for the trailer.&lt;br /&gt;
::[[User:Geyser|geyser]] 05:57, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Particle size fixed: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.24.zip OniSplit v0.9.24]&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Just curious, do you have a list of binary data files that can be exported and imported as .xml?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:15, 25 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That&#039;s quite simple: all [[OBD:BINA/OBJC|object collections]] and [[OBD:BINA/PAR3|particles]].&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you, but, I&#039;d appreciate it if/when you have time to look into this. I got an error when trying to export BINACJBOFlag.oni from level3. I have been able to export the same file from other levels. I wanted to add a few more flags, since the Mac doesn&#039;t support chr_location.&lt;br /&gt;
&lt;br /&gt;
Here is my level3 file: http://edt.oni2.net/OniSplit/level3BINACJBOFlag.oni.zip&lt;br /&gt;
&lt;br /&gt;
The error message:&lt;br /&gt;
&lt;br /&gt;
  System.ArgumentException: Input contains invalid character at 94 : &amp;amp;#x1B;&lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedBuffer (System.Char[] text, Int32 idx, Int32 length) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedString (System.String s) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteEscapedString (System.String text, Boolean isAttribute) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteString (System.String text) [0x00000] &lt;br /&gt;
  at System.Xml.XmlWriter.WriteValue (System.String value) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString (Oni.Metadata.MetaString type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaString.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.WriteFields (Oni.Metadata.Field[] fields) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct (Oni.Metadata.MetaStruct type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaStruct.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.WriteFlag () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export (Oni.FileReader reader, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportBINAInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportDescriptors (System.Collections.Generic.List`1 referencedDescriptors, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Exporter.ExportInstanceList (System.Collections.Generic.List`1 descriptors) [0x00000] &lt;br /&gt;
  at Oni.Exporter.Export (Oni.FileManager fileManager, System.String sourceFilePath, System.String filter) [0x00000] &lt;br /&gt;
  at Oni.Program.ExtractXml (System.String[] args) [0x00000] &lt;br /&gt;
  at Oni.Program.Main (System.String[] args) [0x00000]  (1)&lt;br /&gt;
&lt;br /&gt;
Thanks again. [[User:EdT|EdT]] 04:52, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well...My level 3 flag file works. Yours sounds like it is corrupted. Here is what I get when I use your file:&lt;br /&gt;
&lt;br /&gt;
 Reading file C:\Users\Franz Media Center\Desktop\BINACJBOFlag.oni&lt;br /&gt;
 Exporting 1 instance(s) to C:\xml&lt;br /&gt;
 System.ArgumentException: &#039;←&#039;, hexadecimal value 0x1B, is an invalid character.&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriterIndent.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlRawWriter.WriteValue(String value)&lt;br /&gt;
   at System.Xml.XmlWellFormedWriter.WriteValue(String value)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString(MetaString type)&lt;br /&gt;
   at Oni.Metadata.MetaString.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.WriteFields(Field[] fields)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct(MetaStruct type)&lt;br /&gt;
   at Oni.Metadata.MetaStruct.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.WriteFlag()&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.Export()&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportBINAInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportDescriptors(List`1 referencedDescriptors, XmlWriter writer)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Exporter.ExportInstanceList(List`1 descriptors)&lt;br /&gt;
   at Oni.Exporter.Export(FileManager fileManager, String sourceFilePath, String filter)&lt;br /&gt;
   at Oni.Program.ExtractXml(String[] args)&lt;br /&gt;
   at Oni.Program.Main(String[] args)&lt;br /&gt;
&lt;br /&gt;
Between the two error messages, I think you can see what went wrong. :)&lt;br /&gt;
[[User:Gumby|Gumby]] 05:48, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Gumby, can you post your file for comparison? All I can see is that there is an invalid character somewhere in my file. [[User:EdT|EdT]] 06:00, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Yes, there is an invalid character (from XML point of view) in a flag description:&lt;br /&gt;
&lt;br /&gt;
  only one of these end office thingys needs to exist.  Snip one and change the stairwell too?  �2 hrs&lt;br /&gt;
&lt;br /&gt;
That � (0x1B) is the problem because XML does not allow for such characters. &lt;br /&gt;
I&#039;ll make a fix but I have to figure out if there are any other cases where this characters is actually needed and cannot be discarded. Until then you can use a hex editor to replace it with a space.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks for the help.  How did you know where to find the character? In my hexeditor, it simply looked like a period. There are some funny notes in the flag description:&lt;br /&gt;
 This is not the access point you seek, move on (A quote from Star Wars... These are not the droids you seek)&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
Use your hexeditor to search for &amp;quot;1B&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 07:42, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hey, what about adding ieroglyphic support? All ieroglyphic symbols (or hebrew, or hindi) are replaced with &#039;3F&#039; (question mark). --[[User:Demos kratos|demos_kratos]] 20:53, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
In theory it is possible if we create new font files ([[TSFF]], [[TSFT]], [[TSFL]], [[TSGA]]) for each language. In practice I don&#039;t know if this really works. You&#039;d need some sort of tool to generate all those font files and currenly I don&#039;t think such a tool exists. I&#039;d like to add this to OniSplit in the future but currently it is not on my priority list. &lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
OK. Thanx. I&#039;ll be waitin&#039;. --[[User:Demos kratos|demos_kratos]] 21:37, 30 August 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User_talk:Neo&amp;diff=11481</id>
		<title>User talk:Neo</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User_talk:Neo&amp;diff=11481"/>
		<updated>2008-08-30T18:53:31Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am sorry to bother, but this can help to make h2w system look better. When character collides with wall, what REALLY collide ??? For me it seems that for char-&amp;gt;wall collision there is some invisible bounding box. Where is this bounding box, if you know (or correct me if I am wrong). How can I change it? I ask because for me (it is my guess in next sentence, nothing proven ) it seems that this &amp;quot;bounding box&amp;quot; looks like invisible sphere which is around pelvis bone. That is why you can fall and stick your torso/head/legs into next room. Engine ignores bones in char-&amp;gt;wall coll. Is this correct? + please answer if you know how to change it. Thanks a lot in any case&lt;br /&gt;
&lt;br /&gt;
P.S.:Just a curious question, no explanation needed: I know that AI2 powered characters can push away weapons which are on ground. Can it be (from engine-possibilities point of view) that in ONI we should have movable furniture (objects which can be pushed by chars)?&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 11:34, 20 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... many questions, time for a brain dump :)&lt;br /&gt;
&lt;br /&gt;
;Character - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always sphere tree-quad collision. You probably know that the sphere tree can be seen with &amp;quot;chr_debug_sphere=1&amp;quot;. One thing to note about that sphere tree is that it always &amp;quot;stays up&amp;quot; (even when the character is fallen). That&#039;s why fallen characters pass through walls, their body gets outside the sphere when that happens. &lt;br /&gt;
&lt;br /&gt;
:As for changing the radius of that sphere tree: it may be possible but it won&#039;t solve anything.&lt;br /&gt;
&lt;br /&gt;
;Character - Floor collision&lt;br /&gt;
&lt;br /&gt;
:characters also have a special function to detect floor collision which checks if a 3x3 quad intersects the floor. This is done to avoid &amp;quot;strange&amp;quot; sinking when the sphere&#039;s lowest point goes outside the floor. This is the probable cause why sometimes fallen characters hang on an edge (their 3x3 quad still intersects the floor) or fall of the edge even if their feet or head are still on the floor (the 3x3 quad is too small to cover the feet and head when the character is fallen).&lt;br /&gt;
&lt;br /&gt;
;Particle - Wall collision&lt;br /&gt;
&lt;br /&gt;
:this is always point-quad collision (the point is the position of the particle)&lt;br /&gt;
&lt;br /&gt;
;Particle - Object collision (where object is anything with a physics context that supports collision: characters, [[OBOA]] objects, powerups, weapons)&lt;br /&gt;
&lt;br /&gt;
:this can be sphere-obbox or sphere-sphere collision depending on what the object has (obbox or sphere tree). The radius of the particle sphere is taken from Collision Radius property of the particle class. It can be 0 and then the collision degenerates to point-obbox/point-sphere collision.&lt;br /&gt;
&lt;br /&gt;
;Environment collision (general)&lt;br /&gt;
&lt;br /&gt;
:The engine can only do point-quad and spheretree-quad collision detection. &lt;br /&gt;
&lt;br /&gt;
;Object collision (general)&lt;br /&gt;
&lt;br /&gt;
:All objects (that have a physics context) have a sphere tree attached to them and some objects created through OBOA also have an obbox.&lt;br /&gt;
&lt;br /&gt;
;Moveable furniture&lt;br /&gt;
&lt;br /&gt;
:Yes and no. It can be done to some extent using [[OBOA]]. &lt;br /&gt;
&lt;br /&gt;
:Basically an OBOA object can be pushed if it&#039;s not animated (no OBAN link) and it has &amp;quot;physics type&amp;quot; 2 or 4 (I don&#039;t know what&#039;s the difference).&lt;br /&gt;
&lt;br /&gt;
:What doesn&#039;t work:&lt;br /&gt;
:*characters fall through objects (the character-floor collision function does not see objects)&lt;br /&gt;
:*since the environment only supports sphere-quad collision you tipically cannot push an object very close to the wall (unless of course the object itself is a sphere or close enough to one)&lt;br /&gt;
:*objects can fall but because of sphere-quad collision detection they&#039;ll get stuck somewhere above the floor&lt;br /&gt;
:*an object can fall on another object but a third object will fall through both of them; in general multiple object interaction is buggy&lt;br /&gt;
:*if I remember correctly there is 128 physics context limit. That means the number of active characters + objects + powerups and whatever else needs a physics context is limited to 128. Anyway it will very likely crawl before you reach that limit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta4.zip Beta4]&lt;br /&gt;
&lt;br /&gt;
Oh boy, were Mono developers lazy or not... :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you! BINACJBOCharacter.oni works fine, now to take a look at the melee profile file...&lt;br /&gt;
&lt;br /&gt;
Ed&lt;br /&gt;
&lt;br /&gt;
The melee profile is much more understandable. The moves are clearly identified. So  I assume, now we will be able to create a new melee profile or at the very least add new techniques to an existing profile.&lt;br /&gt;
&lt;br /&gt;
Again, THANK YOU on your awesome work on OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:17, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
2 notes about melee:&lt;br /&gt;
&lt;br /&gt;
:*I&#039;ve yet to make move types to show up as names instead of numbers. Remebering all those is not fun.&lt;br /&gt;
:*The original melee files contain what appears to be orphaned moves. Since currently moves are exported as children of techniques the orphaned moves are not exported. I don&#039;t think those moves are used by the engine but if someone knows otherwise I&#039;ll see what can be done to export them too.&lt;br /&gt;
&lt;br /&gt;
Other stuff:&lt;br /&gt;
&lt;br /&gt;
:*The general xml export was updated to export names instead of number for several enum and flags fields. For example the class of a dialog item in [[WMDD]] was previously exported as a number but now it&#039;s a string like Button, Edit etc. Flags fields are exported as a list of names (names separated by whitespace) like in this WMDD state field:&lt;br /&gt;
  &lt;br /&gt;
   &amp;lt;State&amp;gt;Visible Disabled&amp;lt;/State&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This simplifies editing but currently there is now way to discover what names are available (unless you take a look at the source code :)). I&#039;ll try to make OniSplit display such a list as part of the help or something.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey Neo, do you have any idea what the flag &amp;quot;Boss&amp;quot; does?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:02, 22 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Not sure. It mai be connected to ai2_boss_battle script variable. And I&#039;m not sure those flags are 100% correct, it looks to me that Boss/NoAutoDrop/Omniscient are mixed up.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hello again. I am thinking of writing the Windows GUI for Onisplit. What scripting language would you suggest I write it in?&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hmm... the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :). There are Perl/Python/Ruby etc. implementations for Windows but I have no idea if they can be used to make a GUI. It&#039;s likely that you&#039;ll have to use one of the &amp;quot;usual&amp;quot; languages: C/C++/C#/VB/Java/Delphi...&lt;br /&gt;
&lt;br /&gt;
Maybe I&#039;ll do a GUI one day but it&#039;s not on my priority list, I&#039;m more interested in making importers/exporters for now.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
   the only scripting language to do a Windows GUI that comes to mind is Tcl/Tk but you really don&#039;t want to use that :)&lt;br /&gt;
&lt;br /&gt;
You can also try AutoIt3: http://www.autoitscript.com/autoit3/&lt;br /&gt;
&lt;br /&gt;
It&#039;s easy to create a GUI with both of them, but AutoIt3 can&#039;t work with binary files, only text files (as far as I know). And in case of tcl/tk: It&#039;s a pain to install it. I tried and failed.&lt;br /&gt;
&lt;br /&gt;
[[User:Ssg|Ssg]] 11:44, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I&#039;ve worked with AutoIt3 before and I would recommend it. The GUI creation functions are both powerful and easy to use. It can work with binary files using:&lt;br /&gt;
 FileOpen(&amp;quot;filename&amp;quot;, 16)&lt;br /&gt;
If you need any help with AutoIt post a message on my talk page.&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:55, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Why would I want to open binary files? O_o. For detecting the type of .oni file I give it?&lt;br /&gt;
I have not worked with AutoIt3 before, but it doesn&#039;t look too hard, and I&#039;m sure my conglamerated knowledge of random scripting languages will help me...&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 16:57, 23 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
http://gumby701.googlepages.com/gui.exe&lt;br /&gt;
&lt;br /&gt;
Look, its a GUI! That doesn&#039;t do anything...&lt;br /&gt;
&lt;br /&gt;
...and needs properly aligned and formatted...:D&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 02:23, 24 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One more beta for OBJC: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18|_beta5.zip Beta 5].&lt;br /&gt;
&lt;br /&gt;
Fixed character flags and added move type names and parameters names to melee (instead of numbers and Param0, Param1 etc.).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
This makes reading the melee much easier.  I wish I had some time to play around with making a new melee profile.&lt;br /&gt;
&lt;br /&gt;
Is this a bug or just an error in the original code. &lt;br /&gt;
In the NINJA_Easy profile I found this technique:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Technique&amp;gt;&lt;br /&gt;
 &amp;lt;Name&amp;gt;Back Kick&amp;lt;/Name&amp;gt;&lt;br /&gt;
 &amp;lt;Flags /&amp;gt;&lt;br /&gt;
 &amp;lt;Weight&amp;gt;40&amp;lt;/Weight&amp;gt;&lt;br /&gt;
 &amp;lt;Offset_0660&amp;gt;10&amp;lt;/Offset_0660&amp;gt;&lt;br /&gt;
 &amp;lt;RepeatDelay&amp;gt;0&amp;lt;/RepeatDelay&amp;gt;&lt;br /&gt;
 &amp;lt;Moves&amp;gt;&lt;br /&gt;
 &amp;lt;Position Type=&amp;quot;CloseBack&amp;quot; MinRunInDist=&amp;quot;0&amp;quot; MaxRunInDist=&amp;quot;10&amp;quot; ToleranceRange=&amp;quot;4.5&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;Attack Type=&amp;quot;PB&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/Moves&amp;gt;&lt;br /&gt;
 &amp;lt;/Technique&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Even though it says Back Kick, the attack is Punch Back.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
The wiki has some pages about various melee profiles and it contains the same thing: [[OBD:BINA/OBJC/MELE/NINJA]]. So either it is just a mistake in the melee profile or the move type wiki tables are wrong, I&#039;ll have to check with the executable.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hey. I got a bit of the Windows GUI done. It wasn&#039;t too hard...and tell me if the icons arent there (either for the explorer icon, or the one in the top right corner)&lt;br /&gt;
&lt;br /&gt;
http://gumby.oni2.net/GUI/LevelRecombine.exe&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]]&lt;br /&gt;
&lt;br /&gt;
Yes, the icons are OK. But is it supposed to do anything? That recombine button appears to have no effect.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I was looking at the attack moves on this page: http://wiki.oni2.net/OBD:BINA/OBJC/MELE/MoveList&lt;br /&gt;
And I gave one a try, Attack Move #28 KF KF, but got an error in OniSplit.&lt;br /&gt;
&lt;br /&gt;
Edit: Cleaning up.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 03:56, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
It&#039;s KF_KF, I cannot have spaces in those names.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks, now do you think the names of the moves on the MoveList page should match the ones in OniSplit?&lt;br /&gt;
For example on the MoveList page it has &#039;&#039;&#039;Throw-P Behind Disarm&#039;&#039;&#039; but OniSplit has it as &#039;&#039;&#039;P_BehindDisarm&#039;&#039;&#039;.&lt;br /&gt;
There are many differences between the MoveList and OniSplit syntax.&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure others will have the same issue as they start modifying the melee profile.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 16:16, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, spaces and - are not allowed in there. As for the Throw- prefix I just removed because it&#039;s kind of dumb to write &amp;lt;Throw Type=&amp;quot;Throw_P_BehindDisarn&amp;quot;.../&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The best I can do is to make sure that space is consistenly converted to _ so instead of RunLeft you get Run_Left which is closer to that table.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I think we should change the syntax on the wiki to match OniSplit. Like for example change the wiki entry Throw-P Behind Disarm to P_BehindDisarm.  The reason for this is when we want to modify the melee profile, we will look at the wiki and use the syntax there and put it in OniSplit, then we get errors.  But if the wiki has the syntax the OniSplit will use, that will eliminate the problem.&lt;br /&gt;
&lt;br /&gt;
Is there a way to get the moves syntax from OniSplit?  Then I can start updating the wiki.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 22:48, 30 June 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.18.zip OniSplit 0.9.18]&lt;br /&gt;
&lt;br /&gt;
I added a &amp;quot;-help enums&amp;quot; option which dumps a list with all enums and flags used in XML files. Since otherwise it seems to work fine I dropped the &amp;quot;beta&amp;quot; label.&lt;br /&gt;
&lt;br /&gt;
Feel free to update the wiki if you want but I&#039;d say to leave it like it is. The wiki is about Oni internals, not about OniSplit.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I had an interesting idea today. If the only difference between a .dat file and a .oni file is that in a .oni file the .raw entries and .sep entries are stored at the end of the file, it might be possible to write a small engine hack which allows Oni to load .oni files directly as level plugins. The problem is, I&#039;m not sure whether it would be useful or possible yet.&lt;br /&gt;
&lt;br /&gt;
[[User:RossyMiles|rossy]] 12:56, 2 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well, in theory it is possible but:&lt;br /&gt;
- we may need to add the raw/sep parts at the end of existing .dat files too because supporting both styles of loading raw/sep is more difficult to implement&lt;br /&gt;
- what about Mac? I may as well rewrite all the .dat loader and replace the original one by means of vtuneapi.dll/daodan but I don&#039;t know how new code can be loaded on Macs.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
So what will you be working on next?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:23, 3 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Don&#039;t know, it depends on how much free time I have and my mood :).&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, I remember you wrote about having a folder inside the levelX_Final folder that will not be included when recompiling, I must be blind, I can&#039;t seem to find it.  What was the name for it?&lt;br /&gt;
&lt;br /&gt;
Any chance that you can find out how to add more level plugins for the Mac version.  Since Oni originally was going to have more levels, the Mac engine should be able to handle more levels without crashing.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:48, 10 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That directory is called noimport or _noimport.&lt;br /&gt;
&lt;br /&gt;
Oni may very well had more than 16 levels. For Bungie, who had the source code, it was a matter of changing one line of code to adjust the max number of levels. The story is quite different if you want to change the compiled thing.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hi there Neo,&lt;br /&gt;
again I am here to seek your advice, this time it is about AI2, ONCC and MELE. &lt;br /&gt;
&lt;br /&gt;
First of all, I have tested it and it seems that AI2 powered characters can jump (they have attacks from air) but they can do only &#039;&#039;&#039;basic tap jump&#039;&#039;&#039;([[ONCC]], offset 0x010), like if you just tap spacebar. Question is: is there possibility to make them use &#039;&#039;&#039;jetpack timer&#039;&#039;&#039;(to make them &#039;hold spacebar&#039;) in order to jump higher/further ?&lt;br /&gt;
&lt;br /&gt;
Second, if AI2 character is far from you, it runs to you and uses pathfinding mode. With help of pathfinding grid it moves in space, avoids obstacles etc. Question is: Do AI2 characters ignore grid when they have MELE mode on? Do they ignore it completely/partially/they don&#039;t ignore it? I ask because when in MELE mode active, AI2 characters can pursue you even &#039;&#039;&#039;outside&#039;&#039;&#039; area with pathfinding grid, but then they won&#039;t move if you run away from them, but start attacking you(and moving) if you come close to them again. Also, in MELE mode AI2 characters can run across red pathfinding tiles (impassable) but if you get away they get stuck as if they were outside the grid (won&#039;t move until you get close). BUT, there are pathfinding tiles which look like they could be used only for jumping (border 1/2/3/4). And jumping is avilable (as far as I know) only when in MELE mode ^_~. Also, I have tested this: player is in BNV1, standing on top of some box (so he is surrounded by red tiles). AI2 is in BNV2, which is next to BNV1 but there is NO direct transition quad between those two BNVs, only there are &#039;border&#039; tiles in BNV1 near the line between BNV1 and BNV2. Now tell AI2 to attack player. If player is too far from AI2 character, AI2 will use pathfinding and it will take some long way in order to get to the player. But if player is close enough AND AI2 has in MELE some jumping attack, this AI2 will run towards border and JUMP directly to the player. So it looks like border tiles indicate space where jump attacks are prefered in order to reach enemy. Also, in devmode if you bring MELE debugging window, you can see(if AI2 is in &#039;border&#039; tiles) that next to other info about technique (like DELAY, UNBLOCKED etc.) there are also informations WORRY-FWD and DANGER-FWD which looks like they correspond to blue (border) and then orange (danger) grids.&lt;br /&gt;
&lt;br /&gt;
So question(s) for this part once again: is pathfinding grid ignored by AI2 when in MELE? If not, is there relation between some pathfinding tiles (border, danger) and MELE messages WORRY-FWD, DANGER-FWD ??? Next, how these tiles affect (if they affect) MELE attacks selection? Do they make AI2 prefer jumping attacks?&lt;br /&gt;
&lt;br /&gt;
All these questions have their sense. I am tired of being able to escape unarmed enemy just by simple jump onto nearest obstacle. I have tried to make AI2s jump, but they can do only tap jump which is not too high and they cannot jump too far + if you escape from them, they get stuck. So if You can answer me, I will see what I can do. I have done some exeriments already (see [http://www.youtube.com/watch?v=rwF0FynUhgQ THIS] video) but it is not enough IMO. Thanks for any info.&lt;br /&gt;
&lt;br /&gt;
--[[User:Loser|Loser]] 21:03, 14 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The short answer: I don&#039;t know.&lt;br /&gt;
&lt;br /&gt;
The long answer:&lt;br /&gt;
I haven&#039;t looked too much into Oni&#039;s AI code partly because it is quite large and complex (in fact it&#039;s probably the largest piece of code in Oni). I don&#039;t think AI can do more than simple tap jump but that really depends on how the AI controls the character:&lt;br /&gt;
&lt;br /&gt;
:*simply tell the character to execute an animation: that makes doing more than tap jumps impossible because there isn&#039;t a special animation for &amp;quot;jetpack&amp;quot; jump.&lt;br /&gt;
:*simulate keypresses and mouse input: that means that it might possible but the AI needs to simulate holding the jump key which I have no idea if it can.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;simulate keypresses&amp;quot; method is more likely to be used in Oni. In fact I know for sure it does simulate some keypresses but I don&#039;t know if that&#039;s the only way.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pathfinding &amp;amp; stuff: I know there is something called &amp;quot;local movement&amp;quot; which may be what happens when the character is close by. This code seems to do character - environment collision detection so it may be true the pathfinding grid is ignored sometimes bacause there&#039;s not much point in AI doing collision detection if it always used the grid.&lt;br /&gt;
&lt;br /&gt;
Nice video anyway :)&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Neo, can you program OniSplit so that it can import ONWC?  Let&#039;s say I wanted to change the 3D model of a current weapon, how could I import that 3D model?&lt;br /&gt;
Also, didn&#039;t you at one time mention about importing of M3GM with its texture map in an easier fashion?&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 06:38, 24 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/ONWC: you can do that already. Export the ONWC to xml, remove all the M3GM related stuff (M3GM, PNTA, VCRA, TXCA) and replace the M3GM id in ONWC with a name of your choice:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;M3GMgun_x&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
instead of&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Geometry&amp;gt;#2&amp;lt;/Geometry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can create M3GM files to be used with ONWC as usual.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
M3GM/TXMP: yes, I have some plans but right now nothing is implemented.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you!&lt;br /&gt;
&lt;br /&gt;
If you have some time...&lt;br /&gt;
In the Mac Oni engine, there are a few strings I&#039;ve always wondered about: at offset 0x1D9D55InitializeDeveloperKeys,  0x1D9f2C UnbindDeveloperKeys, 0x1DE24C DeveloperAccess, 0x173BBC, bad parameters on chr_location.  Do the first 3 refer to Developer Mode or something else? The last one about chr_location, could that script command could somehow be enabled?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
You probably mean: _LIrInitializeDeveloperKeys, _LIrUnbindDeveloperKeys and _ONgDeveloperAccess. The _LIr* names are functions that are supposed to be called from the &amp;quot;cheater&amp;quot; code. _ONgDevloperAccess is a variable that controls the calling of those 2 functions, it&#039;s basically the equivalent of &amp;quot;the day is mine&amp;quot; cheat.&lt;br /&gt;
&lt;br /&gt;
bad parameters on chr_location is printed from the function that set the location of a character (_iSetAnyCharacterLocation or something like that). In theory it can be made to work by registering it with the scripting engine but it&#039;s rather complicated.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Thank you. Oh well, I guess the Mac engine will remain limited compared to the PC engine.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:40, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
There is a user on OCF that has a problem with OniSplit http://oni.bungie.org/community/forum/viewtopic.php?pid=8417&lt;br /&gt;
Can you take a look and post the answer here, then I&#039;ll make a reply on OCF.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 15:53, 25 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Umm... absolutely no idea. Since it works for me and others I assume it&#039;s something about his game files. Maybe some file is corrupted or he has some strange version I have never seen before.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you.&lt;br /&gt;
I exported ONWCw1_tap as .xml, and I was comparing the output with http://wiki.oni2.net/ONWC.  &lt;br /&gt;
One thing I can&#039;t find are the weapon options 0x0D4 to 0x0D6 in the xml. I want to enable secondary fire but can&#039;t figure that out. Not for this weapon, but a new one.&lt;br /&gt;
I got the model for the assault rifle from Halo, I used as a base the chaingun weapon, but now want to add grenades as secondary fire.&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:10, 27 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I found it: &amp;lt;Flags&amp;gt;180272&amp;lt;/Flags&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 05:04, 28 July 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
OniSplit v0.9.21&lt;br /&gt;
&lt;br /&gt;
XML export/import for particles added.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
I&#039;ve a bug for you. I converted BINA3RAPsuperglow_e01 into xml and back into oni again. The link &amp;quot;h2h_murglow_e02&amp;quot; is missing now.&lt;br /&gt;
[http://paradox.oni2.net/particle_bug_report.rar Here] are the files. (The blue glow can be seen only for one or two seconds.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:04, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Fixed&lt;br /&gt;
&lt;br /&gt;
[http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.22.zip OniSplit v0.9.22]&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Hm, it wasn&#039;t the murglow-thingy but you fixed it whatever it was, thanks.&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 17:54, 10 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
The particle are still a bit too big. [http://paradox.oni2.net/particle_bug_report_2.rar Here] are the files and screenshots. (Only converted to xml and back again.)&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 18:34, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Paradox, it might help if you provided a proper link ^_^. Have you tried reducing the size? &amp;gt;_&amp;gt; (Though that is probably the issue you are having, not being able to do that :P)&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 18:47, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
I forgot the file suffix. Thanks for checking. ^_^&lt;br /&gt;
&lt;br /&gt;
[[User:Paradox-01|Paradox-01]] 19:08, 11 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Just noticed there is a new version 0.9.23, what has changed?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 04:59, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
:There was an erroneous field type in [[OBAN]], which I discovered in XML while setting up the DeLorean for the trailer.&lt;br /&gt;
::[[User:Geyser|geyser]] 05:57, 12 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Particle size fixed: [http://cid-639aa31296681bfe.skydrive.live.com/self.aspx/Oni/OniSplit/OniSplit|_v0.9.24.zip OniSplit v0.9.24]&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Just curious, do you have a list of binary data files that can be exported and imported as .xml?&lt;br /&gt;
&lt;br /&gt;
[[User:EdT|EdT]] 07:15, 25 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
That&#039;s quite simple: all [[OBD:BINA/OBJC|object collections]] and [[OBD:BINA/PAR3|particles]].&lt;br /&gt;
&lt;br /&gt;
[[User:Neo|Neo]]&lt;br /&gt;
&lt;br /&gt;
Sorry to bother you, but, I&#039;d appreciate it if/when you have time to look into this. I got an error when trying to export BINACJBOFlag.oni from level3. I have been able to export the same file from other levels. I wanted to add a few more flags, since the Mac doesn&#039;t support chr_location.&lt;br /&gt;
&lt;br /&gt;
Here is my level3 file: http://edt.oni2.net/OniSplit/level3BINACJBOFlag.oni.zip&lt;br /&gt;
&lt;br /&gt;
The error message:&lt;br /&gt;
&lt;br /&gt;
  System.ArgumentException: Input contains invalid character at 94 : &amp;amp;#x1B;&lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedBuffer (System.Char[] text, Int32 idx, Int32 length) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteCheckedString (System.String s) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteEscapedString (System.String text, Boolean isAttribute) [0x00000] &lt;br /&gt;
  at System.Xml.XmlTextWriter.WriteString (System.String text) [0x00000] &lt;br /&gt;
  at System.Xml.XmlWriter.WriteValue (System.String value) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString (Oni.Metadata.MetaString type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaString.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.WriteFields (Oni.Metadata.Field[] fields) [0x00000] &lt;br /&gt;
  at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct (Oni.Metadata.MetaStruct type) [0x00000] &lt;br /&gt;
  at Oni.Metadata.MetaStruct.Accept (IMetaTypeVisitor visitor) [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.WriteFlag () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export () [0x00000] &lt;br /&gt;
  at Oni.Xml.ObjcXmlExporter.Export (Oni.FileReader reader, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportBINAInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportDescriptors (System.Collections.Generic.List`1 referencedDescriptors, System.Xml.XmlWriter writer) [0x00000] &lt;br /&gt;
  at Oni.Xml.XmlExporter.ExportInstance (Oni.InstanceDescriptor descriptor) [0x00000] &lt;br /&gt;
  at Oni.Exporter.ExportInstanceList (System.Collections.Generic.List`1 descriptors) [0x00000] &lt;br /&gt;
  at Oni.Exporter.Export (Oni.FileManager fileManager, System.String sourceFilePath, System.String filter) [0x00000] &lt;br /&gt;
  at Oni.Program.ExtractXml (System.String[] args) [0x00000] &lt;br /&gt;
  at Oni.Program.Main (System.String[] args) [0x00000]  (1)&lt;br /&gt;
&lt;br /&gt;
Thanks again. [[User:EdT|EdT]] 04:52, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Well...My level 3 flag file works. Yours sounds like it is corrupted. Here is what I get when I use your file:&lt;br /&gt;
&lt;br /&gt;
 Reading file C:\Users\Franz Media Center\Desktop\BINACJBOFlag.oni&lt;br /&gt;
 Exporting 1 instance(s) to C:\xml&lt;br /&gt;
 System.ArgumentException: &#039;←&#039;, hexadecimal value 0x1B, is an invalid character.&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.InvalidXmlChar(Int32 ch, Byte* pDst, Boolean entitize)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteElementTextBlock(Char* pSrc, Char* pSrcEnd)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriter.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlUtf8RawTextWriterIndent.WriteString(String text)&lt;br /&gt;
   at System.Xml.XmlRawWriter.WriteValue(String value)&lt;br /&gt;
   at System.Xml.XmlWellFormedWriter.WriteValue(String value)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitString(MetaString type)&lt;br /&gt;
   at Oni.Metadata.MetaString.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.WriteFields(Field[] fields)&lt;br /&gt;
   at Oni.Xml.RawXmlExporter.Oni.Metadata.IMetaTypeVisitor.VisitStruct(MetaStruct type)&lt;br /&gt;
   at Oni.Metadata.MetaStruct.Accept(IMetaTypeVisitor visitor)&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.WriteFlag()&lt;br /&gt;
   at Oni.Xml.ObjcXmlExporter.Export()&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportBINAInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportDescriptors(List`1 referencedDescriptors, XmlWriter writer)&lt;br /&gt;
   at Oni.Xml.XmlExporter.ExportInstance(InstanceDescriptor descriptor)&lt;br /&gt;
   at Oni.Exporter.ExportInstanceList(List`1 descriptors)&lt;br /&gt;
   at Oni.Exporter.Export(FileManager fileManager, String sourceFilePath, String filter)&lt;br /&gt;
   at Oni.Program.ExtractXml(String[] args)&lt;br /&gt;
   at Oni.Program.Main(String[] args)&lt;br /&gt;
&lt;br /&gt;
Between the two error messages, I think you can see what went wrong. :)&lt;br /&gt;
[[User:Gumby|Gumby]] 05:48, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Gumby, can you post your file for comparison? All I can see is that there is an invalid character somewhere in my file. [[User:EdT|EdT]] 06:00, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Yes, there is an invalid character (from XML point of view) in a flag description:&lt;br /&gt;
&lt;br /&gt;
  only one of these end office thingys needs to exist.  Snip one and change the stairwell too?  �2 hrs&lt;br /&gt;
&lt;br /&gt;
That � (0x1B) is the problem because XML does not allow for such characters. &lt;br /&gt;
I&#039;ll make a fix but I have to figure out if there are any other cases where this characters is actually needed and cannot be discarded. Until then you can use a hex editor to replace it with a space.&lt;br /&gt;
&lt;br /&gt;
[[User:Neo]]&lt;br /&gt;
&lt;br /&gt;
Thanks for the help.  How did you know where to find the character? In my hexeditor, it simply looked like a period. There are some funny notes in the flag description:&lt;br /&gt;
 This is not the access point you seek, move on (A quote from Star Wars... These are not the droids you seek)&lt;br /&gt;
[[User:EdT|EdT]]&lt;br /&gt;
&lt;br /&gt;
Use your hexeditor to search for &amp;quot;1B&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[User:Gumby|Gumby]] 07:42, 30 August 2008 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hey, what about adding ieroglyphic support? All ieroglyphic symbols (or hebrew, or hindi) are replaced with &#039;3F&#039; (question mark). --[[User:Demos kratos|demos_kratos]] 20:53, 30 August 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=11468</id>
		<title>User:Demos kratos</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=User:Demos_kratos&amp;diff=11468"/>
		<updated>2008-08-29T22:26:44Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: New page: Well, let us pray.. eeeh.. start. ^_^  Image:240.jpg  Name: Stanislav DEMOS_KRATOS Ponomarev  Date of birth: 23.06.1993  Interests: Japanese language, culture and everything like that,...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well, let us pray.. eeeh.. start. ^_^&lt;br /&gt;
&lt;br /&gt;
[[Image:240.jpg]]&lt;br /&gt;
&lt;br /&gt;
Name: Stanislav DEMOS_KRATOS Ponomarev&lt;br /&gt;
&lt;br /&gt;
Date of birth: 23.06.1993&lt;br /&gt;
&lt;br /&gt;
Interests: Japanese language, culture and everything like that, IT, Oni(of course),Oni modding, PASCAL programming, Karate Kyokushinkai.&lt;br /&gt;
&lt;br /&gt;
My favorite phrases are:&lt;br /&gt;
&lt;br /&gt;
It&#039;s bad when you don&#039;t want to do anything coz&#039; you&#039;re lazy. It&#039;s even worse when you&#039;re lazy enough to not want to do nothing. (Me)&lt;br /&gt;
&lt;br /&gt;
Tell me and I&#039;ll forget. Show me and I&#039;ll remember. Make me do this and I&#039;ll understand. (Confucius, not me)&lt;br /&gt;
&lt;br /&gt;
Everything about anything else you can ask me directly at [http://oni.bungie.org/community/forum/ Oni Central]&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=11455</id>
		<title>OBD:ONCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=11455"/>
		<updated>2008-08-29T13:28:12Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OBD_File_Header | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character | align=center}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_a.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x000 | res_id   |FF0000| 01 DF 03 00 | 991         | 00991-konoko_generic.ONCC }}&lt;br /&gt;
{{OBDtr| 0x004 | lev_id   |FFFF00| 01 00 00 06 | 0           | level 3 }}&lt;br /&gt;
{{OBDtr| 0x008 | float    |00FF00| CD CC 0C 3F | 0.550000    | downwards velocity? (unknown, always 0.55) }}&lt;br /&gt;
{{OBDtr| 0x00C | float    |00FF00| 8F C2 75 3D | 0.060000    | downward gravity acceleration }}&lt;br /&gt;
{{OBDtr| 0x010 | float    |00FF00| CD CC 8C 3F | 1.100000    | starting velocity for a simple (tap) JUMP }}&lt;br /&gt;
{{OBDtr| 0x014 | float    |00FF00| 00 00 80 C0 | -4.000000   | limit velocity for jumping and gravity flight }}&lt;br /&gt;
{{OBDtr| 0x018 | float    |00FF00| 8F C2 F5 3C | 0.030000    | upward acceleration (jetpack) if you hold JUMP }}&lt;br /&gt;
{{OBDtr| 0x01C | int16    |00FFFF| 07 00       | 7           | gravity timer? (unknown, always 7) }}&lt;br /&gt;
{{OBDtr| 0x01E | int16    |00FFFF| 14 00       | 20          | jetpack timer; time during which you can use the jetpack }}&lt;br /&gt;
{{OBDtr| 0x020 | float    |FF00FF| 00 00 34 42 | 45.000000   | maximal falling height without damage }}&lt;br /&gt;
{{OBDtr| 0x024 | float    |FF00FF| 00 00 07 43 | 135.000000  | maximal falling height with damage }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Units:times are in frames&lt;br /&gt;
:heights are in world units&lt;br /&gt;
:velocities are in world units per frames&lt;br /&gt;
:accelerations are in world units per frames squared&lt;br /&gt;
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling&lt;br /&gt;
:would be roughly equivalent to the starting velocity of a fall&lt;br /&gt;
:although the value .55 seems right, the &amp;quot;sinking&amp;quot; seems to be hardcoded now&lt;br /&gt;
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)&lt;br /&gt;
;Jetpack timer:You can press JUMP multiple times during the time window (quite fun!)&lt;br /&gt;
;Falling height: let FH1 be the height at 0x20&lt;br /&gt;
:let FH2 be the height at 0x24&lt;br /&gt;
:let BH be the base health of the character&lt;br /&gt;
:let FH be the actual falling height&lt;br /&gt;
:then, if FH &amp;gt; FH2, the character is killed&lt;br /&gt;
:if FH &amp;lt; FH1, the character takes no damage&lt;br /&gt;
:if FH1 &amp;lt; FH &amp;lt; FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x028 | link     |FF8000| 01 F8 03 00 | 1016        | link to 01016-shadow1.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x02C | float    |FF8000| 00 00 40 41 | 12.000000   | height where the shadow fades out completely }}&lt;br /&gt;
{{OBDtr| 0x030 | float    |FF8000| 00 00 00 41 | 8.000000    | height where the diameter of the shadow decreases and the shadow fades out half }}&lt;br /&gt;
{{OBDtr| 0x034 | float    |FF8000| 00 00 C0 40 | 6.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x038 | float    |FF8000| 00 00 90 40 | 4.500000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x03C | float    |FF8000| 00 00 40 40 | 3.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x040 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the first part of a jump }}&lt;br /&gt;
{{OBDtr| 0x042 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the second part of a jump }}&lt;br /&gt;
{{OBDtr| 0x044 | float    |FF0080| 00 00 C8 41 | 25.000000   | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x048 | int8     |FFC8C8| 16          |  22         | unknown }}&lt;br /&gt;
{{OBDtr| 0x049 | int8     |FFC8C8| 06          |  6          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x04A | char[2]  |FFC8C8| AD DE       | dead        | unused; always the same }}&lt;br /&gt;
{{OBDtr| 0x04C | float    |FFFFC8| 00 00 20 42 | 40.000000   | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x050 | float    |FFFFC8| 00 00 96 43 | 300.000000  | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x054 | float    |FFFFC8| 35 FA 8E 3C | 0.017453    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x058 | float    |FFFFC8| DB 0F C9 3F | 1.570796    | unknown; always the same (1.57 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; pi/2) }}&lt;br /&gt;
{{OBDtr| 0x05C | float    |FFFFC8| 00 00 A0 40 | 5.000000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x060 | float    |FFFFC8| 00 00 80 3F | 1.000000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x064 | int16    |C8FFC8| 06 00       | 6           | (inverse) hypo regeneration rate in frames per hitpoint }}&lt;br /&gt;
{{OBDtr| 0x066 | char[2]  |C8FFC8| AD DE       | dead        | unused }}&lt;br /&gt;
{{OBDtr| 0x068 | float    |C8FFFF| 00 10 3D 48 |193600.000000| unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x06C | float    |C8FFFF| 00 10 3D 47 | 48400.000000| unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x070 | float    |C8FFFF| 00 10 3D 46 | 12100.000000| unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x074 | float    |C8FFFF| 00 00 00 00 | 0.000000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x078 | float    |C8FFFF| 00 00 00 00 | 0.000000    | unknown; always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Hurt sound paramters&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x07C | int16    |FFC8FF| 23 00       | 35          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x07E | int16    |FFC8FF| 5A 00       | 90          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x080 | int16    |FFC8FF| 0F 00       | 15          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x082 | int16    |FFC8FF| 78 00       | 120         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x084 | int16    |FFC8FF| 23 00       | 35          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x086 | int16    |FFC8FF| 01 00       | 1           | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x088 | int16    |FFC8FF| 02 00       | 2           | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x08A | int16    |FFC8FF| 64 00       | 100         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x08C | int16    |FFC8FF| 0A 00       | 10          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x08E | int16    |FFC8FF| 0C 00       | 12          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x090 | int16    |FFC8FF| 16 00       | 22          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x092 | int8     |FFC800| 00          | 0           | used at runtime only: if one sound pointers have been set }}&lt;br /&gt;
{{OBDtr| 0x093 | char[1]  |C800C8| DE          | dead        | unused; always the same }}&lt;br /&gt;
{{OBDtr| 0x094 | float    |C87C64| 00 00 00 3F | 0.500000    | unknown; always the same (sound volume?) }}&lt;br /&gt;
{{OBDtr2|0x098 | char[32] |B0C3D4| konoko_hurt_light         | hurt light sound (reference to 08121-konoko_hurt_light.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0B8 | char[32] |B0C3D4| konoko_hurt_medium        | hurt medium sound (reference to 08123-konoko_hurt_medium.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0D8 | char[32] |B0C3D4| konoko_hurt_heavy         | hurt heavy sound (reference to 08119-konoko_hurt_heavy.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0F8 | char[32] |B0C3D4| konoko_death              | death sound (reference to 08115-konoko_death.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr| 0x118 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt light sound }}&lt;br /&gt;
{{OBDtr| 0x11C | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt medium sound }}&lt;br /&gt;
{{OBDtr| 0x120 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt heavy sound }}&lt;br /&gt;
{{OBDtr| 0x124 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to death sound }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x128 | bitsets  |E7CEA5| 17 00 00 00 | 23          | general AI option bitset collection ; see below }}&lt;br /&gt;
{{OBDtr| 0x12C | float    |FFDDDD| 00 00 80 3F | 1.000000    | AI rotation speed factor }}&lt;br /&gt;
{{OBDtr| 0x130 | int16    |64AAAA| 06 00       | 6           | minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x132 | int16    |64AAAA| 18 00       | 24          | maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x134 | int16    |EBEBEB| 0F 00       | 15          | minimal realize firingspread time; (???number of frames???time in miliseconds???) after which AI realizes that it is in the firing spread (and it starts dodging) }}&lt;br /&gt;
{{OBDtr| 0x136 | int16    |EBEBEB| 00 00       | 0           | maximal realize firingspread time; (???number of frames???time in miliseconds???) }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI rotation speed factor&lt;br /&gt;
:reference rotation speed is about 1 turn (360&amp;amp;#65533;) per second&lt;br /&gt;
:the setting is only effective if the AI is in control&lt;br /&gt;
:so it&#039;s a bit like the AI&#039;s mouse sensitivity :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;General AI options bitset&lt;br /&gt;
:allows or disables some parts of the AI behavior, incomplete so far...&lt;br /&gt;
*NONE - startle anim is enabled, rest is disabled&lt;br /&gt;
*0x01 - startle anim disabled&lt;br /&gt;
*0x02 - firingspread/projectile dodge enabled for melee&lt;br /&gt;
*0x04 - requires 0x02; firingspread/projectile dodge enabled for weapons; AI tries to face shooter and shoot back while dodging&lt;br /&gt;
*0x08 - requires 0x02, overrides 0x04 if both are set; firingspread/projectile dodge enabled for weapons; AI isn&#039;t shooting, it just tends to run away, not facing shooter&lt;br /&gt;
*0x10 - unknown&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x138 | float    |8C8CCC| 00 00 80 3F | 1.000000    | minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears) }}&lt;br /&gt;
{{OBDtr| 0x13C | float    |8C8CCC| 00 00 80 3F | 1.000000    | maximal firingspread dodge amount; IMO similar to maneouvre variable }}&lt;br /&gt;
{{OBDtr| 0x140 | float    |8C8CCC| 00 00 00 3F | 0.500000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x144 | float    |8C8CCC| 00 00 C8 41 | 25.000000   | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x148 | float    |8C8CCC| 00 00 80 3F | 1.000000    | unknown }}&lt;br /&gt;
{{OBDtr| 0x14C | int32    |FF00C8| 00 00 00 00 | 0           | unknown }}&lt;br /&gt;
{{OBDtr| 0x150 | int32    |FF00C8| 05 00 00 00 | 5           | unknown }}&lt;br /&gt;
{{OBDtr| 0x154 | int32    |FF00C8| 0F 00 00 00 | 15          | unknown }}&lt;br /&gt;
{{OBDtr| 0x158 | int32    |FF00C8| 3C 00 00 00 | 60          | unknown }}&lt;br /&gt;
{{OBDtrBK|1=First of 13 elements (grey outline) }}&lt;br /&gt;
{{OBDtr| 0x15C | float    |F0F096| 00 00 00 00 | 0.000000    | recoil compensation amount (0.0 &amp;lt;nowiki&amp;gt;= min, 1.0 =&amp;lt;/nowiki&amp;gt; max) }}&lt;br /&gt;
{{OBDtr| 0x160 | float    |F0F096| 00 00 00 00 | 0.000000    | best aiming angle in radians }}&lt;br /&gt;
{{OBDtr| 0x164 | float    |F0F096| 00 00 00 00 | 0.000000    | shot grouping error }}&lt;br /&gt;
{{OBDtr| 0x168 | float    |F0F096| 00 00 80 3F | 1.000000    | shot grouping decay }}&lt;br /&gt;
{{OBDtr| 0x16C | float    |F0F096| 00 00 80 3F | 1.000000    | shooting inaccuracy multiplier }}&lt;br /&gt;
{{OBDtr| 0x170 | int16    |00C864| 00 00       | 0           | minimum delay between shots in frames }}&lt;br /&gt;
{{OBDtr| 0x172 | int16    |00C864| 00 00       | 0           | maximum delay between shots in frames }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SHOOTING SKILLS&lt;br /&gt;
These can be reviewed with e.g. &#039;&#039;&#039;ai2_skill_select konoko_generic w1_tap&#039;&#039;&#039; and then either &#039;&#039;&#039;ai2_skill_show&#039;&#039;&#039; (prints to console) or &#039;&#039;&#039;ai2_skill_save&#039;&#039;&#039; (prints to file)&lt;br /&gt;
;Fields&lt;br /&gt;
:recoil compensation amount, between 0 and 1 (float)&lt;br /&gt;
:best aiming angle, in radians (float)&lt;br /&gt;
:shot grouping error (float)&lt;br /&gt;
:shot grouping decay (float)&lt;br /&gt;
:shooting inaccuracy multiplier (float)&lt;br /&gt;
:minimum delay between shots, in frames (short)&lt;br /&gt;
:maximum delay between shots, in frames (short)&lt;br /&gt;
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro&#039;s thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade&#039;s ball, except &#039;&#039;&#039;w10_sni&#039;&#039;&#039; is still available) (&#039;&#039;&#039;w12_ba2&#039;&#039;&#039; and &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; are a bit mixed up : the beam is made of &#039;&#039;&#039;w12_ba2&#039;&#039;&#039; particles, and the grenade is a &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; particle...)&lt;br /&gt;
&lt;br /&gt;
See screenshot for the raw hex (example is &#039;&#039;&#039;konoko_generic&#039;&#039;&#039; from &#039;&#039;&#039;level3_Final&#039;&#039;&#039;)&lt;br /&gt;
{{Table|width=&amp;quot;&amp;quot;|align=&amp;quot;left&amp;quot;}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot; ALIGN=CENTER&lt;br /&gt;
!Weapon       ||Offset     ||recoil||bestangle||error||decay||inaccuracy||delays&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w0_sec&#039;&#039;&#039; ||0x15C/0x173|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w1_tap&#039;&#039;&#039; ||0x174/0x18B|| 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w2_sap&#039;&#039;&#039; ||0x18C/0x193|| 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w3_phr&#039;&#039;&#039; ||0x194/0x20B|| 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w4_psm&#039;&#039;&#039; ||0x20C/0x213|| 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w5_sbg&#039;&#039;&#039; ||0x214/0x22B|| 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w6_vdg&#039;&#039;&#039; ||0x22C/0x233|| 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w7_scc&#039;&#039;&#039; ||0x234/0x24B|| 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w8_mbo&#039;&#039;&#039; ||0x24C/0x253|| 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w9_scr&#039;&#039;&#039; ||0x254/0x26B|| 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w10_sni&#039;&#039;&#039;||0x26C/0x273|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w11_ba1&#039;&#039;&#039;||0x274/0x28B|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w12_ba2&#039;&#039;&#039;||0x28B/0x293|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_m.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x294 | int32    |00C8FF| 5A 00 00 00 | 90          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x298 | int32    |00C8FF| F0 00 00 00 | 240         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x29C | int32    |00C8FF| B4 00 00 00 | 180         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x2A0 | int32    |00C8FF| 28 00 00 00 | 40          | taunt chance (40%) }}&lt;br /&gt;
{{OBDtr| 0x2A4 | int32    |00C8FF| 37 00 00 00 | 55          | go for gun chance (55%); determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command }}&lt;br /&gt;
{{OBDtr| 0x2A8 | int32    |00C8FF| 3C 00 00 00 | 60          | running pickup chance (60%); this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal &amp;quot;stop-&amp;gt;pickup&amp;quot;;this is calculated AFTER engine decides that AI should run for weapon }}&lt;br /&gt;
{{OBDtr| 0x2AC | int16    |C80040| 00 00       | 0           | combat profile ID; for example *0D* is for Mutant Muro }}&lt;br /&gt;
{{OBDtr| 0x2AE | int16    |C80040| 16 00       | 22          | melee profile ID }}&lt;br /&gt;
{{OBDtr| 0x2B0 | int8     |FFCD96| 64          | 100         | &amp;quot;taunt&amp;quot; sound probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B1 | int8     |FFCD96| 00          | 0           | &amp;quot;alert&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B2 | int8     |FFCD96| 00          | 0           | &amp;quot;startle&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B3 | int8     |FFCD96| 00          | 0           | &amp;quot;checkbody&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B4 | int8     |FFCD96| 00          | 0           | &amp;quot;pursue&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B5 | int8     |FFCD96| 00          | 0           | &amp;quot;cower&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B6 | int8     |FFCD96| 64          | 100         | &amp;quot;superpunch&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B7 | int8     |FFCD96| 64          | 100         | &amp;quot;superkick&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B8 | int8     |FFCD96| 00          | 0           | &amp;quot;super3&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B9 | int8     |FFCD96| 00          | 0           | &amp;quot;super4&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2BA | int16    |C8C864| 00 00       | 0           | probably a blank filler (always the same) }}&lt;br /&gt;
{{OBDtr2|0x2BC | char[32] |0096C8| c17_99_28konoko           | &amp;quot;taunt&amp;quot; sound (reference to 08108-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x2DC | char[32] |0096C8| unused                    | &amp;quot;alert&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x2FC | char[32] |0096C8| unused                    | &amp;quot;startle&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x31C | char[32] |0096C8| unused                    | &amp;quot;checkbody&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x33C | char[32] |0096C8| unused                    | &amp;quot;pursue&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x35C | char[32] |0096C8| unused                    | &amp;quot;cower&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x37C | char[32] |0096C8| c18_79_14konoko           | &amp;quot;superpunch&amp;quot; sound (reference to 08110-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x39C | char[32] |0096C8| c18_79_15konoko           | &amp;quot;superkick&amp;quot; sound (reference to 08112-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x3BC | char[32] |0096C8| unused                    | &amp;quot;super3&amp;quot; sound (only the superninja uses this slot) }}&lt;br /&gt;
{{OBDtr2|0x3DC | char[32] |0096C8| unused                    | &amp;quot;super4&amp;quot; sound (never used in Oni) }}&lt;br /&gt;
{{OBDtr| 0x3FC | float    |FF80C0| 00 80 ED 43 | 475.000000  | central vision field range; you can make it visible with the script command *ai2_showvision &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1* }}&lt;br /&gt;
{{OBDtr| 0x400 | float    |FF80C0| 00 00 16 43 | 150.000000  | peripheral vision field range; you can make it visible with the script command *ai2_showvision &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; 1* }}&lt;br /&gt;
{{OBDtr| 0x404 | float    |FF80C0| 7D 1B 44 3F | 0.766044    | horizontal angle between two couples of &amp;quot;eye-rays&amp;quot; (one couple is left, one if right eye); works for both vision fields }}&lt;br /&gt;
{{OBDtr| 0x408 | float    |FF80C0| F3 B3 51 3F | 0.819152    | vision field curve for central vision field; vision field looks like something between cone and cylinder; this value affect central angle of that; the higher this value is, the more is this field wrapped in order to achieve shaper angle; when set lower, vision field unwraps totally and it looks like radar antenna, attached to a character by two couples of straight strings(one couple left, one right) }}&lt;br /&gt;
{{OBDtr| 0x40C | float    |FF80C0| E8 D5 12 3F | 0.573576    | vertical angle between eye-rays in one couple; this is for central vision field }}&lt;br /&gt;
{{OBDtr| 0x410 | float    |FF80C0| D5 D0 31 3E | 0.173648    | vision field curve for peripheral vision field }}&lt;br /&gt;
{{OBDtr| 0x414 | float    |FF80C0| 6B 61 D8 BE | 0.422618    | vertical angle between eye-rays in one couple; this is for peripheral vision field }}&lt;br /&gt;
{{OBDtr| 0x418 | int32    |D0C0AF| B4 00 00 00 | 180         | hostilethreat definite timer; how long will AI know exactly where its enemy is even if it can&#039;t see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x41C | int32    |D0C0AF| 84 03 00 00 | 900         | hostilethreat strong timer; how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x420 | int32    |D0C0AF| 10 0E 00 00 | 3600        | hostilethreat weak timer; how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x424 | int32    |D0C0AF| 10 0E 00 00 | 3600        | friendlythreat definite timer; how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can&#039;t see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x428 | int32    |D0C0AF| 50 46 00 00 | 18000       | friendlythreat strong timer; how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x42C | int32    |D0C0AF| A0 8C 00 00 | 36000       | friendlythreat weak timer; how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x430 | float    |EEDDFF| 00 00 80 3F | 1.000000    | earshot radius; defines size of the sound-collision sphere around AI }}&lt;br /&gt;
{{OBDtr| 0x434 | link     |C5FF8A| 01 FB 03 00 | 1019        | link to 01019-konoko.[[OBD:ONCV|ONCV]]; defines variants and upgrades }}&lt;br /&gt;
{{OBDtr| 0x438 | link     |C5FF8A| 01 F9 03 00 | 1017        | link to [[OBD:ONCP|01017-.ONCP]]; lists the particles available for this character (trails, flashes, etc) }}&lt;br /&gt;
{{OBDtr| 0x43C | link     |C5FF8A| 01 FA 03 00 | 1018        | link to [[OBD:ONIA|01018-.ONIA]]; lists the special impact sounds (used for special combat moves) }}&lt;br /&gt;
{{OBDtr| 0x440 | int8     |C5FF8A| 00          | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0x441 | int8     |C5FF8A| 00          | unused      | padding }}&lt;br /&gt;
{{OBDtr| 0x442 | int16    |C5FF8A| 00 00       | unused      | runtime only }}&lt;br /&gt;
{{OBDtr2|0x444 | char[16] |C0C0C0| Light                     | modifier; either hardcoded or defunct (only visible in pm_mod_type.WMM_, level 0)&lt;br /&gt;
edit: WMDD says: Effects found for Impact x on Material y with Modifier: pm_mod_types }}&lt;br /&gt;
{{OBDtrBK|1=First of 15 impact elements. }}&lt;br /&gt;
{{OBDtr2|0x454 | char[128] |FF0080| Footstep_Walk             | walk impact (reference to 04124-Footstep_Walk.[[OBD:Impt|Impt]] of level 0); always the same; without the impacts you can&#039;t hear the steps of a character }}&lt;br /&gt;
{{OBDtr| 0x4D4 | int16    |FF0080| FF FF | -1 | set at runtime to the value stored at 0x08 in [[OBD:Impt|Impt]] }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_e.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0xBF2 | int16    |FFFFA6| 00 00       | 0           | unknown; always the same; maybe only a filler }} &lt;br /&gt;
{{OBDtr2|0xBF4 | char[64] |71FFB8| unused                    | special death particle; only the mad bomber use it }} &lt;br /&gt;
{{OBDtr| 0xC34 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC38 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC3C | link     |0000BF| 01 E6 03 00 | 998         | link to [[OBD:TRBS|00998-konoko_body_high.TRBS]] }}&lt;br /&gt;
{{OBDtr| 0xC40 | link     |0000BF| 01 E7 03 00 | 999         | link to [[OBD:TRMA|00999-konoko002_high_texture_generic.TRMA]] }}&lt;br /&gt;
{{OBDtr| 0xC44 | link     |0000BF| 01 E8 03 00 | 1000        | link to [[OBD:CBPM|01000-.CBPM]] }}&lt;br /&gt;
{{OBDtr| 0xC48 | link     |0000BF| 01 EC 03 00 | 1004        | link to [[OBD:CBPI|01004-.CBPI]] }}&lt;br /&gt;
{{OBDtr| 0xC4C | int32    |804040| 2C 01 00 00 | 300         | fight mode timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC50 | int32    |804040| 30 75 00 00 | 30000       | first idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC54 | int32    |804040| 30 75 00 00 | 30000       | second idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC58 | int32    |804040| C8 00 00 00 | 200         | basic health of the character model; extra health information for every unique character are stored in the [[OBD:BINA/OBJC/CHAR|Character.BINA]] file}} &lt;br /&gt;
{{OBDtr| 0xC5C | int32    |804040| 48 00 00 00 | 72          | unknown, maybe coefficient of taken damage concerning the player&#039;s health bar (higher value means less damage); always the same }} &lt;br /&gt;
{{OBDtr| 0xC60 | float    |FF22FF| 00 00 80 3F | 1.000000    | minimal body size factor }} &lt;br /&gt;
{{OBDtr| 0xC64 | float    |FF22FF| 00 00 80 3F | 1.000000    | maximal body size factor }} &lt;br /&gt;
{{OBDtrBK| the following 7 float values corespond to damage types (see the [[OBD:BINA/PAR3|PAR3]] page for the 7 possible types of damage) }}&lt;br /&gt;
{{OBDtr| 0xC68 | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC6C | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC70 | float    |FF22FF| 00 00 00 3F | 0.500000    | stun timer; specifies how long should be this char stunned when hit with w6_vdg; the longest time possible to be stunned is when this byte is zero. Then this ONCC is stunned for 200 frames (30 frames for initial stagger + the rest of the frames is stun animation). The shortest time is for 1.000000 (no stagger/stun at all) }} &lt;br /&gt;
{{OBDtr| 0xC74 | float    |FF22FF| 00 00 80 3E | 0.250000    | unknown }} &lt;br /&gt;
{{OBDtr| 0xC78 | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC7C | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC80 | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC84 | float    |FF22FF| 00 00 00 3F | 0.500000    | unknown }}&lt;br /&gt;
{{OBDtr| 0xC88 | link     |808080| 01 F6 03 00 | 1014        | link to 01014-konoko_animations.[[OBD:TRAC|TRAC]] }} &lt;br /&gt;
{{OBDtr| 0xC8C | link     |808080| 01 F6 03 00 | 1015        | link to 01015-konoko_screens.[[OBD:TRSC|TRSC]] }} &lt;br /&gt;
{{OBDtr| 0xC90 | int16    |FFAA82| 1E 00       | 30          | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC92 | int16    |FFAA82| 00 00       | 0           | time between death and deletion, in frames (about 3 seconds for mad bomber) }} &lt;br /&gt;
{{OBDtr| 0xC94 | bitset   |00D900| 00          | 0           | TRSC bitset; see below }} &lt;br /&gt;
{{OBDtr| 0xC95 | int8     |00D900| 01          | 1           | when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)}} &lt;br /&gt;
{{OBDtr| 0xC96 | int8     |00D900| 00          | 0           | when set to 1 indicates that character has supershield&lt;br /&gt;
* is visible as red shield when overpowered&lt;br /&gt;
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too&lt;br /&gt;
* now it prevents damage from weapon fire and melee (exception are throws)&lt;br /&gt;
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC97 | int8     |00D900| 00          | 0           | when set to 1, generically turns on &#039;&#039;&#039;canttouchthis&#039;&#039;&#039; cheat for this ONCC (used by MutantMuro.ONCC }} &lt;br /&gt;
{{OBDtr| 0xC98 | char[8]  |CACAFF| AD DE       | dead        | unused }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;TRSC bitset&lt;br /&gt;
:determines whether character is left-hander or right-hander (weapon is attached to left or right fist bone) Must be consistent with TRSC or glitches appear. Possibilities are:&lt;br /&gt;
:NONE - Character is right-hander with both pistols and rifles&lt;br /&gt;
:0x01 - Character is left-hander with both pistols and rifles&lt;br /&gt;
:0x02 - Character is left-hander with pistols but &amp;quot;right-hander&amp;quot; with rifles (however, animations for rifles are treated as left-handed)&lt;br /&gt;
{{OBD_File_Footer | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character}}&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=11454</id>
		<title>OBD:ONCC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD:ONCC&amp;diff=11454"/>
		<updated>2008-08-29T13:27:00Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OBD_File_Header | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character | align=center}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_a.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x000 | res_id   |FF0000| 01 DF 03 00 | 991         | 00991-konoko_generic.ONCC }}&lt;br /&gt;
{{OBDtr| 0x004 | lev_id   |FFFF00| 01 00 00 06 | 0           | level 3 }}&lt;br /&gt;
{{OBDtr| 0x008 | float    |00FF00| CD CC 0C 3F | 0.550000    | downwards velocity? (unknown, always 0.55) }}&lt;br /&gt;
{{OBDtr| 0x00C | float    |00FF00| 8F C2 75 3D | 0.060000    | downward gravity acceleration }}&lt;br /&gt;
{{OBDtr| 0x010 | float    |00FF00| CD CC 8C 3F | 1.100000    | starting velocity for a simple (tap) JUMP }}&lt;br /&gt;
{{OBDtr| 0x014 | float    |00FF00| 00 00 80 C0 | -4.000000   | limit velocity for jumping and gravity flight }}&lt;br /&gt;
{{OBDtr| 0x018 | float    |00FF00| 8F C2 F5 3C | 0.030000    | upward acceleration (jetpack) if you hold JUMP }}&lt;br /&gt;
{{OBDtr| 0x01C | int16    |00FFFF| 07 00       | 7           | gravity timer? (unknown, always 7) }}&lt;br /&gt;
{{OBDtr| 0x01E | int16    |00FFFF| 14 00       | 20          | jetpack timer; time during which you can use the jetpack }}&lt;br /&gt;
{{OBDtr| 0x020 | float    |FF00FF| 00 00 34 42 | 45.000000   | maximal falling height without damage }}&lt;br /&gt;
{{OBDtr| 0x024 | float    |FF00FF| 00 00 07 43 | 135.000000  | maximal falling height with damage }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Units:times are in frames&lt;br /&gt;
:heights are in world units&lt;br /&gt;
:velocities are in world units per frames&lt;br /&gt;
:accelerations are in world units per frames squared&lt;br /&gt;
;Downwards velocity: could correspond to the steady push experienced when neither jumping nor falling&lt;br /&gt;
:would be roughly equivalent to the starting velocity of a fall&lt;br /&gt;
:although the value .55 seems right, the &amp;quot;sinking&amp;quot; seems to be hardcoded now&lt;br /&gt;
;Gravity timer:Seems to be hardcoded now (could be the time until gravity switches on)&lt;br /&gt;
;Jetpack timer:You can press JUMP multiple times during the time window (quite fun!)&lt;br /&gt;
;Falling height: let FH1 be the height at 0x20&lt;br /&gt;
:let FH2 be the height at 0x24&lt;br /&gt;
:let BH be the base health of the character&lt;br /&gt;
:let FH be the actual falling height&lt;br /&gt;
:then, if FH &amp;gt; FH2, the character is killed&lt;br /&gt;
:if FH &amp;lt; FH1, the character takes no damage&lt;br /&gt;
:if FH1 &amp;lt; FH &amp;lt; FH2, the character takes damage (FH - FH1) / (FH2 - FH1) * BH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x028 | link     |FF8000| 01 F8 03 00 | 1016        | link to 01016-shadow1.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x02C | float    |FF8000| 00 00 40 41 | 12.000000   | height where the shadow fades out completely }}&lt;br /&gt;
{{OBDtr| 0x030 | float    |FF8000| 00 00 00 41 | 8.000000    | height where the diameter of the shadow decreases and the shadow fades out half }}&lt;br /&gt;
{{OBDtr| 0x034 | float    |FF8000| 00 00 C0 40 | 6.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x038 | float    |FF8000| 00 00 90 40 | 4.500000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x03C | float    |FF8000| 00 00 40 40 | 3.000000    | height where the diameter of the shadow decreases }}&lt;br /&gt;
{{OBDtr| 0x040 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the first part of a jump }}&lt;br /&gt;
{{OBDtr| 0x042 | int16    |FF8000| 30 00       | 48          | transparency of the shadow for the second part of a jump }}&lt;br /&gt;
{{OBDtr| 0x044 | float    |FF0080| 00 00 C8 41 | 25.000000   | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x048 | int8     |FFC8C8| 16          |  22         | unknown }}&lt;br /&gt;
{{OBDtr| 0x049 | int8     |FFC8C8| 06          |  6          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x04A | char[2]  |FFC8C8| AD DE       | dead        | unused; always the same }}&lt;br /&gt;
{{OBDtr| 0x04C | float    |FFFFC8| 00 00 20 42 | 40.000000   | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x050 | float    |FFFFC8| 00 00 96 43 | 300.000000  | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x054 | float    |FFFFC8| 35 FA 8E 3C | 0.017453    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x058 | float    |FFFFC8| DB 0F C9 3F | 1.570796    | unknown; always the same (1.57 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; pi/2) }}&lt;br /&gt;
{{OBDtr| 0x05C | float    |FFFFC8| 00 00 A0 40 | 5.000000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x060 | float    |FFFFC8| 00 00 80 3F | 1.000000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x064 | int16    |C8FFC8| 06 00       | 6           | (inverse) hypo regeneration rate in frames per hitpoint }}&lt;br /&gt;
{{OBDtr| 0x066 | char[2]  |C8FFC8| AD DE       | dead        | unused }}&lt;br /&gt;
{{OBDtr| 0x068 | float    |C8FFFF| 00 10 3D 48 |193600.000000| unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x06C | float    |C8FFFF| 00 10 3D 47 | 48400.000000| unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x070 | float    |C8FFFF| 00 10 3D 46 | 12100.000000| unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x074 | float    |C8FFFF| 00 00 00 00 | 0.000000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x078 | float    |C8FFFF| 00 00 00 00 | 0.000000    | unknown; always the same }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Hurt sound paramters&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x07C | int16    |FFC8FF| 23 00       | 35          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x07E | int16    |FFC8FF| 5A 00       | 90          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x080 | int16    |FFC8FF| 0F 00       | 15          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x082 | int16    |FFC8FF| 78 00       | 120         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x084 | int16    |FFC8FF| 23 00       | 35          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x086 | int16    |FFC8FF| 01 00       | 1           | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x088 | int16    |FFC8FF| 02 00       | 2           | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x08A | int16    |FFC8FF| 64 00       | 100         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x08C | int16    |FFC8FF| 0A 00       | 10          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x08E | int16    |FFC8FF| 0C 00       | 12          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x090 | int16    |FFC8FF| 16 00       | 22          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x092 | int8     |FFC800| 00          | 0           | used at runtime only: if one sound pointers have been set }}&lt;br /&gt;
{{OBDtr| 0x093 | char[1]  |C800C8| DE          | dead        | unused; always the same }}&lt;br /&gt;
{{OBDtr| 0x094 | float    |C87C64| 00 00 00 3F | 0.500000    | unknown; always the same (sound volume?) }}&lt;br /&gt;
{{OBDtr2|0x098 | char[32] |B0C3D4| konoko_hurt_light         | hurt light sound (reference to 08121-konoko_hurt_light.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0B8 | char[32] |B0C3D4| konoko_hurt_medium        | hurt medium sound (reference to 08123-konoko_hurt_medium.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0D8 | char[32] |B0C3D4| konoko_hurt_heavy         | hurt heavy sound (reference to 08119-konoko_hurt_heavy.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x0F8 | char[32] |B0C3D4| konoko_death              | death sound (reference to 08115-konoko_death.[[OBD:OSBD|imp.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr| 0x118 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt light sound }}&lt;br /&gt;
{{OBDtr| 0x11C | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt medium sound }}&lt;br /&gt;
{{OBDtr| 0x120 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to hurt heavy sound }}&lt;br /&gt;
{{OBDtr| 0x124 | int32    |E7CEA5| 00 00 00 00 | 0           | runtime only: pointer to death sound }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x128 | bitsets  |E7CEA5| 17 00 00 00 | 23          | general AI option bitset collection ; see below }}&lt;br /&gt;
{{OBDtr| 0x12C | float    |FFDDDD| 00 00 80 3F | 1.000000    | AI rotation speed factor }}&lt;br /&gt;
{{OBDtr| 0x130 | int16    |64AAAA| 06 00       | 6           | minimal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x132 | int16    |64AAAA| 18 00       | 24          | maximal fallen time; number of frames for which AI remains in *fallen* position when it is knockdowned }}&lt;br /&gt;
{{OBDtr| 0x134 | int16    |EBEBEB| 0F 00       | 15          | minimal realize firingspread time; (???number of frames???time in miliseconds???) after which AI realizes that it is in the firing spread (and it starts dodging) }}&lt;br /&gt;
{{OBDtr| 0x136 | int16    |EBEBEB| 00 00       | 0           | maximal realize firingspread time; (???number of frames???time in miliseconds???) }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;AI rotation speed factor&lt;br /&gt;
:reference rotation speed is about 1 turn (360&amp;amp;#65533;) per second&lt;br /&gt;
:the setting is only effective if the AI is in control&lt;br /&gt;
:so it&#039;s a bit like the AI&#039;s mouse sensitivity :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;General AI options bitset&lt;br /&gt;
:allows or disables some parts of the AI behavior, incomplete so far...&lt;br /&gt;
*NONE - startle anim is enabled, rest is disabled&lt;br /&gt;
*0x01 - startle anim disabled&lt;br /&gt;
*0x02 - firingspread/projectile dodge enabled for melee&lt;br /&gt;
*0x04 - requires 0x02; firingspread/projectile dodge enabled for weapons; AI tries to face shooter and shoot back while dodging&lt;br /&gt;
*0x08 - requires 0x02, overrides 0x04 if both are set; firingspread/projectile dodge enabled for weapons; AI isn&#039;t shooting, it just tends to run away, not facing shooter&lt;br /&gt;
*0x10 - unknown&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x138 | float    |8C8CCC| 00 00 80 3F | 1.000000    | minimal firingspread dodge amount; IMO similar to maneouvre variable, it tells AI how long it should perform dodging/hiding in response to some time spent inside firing spread (so setting this very high means that once enemy starts dodging/hiding, he will perform it even after firing spread disappears) }}&lt;br /&gt;
{{OBDtr| 0x13C | float    |8C8CCC| 00 00 80 3F | 1.000000    | maximal firingspread dodge amount; IMO similar to maneouvre variable }}&lt;br /&gt;
{{OBDtr| 0x140 | float    |8C8CCC| 00 00 00 3F | 0.500000    | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x144 | float    |8C8CCC| 00 00 C8 41 | 25.000000   | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x148 | float    |8C8CCC| 00 00 80 3F | 1.000000    | unknown }}&lt;br /&gt;
{{OBDtr| 0x14C | int32    |FF00C8| 00 00 00 00 | 0           | unknown }}&lt;br /&gt;
{{OBDtr| 0x150 | int32    |FF00C8| 05 00 00 00 | 5           | unknown }}&lt;br /&gt;
{{OBDtr| 0x154 | int32    |FF00C8| 0F 00 00 00 | 15          | unknown }}&lt;br /&gt;
{{OBDtr| 0x158 | int32    |FF00C8| 3C 00 00 00 | 60          | unknown }}&lt;br /&gt;
{{OBDtrBK|1=First of 13 elements (grey outline) }}&lt;br /&gt;
{{OBDtr| 0x15C | float    |F0F096| 00 00 00 00 | 0.000000    | recoil compensation amount (0.0 &amp;lt;nowiki&amp;gt;= min, 1.0 =&amp;lt;/nowiki&amp;gt; max) }}&lt;br /&gt;
{{OBDtr| 0x160 | float    |F0F096| 00 00 00 00 | 0.000000    | best aiming angle in radians }}&lt;br /&gt;
{{OBDtr| 0x164 | float    |F0F096| 00 00 00 00 | 0.000000    | shot grouping error }}&lt;br /&gt;
{{OBDtr| 0x168 | float    |F0F096| 00 00 80 3F | 1.000000    | shot grouping decay }}&lt;br /&gt;
{{OBDtr| 0x16C | float    |F0F096| 00 00 80 3F | 1.000000    | shooting inaccuracy multiplier }}&lt;br /&gt;
{{OBDtr| 0x170 | int16    |00C864| 00 00       | 0           | minimum delay between shots in frames }}&lt;br /&gt;
{{OBDtr| 0x172 | int16    |00C864| 00 00       | 0           | maximum delay between shots in frames }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SHOOTING SKILLS&lt;br /&gt;
These can be reviewed with e.g. &#039;&#039;&#039;ai2_skill_select konoko_generic w1_tap&#039;&#039;&#039; and then either &#039;&#039;&#039;ai2_skill_show&#039;&#039;&#039; (prints to console) or &#039;&#039;&#039;ai2_skill_save&#039;&#039;&#039; (prints to file)&lt;br /&gt;
;Fields&lt;br /&gt;
:recoil compensation amount, between 0 and 1 (float)&lt;br /&gt;
:best aiming angle, in radians (float)&lt;br /&gt;
:shot grouping error (float)&lt;br /&gt;
:shot grouping decay (float)&lt;br /&gt;
:shooting inaccuracy multiplier (float)&lt;br /&gt;
:minimum delay between shots, in frames (short)&lt;br /&gt;
:maximum delay between shots, in frames (short)&lt;br /&gt;
The first weapon (weapon 0) is not in the game anymore, whatever that was. Muro&#039;s thunderbolt is handled as animation-bound particles, although it used to be handled as a weapon (same for Mukade&#039;s ball, except &#039;&#039;&#039;w10_sni&#039;&#039;&#039; is still available) (&#039;&#039;&#039;w12_ba2&#039;&#039;&#039; and &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; are a bit mixed up : the beam is made of &#039;&#039;&#039;w12_ba2&#039;&#039;&#039; particles, and the grenade is a &#039;&#039;&#039;w11_ba1&#039;&#039;&#039; particle...)&lt;br /&gt;
&lt;br /&gt;
See screenshot for the raw hex (example is &#039;&#039;&#039;konoko_generic&#039;&#039;&#039; from &#039;&#039;&#039;level3_Final&#039;&#039;&#039;)&lt;br /&gt;
{{Table|width=&amp;quot;&amp;quot;|align=&amp;quot;left&amp;quot;}}&lt;br /&gt;
|-BGCOLOR=&amp;quot;#E9E9E9&amp;quot; ALIGN=CENTER&lt;br /&gt;
!Weapon       ||Offset     ||recoil||bestangle||error||decay||inaccuracy||delays&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w0_sec&#039;&#039;&#039; ||0x15C/0x173|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w1_tap&#039;&#039;&#039; ||0x174/0x18B|| 0.0  || 0.000000|| 0.40|| 0.4 || 0.0      || 30 - 45&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w2_sap&#039;&#039;&#039; ||0x18C/0x193|| 0.3  || 0.013962|| 0.13|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w3_phr&#039;&#039;&#039; ||0x194/0x20B|| 0.3  || 0.010472|| 0.05|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w4_psm&#039;&#039;&#039; ||0x20C/0x213|| 0.3  || 0.015707|| 0.03|| 0.2 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w5_sbg&#039;&#039;&#039; ||0x214/0x22B|| 0.3  || 0.001745|| 0.00|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w6_vdg&#039;&#039;&#039; ||0x22C/0x233|| 0.3  || 0.001745|| 0.13|| 0.9 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w7_scc&#039;&#039;&#039; ||0x234/0x24B|| 0.3  || 0.001745|| 0.05|| 0.1 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w8_mbo&#039;&#039;&#039; ||0x24C/0x253|| 0.3  || 0.005236|| 0.01|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w9_scr&#039;&#039;&#039; ||0x254/0x26B|| 0.3  || 0.010472|| 0.04|| 0.5 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w10_sni&#039;&#039;&#039;||0x26C/0x273|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w11_ba1&#039;&#039;&#039;||0x274/0x28B|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|-ALIGN=CENTER     &lt;br /&gt;
|&#039;&#039;&#039;w12_ba2&#039;&#039;&#039;||0x28B/0x293|| 0.0  || 0.000000|| 0.00|| 1.0 || 1.0      || 0 - 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_m.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x294 | int32    |00C8FF| 5A 00 00 00 | 90          | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x298 | int32    |00C8FF| F0 00 00 00 | 240         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x29C | int32    |00C8FF| B4 00 00 00 | 180         | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x2A0 | int32    |00C8FF| 28 00 00 00 | 40          | taunt chance (40%) }}&lt;br /&gt;
{{OBDtr| 0x2A4 | int32    |00C8FF| 37 00 00 00 | 55          | go for gun chance (55%); determines possibility that AI will run to some weapon and take it; can be checked in devmode by *debug_gun_behavior* command }}&lt;br /&gt;
{{OBDtr| 0x2A8 | int32    |00C8FF| 3C 00 00 00 | 60          | running pickup chance (60%); this value is possibility of AI running weapon pickup (acrobatics, slides) instead of normal &amp;quot;stop-&amp;gt;pickup&amp;quot;;this is calculated AFTER engine decides that AI should run for weapon }}&lt;br /&gt;
{{OBDtr| 0x2AC | int16    |C80040| 00 00       | 0           | combat profile ID; for example *0D* is for Mutant Muro }}&lt;br /&gt;
{{OBDtr| 0x2AE | int16    |C80040| 16 00       | 22          | melee profile ID }}&lt;br /&gt;
{{OBDtr| 0x2B0 | int8     |FFCD96| 64          | 100         | &amp;quot;taunt&amp;quot; sound probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B1 | int8     |FFCD96| 00          | 0           | &amp;quot;alert&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B2 | int8     |FFCD96| 00          | 0           | &amp;quot;startle&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B3 | int8     |FFCD96| 00          | 0           | &amp;quot;checkbody&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B4 | int8     |FFCD96| 00          | 0           | &amp;quot;pursue&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B5 | int8     |FFCD96| 00          | 0           | &amp;quot;cower&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B6 | int8     |FFCD96| 64          | 100         | &amp;quot;superpunch&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B7 | int8     |FFCD96| 64          | 100         | &amp;quot;superkick&amp;quot; probability (always) }}&lt;br /&gt;
{{OBDtr| 0x2B8 | int8     |FFCD96| 00          | 0           | &amp;quot;super3&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2B9 | int8     |FFCD96| 00          | 0           | &amp;quot;super4&amp;quot; sound probability (never) }}&lt;br /&gt;
{{OBDtr| 0x2BA | int16    |C8C864| 00 00       | 0           | probably a blank filler (always the same) }}&lt;br /&gt;
{{OBDtr2|0x2BC | char[32] |0096C8| c17_99_28konoko           | &amp;quot;taunt&amp;quot; sound (reference to 08108-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x2DC | char[32] |0096C8| unused                    | &amp;quot;alert&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x2FC | char[32] |0096C8| unused                    | &amp;quot;startle&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x31C | char[32] |0096C8| unused                    | &amp;quot;checkbody&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x33C | char[32] |0096C8| unused                    | &amp;quot;pursue&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x35C | char[32] |0096C8| unused                    | &amp;quot;cower&amp;quot; sound }}&lt;br /&gt;
{{OBDtr2|0x37C | char[32] |0096C8| c18_79_14konoko           | &amp;quot;superpunch&amp;quot; sound (reference to 08110-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x39C | char[32] |0096C8| c18_79_15konoko           | &amp;quot;superkick&amp;quot; sound (reference to 08112-c17_99_28konoko.[[OBD:OSBD|amb.OSBD]] of level 0) }}&lt;br /&gt;
{{OBDtr2|0x3BC | char[32] |0096C8| unused                    | &amp;quot;super3&amp;quot; sound (only the superninja uses this slot) }}&lt;br /&gt;
{{OBDtr2|0x3DC | char[32] |0096C8| unused                    | &amp;quot;super4&amp;quot; sound (never used in Oni) }}&lt;br /&gt;
{{OBDtr| 0x3FC | float    |FF80C0| 00 80 ED 43 | 475.000000  | central vision field range; you can make it visible with the script command *ai2_showvision &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1* }}&lt;br /&gt;
{{OBDtr| 0x400 | float    |FF80C0| 00 00 16 43 | 150.000000  | peripheral vision field range; you can make it visible with the script command *ai2_showvision &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; 1* }}&lt;br /&gt;
{{OBDtr| 0x404 | float    |FF80C0| 7D 1B 44 3F | 0.766044    | horizontal angle between two couples of &amp;quot;eye-rays&amp;quot; (one couple is left, one if right eye); works for both vision fields }}&lt;br /&gt;
{{OBDtr| 0x408 | float    |FF80C0| F3 B3 51 3F | 0.819152    | vision field curve for central vision field; vision field looks like something between cone and cylinder; this value affect central angle of that; the higher this value is, the more is this field wrapped in order to achieve shaper angle; when set lower, vision field unwraps totally and it looks like radar antenna, attached to a character by two couples of straight strings(one couple left, one right) }}&lt;br /&gt;
{{OBDtr| 0x40C | float    |FF80C0| E8 D5 12 3F | 0.573576    | vertical angle between eye-rays in one couple; this is for central vision field }}&lt;br /&gt;
{{OBDtr| 0x410 | float    |FF80C0| D5 D0 31 3E | 0.173648    | vision field curve for peripheral vision field }}&lt;br /&gt;
{{OBDtr| 0x414 | float    |FF80C0| 6B 61 D8 BE | 0.422618    | vertical angle between eye-rays in one couple; this is for peripheral vision field }}&lt;br /&gt;
{{OBDtr| 0x418 | int32    |D0C0AF| B4 00 00 00 | 180         | hostilethreat definite timer; how long will AI know exactly where its enemy is even if it can&#039;t see him with central vision-field; AI attacks him; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x41C | int32    |D0C0AF| 84 03 00 00 | 900         | hostilethreat strong timer; how long will AI remain in strong feeling that there is the enemy, but will not attack him but investigate; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x420 | int32    |D0C0AF| 10 0E 00 00 | 3600        | hostilethreat weak timer; how long will AI remain in weak feeling of an enemy, just looking around aimlessly (Glance pursue mode); can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x424 | int32    |D0C0AF| 10 0E 00 00 | 3600        | friendlythreat definite timer; how long will AI know exactly where its ally (Syndicate saw Syndicate for example) is even if it can&#039;t see him with central vision-field; AI simply knows there is someone else nearby; maybe has further possibilities; can be checked by *ai2_report_verbose* command (this command causes random crashes, beware) }}&lt;br /&gt;
{{OBDtr| 0x428 | int32    |D0C0AF| 50 46 00 00 | 18000       | friendlythreat strong timer; how long will AI remain in strong feeling that there is someone else, but will not try to find him or look at him; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x42C | int32    |D0C0AF| A0 8C 00 00 | 36000       | friendlythreat weak timer; how long will AI remain in weak feeling of ally, doing its usual job; can be checked by *ai2_report_verbose* command }}&lt;br /&gt;
{{OBDtr| 0x430 | float    |EEDDFF| 00 00 80 3F | 1.000000    | earshot radius; defines size of the sound-collision sphere around AI }}&lt;br /&gt;
{{OBDtr| 0x434 | link     |C5FF8A| 01 FB 03 00 | 1019        | link to 01019-konoko.[[OBD:ONCV|ONCV]]; defines variants and upgrades }}&lt;br /&gt;
{{OBDtr| 0x438 | link     |C5FF8A| 01 F9 03 00 | 1017        | link to [[OBD:ONCP|01017-.ONCP]]; lists the particles available for this character (trails, flashes, etc) }}&lt;br /&gt;
{{OBDtr| 0x43C | link     |C5FF8A| 01 FA 03 00 | 1018        | link to [[OBD:ONIA|01018-.ONIA]]; lists the special impact sounds (used for special combat moves) }}&lt;br /&gt;
{{OBDtr| 0x440 | int8     |C5FF8A| 00          | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0x441 | int8     |C5FF8A| 00          | unused      | padding }}&lt;br /&gt;
{{OBDtr| 0x442 | int16    |C5FF8A| 00 00       | unused      | runtime only }}&lt;br /&gt;
{{OBDtr2|0x444 | char[16] |C0C0C0| Light                     | modifier; either hardcoded or defunct (only visible in pm_mod_type.WMM_, level 0)&lt;br /&gt;
edit: WMDD says: Effects found for Impact x on Material y with Modifier: pm_mod_types }}&lt;br /&gt;
{{OBDtrBK|1=First of 15 impact elements. }}&lt;br /&gt;
{{OBDtr2|0x454 | char[128] |FF0080| Footstep_Walk             | walk impact (reference to 04124-Footstep_Walk.[[OBD:Impt|Impt]] of level 0); always the same; without the impacts you can&#039;t hear the steps of a character }}&lt;br /&gt;
{{OBDtr| 0x4D4 | int16    |FF0080| FF FF | -1 | set at runtime to the value stored at 0x08 in [[OBD:Impt|Impt]] }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:oncc_e.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0xBF2 | int16    |FFFFA6| 00 00       | 0           | unknown; always the same; maybe only a filler }} &lt;br /&gt;
{{OBDtr2|0xBF4 | char[64] |71FFB8| unused                    | special death particle; only the mad bomber use it }} &lt;br /&gt;
{{OBDtr| 0xC34 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC38 | link     |0000BF| 00 00 00 00 | unused      | runtime only }}&lt;br /&gt;
{{OBDtr| 0xC3C | link     |0000BF| 01 E6 03 00 | 998         | link to [[OBD:TRBS|00998-konoko_body_high.TRBS]] }}&lt;br /&gt;
{{OBDtr| 0xC40 | link     |0000BF| 01 E7 03 00 | 999         | link to [[OBD:TRMA|00999-konoko002_high_texture_generic.TRMA]] }}&lt;br /&gt;
{{OBDtr| 0xC44 | link     |0000BF| 01 E8 03 00 | 1000        | link to [[OBD:CBPM|01000-.CBPM]] }}&lt;br /&gt;
{{OBDtr| 0xC48 | link     |0000BF| 01 EC 03 00 | 1004        | link to [[OBD:CBPI|01004-.CBPI]] }}&lt;br /&gt;
{{OBDtr| 0xC4C | int32    |804040| 2C 01 00 00 | 300         | fight mode timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC50 | int32    |804040| 30 75 00 00 | 30000       | first idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC54 | int32    |804040| 30 75 00 00 | 30000       | second idle animation timer in 1/60 seconds }} &lt;br /&gt;
{{OBDtr| 0xC58 | int32    |804040| C8 00 00 00 | 200         | basic health of the character model; extra health information for every unique character are stored in the [[OBD:BINA/OBJC/CHAR|Character.BINA]] file}} &lt;br /&gt;
{{OBDtr| 0xC5C | int32    |804040| 48 00 00 00 | 72          | unknown, maybe coefficient of taken damage concerning the player&#039;s health bar (higher value means less damage, takes effect only if this class is deafult class of level; always the same }} &lt;br /&gt;
{{OBDtr| 0xC60 | float    |FF22FF| 00 00 80 3F | 1.000000    | minimal body size factor }} &lt;br /&gt;
{{OBDtr| 0xC64 | float    |FF22FF| 00 00 80 3F | 1.000000    | maximal body size factor }} &lt;br /&gt;
{{OBDtrBK| the following 7 float values corespond to damage types (see the [[OBD:BINA/PAR3|PAR3]] page for the 7 possible types of damage) }}&lt;br /&gt;
{{OBDtr| 0xC68 | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC6C | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC70 | float    |FF22FF| 00 00 00 3F | 0.500000    | stun timer; specifies how long should be this char stunned when hit with w6_vdg; the longest time possible to be stunned is when this byte is zero. Then this ONCC is stunned for 200 frames (30 frames for initial stagger + the rest of the frames is stun animation). The shortest time is for 1.000000 (no stagger/stun at all) }} &lt;br /&gt;
{{OBDtr| 0xC74 | float    |FF22FF| 00 00 80 3E | 0.250000    | unknown }} &lt;br /&gt;
{{OBDtr| 0xC78 | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC7C | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC80 | float    |FF22FF| 00 00 00 00 | 0.000000    | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC84 | float    |FF22FF| 00 00 00 3F | 0.500000    | unknown }}&lt;br /&gt;
{{OBDtr| 0xC88 | link     |808080| 01 F6 03 00 | 1014        | link to 01014-konoko_animations.[[OBD:TRAC|TRAC]] }} &lt;br /&gt;
{{OBDtr| 0xC8C | link     |808080| 01 F6 03 00 | 1015        | link to 01015-konoko_screens.[[OBD:TRSC|TRSC]] }} &lt;br /&gt;
{{OBDtr| 0xC90 | int16    |FFAA82| 1E 00       | 30          | unknown; always the same }} &lt;br /&gt;
{{OBDtr| 0xC92 | int16    |FFAA82| 00 00       | 0           | time between death and deletion, in frames (about 3 seconds for mad bomber) }} &lt;br /&gt;
{{OBDtr| 0xC94 | bitset   |00D900| 00          | 0           | TRSC bitset; see below }} &lt;br /&gt;
{{OBDtr| 0xC95 | int8     |00D900| 01          | 1           | when set to 1 indicates that character has daodan powers (character does more damage in overpower mode)}} &lt;br /&gt;
{{OBDtr| 0xC96 | int8     |00D900| 00          | 0           | when set to 1 indicates that character has supershield&lt;br /&gt;
* is visible as red shield when overpowered&lt;br /&gt;
* needs daodan flag above and 51% overpower to be enabled; chenille cheat works too&lt;br /&gt;
* now it prevents damage from weapon fire and melee (exception are throws)&lt;br /&gt;
* received (melee) hits cause not blue block flashes but orange flares (see [http://paradox.oni2.net/Bilder/blocked_attacks_on_51percent_overpower_plus_daodan-flag_plus_supershield.png HERE])&lt;br /&gt;
 }} &lt;br /&gt;
{{OBDtr| 0xC97 | int8     |00D900| 00          | 0           | when set to 1, generically turns on &#039;&#039;&#039;canttouchthis&#039;&#039;&#039; cheat for this ONCC (used by MutantMuro.ONCC }} &lt;br /&gt;
{{OBDtr| 0xC98 | char[8]  |CACAFF| AD DE       | dead        | unused }} &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;TRSC bitset&lt;br /&gt;
:determines whether character is left-hander or right-hander (weapon is attached to left or right fist bone) Must be consistent with TRSC or glitches appear. Possibilities are:&lt;br /&gt;
:NONE - Character is right-hander with both pistols and rifles&lt;br /&gt;
:0x01 - Character is left-hander with both pistols and rifles&lt;br /&gt;
:0x02 - Character is left-hander with pistols but &amp;quot;right-hander&amp;quot; with rifles (however, animations for rifles are treated as left-handed)&lt;br /&gt;
{{OBD_File_Footer | type=ONCC | prev=OFGA | next=ONCP | name=Oni Character Class | family=Character}}&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
	<entry>
		<id>https://wiki.oni2.net/w/index.php?title=OBD:ONWC&amp;diff=11379</id>
		<title>OBD:ONWC</title>
		<link rel="alternate" type="text/html" href="https://wiki.oni2.net/w/index.php?title=OBD:ONWC&amp;diff=11379"/>
		<updated>2008-08-25T19:58:09Z</updated>

		<summary type="html">&lt;p&gt;Demos kratos: /* 0x1D8 to 0x6D7 - Weapon particle array */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{OBD_File_Header | type=ONWC | prev=ONVL | next=OPge | name=Oni Weapon Class | family=Level | align=center}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All ONWC files are 0 byte files. That means that Oni takes the information out of the ONWC files of level 0. Below is an example of an ONWC file of level 0. The first pic shows the beginning of this file. The second pic the end of it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Unless specified otherwise, the coordinates are relative to the weapon&#039;s mesh (x = forwards, y = left, z = up).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==0x000 to 0x0D7 - Weapon main part ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:onwc_a.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x000 | res_id   |FF0000| 01 75 0E 00 | 3701           | 03701-w1_tap.ONWC }}&lt;br /&gt;
{{OBDtr| 0x004 | lev_id   |FFFF00| 01 00 00 00 | 0              | level 0 }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===0x008 to 0x053 - Laser sight parameters===&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x008 | float    |FFC8C8| F5 A4 49 40 | 3.150693       | x-offset of laser sight origin }}&lt;br /&gt;
{{OBDtr| 0x00C | float    |FFC8C8| F4 2C A5 3B | 0.005041       | y-offset of laser sight origin }}&lt;br /&gt;
{{OBDtr| 0x010 | float    |FFC8C8| 21 4E D2 3E | 0.410752       | z-offset of laser sight origin }}&lt;br /&gt;
{{OBDtr| 0x014 | float    |FFC8C8| 23 A6 7F 3F | 0.998629       | x-component of laser sight direction }}&lt;br /&gt;
{{OBDtr| 0x018 | float    |FFC8C8| AA 6C 56 BD | -0.052349      | y-component of laser sight direction }}&lt;br /&gt;
{{OBDtr| 0x01C | float    |FFC8C8| 69 66 AA B7 | -0.000020      | z-component of laser sight direction }}&lt;br /&gt;
{{OBDtr| 0x020 | float    |FFC8C8| 00 40 9C 45 |5000.000000     | maximal length of laser sight vector }}&lt;br /&gt;
{{OBDtr| 0x024 | color    |FFFFC8| 00 00 FF FF | 0, 0, 255; 255 | laser sight color (blue, green, red); laser sight transparency }}&lt;br /&gt;
{{OBDtr| 0x028 | link     |C8FFC8| 01 94 05 00 | 1428           | crosshair texture (link to 01428-target_1A.[[OBD:TXMP|TXMP]]) }}&lt;br /&gt;
{{OBDtr| 0x02C | color    |C8FFC8| FF FF FF 00 |255, 255, 255; 0| crosshair background color (blue, green, red); crosshair background transparency }}&lt;br /&gt;
{{OBDtr| 0x030 | float    |C8FFC8| CD CC 4C 3F | 0.800000       | crosshair scale factor }}&lt;br /&gt;
{{OBDtr| 0x034 | link     |C8FFFF| 01 95 05 00 | 1428           | locked crosshair texture (link to 01429-target_1B.[[OBD:TXMP|TXMP]]) }}&lt;br /&gt;
{{OBDtr| 0x038 | color    |C8FFFF| FF FF FF 00 |255, 255, 255; 0| locked crosshair background color (blue, green, red); locked crosshair background transparency }}&lt;br /&gt;
{{OBDtr| 0x03C | float    |C8FFFF| CD CC 4C 3F | 0.800000       | locked crosshair scale factor }}&lt;br /&gt;
{{OBDtr| 0x040 | link     |FFC8FF| 00 00 00 00 | unused         | tunnel texture (link to a [[OBD:TXMP|TXMP]]) file }}&lt;br /&gt;
{{OBDtr| 0x044 | color    |FFC8FF| FF FF FF 00 |255, 255, 255; 0| tunnel background color (blue, green, red); tunnel background transparency }}&lt;br /&gt;
{{OBDtr| 0x048 | float    |FFC8FF| 00 00 80 3F | 1.000000       | tunnel scale factor }}&lt;br /&gt;
{{OBDtr| 0x04C | int32    |FFC800| 0F 00 00 00 | 15             | number of tunnel textures }}&lt;br /&gt;
{{OBDtr| 0x050 | float    |C800C8| 00 00 20 41 | 10.000000      | spacing of tunnel textures }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Crosshair&lt;br /&gt;
:Default crosshair appears where the laser sight hits environment, corpses, etc&lt;br /&gt;
:Locked crosshair appears when the laser sight hits characters (including the shooter)&lt;br /&gt;
:&amp;quot;Tunnel&amp;quot; is used by &#039;&#039;&#039;w8_mbo&#039;&#039;&#039; as a complement to the crosshair&lt;br /&gt;
:&#039;&#039;&#039;w2_sap&#039;&#039;&#039;, &#039;&#039;&#039;w5_sbg&#039;&#039;&#039;, &#039;&#039;&#039;w7_scc&#039;&#039;&#039; and &#039;&#039;&#039;w9_scr&#039;&#039;&#039; use it with no crosshair&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===0x054 to 0x05F - Ammo meter===&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x054 | link     |C87C64| 01 7E 0E 00 | 3710           | link to 03710-tap_icon.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x058 | link     |C87C64| 01 7F 0E 00 | 3711           | link to 03711-tap_empty.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x05C | link     |C87C64| 01 80 0E 00 | 3712           | link to 03712-tap_fill.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===0x060 to 0x0D7 - Weapon parameters===&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x060 | link     |C87C64| 01 76 0E 00 | 3702           | link to 03702-.M3GM }}&lt;br /&gt;
{{OBDtr2|0x064 | char[32] |B0C3D4| w1_tap                       | weapon name }}&lt;br /&gt;
{{OBDtr| 0x084 | float    |E7CEA5| 00 00 80 3F | 1.000000       | weapon mouse sensitivity (applies on AI, too) }}&lt;br /&gt;
{{OBDtr| 0x088 | float    |E7CEA5| A6 92 2B 3D | 0.041888       | recoil base (e.g. for w1_tap and w2_sap) }}&lt;br /&gt;
{{OBDtr| 0x08C | float    |E7CEA5| 92 0A 86 3E | 0.261799       | recoil max }}&lt;br /&gt;
{{OBDtr| 0x090 | float    |E7CEA5| 00 00 A0 40 | 5.000000       | recoil factor }}&lt;br /&gt;
{{OBDtr| 0x094 | float    |E7CEA5| E2 A3 7B 3B | 0.003839       | recoil return speed }}&lt;br /&gt;
{{OBDtr| 0x098 | float    |E7CEA5| 88 C3 E4 3A | 0.001745       | unknown }}&lt;br /&gt;
{{OBDtr| 0x09C | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0A0 | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0A4 | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0A8 | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0AC | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0B0 | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0B4 | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0B8 | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0BC | float    |E7CEA5| 00 00 00 00 | 0.000000       | unknown }}&lt;br /&gt;
{{OBDtr| 0x0C0 | int16    |FFDDDD| 00 00       | 0              | unknown; always zero }}&lt;br /&gt;
{{OBDtr| 0x0C2 | int16    |FFDDDD| 95 00       | 149            | recoil animation type (149 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; autopistol_recoil) }}&lt;br /&gt;
{{OBDtr| 0x0C4 | int16    |FFDDDD| A4 00       | 164            | reload animation type (164 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; reload_pistol) }}&lt;br /&gt;
{{OBDtr| 0x0C6 | int16    |FFDDDD| 19 00       | 25             | pause after reload in 1/60 seconds }}&lt;br /&gt;
{{OBDtr| 0x0C8 | int16    |FFDDDD| 0A 00       | 10             | amount of shots }}&lt;br /&gt;
{{OBDtr| 0x0CA | int16    |FFDDDD| 06 00       | 6              | amount of particles }}&lt;br /&gt;
{{OBDtr| 0x0CC | int16    |FFDDDD| 01 00       | 1              | amount of firing modes }}&lt;br /&gt;
{{OBDtr| 0x0CE | int16    |FFDDDD| 0A 00       | 10             | pause before reload in 1/60 seconds }}&lt;br /&gt;
{{OBDtr| 0x0D0 | int16    |FFDDDD| 04 00       | 4              | unknown }}&lt;br /&gt;
{{OBDtr| 0x0D2 | int16    |FFDDDD| 00 00       | 0              | unknown; always zero }}&lt;br /&gt;
{{OBDtr| 0x0D4 | bitset   |FFDDDD| 30          | 48             | weapon options 1; the following bits are possible (values in dec):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:001 - unknown; never used&lt;br /&gt;
:002 - weapon can&#039;t be holstered&lt;br /&gt;
:004 - weapon reloads with energy cells&lt;br /&gt;
:008 - weapon is a rifle (two-handed)&lt;br /&gt;
:016 - unknown; used for w1_tap and w2_sap&lt;br /&gt;
:032 - sustained fire&lt;br /&gt;
:064 - you can&#039;t shoot ...&lt;br /&gt;
:128 - stun switcher,see below, used for w6_vdg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
{{OBDtr| 0x0D5 | bitset   |FFDDDD| C0          | 192            | weapon options 2; the following bits are possible (values in dec):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:001 - knockdown switcher,see below, used for w4_psm&lt;br /&gt;
:002 - unknown; used for w5_sbg and w11_ba1&lt;br /&gt;
:004 - secondary fire enabled&lt;br /&gt;
:008 - weapon can&#039;t be reloaded&lt;br /&gt;
:016 - run, jump and creep disabled&lt;br /&gt;
:032 - unknown; used for w11_ba1&lt;br /&gt;
:064 - I d.k.h.t.c.t.2,see below, used for w1_tap, w2_sap and w3_phr&lt;br /&gt;
:128 - laser sight visible&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
{{OBDtr| 0x0D6 | bitset   |FFDDDD| 02          | 2              | weapon options 3; the following bits are possible (values in dec):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:001 - unknown; never used&lt;br /&gt;
:002 - crosshair scaling, used for w1_tap, w2_sap, w3_phr and w8_mbo&lt;br /&gt;
:004 - unknown; never used&lt;br /&gt;
:008 - weapon doesn&#039;t fade&lt;br /&gt;
:016 - I don&#039;t know how to call this, see below, used for w4_psm&lt;br /&gt;
:032 - unknown; never used&lt;br /&gt;
:064 - unknown; never used&lt;br /&gt;
:128 - unknown; never used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
{{OBDtr| 0x0D7 | bitset   |FFDDDD| 00          | 0              | unused bitstet? }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;stun switcher&#039;&#039;&#039; -if enemy is inside shooting distance (between min and max) and is &#039;&#039;&#039;knockdown&#039;&#039;&#039;ed/&#039;&#039;&#039;stun&#039;&#039;&#039;ed or &#039;&#039;&#039;blownup&#039;&#039;&#039;ed, AI with this weapon switches to melee for a time specified in a *fight timer* field&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockdown switcher&#039;&#039;&#039; -  if enemy is inside shooting distance (between min and max) and is &#039;&#039;&#039;knockdown&#039;&#039;&#039;ed or &#039;&#039;&#039;blownup&#039;&#039;&#039;ed, AI with this weapon switches to melee for a time specified in a *fight timer* field&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;I don&#039;t know how to call this&#039;&#039;&#039; - If you press and HOLD the fire (mouse1), it ONCE triggers particles for shooting, then drains ammo as if it was &#039;&#039;&#039;sustained fire&#039;&#039;&#039;, but particles are NOT emitted (you just stand and watch as ammo drops). Used by w4_psm, probably because w4 particles works constantly (beam) after triggered.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;I d.k.h.t.c.t.2&#039;&#039;&#039; - try this: set &#039;&#039;&#039;I don&#039;t know how to call this&#039;&#039;&#039; on some weapon, then set this on that weapon too. You will see that once you press the shooting button, it keeps *shooting* (altough you can&#039;t see any particles coming) even after you release shooting button. You can&#039;t stop it. It keeps shooting until all ammo is drained. So, basically, it works like an automatic hold of the mouse button.&lt;br /&gt;
&lt;br /&gt;
P.S.: Someone please think off nice names for those two poor flags :))&lt;br /&gt;
--[[User:Loser|Loser]] 07:52, 29 July 2007 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==0x0D8 to 0x1D7 - Firing modes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Every ONWC has 2 firing mode slots (128 = 0x80 bytes each.)&lt;br /&gt;
&lt;br /&gt;
The number of slots actually used by the weapon is specified at 0xCA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===0x0D8 to 0x157 - Primary firing mode===&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr| 0x0D8 | int32    |64AAAA| 00 00 00 00 | 0              | unknown (1 for w9_scr and w5_sbg) }}&lt;br /&gt;
{{OBDtr| 0x0DC | float    |EBEBEB| 23 A6 7F 3F | 0.998629       | transform matrix XX }}&lt;br /&gt;
{{OBDtr| 0x0E0 | float    |EBEBEB| 05 6D 56 3D | 0.052350       | transform matrix XY }}&lt;br /&gt;
{{OBDtr| 0x0E4 | float    |EBEBEB| F4 8D A9 37 | 0.000020       | transform matrix XZ }}&lt;br /&gt;
{{OBDtr| 0x0E8 | float    |EBEBEB| 05 6D 56 BD | -0.052350      | transform matrix YX }}&lt;br /&gt;
{{OBDtr| 0x0EC | float    |EBEBEB| 23 A6 7F 3F | 0.998629       | transform matrix YY }}&lt;br /&gt;
{{OBDtr| 0x0F0 | float    |EBEBEB| D0 1D 0E B5 | -0.000001      | transform matrix YZ }}&lt;br /&gt;
{{OBDtr| 0x0F4 | float    |EBEBEB| F4 8D A9 B7 | -0.000020      | transform matrix ZX }}&lt;br /&gt;
{{OBDtr| 0x0F8 | float    |EBEBEB| D0 1D 0E B5 | -0.000001      | transform matrix ZY }}&lt;br /&gt;
{{OBDtr| 0x0FC | float    |EBEBEB| 00 00 80 3F | 1.000000       | transform matrix ZZ  }}&lt;br /&gt;
{{OBDtr| 0x100 | float    |EBEBEB| 00 00 00 00 | 0.000000       | translation X; always zero for original weapons }}&lt;br /&gt;
{{OBDtr| 0x104 | float    |EBEBEB| 00 00 00 00 | 0.000000       | translation Y; always zero for original weapons }}&lt;br /&gt;
{{OBDtr| 0x108 | float    |EBEBEB| 00 00 00 00 | 0.000000       | translation Z; always zero for original weapons }}&lt;br /&gt;
{{OBDtr| 0x10C | float    |EBEBEB| 23 A6 7F 3F | 0.998629       | firing spread direction X component }}&lt;br /&gt;
{{OBDtr| 0x110 | float    |EBEBEB| AE 6C 56 BD | -0.052349      | firing spread direction Y component }}&lt;br /&gt;
{{OBDtr| 0x114 | float    |EBEBEB| AF 8D A9 B7 | -0.000020      | firing spread direction Z component }}&lt;br /&gt;
{{OBDtr| 0x118 | float    |EBEBEB| DC FE 08 3C | 0.008362       | targeting vector origin X component? }}&lt;br /&gt;
{{OBDtr| 0x11C | float    |EBEBEB| 5C 11 23 3E | 0.159246       | targeting vector origin Y component? }}&lt;br /&gt;
{{OBDtr| 0x120 | float    |EBEBEB| 39 C6 2A 3F | 0.667087       | targeting vector origin Z component? }}&lt;br /&gt;
{{OBDtr| 0x124 | float    |EBEBEB| 00 00 61 44 | 900.000000     | unknown; it is some angle; if this angle is for example 90°, then AI, which is shooting this weapon, will try to copy target&#039;s movements eg. when target strafes left, armed AI stops shooting and runs left too; if you set it 270°, armed AI is performing opposite actions eg. when you run left, armed AI runs right; while running, AI stops shooting }}&lt;br /&gt;
{{OBDtr| 0x128 | float    |EBEBEB| 00 00 20 41 | 10.000000      | max. inaccurancy angle; sets max angle between weapon&#039;s aiming vector and target&#039;s position; when AI exceeds this angle (by recoil or target running away), AI stops shooting and aims weapon again straight to the target, then resume shooting }}&lt;br /&gt;
{{OBDtr| 0x12C | float    |EBEBEB| 00 00 20 40 | 2.500000       | unknown; always the same; possible related to the inaccuracy angle above }}&lt;br /&gt;
{{OBDtr| 0x130 | float    |EBEBEB| 00 00 96 43 | 300.000000     | weapon sound sphere radius; when somebody shoots, weapon creates this range; AIs which are inside this range notice there was a shot + they know WHO is the shooter and WHERE he stands (threat strong), can be seen with *ai2_showsounds&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1* (but you have to be in a large open area, since those ranges are quite big) }}&lt;br /&gt;
{{OBDtr| 0x134 | float    |EBEBEB| 00 00 40 41 | 12.000000      | minimal shooting distance; when AI is closer then min.shot.dist., it will stop shooting and attempt to go away from the target until it again reaches higher distance then min.shot.dist. is; you can see its effect when AI is operating SBG and you get too close }}&lt;br /&gt;
{{OBDtr| 0x138 | float    |EBEBEB| 00 00 61 44 | 900.000000     | maximal shooting distance; when AI is further then max.shot.dist., it isn&#039;t shooting but running towards target until it reaches max.shot.dist. limit; then AI opens fire; you can see its effect when AI is far away and has w2_sap }}&lt;br /&gt;
{{OBDtr| 0x13C | int16    |8C8CCC| 05 00       | 5              | unknown; always the same }}&lt;br /&gt;
{{OBDtr| 0x13E | int16    |8C8CCC| 01 00       | 1              | skill index (in the [[ONCC]] shooting skill table) }}&lt;br /&gt;
{{OBDtr| 0x140 | int32    |8C8CCC| 00 00 00 00 | 0              | fight timer, 240 for w4_psm, 200 for v6_vdg }}&lt;br /&gt;
{{OBDtr| 0x144 | float    |FF00C8| 00 00 00 00 | 0.000000       | unknown, projectile speed? (150 for SBG, 160 for WMC) }}&lt;br /&gt;
{{OBDtr| 0x148 | float    |FF00C8| 00 00 00 00 | 0.000000       | unknown, projectile &amp;quot;friction&amp;quot;? (0.5 for SBG, 0.3 for WMC) }}&lt;br /&gt;
{{OBDtr| 0x14C | float    |FF00C8| 00 00 34 43 | 180.000000     | length of firingspread which aims from weapon; when AI collides with this firingspread, it tries to dodge/hide of it; can be seen by *ai2_showfiringspreads&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1* (180 for w1_tap, 150 for w2_sap, 120 for w4_psm) }}&lt;br /&gt;
{{OBDtr| 0x150 | float    |FF00C8| 00 00 40 40 | 3.000000       | lenght of the firingspread&#039;s base side; can be seen by ai2_showfiringspreads&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1 }}&lt;br /&gt;
{{OBDtr| 0x154 | float    |FF00C8| 50 77 D6 3D | 0.104719       | angle between firingspread&#039;s base and its altitude(length); can be seen by ai2_showfiringspreads&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;1 (0.1 for w1_tap, 0.21 for w2_sap) }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Transform matrix&lt;br /&gt;
:Probably defines the orientation, scaling and position of the firing spread. It doesn&#039;t appear to be used.&lt;br /&gt;
&lt;br /&gt;
===0x158 to 0x1D7 - Secondary firing mode===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The only original weapon for which these fields are not all zero is &#039;&#039;&#039;w11_ba1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
They are the exact counterparts of the fields at 0xD8 - 0x157.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==0x1D8 to 0x6D7 - Weapon particle array==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Every ONWC has 16 particle slots (80 = 0x50 bytes each.)&lt;br /&gt;
&lt;br /&gt;
The number of slots actually used by the weapon is specified at 0xCA.&lt;br /&gt;
&lt;br /&gt;
Offsets are relative to the beginning of a slot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtrBK|1=First of 16 elements (black outline).}}&lt;br /&gt;
{{OBDtr| 0x000 | float    |F0F096| AE 6C 56 3D | 0.052349       | transformation matrix, xx term }}&lt;br /&gt;
{{OBDtr| 0x004 | float    |F0F096| 23 A6 7F 3F | 0.998629       | transformation matrix, xy term }}&lt;br /&gt;
{{OBDtr| 0x008 | float    |F0F096| C2 53 90 B3 | -0.000000...   | transformation matrix, xz term }}&lt;br /&gt;
{{OBDtr| 0x00C | float    |F0F096| 23 A6 7F 3F | 0.998629       | transformation matrix, yx term }}&lt;br /&gt;
{{OBDtr| 0x010 | float    |F0F096| AE 6C 56 BD | -0.052349      | transformation matrix, yy term }}&lt;br /&gt;
{{OBDtr| 0x014 | float    |F0F096| AF 8D A9 B7 | -0.000020      | transformation matrix, yz term }}&lt;br /&gt;
{{OBDtr| 0x018 | float    |F0F096| BA 59 A9 B7 | -0.000020      | transformation matrix, zx term }}&lt;br /&gt;
{{OBDtr| 0x01C | float    |F0F096| 5B 02 85 35 | 0.000001       | transformation matrix, zy term }}&lt;br /&gt;
{{OBDtr| 0x020 | float    |F0F096| 00 00 80 BF | -1.000000      | transformation matrix, zz term }}&lt;br /&gt;
{{OBDtr| 0x024 | float    |F0F096| 6F 63 57 40 | 3.365444       | x-offset of particle to weapon }}&lt;br /&gt;
{{OBDtr| 0x028 | float    |F0F096| B3 1D 89 BC | -0.016738      | y-offset of particle to weapon }}&lt;br /&gt;
{{OBDtr| 0x02C | float    |F0F096| C5 C1 2A 3F | 0.667019       | z-offset of particle to weapon }}&lt;br /&gt;
{{OBDtr2|0x030 | char[16] |00C864| w1_tap_e01                   | particle name (reference to 06226-3RAPw1_tap_e01.[[OBD:BINA/PAR3|BINA]]) }}&lt;br /&gt;
{{OBDtr| 0x040 | int32    |00C8FF| 00 00 00 00 | 0              | runtime only (pointer to particle class) }}&lt;br /&gt;
{{OBDtr| 0x044 | int16    |00C8FF| 01 00       | 1              | ammo decrement (different for the 2 firing modes of w11_ba1) }}&lt;br /&gt;
{{OBDtr| 0x046 | int16    |00C8FF| 0C 00       | 12             | delay between shots in frames (12 frames &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; 0.2 seconds) }}&lt;br /&gt;
{{OBDtr| 0x048 | int16    |00C8FF| 04 00       | 4              | &#039;roughjustice&#039; delay between shots in frames }}&lt;br /&gt;
{{OBDtr| 0x04A | int16    |00C8FF| 00 00       | 0              | number in frames for active firing mode (1st frame for activate); Used for w4_psm and w11_ba1 }}&lt;br /&gt;
{{OBDtr| 0x04C | int16    |00C8FF| 00 00       | 0              | 0 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; particle is fired with fire1; 1 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; particle is fired with fire2; -1 &amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt; particle is triggered by other particles }}&lt;br /&gt;
{{OBDtr| 0x04E | int16    |00C8FF| 00 00       | 0              | delay before firing }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Transformation matrix&lt;br /&gt;
:That&#039;s what defines orientation, stretching, etc.&lt;br /&gt;
:See [[OBD:CRSA|CRSA]] for details.&lt;br /&gt;
&lt;br /&gt;
==0x6D8 to 0x71F - End of file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:onwc_e.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Table}}&lt;br /&gt;
{{OBDth}}&lt;br /&gt;
{{OBDtr2|0x6D8 | char[32] |C80040| weapon _empty                | empty weapon sound (reference to 08993-weapon_empty.[[OBD:OSBD/OSIm|imp.OSBD]]) }}&lt;br /&gt;
{{OBDtr| 0x6F8 | int32    |FFCD96| 00 00 00 00 | 0              | runtime only (pointer to empty weapon sound) }}&lt;br /&gt;
{{OBDtr| 0x6FC | link     |C8C864| 01 81 0E 00 | 3713           | link to 03713-w1_glow.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x700 | link     |C8C864| 01 82 0E 00 | 3714           | link to 03714-w1_glow_ammo.[[OBD:TXMP|TXMP]] }}&lt;br /&gt;
{{OBDtr| 0x704 | float    |0096C8| 00 00 80 3F | 1.000000       | x-scale factor of glow textures }}&lt;br /&gt;
{{OBDtr| 0x708 | float    |0096C8| 00 00 80 3F | 1.000000       | z-scale factor of glow textures }}&lt;br /&gt;
{{OBDtr| 0x70C | float    |0096C8| 76 65 EB 3F | 1.839034       | x-offset of pickup handle }}&lt;br /&gt;
{{OBDtr| 0x710 | float    |0096C8| 96 4C A9 3D | 0.082666       | y-offset of pickup handle }}&lt;br /&gt;
{{OBDtr| 0x714 | float    |0096C8| 06 E2 14 3E | 0.145393       | z-offset of pickup handle }}&lt;br /&gt;
{{OBDtr| 0x718 | float    |0096C8| 00 00 00 00 | 0.000000       | hovering height of unheld weapon }}&lt;br /&gt;
{{OBDtr| 0x71C | char[4]  |FF80C0| AD DE       | dead           | unused }}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Glow textures&lt;br /&gt;
:They&#039;re applied to the lower face of the M3GM&#039;s bounding box. The factors above are the ratio between the x/z extent of that face and the half-length/width of the glow textures. So if both factors are 0.5, the glow textures fit the bounding box exactly.&lt;br /&gt;
;Pickup handle&lt;br /&gt;
:The tolerance is hardcoded. The offsets are not relative to the weapon&#039;s axes, but to the world axes (!).&lt;br /&gt;
:This is a rather nasty &amp;quot;feature&amp;quot; (actually, the offsets &#039;&#039;should&#039;&#039; be relative to the weapon&#039;s orientation)&lt;br /&gt;
:The way it&#039;s now, the pickup volume of a WMC is not necessarily next to the handle. That&#039;s why it&#039;s hard to pick up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{OBD_File_Footer | type=ONWC | prev=ONVL | next=OPge | name=Oni Weapon Class | family=Level}}&lt;/div&gt;</summary>
		<author><name>Demos kratos</name></author>
	</entry>
</feed>