okay, i have this overly random problem of having a division by zero error. or maybe not, i can't tell, honestly.
i copied this piece of code from somewhere else, since the other "aimed projectile" code wont work when it's used with the floor function thing.
[State 7101, Null]
type = Null
triggerall = !time
trigger1 = (FVar(3) := (P2Dist X * 20) / (Exp(0.5*ln((P2Dist X * P2Dist X) + (P2Dist Y * P2Dist Y)))))
trigger1 = (FVar(4) := (P2Dist Y * 15) / (Exp(0.5*ln((P2Dist X * P2Dist X) + (P2Dist Y * P2Dist Y)))))
[State 7101, VelSet]
type = VelSet
trigger1 = 1
x = FVar(3)
y = FVar(4)
so yeah, my projectiles ended up "aimed", but for some time i get random "division by zero" errors...
this is my entire code for that attack:
;---------------------------------------------------------------------------
;SATETSU SHIGURE------------------------------------------------------------
;IRON SAND DRIZZLE----------------------------------------------------------
;---------------------------------------------------------------------------
;Iron Sand Bullets (Satetsu Shigure)
;---------------------------------------------------------------------------
;the bullet
[StateDef 7011]
type = S
movetype= A
physics = S
juggle = 3
velset = 0,0
ctrl = 0
anim = 7910
poweradd = 0
sprpriority = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(59),var(58)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(57),var(56)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(55),var(54)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(53),var(52)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(51),var(50)
vel = 0,-5
postype = p1
ontop = 1
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 59
range = -20,20
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 58
range = 20,-20
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 57
range = -20,20
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 56
range = 20,-20
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 55
range = -20,20
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 54
range = 20,-20
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 53
range = -20,20
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 52
range = 20,-20
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 51
range = -20,20
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 50
range = 20,-20
;range = -120,-200
[State 7011, 1]
type = ChangeState
trigger1 = animelem = 6 && parent,p2dist x > -1 && facing = -1 || animelem = 3 && parent,p2dist x > -1 && facing = 1
value = 7101
[State 7011, 2]
type = ChangeState
trigger1 = animtime = 8
value = 71010
;if enemy reaches the back of sandaime, then bullet will fall rapidly,
[StateDef 71010]
type = S
movetype= A
physics = S
juggle = 3
velset = 0,0
ctrl = 0
anim = 7216
poweradd = 0
sprpriority = 2
[State 7101, VelSet]
type = VelSet
trigger1 = 1
x = ifelse(random < 500 , -2,ifelse(random < 500 , 2,ifelse(random < 500 , -1,1)))
y = 11
[State 7101, blah]
type = AngleSet
trigger1 = 1
value = (atan(Vel Y/Vel X) + (pi)) *(-180/Pi)
;value = (atan(Vel Y/Vel X) + (3*pi/2)) *(-180/Pi)
[State 7101, blah]
type = AngleDraw
trigger1 = 1
[State 0, AfterImage]
type = AfterImage
trigger1 = animelem = 1
time = 15
length = 20
palcontrast = 40,0,88
paladd = 20,20,20
palmul = .65,.65,.75
timegap = 2
framegap = 1
trans = add1
[State 7101, 1]
type = HitDef
trigger1 = time = 0
attr = S, NP
damage = 3,2
animtype = medium
guardflag = MA
hitflag = MAFDP
priority = 3, Hit
pausetime = 0, 0
sparkno = 1
sparkxy = 0, 0
hitsound = 5, 0
guardsound = 6, 0
ground.type = High
ground.slidetime = 5
ground.hittime = 12
ground.velocity = -0.8
airguard.velocity = -0.3,-.8
air.type = High
air.velocity = -0.8,-0.3
air.hittime = 12
envshake.time = 10
envshake.freq = 90
envshake.ampl = -4
envshake.phase = 90
[State 7101, end]
type = VelSet
trigger1 = pos y > 1
x = 0
y = 0
[State 405, explod]
type = explod
trigger1 = pos y > 1
anim = 7084
pos = 0,0
postype = p1
removetime = 15
ontop = 1
scale = 0.6,0.6
persistent = no
[State 0, PlaySnd]
type = PlaySnd
trigger1 = pos y > 1
value = 8,1
volume = 0
channel = -1
freqmul = 1.0
loop = 0
pan = 0
persistent = no
[State 0, PlaySnd]
type = PlaySnd
trigger1 = pos y > 1
value = 9,10
volume = 0
channel = -1
freqmul = 1.0
loop = 0
pan = 0
persistent = no
[State 0, PlaySnd]
type = PlaySnd
trigger1 = pos y > 1
value = 60,3
volume = 0
channel = -1
freqmul = 1.0
loop = 0
pan = 0
persistent = no
[State 0, EnvShake]
type = EnvShake
trigger1 = pos y > 1
time = 10
freq = 90
ampl = -4
phase = 90
;ignorehitpause =
persistent = no
[State 7101, DestroySelf]
type = DestroySelf
trigger1 = time >= 25
;if stays at front, it will home at target,
[StateDef 7101]
type = S
movetype= A
physics = S
juggle = 3
velset = 0,0
ctrl = 0
anim = 7216
poweradd = 0
sprpriority = 2
[State 7101, Null]
type = Null
triggerall = !time
trigger1 = (FVar(3) := (P2Dist X * 20) / (Exp(0.5*ln((P2Dist X * P2Dist X) + (P2Dist Y * P2Dist Y)))))
trigger1 = (FVar(4) := (P2Dist Y * 15) / (Exp(0.5*ln((P2Dist X * P2Dist X) + (P2Dist Y * P2Dist Y)))))
[State 7101, VelSet]
type = VelSet
trigger1 = 1
x = FVar(3)
y = FVar(4)
[State 7101, VelSet]
type = VelSet
trigger1 = p2dist y < parentdist y
x = ifelse(random < 500 , -2,ifelse(random < 500 , 2,ifelse(random < 500 , -1,1)))
y = 11
[State 7101, blah]
type = AngleSet
trigger1 = 1
value = (atan(Vel Y/Vel X) + (pi)) *(-180/Pi)
;value = (atan(Vel Y/Vel X) + (3*pi/2)) *(-180/Pi)
[State 7101, blah]
type = AngleDraw
trigger1 = 1
[State 0, AfterImage]
type = AfterImage
trigger1 = animelem = 1
time = 15
length = 5
palcontrast = 40,0,88
paladd = 20,20,20
palmul = .65,.65,.75
timegap = 1
framegap = 1
trans = add1
[State 7101, 1]
type = HitDef
trigger1 = time = 0
attr = S, NP
damage = 3,2
animtype = medium
guardflag = MA
hitflag = MAFDP
priority = 3, Hit
pausetime = 0, 0
sparkno = 1
sparkxy = 0, 0
hitsound = 5, 0
guardsound = 6, 0
ground.type = High
ground.slidetime = 5
ground.hittime = 12
ground.velocity = -0.8
airguard.velocity = -0.3,-.8
air.type = High
air.velocity = -0.8,-0.3
air.hittime = 12
envshake.time = 10
envshake.freq = 90
envshake.ampl = -4
envshake.phase = 90
[State 7101, end]
type = VelSet
trigger1 = pos y > 1
x = 0
y = 0
[State 405, explod]
type = explod
trigger1 = pos y > 1
anim = 7084
pos = 0,0
postype = p1
removetime = 15
ontop = 1
scale = 0.6,0.6
persistent = no
[State 0, PlaySnd]
type = PlaySnd
trigger1 = pos y > 1
value = 9,15
volume = 0
channel = -1
freqmul = 1.0
loop = 0
pan = 0
persistent = no
[State 0, PlaySnd]
type = PlaySnd
trigger1 = pos y > 1
value = 9,10
volume = 0
channel = -1
freqmul = 1.0
loop = 0
pan = 0
persistent = no
[State 0, PlaySnd]
type = PlaySnd
trigger1 = pos y > 1
value = 60,3
volume = 0
channel = -1
freqmul = 1.0
loop = 0
pan = 0
persistent = no
[State 0, EnvShake]
type = EnvShake
trigger1 = pos y > 1
time = 10
freq = 90
ampl = -4
phase = 90
;ignorehitpause =
persistent = no
[State 7101, DestroySelf]
type = DestroySelf
trigger1 = time >= 25
;---------------------------------------------------------------------------
;Satetsu Shigure Puppet Prepare
[Statedef 2030]
type = S
movetype= A
physics = S
juggle = 4
poweradd= 0
ctrl = 0
velset = 0,0
anim = 4003
sprpriority = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(59),var(58)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(57),var(56)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(55),var(54)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(53),var(52)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(51),var(50)
vel = 0,-5
postype = p1
ontop = 1
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 59
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 58
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 57
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 56
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 55
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 54
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 53
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 52
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 51
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 50
range = 20,-90
;range = -120,-200
[State 2303, HitOverride]
type = hitoverride
trigger1 = 1
attr = SCA, NT, ST, HT, NA, SA, HA,NP,SP,HP
stateno = 2020
time = 1
[State 2030, parentvarset]
type = parentvarset
trigger1 = animelem = 1
v = 31
value = 1
[State 0, PowerAdd]
type = PowerAdd
trigger1 = animelem = 1
value = -500
;ignorehitpause =
;persistent =
[State 1000, PlaySnd]
type = PlaySnd
trigger1 = animelem = 1
value = 9,3
volume = 1600
channel = 0
[State 2303, 2]
type = ChangeState
trigger1 = animtime = 0
value = 2303
;---------------------------------------------------------------------------
;Satetsu Shigure Puppet Release
[Statedef 2303]
type = S
movetype= A
physics = S
juggle = 4
poweradd= 0
ctrl = 0
velset = 0,0
anim = 4030
sprpriority = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(59),var(58)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(57),var(56)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(55),var(54)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(53),var(52)
vel = 0,-5
postype = p1
ontop = 1
[State 8060, 2]
type = explod
trigger1 = time = 0
trigger2 = time + 1
helpertype = normal
anim = 7910
pos = var(51),var(50)
vel = 0,-5
postype = p1
ontop = 1
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 59
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 58
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 57
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 56
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 55
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 54
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 53
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 52
range = 20,-90
;range = -120,-200
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 51
range = -20,70
[State 7010, varrandom]
type = varrandom
trigger1 = 1
v = 50
range = 20,-90
;range = -120,-200
[State 2030, HitOverride]
type = hitoverride
trigger1 = 1
attr = SCA, NT, ST, HT, NA, SA, HA,NP,SP,HP
stateno = 2020
time = 1
[State 2030, parentvarset]
type = parentvarset
trigger1 = animtime = 0
v = 31
value = 0
;Iron Sand Rain Spammer
[State 0, VarRandom]
type = VarRandom
trigger1 = 1
v = 43
range = -5,floor(p2dist X) + 60
;ignorehitpause =
;persistent =
[State 0, varrandom]
type = varrandom
trigger1 = 1
v = 42
range = -40,-70
;ignorehitpause =
;persistent =
[State 7010, varrandom]
type = varrandom
trigger1 = p2dist x < 0 && facing = -1 || p2dist x < 0 && facing = 1
v = 42
range = 0,-70
[State 7010, varrandom]
type = varrandom
trigger1 = p2dist x < 0 && facing = -1 || p2dist x < 0 && facing = 1
v = 43
range = 20,45
;Iron Sand Bullet Spam starts here
[State 8060, 2]
type = helper
trigger1 = animelem = 4
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 5
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 6
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 7
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 8
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 9
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 10
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 11
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 12
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 13
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 14
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 15
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 16
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 17
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 18
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 19
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 20
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 21
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 22
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 23
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 24
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 25
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 26
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 27
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 28
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 29
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 30
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 31
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 32
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 33
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 34
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 35
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 36
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 37
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 38
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 39
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 40
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 41
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 42
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 43
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 44
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 8060, 2]
type = helper
trigger1 = animelem = 45
helpertype = normal
stateno = 7011
pos = var(43),var(42)
postype = p1
ontop = 1
[State 2030, parentvarset]
type = parentvarset
trigger1 = parent, command = "s"
v = 20
value = 5
[State 2030, 3]
type = ChangeState
trigger1 = AnimTime = 0
value = 2000
ctrl = 1
[State 2030, 4]
type = changestate
trigger1 = parent, command = "s"
trigger2 = parent, life = 0
value = 2099
;---------------------------------------------------------------------------
;SATETSU SHIGURE END
;---------------------------------------------------------------------------
I tried to look at when the errors usually appear, and apparently they appear when one of the bullets don't move at all (they get stuck instead when spammed). I initially wanted them that the moment they appear, they immediately go towards the enemy. But yeah, for some reason, some one, or two bullets in a whole round of attack won't move, and when those wont move, I get a division by zero error:

***notice the horizontal bullet at middle right side there. when one of the needles stop, one "division by zero" error line appears.
also, just wanna ask, if there is a way for you to code a trigger this way:
"first, they have to trigger pos y > 1.
then they have to trigger time > 25.
after that, the state would trigger"
(trigger pos y first, then count 25 ticks, then state would activate)
thanks guys, more power 