i changed @ndroide God Rugal jumps code to shin gouki by pots jump code for having short jumps but for some reason in the long jump i dont get afterimage and i dont know why :p
;---------------------------------------------------------------------------
[Statedef 40]
type=S
physics=S
anim=40
ctrl=0
sprpriority=1
facep2=1
[State 40, var]
type=varset
trigger1= !time && var(59)>=1
var(9)=ifelse((p2dist x>240 || p2dist y>180),3,1)
[State 40, var]
type=varset
trigger1= var(59)>=1
sysvar(1)= 1;ifelse((enemynear,movetype!=A || backedgebodydist<=10),1,ifelse((enemynear,movetype=A),-1,0))
[State 40, var]
type=varset
trigger1= !time && var(59)<=0
var(9)=ifelse(command="highjump",3,1)
[State 40, var]
type=varset
trigger1= var(59)<=0
sysvar(1)=ifelse(!time,0,ifelse(command="holdfwd",1,ifelse(command="holdback",-1,sysvar(1))))
[State 40, var]
type=varset
trigger1= var(59)<=0 && var(9)!=3 && command!="holdup"
trigger2= var(59)>=1 && var(9)!=3 && random<100
var(9)=2
[State 40, var]
type=varset
trigger1= !time && prevstateno=240
var(9)=3
[State 40, Dust]
type=helper
trigger1= !animtime
helpertype=normal
stateno=7100
ID=7100
name="Dust"
postype=p1
ownpal=1
[State 40, Vel]
type=velset
trigger1= !animtime && var(9)!=3
x=ifelse(!sysvar(1),const(velocity.jump.neu.x),ifelse(sysvar(1)=1,const(velocity.jump.fwd.x),const(velocity.jump.back.x)))
y=ifelse(var(9)=2,.75,1)*const(velocity.jump.y)
[State 40, Vel]
type=velset
trigger1= !animtime && var(9)=3
x=ifelse(sysvar(1)=0,const(velocity.jump.neu.x),ifelse(sysvar(1)=1,1.5*const(velocity.jump.fwd.x),1.5*const(velocity.jump.back.x)))
y=ifelse(!sysvar(1),1.15,1)*const(velocity.jump.y)
[State 40, Vel]
type=velset
trigger1= !animtime && prevstateno=100 && sysvar(1)=1
trigger1= var(9):=3
x=const(velocity.runjump.fwd.x)
[State 40, End]
type=changestate
trigger1= !animtime
value=50
ctrl=1
[Statedef 50]
type=A
physics=A
[State 50, Snd]
type=playsnd
trigger1= !time
value=0,ifelse(var(9)=3,41,40)
[State 50, Anim]
type=changeanim
trigger1= var(9)!=2
value=ifelse(!(vel x), 41, ifelse((vel x)>0, 42, 43))
persistent=0
[State 50, Anim]
type=changeanim
trigger1= var(9)=2
value=ifelse(!(vel x), 51, ifelse((vel x)>0, 52, 53))
elem=animelemno(0)
persistent=0
[State 50, No Guard]
type=assertspecial
trigger1= var(9)=2
flag=noairguard
[Statedef 51]
type=A
physics=A
[State 51, null]
type=null
trigger1= 1
[Statedef 52]
type=S
physics=S
ctrl=0
anim=ifelse(vel y>11,48,47)
movehitpersist=1
[State 52, stop]
type=velset
trigger1= 1
x=0
y=0
[State 52, Pos]
type=posset
trigger1= 1
y=0
[State 52, anim48]
type=changeanim
trigger1= !time && (prevstateno=222 || prevstateno=1250 || (prevstateno=[1301,1310]) || prevstateno=3050)
value=48
[State 52, anim283]
type=changeanim
trigger1= !time && prevstateno=282
value=283
[State 52, anim1102]
type=changeanim
trigger1= !time && ((prevstateno=[1100,1110]) || prevstateno=3100)
value=1102
[State 52, Snd]
type=playsnd
trigger1= !time
value=0,52
[State 52, Dust]
type=explod
trigger1= !time
anim=7102
ID=7102
sprpriority=-2
postype=p1
scale=.5,.5
ownpal=1
pausemovetime=-1
supermovetime=-1
[State 52, ctrl]
type=ctrlset
trigger1= !time
trigger1= prevstateno!=[200,4999]
value=1
[State 52, ctrl]
type=ctrlset
trigger1= time>=1
trigger1= prevstateno<1000
value=1
[State 52, guard]
type=changestate
trigger1= command="holdback"
trigger1= inguarddist && (prevstateno!=[200,4999])
value=120
[State 52, nowalk]
type=assertspecial
trigger1= time<=2 || (prevstateno=[200,4999])
flag=nowalk
[State 52, End]
type=changestate
trigger1= !animtime
value=0
ctrl=1