tehdevil Posted July 29, 2014 Posted July 29, 2014 Hi, When I perform his Black Surge projectile onto my opponent, it cause a misaligned projectile attack like such: I checked his air file, seems like the projectile collision boxes are properly aligned, The images of orochi in Fighters Factory: http://www.mediafire.com/download/rb6enhc0hal28gd/blacksurgeimage.zip and here is the character's code for his projectile: ;=========================================== ; Black Surge [Statedef 1100] type = S ctrl = 0 anim = 1100 + ifelse((var(32) = [1,4]) || ((var(32) != [1,4]) && (prevstateno = [200,340])), 1, 0) velset = 0,0 movetype = A physics = S sprpriority = 2 poweradd = 111 * (var(48) != [5,6]) [state haha] type = varset trigger1 = time = 0 var(30) = ifelse((var(40) = [1,6]), (1 + ((50 + ((20 + (10 * var(1))) * ((random >= 500) && (movehit) && (var(40) = 6)))) * (var(40) = [2,6]))), 2) + ((19 + (var(40) = [1,6]) + (-50 * (var(40) = [2,6]))) * moveguarded) ignorehitpause = 1 [state haha] type = varset trigger1 = time = 0 var(14) = 0 [state haha] type = posadd trigger1 = animelem = 10 trigger2 = animelem = 11 trigger3 = animelem = 12 x = -8 [State , Helper0] type = Helper trigger1 = animelem = 8,1 helpertype = normal name = "Surges" ID = 1105 pos = ceil(32 * const(size.xscale)), ceil(-108 * const(size.yscale)) postype = P1 ;facing = 1 stateno = 1105 keyctrl = 0 ownpal = 1 supermovetime = 9999 ;pausemovetime = 0 [state haha] type = varset trigger1 = animelem = 1 var(4) = 0 ignorehitpause = 1 [state haha] type = varset trigger1 = animelem = 1 var(5) = 0 ignorehitpause = 1 [state haha] type = varset trigger1 = animelem = 8,1 var(6) = backedgedist + 32 ignorehitpause = 1 [state haha] type = varset trigger1 = animelem = 1 var(7) = 0 ignorehitpause = 1 [state haha] type = varset trigger1 = animelem = 8,1 var(4) = 1 ignorehitpause = 1 [state haha] type = varset trigger1 = animelem = 8,1 var(5) = 1 ignorehitpause = 1 [state haha] type = changestate trigger1 = animtime = 0 value = 0 ctrl = 1 ; Black Surge Projectile [Statedef 1105] type = A ctrl = 0 anim = 6005 velset = 0,0 movetype = A physics = N sprpriority = 2 [state haha] type = varset trigger1 = time = 0 var(1) = 0 ignorehitpause = 1 [state haha] type = varadd trigger1 = time = 17 trigger2 = time = 23 trigger3 = time = 29 trigger4 = time = 35 trigger5 = time = 41 trigger6 = time = 47 trigger7 = time = 53 trigger8 = time = 59 trigger9 = time = 65 trigger10 = time = 71 var(1) = 1 ignorehitpause = 1 [state haha] type = playsnd trigger1 = time = 0 trigger2 = time = 2 value = s0,22 abspan = -255 * ifelse(time = 2, -1, 1) [state haha] type = destroyself trigger1 = time >= 80 I am not sure how to fix the problem, can anyone assist me? Here is the character's link: http://www.mediafire.com/download/362xt2lxbtvetog/Orochi_.zip
0 Werewood Posted July 29, 2014 Posted July 29, 2014 Oh Orochi Herman's MUGEN stuff! Good old classic MUGEN pioneer he was! Which also means, very tricky MUGEN stuff of his! My half-assed (imperfect) solution to your problem: Open constant.cns and find these lines of MUGEN code: ; Black Surge [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(4) = [1,81] var(4) = 1 ignorehitpause = 1 supermovetime = 0 pausemovetime = 0 [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(4) = 1 trigger2 = var(4) = 18 trigger3 = var(4) = 24 trigger4 = var(4) = 30 trigger5 = var(4) = 36 trigger6 = var(4) = 42 trigger7 = var(4) = 48 trigger8 = var(4) = 54 trigger9 = var(4) = 60 trigger10 = var(4) = 66 trigger11 = var(4) = 72 var(5) = 1 ignorehitpause = 1 supermovetime = 0 pausemovetime = 0 [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(4) = [1,81] var(7) = 1 [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 fvar(4) = 1 [State 210, Explod] type = Explod triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 trigger2 = var(4) = 18 trigger3 = var(4) = 24 trigger4 = var(4) = 30 trigger5 = var(4) = 36 trigger6 = var(4) = 42 trigger7 = var(4) = 48 trigger8 = var(4) = 54 trigger9 = var(4) = 60 trigger10 = var(4) = 66 trigger11 = var(4) = 72 anim = IfElse(var(5) = 1, 110001, 1105 + (var(58) != [1,4])) postype = p1 pos = Ceil((16 + (32 * var(5))) * Const(size.xscale)), Ceil(-108 * Const(size.yscale)) ; (var(6) - backedgedist) + ignorehitpause = 1 ownpal = 1 ;removetime = -1 sprpriority = 2 bindtime = 1 scale = Const(size.xscale), Const(size.yscale) [State , Projectile0] type = Projectile triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 projid = 1105; + var(1) attr = A,SP hitflag = MAFP guardflag = M ;affectteam = E animtype = Hard air.animtype = Up ;fall.animtype = DiagUp priority = 7,hit damage = Ceil((140 * fvar(3)) * fvar(4)), Ceil((20 * fvar(3)) * fvar(4)) pausetime = 0,13 guard.pausetime = 0,13 sparkno = -1;3 guard.sparkno = -1;42 ;sparkxy = ceil(10 * const(size.xscale)),ceil(16 * const(size.yscale)) ;hitsound = S0,2 ;guardsound = S0,21 ground.type = High ;air.type = Up ground.slidetime = 12 guard.slidetime = 12;6;20 ground.hittime = 16;25 ;air.hittime = 20 ;guard.hittime = 0 ;guard.ctrltime = 0 ;guard.dist = 0 ;yaccel = 0 ground.velocity = -6 ;guard.velocity = 0,0 ;air.velocity = -6 ;airguard.velocity = 0,0 ground.cornerpush.veloff = 0 air.cornerpush.veloff = 0 down.cornerpush.veloff = 0 guard.cornerpush.veloff = 0 airguard.cornerpush.veloff = 0 ;airguard.ctrltime = 0 air.juggle = 1;5 ;mindist = 0,0 ;maxdist = 0,0 ;snap = 0,0 ;sprpriority = 1 ;p1facing = 0 ;p1getp2facing = 0 ;p2facing = 0 ;p2getp1state = 0 ;forcestand = 0 ;fall = 0 fall.xvelocity = -3.27272725105286 fall.yvelocity = -3.25555985694885 ;fall.recover = 0 ;fall.recovertime = 4 ;fall.damage = 0 air.fall = 1 ;down.velocity = 0,0 ;down.hittime = 0 ;down.bounce = 0 ;ID = 0 ;chainID = 0 ;nochainID = -1 ;hitonce = 0 ;kill = 0 ;guard.kill = 1 ;fall.kill = 1 ;numhits = 1 getpower = 63 * (var(48) != [5,6]), 63 * (var(48) != [5,6]) givepower = 15 * (var(48) != [5,6]), 15 * (var(48) != [5,6]) ;palfx.time = 0 ;palfx.mul = 256,256,256 ;palfx.add = 0,0,0 ;envshake.time = 0 ;envshake.freq = 60 ;envshake.ampl = -4 ;envshake.phase = 90 ;projID = 0 projanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projhitanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projremanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projcancelanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) ;projscale = 1,1 ;projremove = 1 projremovetime = IfElse(var(5) = 1, 25, 9) ;velocity = 0,0 ;remvelocity = 0,0 ;accel = 0,0 ;velmul = 1 ;projhits = 1 ;projmisstime = 0 projpriority = 7 ;projsprpriority = 3 ;projedgebound = 40 ;projstagebound = 40 ;projheightbound = -240,1 ;offset = ceil(ifelse((Helper(1105), time = 0), 32 * (Helper(1105), var(1)), 32) * const(size.xscale)), ceil(-108 * const(size.yscale)) ;offset = ifelse(var(4) < 18, 32, 32 * var(5)), ceil(-108 * const(size.yscale)) offset = Ceil((var(6) + (32 * var(5))) * Const(size.xscale)), Ceil(-108 * Const(size.yscale)) postype = Back projshadow = -1,-1,-1 supermovetime = 0 pausemovetime = 0 persistent = 0 p2facing = 1 [State , Projectile0] type = Projectile triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(4) = 18 trigger2 = var(4) = 24 trigger3 = var(4) = 30 trigger4 = var(4) = 36 trigger5 = var(4) = 42 trigger6 = var(4) = 48 trigger7 = var(4) = 54 trigger8 = var(4) = 60 trigger9 = var(4) = 66 trigger10 = var(4) = 72 id = 1105; + var(1) attr = A,SP hitflag = MAFP guardflag = M ;affectteam = E animtype = Hard air.animtype = Up ;fall.animtype = DiagUp ;priority = 4,hit damage = Ceil((140 * fvar(3)) * fvar(4)), Ceil((20 * fvar(3)) * fvar(4)) pausetime = 0,12 guard.pausetime = 0,12 sparkno = -1;3 guard.sparkno = -1;42 ;sparkxy = ceil(10 * const(size.xscale)),ceil(16 * const(size.yscale)) ;hitsound = S0,2 ;guardsound = S0,21 ground.type = High ;air.type = High ground.slidetime = 12 guard.slidetime = 12;6;20 ground.hittime = 16;25 ;air.hittime = 20 ;guard.hittime = 0 ;guard.ctrltime = 0 ;guard.dist = 0 ;yaccel = 0 ground.velocity = -6 ;guard.velocity = 0,0 air.velocity = -6 ;airguard.velocity = 0,0 ground.cornerpush.veloff = 0 air.cornerpush.veloff = 0 down.cornerpush.veloff = 0 guard.cornerpush.veloff = 0 airguard.cornerpush.veloff = 0 ;airguard.ctrltime = 0 air.juggle = 1;5 ;mindist = 0,0 ;maxdist = 0,0 ;snap = 0,0 ;sprpriority = 1 ;p1facing = 0 ;p1getp2facing = 0 ;p2facing = 0 ;p2getp1state = 0 ;forcestand = 0 ;fall = 0 fall.xvelocity = -3.27272725105286 fall.yvelocity = -3.25555985694885 ;fall.recover = 0 ;fall.recovertime = 4 ;fall.damage = 0 air.fall = 1 ;down.velocity = 0,0 ;down.hittime = 0 ;down.bounce = 0 ;ID = 0 ;chainID = 0 ;nochainID = -1 ;hitonce = 0 ;kill = 0 ;guard.kill = 1 ;fall.kill = 1 ;numhits = 1 getpower = 63 * (var(48) != [5,6]), 63 * (var(48) != [5,6]) givepower = 15 * (var(48) != [5,6]), 15 * (var(48) != [5,6]) ;palfx.time = 0 ;palfx.mul = 256,256,256 ;palfx.add = 0,0,0 ;envshake.time = 0 ;envshake.freq = 60 ;envshake.ampl = -4 ;envshake.phase = 90 ;projID = 0 projanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projhitanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projremanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projcancelanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) ;projscale = 1,1 ;projremove = 1 projremovetime = IfElse(var(5) = 1, 25, 9) ;velocity = 0,0 ;remvelocity = 0,0 ;accel = 0,0 ;velmul = 1 ;projhits = 1 ;projmisstime = 0 ;projpriority = 1 ;projsprpriority = 3 ;projedgebound = 40 ;projstagebound = 40 ;projheightbound = -240,1 ;offset = ceil(ifelse((Helper(1105), time = 0), 32 * (Helper(1105), var(1)), 32) * const(size.xscale)), ceil(-108 * const(size.yscale)) ;offset = ifelse(var(4) < 18, 32, 32 * var(5)), ceil(-108 * const(size.yscale)) offset = Ceil((var(6) + (32 * var(5))) * Const(size.xscale)), Ceil(-108 * Const(size.yscale)) postype = Back projshadow = -1,-1,-1 supermovetime = 0 pausemovetime = 0 p2facing = 1 Replace by these lines of MUGEN code: ; Black Surge [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(4) = [1,81] var(4) = 1 ignorehitpause = 1 supermovetime = 0 pausemovetime = 0 [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 trigger2 = var(4) = 18 trigger3 = var(4) = 24 trigger4 = var(4) = 30 trigger5 = var(4) = 36 trigger6 = var(4) = 42 trigger7 = var(4) = 48 trigger8 = var(4) = 54 trigger9 = var(4) = 60 trigger10 = var(4) = 66 trigger11 = var(4) = 72 var(5) = 1 ignorehitpause = 1 supermovetime = 0 pausemovetime = 0 [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(4) = [1,81] var(7) = 1 [State haha] type = VarAdd triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 fvar(4) = 1 [State 210, Explod] type = Explod triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 trigger2 = var(4) = 18 trigger3 = var(4) = 24 trigger4 = var(4) = 30 trigger5 = var(4) = 36 trigger6 = var(4) = 42 trigger7 = var(4) = 48 trigger8 = var(4) = 54 trigger9 = var(4) = 60 trigger10 = var(4) = 66 trigger11 = var(4) = 72 anim = IfElse(var(5) = 1, 110001, 1105 + (var(58) != [1,4])) postype = p1 pos = Ceil((16 + (32 * var(5))) * Const(size.xscale)) + ifelse(animelemtime(9) <= 0, 0, Ceil(var(6)/22)), Ceil(-108 * Const(size.yscale)) ; (var(6) - backedgedist) + ignorehitpause = 1 ownpal = 1 ;removetime = -1 sprpriority = 2 bindtime = 1 scale = Const(size.xscale), Const(size.yscale) [State , Projectile0] type = Projectile triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 projid = 1105; + var(1) attr = A,SP hitflag = MAFP guardflag = M ;affectteam = E animtype = Hard air.animtype = Up ;fall.animtype = DiagUp priority = 7,hit damage = Ceil((140 * fvar(3)) * fvar(4)), Ceil((20 * fvar(3)) * fvar(4)) pausetime = 0,13 guard.pausetime = 0,13 sparkno = -1;3 guard.sparkno = -1;42 ;sparkxy = ceil(10 * const(size.xscale)),ceil(16 * const(size.yscale)) ;hitsound = S0,2 ;guardsound = S0,21 ground.type = High ;air.type = Up ground.slidetime = 12 guard.slidetime = 12;6;20 ground.hittime = 16;25 ;air.hittime = 20 ;guard.hittime = 0 ;guard.ctrltime = 0 ;guard.dist = 0 ;yaccel = 0 ground.velocity = -6 ;guard.velocity = 0,0 ;air.velocity = -6 ;airguard.velocity = 0,0 ground.cornerpush.veloff = 0 air.cornerpush.veloff = 0 down.cornerpush.veloff = 0 guard.cornerpush.veloff = 0 airguard.cornerpush.veloff = 0 ;airguard.ctrltime = 0 air.juggle = 1;5 ;mindist = 0,0 ;maxdist = 0,0 ;snap = 0,0 ;sprpriority = 1 ;p1facing = 0 ;p1getp2facing = 0 ;p2facing = 0 ;p2getp1state = 0 ;forcestand = 0 ;fall = 0 fall.xvelocity = -3.27272725105286 fall.yvelocity = -3.25555985694885 ;fall.recover = 0 ;fall.recovertime = 4 ;fall.damage = 0 air.fall = 1 ;down.velocity = 0,0 ;down.hittime = 0 ;down.bounce = 0 ;ID = 0 ;chainID = 0 ;nochainID = -1 ;hitonce = 0 ;kill = 0 ;guard.kill = 1 ;fall.kill = 1 ;numhits = 1 getpower = 63 * (var(48) != [5,6]), 63 * (var(48) != [5,6]) givepower = 15 * (var(48) != [5,6]), 15 * (var(48) != [5,6]) ;palfx.time = 0 ;palfx.mul = 256,256,256 ;palfx.add = 0,0,0 ;envshake.time = 0 ;envshake.freq = 60 ;envshake.ampl = -4 ;envshake.phase = 90 ;projID = 0 projanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projhitanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projremanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projcancelanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) ;projscale = 1,1 ;projremove = 1 projremovetime = IfElse(var(5) = 1, 25, 9) ;velocity = 0,0 ;remvelocity = 0,0 ;accel = 0,0 ;velmul = 1 ;projhits = 1 ;projmisstime = 0 projpriority = 7 ;projsprpriority = 3 ;projedgebound = 40 ;projstagebound = 40 ;projheightbound = -240,1 ;offset = ceil(ifelse((Helper(1105), time = 0), 32 * (Helper(1105), var(1)), 32) * const(size.xscale)), ceil(-108 * const(size.yscale)) ;offset = ifelse(var(4) < 18, 32, 32 * var(5)), ceil(-108 * const(size.yscale)) offset = Ceil((16 + (32 * var(5))) * Const(size.xscale)), Ceil(-108 * Const(size.yscale)) postype = P1 projshadow = -1,-1,-1 supermovetime = 0 pausemovetime = 0 persistent = 0 p2facing = 1 [State , Projectile0] type = Projectile triggerall = P1Name = "Orochi" triggerall = AuthorName = "Orochi Herman" trigger1 = var(7) = 1 trigger2 = var(4) = 18 trigger3 = var(4) = 24 trigger4 = var(4) = 30 trigger5 = var(4) = 36 trigger6 = var(4) = 42 trigger7 = var(4) = 48 trigger8 = var(4) = 54 trigger9 = var(4) = 60 trigger10 = var(4) = 66 trigger11 = var(4) = 72 id = 1105; + var(1) attr = A,SP hitflag = MAFP guardflag = M ;affectteam = E animtype = Hard air.animtype = Up ;fall.animtype = DiagUp ;priority = 4,hit damage = Ceil((140 * fvar(3)) * fvar(4)), Ceil((20 * fvar(3)) * fvar(4)) pausetime = 0,12 guard.pausetime = 0,12 sparkno = -1;3 guard.sparkno = -1;42 ;sparkxy = ceil(10 * const(size.xscale)),ceil(16 * const(size.yscale)) ;hitsound = S0,2 ;guardsound = S0,21 ground.type = High ;air.type = High ground.slidetime = 12 guard.slidetime = 12;6;20 ground.hittime = 16;25 ;air.hittime = 20 ;guard.hittime = 0 ;guard.ctrltime = 0 ;guard.dist = 0 ;yaccel = 0 ground.velocity = -6 ;guard.velocity = 0,0 air.velocity = -6 ;airguard.velocity = 0,0 ground.cornerpush.veloff = 0 air.cornerpush.veloff = 0 down.cornerpush.veloff = 0 guard.cornerpush.veloff = 0 airguard.cornerpush.veloff = 0 ;airguard.ctrltime = 0 air.juggle = 1;5 ;mindist = 0,0 ;maxdist = 0,0 ;snap = 0,0 ;sprpriority = 1 ;p1facing = 0 ;p1getp2facing = 0 ;p2facing = 0 ;p2getp1state = 0 ;forcestand = 0 ;fall = 0 fall.xvelocity = -3.27272725105286 fall.yvelocity = -3.25555985694885 ;fall.recover = 0 ;fall.recovertime = 4 ;fall.damage = 0 air.fall = 1 ;down.velocity = 0,0 ;down.hittime = 0 ;down.bounce = 0 ;ID = 0 ;chainID = 0 ;nochainID = -1 ;hitonce = 0 ;kill = 0 ;guard.kill = 1 ;fall.kill = 1 ;numhits = 1 getpower = 63 * (var(48) != [5,6]), 63 * (var(48) != [5,6]) givepower = 15 * (var(48) != [5,6]), 15 * (var(48) != [5,6]) ;palfx.time = 0 ;palfx.mul = 256,256,256 ;palfx.add = 0,0,0 ;envshake.time = 0 ;envshake.freq = 60 ;envshake.ampl = -4 ;envshake.phase = 90 ;projID = 0 projanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projhitanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projremanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) projcancelanim = IfElse(var(5) = 1, 110002, 1110 + (var(58) != [1,4])) ;projscale = 1,1 ;projremove = 1 projremovetime = IfElse(var(5) = 1, 25, 9) ;velocity = 0,0 ;remvelocity = 0,0 ;accel = 0,0 ;velmul = 1 ;projhits = 1 ;projmisstime = 0 ;projpriority = 1 ;projsprpriority = 3 ;projedgebound = 40 ;projstagebound = 40 ;projheightbound = -240,1 ;offset = ceil(ifelse((Helper(1105), time = 0), 32 * (Helper(1105), var(1)), 32) * const(size.xscale)), ceil(-108 * const(size.yscale)) ;offset = ifelse(var(4) < 18, 32, 32 * var(5)), ceil(-108 * const(size.yscale)) offset = Ceil((16 + (32 * var(5))) * Const(size.xscale)), Ceil(-108 * Const(size.yscale)) postype = P1 projshadow = -1,-1,-1 supermovetime = 0 pausemovetime = 0 p2facing = 1 It is very hard to explain to you what/why/how done it................. "I still care to share because I believe in Sharing is Caring" - Werewood
0 tehdevil Posted July 30, 2014 Author Posted July 30, 2014 Now it works, thanks I will try figure out myself
Question
tehdevil
Hi, When I perform his Black Surge projectile onto my opponent, it cause a misaligned projectile attack like such:
I checked his air file, seems like the projectile collision boxes are properly aligned, The images of orochi in Fighters Factory:
http://www.mediafire.com/download/rb6enhc0hal28gd/blacksurgeimage.zip
and here is the character's code for his projectile:
I am not sure how to fix the problem, can anyone assist me? Here is the character's link: http://www.mediafire.com/download/362xt2lxbtvetog/Orochi_.zip
2 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now