Multiple 1-Tick Long Explods that are constantly drawn (always triggered), on the same Sprite Priority, will always be drawn "as One sprite"
Example using this: Jailbot (http://mugenguild.com/forum/topics/wip-jailbot-from-superjail-postrelease-updating-149846.msg1749069.html#msg1749069) (by me ;D)
If you want to have a sprite/animation that behaves independently from another one, but are meant to appear combined "as one sprite/animation"...
Meaning, this can't happen---
Spoiler: Both players AND shield have same sprpriority, but the shield helper still gets drawn on top (click to see content)
(http://i.imgur.com/FfckL9y.jpg)
--it is 100% possible. In fact, I did this with the majority of character. My character's face is a separate Explod which changes depending on the enemy's position - so it appears that Jailbot is watching the enemy. (https://youtu.be/ENkoYUYFXs4?t=2m46s)
So here is a simple example which will draw the face and player on one sprite layer, which no other player, sprite, helper, etc can ever get sandwiched between.
Jailbot standing:
Spoiler, click to toggle visibilty
[State 0, Invisible player]
type = AssertSpecial
trigger1 = 1
flag = Invisible
[State 0, Stand face] ;All faces are 1-Tick anims
type = Explod
trigger1 = anim = 0
ID = 1000
anim = 10000 + var(7) ;var(7) is based on where the enemy is, so it picks the correct face anim
[State 0, Stand Explod] ;The player anim is 1-Tick
type = Explod
trigger1 = anim = 0
anim = 1
[State 0, Stand Hover]
type = Offset
trigger1 = anim = 0
y = 1*cos(GameTime/6.0)
So in this example my character and his face float up and down. In-game, no other sprites will get drawn between them.
The drawback: it often takes special attention to animate things, since the Explods must be 1-Tick anims to always be drawn as "one sprite"
Example, I use a Var to control the glitch effect of one of his faces which is composed of only 1-Tick anims
Spoiler, click to toggle visibilty
[State -3, Control V. Scrolling]
type = varset
triggerall = var(5) = 1 ;Glitching enabled
trigger1 = var(9) = 8 ;Glitch-erizer chose this
trigger1 = var(8) = 1 ;Align with the scanlines glitch
trigger1 = var(7) != [4000,4012] ;Prevent locking -- RESETS TO 4000 WHEN VAR(7) IS GREATER THAN 12 -- SEE BELOW
var(7) = 4000
[State -3, Animate V. Scrolling]
type = varadd
triggerall = var(5) = 1 ;Glitching enabled
trigger1 = var(7) = [4000,4011]
trigger1 = GameTime%6 = 0 ;anim speed ---INCREASES THE ANIM VALUE EVERY 6 TICKS
var(7) = 1
While transitioning all my Mugen projects to 1.1, I came across multiple deprecated parameters. I am going to post some alternate methods to get past errors that are in FF3 when it comes to coding for Mugen 1.1.
Explode; postype
In 1.1, the postype parameter in 1.1 is deprecated, although it still works in Mugen but FF3 will highlight it as a deprecated parameter. Within the docs, it says to replace postype = p1 with..
In 1.1, the equivalent parameters that replace postype are:
postype = p1
space = stage
pos = Pos X + CameraPos X, Pos Y
facing = facing
It works for any explod that is not binded to your character. Any effects, such as blinking, and needs to be in a fixed area, even if your character is moving this will not work.
(http://i.imgur.com/0dEYGfy.png)
This is an example of the code above, if the character is being pushed while the explod spawns, the explod will not move along with your character. To fix this we will need to add:
bindID = -1
space = stage
pos = Pos X + CameraPos X, Pos Y
facing = facing
(http://i.imgur.com/vrHRVf6.png)
This will bind the explod to your character's position. However, this will happen.
The bindID is actually the 'new' postype. The value "-1" will bind it to the character's axis, whereas "-2" does not, which is the default value.
Now to fix this code entirely, we will reset the pos back to 0,0.
bindID = -1
space = stage
pos = 0.0
facing = facing
(http://i.imgur.com/JjV3Jhn.png)
And now we have a replacement for any postype = p1.
HitVelSet
[State VelS, 1]
type = VelSet
trigger1 = time = 0
x = gethitvar(xvel) * facing
y = gethitvar(yvel)
This code is self explanatory. It takes the velocities of both X and Y within the opponent's HitDef and uses it to set the value of your character's velocity.
Mugen 1.1 BindID
(Edit 2) Using Statedef -2 is not the best place to use explod tracking. My mistake there - I developed another way have special effects track p2.
The bindID definition value "Special values are -1 (bind to any single player) and -2 (do not bind)." is WRONG. -1 value binds the explod to p1 only. Meaning that explods cannot bind onto p2 at all. Explods will only spawn on p2 position.
The way to have special effects bind to p2 is to use helpers.
Here is the code to spawn explods onto p2.
[State Helper, 1]
type = Helper
trigger1 = numhelper(9999) = 0
name = "Bind_Effect"
ID = 9999 ;These numbers can be changed
stateno = 9999 ;These numbers can be changed
pos = 0,0
postype = p2
persistent = 0
keyctrl = 0
ownpal = 1
size.xscale = const(size.xscale)
size.yscale = const(size.yscale)
;-------------------------------------------------------------------------------
;Bind Helper
[Statedef 9999]
type = A
ctrl = 0
anim = 9999
[State PosS, 1]
type = PosSet
trigger1 = 1
x = enemynear, pos X
y = enemynear, pos Y
[State DestroyS, 1]
type = DestroySelf
trigger1 = animtime = 0
The image below will be the result of the code above.
(https://i.imgur.com/6bMDpYh.png)