; Orreries Universe Orb
[Statedef 4220]
movetype = A
physics = N
ctrl = 0
anim = 1998
velset = 0,0
sprpriority = 1
[State 2105]
type = AngleDraw
trigger1 = 1
scale = 0.75,0.75
ignorehitpause = 1
;[State 1010, VA]
;type = varadd
;trigger1 = time || ((time = 0)&&(var(40) > 0))
;var(40) = 1
[State 1010, NHB]
type = nothitby
trigger1 = 1
time = -1
value = ,AA,AT
ignorehitpause = 1
[State 1010, CA]
type = changeanim
trigger1 = time = 0
value = 3102+1*ishelper(3103)+2*ishelper(3104)+3*ishelper(3105)+4*ishelper(3106)+5*ishelper(3107)
[State 1001, AFI]
Type = AfterImage
Trigger1 = var(1) = 0
Trans = Add
Time = -1;2
Length = 8
TimeGap = 3
FrameGap = 1
PalBright = 0,0,0
PalContrast = 128,128,128
PalAdd = 0,0,0
PalMul = .8,.8,.8
[State 1001, Anglesetter]
type = Null
triggerall = time = 0;var(40) = 0
trigger1 = ishelper(3102)
trigger1 = (var(0):= 0) || 1
trigger2 = ishelper(3103)
trigger2 = (var(0):= 90) || 1
trigger3 = ishelper(3104)
trigger3 = (var(0):= 180) || 1
trigger4 = ishelper(3105)
trigger4 = (var(0):= 270) || 1
[State 1001, VS]
type = varset
trigger1 = 1
fvar(0) = ifelse(power>2960,(3000-power)/30.0,ifelse(power<=40,(power)/30.0,1.0))
[State 3102, STS]
type = statetypeset
trigger1 = power<=10
movetype = I
[State 1010, PS]
type = posset
trigger1 = 1
x = floor(root,pos x)+floor(50*fvar(0)*cos((var(0)+((3000-power)))*pi/180.0))*(-(root,facing))
y = floor(root,pos y)+root,const(size.mid.pos.y)+floor(50*fvar(0)*sin((var(0)+((3000-power)))*pi/180.0))
;[State 4201]
;type = varrandom
;trigger1 = var(48) = 120
;v = 47
;range = 1, 4
[State 4201]
type = varset
trigger1 = 1
v = 47
value = 1
[State 4201]
type = varset
trigger1 = root, anim = 4202
v = 48
value = 0
[State 4201]
type = VarAdd
trigger1 = root, anim = 4201 || root, anim = 4200
v = 48
value = 1
[State 4000, Effect]
type = helper
trigger1 = var(48) = 120
trigger1 = var(47) >= 1 && var(47) < 2
persistent = 0
helpertype = normal
name = "Laser"
ID = 4221
pos = 3,-40
postype = p1
stateno = 4220
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 1001, butt]
Type = AssertSpecial
Trigger1 = 1
Flag = Noshadow
[State 1001, SPR]
Type = SprPriority
Trigger1 = 1
Value = 5
ignorehitpause = 1
[State 1001, AIT]
Type = AfterImageTime
;trigger1 = root,stateno != 3100
trigger1 = root,movetype = H
trigger2 = root,alive = 0
trigger3 = power <= 0;var(40) >= 150
time = 0
[State 1001, Zeeky]
type = DestroySelf
;trigger1 = root,stateno != 3100
trigger1 = root,movetype = H
trigger2 = root,alive = 0
trigger3 = power <= 0;var(40) >= 150
I want that the orbs spawn lasers, but the lasers wont appear.; Lvl 3 Spell 3: Orreries Universe
[Statedef 4200]
type = S
movetype = A
physics = S
ctrl = 0
velset = 0, 0
anim = 4200
sprpriority = 2
[State 210, PSND]
type = playsnd
trigger1 = time = 0
value = 4200,0 ;Duplicate of 2100,0
channel = 0
;[State 210, PSND]
;type = playsnd
;trigger1 = animelem = 9
;value = 4200,1
;channel = 0
[State 2000, Spellcard Effect]
type = helper
trigger1 = time = 0
helpertype = normal
name = "Spellcard_FX"
id = 3999
stateno = 1999
pos = 0,-50
postype = p1
ownpal = 1
facing = 1
pausemovetime = 40
supermovetime = 40
[state 1010, Za Warudo!]
type = SuperPause
trigger1 = time = 0
time = 40
anim = -1
sound = S2000, 0
p2defmul = 1
poweradd = 0;-3000
unhittable = 1
movetime = 12
darken = 0
[State 4000, Effect]
type = helper
trigger1 = animelem = 6
persistent = 0
helpertype = normal
name = "Planet"
ID = 3102
pos = 3,-40
postype = p1
stateno = 4220
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 4000, Effect]
type = helper
trigger1 = animelem = 6
persistent = 0
helpertype = normal
name = "Planet"
ID = 3103
pos = 3,-40
postype = p1
stateno = 4220
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 4000, Effect]
type = helper
trigger1 = animelem = 6
persistent = 0
helpertype = normal
name = "Planet"
ID = 3104
pos = 3,-40
postype = p1
stateno = 4220
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 4000, Effect]
type = helper
trigger1 = animelem = 6
persistent = 0
helpertype = normal
name = "Planet"
ID = 3105
pos = 3,-40
postype = p1
stateno = 4220
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 1010, DEPLETE DA POWAH!]
type = poweradd
;trigger1 = animelem = 6
trigger1 = animelem = 6 || ((animelem = 6)&&(power < 3000))
value = -1
[State 4000, Effect]
type = helper
trigger1 = time = 0
helpertype = normal
name = "Blackout Effect"
ID = 701
pos = 0,0
postype = p1
stateno = 701
ownpal = 1
facing = 1
pausemovetime = 40
supermovetime = 40
;[State 4000, Bomb]
;type = explod
;trigger1 = animelem = 9
;id = 4201
;removetime = 10
;scale = 1.0,0.1
;anim = 4201
;pos = 0,-50
;postype = p1
;bindtime = -1
;ownpal = 1
;p2stateno = 5300 ;4250
;sprpriority = 5
;removeongethit = 1
;ignorehitpause = 1
;[State 4000, MEX]
;type = modifyexplod
;trigger1 = numexplod(4201) = 1
;id = 4201
;scale = 1.0+(time-22)/10.0,0.1
;[State 4200, CS]
;type = changestate
;trigger1 = animelem = 13
;trigger1 = movecontact = 1
;value = 4201
[State 4200]
type = VelSet
trigger1 = animelem = 22
X = -12
Y = -3
[State 4200, CS]
type = changestate
trigger1 = animtime = 0
value = 4201
ctrl = 0
;---------------------------------------------------------------------------
; Orreries Universe - Flight State
[Statedef 4201]
type = S
movetype = A
physics = S
ctrl = 0
anim = 4201
velset = 0, 0
sprpriority = 2
[State 1010, DEPLETE DA POWAH!]
type = poweradd
trigger1 = time || ((time = 0)&&(power < 3000))
value = -1
;[State -2, ComboLimit Add]
;type = varset
;trigger1 = time = 0
;v = 6
;value = 0
;persistent = 0
[State 4201]
type = varrandom
trigger1 = 1
v = 45
range = 1, 7
[State 4201]
type = varrandom
trigger1 = 1
v = 46
range = -3, 3
[State 4201]
type = ChangeAnim
trigger1 = var(49) = 1
trigger1 = anim = 4201
value = 4202
[State 4201, I've got to move it move it!]
type = VelSet
trigger1 = anim = 4202
X = var(45)
Y = var(46)
[State 4201, Gotta stop now!]
type = ChangeAnim
trigger1 = anim = 4202
trigger1 = animtime = 0
value = 4201
[State 4201, STOP!]
type = VelSet
trigger1 = anim = 4201
X = 0
Y = 0
[State 4201, NHB]
type = nothitby
trigger1 = 1
value = SCA, AA, AP, AT
;[State 4201, TB]
;type = targetbind
;trigger1 = time = 0
;id = 4200
;pos = 50,0
;[State 210, PSND]
;type = playsnd
;trigger1 = animelem = 6
;value = 4200,2
;channel = 0
[State 3200, CS]
type = changestate
trigger1 = power = 0
Value = 52
Ctrl = 0
EDIT: Okay, I could solve the problem with the lasers not spawning.Same as before. Look at your triggers. If they're not working, force them to. If that works and there is nothing wrong with your code, find out what is wrong with the triggers you have.The animtime of 4202 is 120.
Your changestate is on animtime = 0. That's a really really simple trigger. The only reason it won't work is if animtime never ends. Do you have a -1 frame? Or a 0 time frame?
; Orreries Laser
[Statedef 4221]
Type = S
Movetype = A
physics = N
sprPriority = 1
anim = 4203
ctrl = 0
velset = 0,0
[State 4221, PS]
type = angleset
trigger1 = 1
value = (parent, pos x)*(parent, pos y)
[State 4221]
type = PosSet
trigger1 = 1
X = parent, pos x
Y = parent, pos y
[State 4221, NHB]
type = nothitby
trigger1 = 1
value = sca
[State 4221, Turn]
Type = Turn
Trigger1 = P2Dist X < 0
[State 52, 1]
type = VelSet
trigger1 = Time = 0
y = 0
[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0
[State 4221, HOR]
type = HitOverRide
trigger1 = Time = 0
time = -1
attr = SCA, AP,AA,AT
slot = 0
stateno = 3056
[State 4221]
type = VarSet
trigger1 = time = 479
v = 49
value = 1
[State 4221, CS]
Type = DestroySelf
trigger1 = time = 480
The lasers also have another problem: Their angle doesn't change...You said the parent doesn't start to move. You said the movement code is 4201. THIS is how you get into 4201Uhm...I think, you understood somethig wrong.
[State 4200, CS]
type = changestate
trigger1 = animtime = 0
value = 4201
ctrl = 0
No mention of var(49), nothing like that, just simply animtime = 0. There is no changeanim in 4200. You are using the same anim throughout, therefore, is the state change not occuring, in which case anim 4200 never ends, or is there something wrong with 4201 that is dropping you out instantly. Not looking at your angleset stuff because i want you to fix this first. The code is not complex so it's something else you have wrong that you're not looking at. Also, Time on an animation as shown by FF means NOTHING if you have a frame with a -1 or a 0 on it, FF won't take that into account at all in the total.
Oh.Ugh...so it is like that. Well...damn.
[State 4221]
type = parentVarSet
trigger1 = time = 479
v = 49
value = 1
Change to this. You're looking at the helpers variable, not the parents. Alternatively
trigger1 = helper(blah), var(49) = 1
Doesn't turn ever, or doesn't turn while attacking. That's too vague, there is no context for whether it's this move or an overall feature or what.My problem is that my character doesn't turn at all.
[State 1001, Zeeky]I actually made it on purpose. The orbs should disappear, if all the power is depleted, and not if they're leaving the screen.
type = DestroySelf
;trigger1 = root,stateno != 3100
trigger1 = root,movetype = H
trigger2 = root,alive = 0
trigger3 = power <= 0;var(40) >= 150
Ok, so that's your destroyself. Now, the one here that might be the issue is trigger3, you don't REALLY have a good "out" for the helpers. Most people would include times, or leaving the screen, or the root no longer being in the root state.
[State 1010, DEPLETE DA POWAH!]Oh yeah, it should have been animelem >= 6...stupid me.
type = poweradd
;trigger1 = animelem = 6
trigger1 = animelem = 6 || ((animelem = 6)&&(power < 3000))
value = -1
That's terrible. Animelem = 6 is only true for ONE tick, not more, not less. In addition, it won't work if you're on 3000 power anyway, because you've used less than with a maximum value, AND that will take 3000 ticks to deplete all your power even if it was all triggered correctly. 50 seconds in fact.
Default mugen behaviour is the character turns when p2 is behind them and ctrl = 1Well, I have ctrl = 0, and I have no plans in changing that, since the player cannot control the character while in this state.
My problem is that my character doesn't turn at all.Inside the orries sun statesThat way i would know you were talking about inside a specific move rather than the very vague
However, my character doesn't turn at all...Which to me reads all sorts of ways which is why i queried it for more specific answers.
I want that my character turn everytime after an attack that isn't the first attack.
; Orreries Universe Orb
[Statedef 4220]
movetype = A
physics = N
ctrl = 0
anim = 1998
velset = 0,0
sprpriority = 1
[State 2105]
type = AngleDraw
trigger1 = 1
scale = 0.75,0.75
ignorehitpause = 1
;[State 1010, VA]
;type = varadd
;trigger1 = time || ((time = 0)&&(var(40) > 0))
;var(40) = 1
[State 1010, NHB]
type = nothitby
trigger1 = 1
time = -1
value = ,AA,AT
ignorehitpause = 1
[State 1010, CA]
type = changeanim
trigger1 = time = 0
value = 3102+1*ishelper(3103)+2*ishelper(3104)+3*ishelper(3105)+4*ishelper(3106)+5*ishelper(3107)
[State 1001, AFI]
Type = AfterImage
Trigger1 = var(1) = 0
Trans = Add
Time = -1;2
Length = 8
TimeGap = 3
FrameGap = 1
PalBright = 0,0,0
PalContrast = 128,128,128
PalAdd = 0,0,0
PalMul = .8,.8,.8
[State 1001, Anglesetter]
type = Null
triggerall = time = 0;var(40) = 0
trigger1 = ishelper(3102)
trigger1 = (var(0):= 0) || 1
trigger2 = ishelper(3103)
trigger2 = (var(0):= 90) || 1
trigger3 = ishelper(3104)
trigger3 = (var(0):= 180) || 1
trigger4 = ishelper(3105)
trigger4 = (var(0):= 270) || 1
[State 1001, VS]
type = varset
trigger1 = 1
fvar(0) = ifelse(power>2960,(3000-power)/30.0,ifelse(power<=40,(power)/30.0,1.0))
[State 3102, STS]
type = statetypeset
trigger1 = power<=10
movetype = I
[State 1010, PS]
type = posset
trigger1 = 1
x = floor(root,pos x)+floor(50*fvar(0)*cos((var(0)+((3000-power)))*pi/180.0))*(-(root,facing))
y = floor(root,pos y)+root,const(size.mid.pos.y)+floor(50*fvar(0)*sin((var(0)+((3000-power)))*pi/180.0))
;[State 4201]
;type = varrandom
;trigger1 = var(48) = 120
;v = 47
;range = 1, 4
[State 4201]
type = varset
trigger1 = 1
v = 47
value = 1
[State 4201]
type = varset
trigger1 = root, anim = 4202
v = 48
value = 0
[State 4201]
type = VarAdd
trigger1 = root, anim = 4201; || root, anim = 4200
v = 48
value = 1
[State 4000, Effect]
type = helper
trigger1 = var(48) = 120
trigger1 = var(47) >= 1 && var(47) < 2
persistent = -1;0;4
helpertype = normal
name = "Laser"
ID = 4221
pos = 3,-40
postype = p1
stateno = 4221
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 1001, butt]
Type = AssertSpecial
Trigger1 = 1
Flag = Noshadow
[State 1001, SPR]
Type = SprPriority
Trigger1 = 1
Value = 5
ignorehitpause = 1
[State 1001, AIT]
Type = AfterImageTime
;trigger1 = root,stateno != 3100
trigger1 = root,movetype = H
trigger2 = root,alive = 0
trigger3 = power <= 0;var(40) >= 150
time = 0
[State 1001, Zeeky]
type = DestroySelf
;trigger1 = root,stateno != 3100
trigger1 = root,movetype = H
trigger2 = root,alive = 0
trigger3 = power <= 0;var(40) >= 150
;---------------------------
; Orreries Laser
[Statedef 4221]
Type = S
Movetype = A
physics = N
sprPriority = 1
anim = 4203
ctrl = 0
velset = 0,0
[State 2002, T]
type = trans
trigger1 = 1
trans = add
ignorehitpause = 1
[State 4221, PS]
type = angleset
trigger1 = time
value = var(0)+1;(parent, pos x)*(parent, pos y)
[State 2002, AD]
type = angledraw
trigger1 = 1
ignorehitpause = 1
[State 4221]
type = PosSet
trigger1 = 1
X = parent, pos x
Y = parent, pos y
[State 4221, NHB]
type = nothitby
trigger1 = 1
value = sca
[State 4221, Turn]
Type = Turn
Trigger1 = P2Dist X < 0
[State 52, 1]
type = VelSet
trigger1 = Time = 0
y = 0
[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0
[State 4221, HOR]
type = HitOverRide
trigger1 = Time = 0
time = -1
attr = SCA, AP,AA,AT
slot = 0
stateno = 3056
[State 4221, CS]
Type = DestroySelf
trigger1 = time = 480
Also, I haven't tried to re-do the move yet, but I'm sure that if I do, then I will spawn one group of lasers again, and after that not anymore.; Orreries Universe Orb
[Statedef 4220]
movetype = A
physics = N
ctrl = 0
anim = 1998
velset = 0,0
sprpriority = 1
[State 2105]
type = AngleDraw
trigger1 = 1
scale = 0.75,0.75
ignorehitpause = 1
[State 1010, NHB]
type = nothitby
trigger1 = 1
time = -1
value = ,AA,AT
ignorehitpause = 1
[State 1010, CA]
type = changeanim
trigger1 = time = 0
value = 3102+1*ishelper(3103)+2*ishelper(3104)+3*ishelper(3105)+4*ishelper(3106)+5*ishelper(3107)
[State 1001, AFI]
Type = AfterImage
Trigger1 = var(1) = 0
Trans = Add
Time = -1;2
Length = 8
TimeGap = 3
FrameGap = 1
PalBright = 0,0,0
PalContrast = 128,128,128
PalAdd = 0,0,0
PalMul = .8,.8,.8
[State 1001, Anglesetter]
type = Null
triggerall = time = 0;var(40) = 0
trigger1 = ishelper(3102)
trigger1 = (var(0):= 0) || 1
trigger2 = ishelper(3103)
trigger2 = (var(0):= 90) || 1
trigger3 = ishelper(3104)
trigger3 = (var(0):= 180) || 1
trigger4 = ishelper(3105)
trigger4 = (var(0):= 270) || 1
[State 1001, VS]
type = varset
trigger1 = 1
fvar(0) = ifelse(power>2960,(3000-power)/30.0,ifelse(power<=40,(power)/30.0,1.0))
[State 3102, STS]
type = statetypeset
trigger1 = power<=10
movetype = I
[State 1010, PS]
type = posset
trigger1 = 1
x = floor(root,pos x)+floor(50*fvar(0)*cos((var(0)+((3000-power)))*pi/180.0))*(-(root,facing))
y = floor(root,pos y)+root,const(size.mid.pos.y)+floor(50*fvar(0)*sin((var(0)+((3000-power)))*pi/180.0))
[State 4201]
type = varrandom
trigger1 = var(48) = 120
v = 47
range = 1, 4
[State 4201]
type = varset
trigger1 = root, anim = 4202
v = 48
value = 0
[State 4201]
type = VarAdd
trigger1 = root, anim = 4201; || root, anim = 4200
v = 48
value = 1
[State 4000, Effect]
type = helper
trigger1 = var(48) = 120
trigger1 = var(47) >= 1 && var(47) < 2
;persistent = -1;0;4
helpertype = normal
name = "Laser"
ID = 4221
pos = 3,-40
postype = p1
stateno = 4221
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 4000, Effect]
type = helper
trigger1 = var(48) = 120 || var(48) = 124 || var(48) = 128 || var(48) = 132 || var(48) = 136 || var(48) = 140
trigger1 = var(47) >= 2;var(47) >= 2 && var(47) < 3
;persistent = -1;0;4
helpertype = normal
name = "Aimed Shot"
ID = 4222
pos = 3,-40
postype = p1
stateno = 4222
ownpal = 1
facing = 1
pausemovetime = 180
supermovetime = 180
[State 1001, butt]
Type = AssertSpecial
Trigger1 = 1
Flag = Noshadow
[State 1001, SPR]
Type = SprPriority
Trigger1 = 1
Value = 5
ignorehitpause = 1
[State 1001, AIT]
Type = AfterImageTime
;trigger1 = root,stateno != 3100
trigger1 = root,movetype = H
trigger2 = root,alive = 0
trigger3 = power <= 0;var(40) >= 150
time = 0
[State 1001, Zeeky]
type = DestroySelf
;trigger1 = root,stateno != 3100
trigger1 = root,movetype = H
trigger2 = root,alive = 0
trigger3 = power <= 0;var(40) >= 150
If I do this, then not every orb does the same attack. How do I fix this?[State 4222]
type = VelSet
trigger1 = time = 0
X=1
Y=P2Dist Y+enemynear,const(size.mid.pos.y)
With that, I try to make the aiming part of the second bullet pattern I'm coding while I still have problems with the first one.If you could remove the stuff from your code that's functioning for the next code paste that would be handy. I assume your 2 attacks right now are laser and aimed shot helpers? Which are created at certain times, but also based on the values of 2 variables?
[State 4201]Thanks, that looks all good except for that part:
type = varrandom
trigger1 = var(48) = 120
v = 47
range = 1, 4
I assume this is what you're talking about? I would simply set this at time = 0. It only needs to set once to randomise the variable, that value will be maintained. In addition, varrandom is crap (no really) do this instead
[State 4201]
type = varset
trigger1 = !time
v = 47
value = 1+random%4
You can also make your code more understandable by simply using = sometimes as you're not using floats.
trigger1 = var(47) >= 1 && var(47) < 2
This, is exactly the same as
trigger1 = var(47) = 1
Which is less rubbish to decipher.
Try the above, see if it gives you any other options. You also don't want persistent = 0 on the aimed shot unless you only want it doing a single shot. We can look at the angles later, i don't feel up to that side of things, one problem at a time.
[State 1121]
Type=VelSet
Trigger1=time=0
Trigger1=(P2Dist Y+enemynear,const(size.mid.pos.y))!=0
X=(((2/(((P2Dist X/(P2Dist Y+enemynear,const(size.mid.pos.y)))**2)+1))**0.5)*(P2Dist X/(P2Dist Y+enemynear,const(size.mid.pos.y))))
Y=(2/(((P2Dist X/(P2Dist Y+enemynear,const(size.mid.pos.y)))**2)+1))**0.5
[State 1121]
Type=VelSet
Trigger1=time=0
Trigger1=(P2Dist Y+enemynear,const(size.mid.pos.y))!=0
Trigger1=Vel X<0
Trigger1=P2Dist X>0
X=-vel X
[State 1121]
Type=VelSet
Trigger1=time=0
Trigger1=(P2Dist Y+enemynear,const(size.mid.pos.y))!=0
Trigger1=Vel X>0
Trigger1=P2Dist X<0
X=-vel X
[State 1121]
Type=VelSet
Trigger1=time=0
Trigger1=(P2Dist Y+enemynear,const(size.mid.pos.y))!=0
Trigger1=Vel Y<0
Trigger1=P2Dist Y+enemynear,const(size.mid.pos.y)>0
Y=-vel Y
[State 1121]
Type=VelSet
Trigger1=time=0
Trigger1=(P2Dist Y+enemynear,const(size.mid.pos.y))!=0
Trigger1=Vel Y>0
Trigger1=P2Dist Y+enemynear,const(size.mid.pos.y)<0
Y=-vel Y
[State 1121]
Type=VelSet
Trigger1=time=0
Trigger1=(P2Dist Y+enemynear,const(size.mid.pos.y))=0
X=2
Y=0
Thanks in advance!