XML talk:BINA/PAR3

From OniGalore
Revision as of 17:44, 12 September 2013 by Paradox-01 (talk | contribs) (as we Germans say "now it made click" ^_^)
Jump to navigation Jump to search

Discussion on <StopIfBreakable />

Controversial phrase:

Within the HitWall PAR3 event, [<StopIfBreakable />] stops the exection of all PAR3 actions listed BELOW this PAR3 action if the HitWall was called against a breakable material (in vanilla Oni, the only breakable material is glass).


Example of <StopIfBreakable /> not stopping a later action:

modified BINA3RAPw8_mbo_p01

           <HitWall>
               <StopIfBreakable />
               <ImpactEffect>
                   <ImpactType>w8_mbo</ImpactType>
                   <ImpactModifier>2</ImpactModifier>
               </ImpactEffect>
               <Die />
           </HitWall>

https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_used.wmv


           <HitWall>
               <ImpactEffect>
                   <ImpactType>w8_mbo</ImpactType>
                   <ImpactModifier>2</ImpactModifier>
               </ImpactEffect>
               <Die />
           </HitWall>

https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_not_used.wmv

Side note: There's no visible effect (like decal) on the breakable glass because of ONIE.

For better visibility we can also repeat the two tests with a plasma effect.


           <HitWall>
               <StopIfBreakable />
               <ImpactEffect>
                   <ImpactType>w3_phr</ImpactType>
                   <ImpactModifier>0</ImpactModifier>
               </ImpactEffect>
               <Die />
           </HitWall>

https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_used_phr3_alt.wmv


           <HitWall>
               <ImpactEffect>
                   <ImpactType>w3_phr</ImpactType>
                   <ImpactModifier>0</ImpactModifier>
               </ImpactEffect>
               <Die />
           </HitWall>

https://dl.dropboxusercontent.com/u/139715/OniGalore/StopIfBreakable_not_used_phr3_alt.wmv


Mercury Bow videos prove exactly what was written, no contradictions.

  • "StopIfBreakable_used.wmw" -> mercury bow pellet encounters breakable material. StopIfBreakable prevents the execution of both <ImpactEffect> action and more importantly the <Die /> action. Thus the pellet goes through glass and "dies" later, after colliding with a non-breakable wall (and leaving an ImpactEffect).
  • "StopIfBreakable_not_used.wmv" - if the action StopIfBreakable is NOT used, then any collision of the pellet with any kind of a wall (even with breakable glass) will let the <ImpactEffect> and <Die /> execute. The pellet "dies" upon impact with the breakable glass and does not continue through. Also, since there is no match in ONIE, no Impact Effect is left on the breakable glass.

--Loser (talk) 01:13, 12 September 2013 (CEST)


I see, my mistake was to think that particle can only react once. I wasn't aware the events can happen multiple times for an particle because the usual case is "one". With that logic the particle should called hitwall event on glass and keep moving with only the second (impact) action left on the stack. I somehow thought the first impact would not really count since it's not a solid material or whatever.

Also at first I thought <StopIfBreakable /> refers to the particle itself and not the actions.

PS: Regarding other thing on OCF: I don't know how to use mod patches, I didn't found it very intuitive / documented so I never tried it. (The last time I heard from it, Script said he wanted to improve it.) Maybe ask him, Iritscen or Samer whether they have some more examples laying around that could help to understand. --paradox-01 (talk) 19:44, 12 September 2013 (CEST)