Miren Chavos nomas ese progreso que llevo de poco a pocoVIDEO VIDEO El problema en el que tengo del codigo del Z axis que ando usando es que quiero seguir usando el crouch y el jump, y en lugar de usar las direccionales para moverme entre los planos, poder desplazarme entre los planos con alguna combinacion de botones y seguir brincando con arriba y seguir agachandome con abajo, y quisiera que el personaje se volteara automaticamente en lugar de que tu controles cuando se voltea, al estilo clasico de un juego de peleas, ya saben algo tipo Real Bout Fatal Fury o Agressors of Dark Kombat Aparte pues quiero mezclar mi modulito cns pa treparte a la pared con el modulito del Z axis pa que tenga mas mecanicas combinadas Todo esto estoy tratando de que cada mecanica extra añadida al modo de juego de fighting game, pues las ando añadiendo en archivos CNS separados para que asi sean modulitos intercambiablesCodigo para desplazarte en el eje Z al estilo de un Beat Em Up ;--------------------------------------------------------------------------- ; Walk [Statedef 20] type = S physics = S ;sprpriority = 0 [State 20, 1] type = VelSet trigger1 = command = "holdfwd" x = const(velocity.walk.fwd.x) [State 20, 2] type = VelSet trigger1 = command = "holdback" x = const(velocity.walk.fwd.x) [State 20, 2] type = VelSet triggerall = fvar(39) > -50 trigger1 = command = "holdup" y = -const(velocity.walk.fwd.x)/2 ;Divide these to simulate walking to and from the background. [State 20, 2] type = VelSet triggerall = fvar(39) < 30 trigger1 = command = "holddown" y = const(velocity.walk.fwd.x)/2 ;Divide these to simulate walking to and from the background. [State 0, VelAdd] type = Velset triggerall = vel y < 0 && command != "holdup" trigger1 = 1 y = 0 [State 0, VelAdd] type = Velset triggerall = vel y > 0 && command != "holddown" trigger1 = 1 y = 0 [State 20, 3] type = ChangeAnim triggerall = vel x != 0 || vel y != 0 trigger1 = Anim != 20 && Anim != 5 trigger2 = Anim = 5 && AnimTime = 0 value = 20 [State 20, 4] type = ChangeAnim triggerall = vel x < 0 trigger1 = Anim != 21 && Anim != 5 trigger2 = Anim = 5 && AnimTime = 0 value = 21 ;--------------------------------------------------------------------------- ; RUN_FWD [Statedef 100] type = S physics = N ;anim = 100 [State 0, ChangeAnim] type = ChangeAnim trigger1 = anim != 100 value = 100 [State 100, 1] type = null;VelSet triggerall = prevstateno != 10 || prevstateno != 40 trigger1 = time = 0 x = const(velocity.run.fwd.x) [State 0, VelAdd] type = Velset trigger1 = 1 x = const(velocity.run.fwd.x) ;y = 0 [State 0, VelAdd] type = Velset triggerall = vel y < 0 && command != "holdup" trigger1 = 1 y = 0 [State 0, VelAdd] type = Velset triggerall = vel y > 0 && command != "holddown" trigger1 = 1 y = 0 [State 40, 4] type = VelSet trigger1 = command = "holdup" y = -const(velocity.walk.fwd.x)/2 [State 40, 4] type = VelSet trigger1 = command = "holddown" y = const(velocity.walk.fwd.x)/2 [state 100, run jump timer] type = varadd trigger1 = 1 v = 40 value = 1 [State 100, 2] ;Prevent run from canceling into walk type = AssertSpecial trigger1 = 1 flag = NoWalk [State 100, 3] ;Prevent from turning type = AssertSpecial trigger1 = 1 flag = NoAutoTurn [State 100, 4] type = ChangeState trigger1 = command != "holdfwd" value = 0 [State 100, 4] type =null;ChangeState trigger1 = var(59)<=0 trigger1 = command = "holdup" trigger2 = command = "holddown" value = 100 ;--------------------------------------------------------------------------- ;THIS STATE OVERRIDE PREVENTS CROUCHING ;Walk Downwards [Statedef 10] type = S physics = S [State 40, 6] type = ChangeState triggerall = prevstateno != 100 trigger1 = !time value = 20 [State 40, 6] type = ChangeState triggerall = prevstateno = 100 trigger1 = !time value = 100 ;--------------------------------------------------------------------------- ;THIS STATE OVERRIDE PREVENTS JUMPING WITH UP ; Walk Upwards [Statedef 40] type = S physics = S [State 40, 6] type = ChangeState triggerall = prevstateno != 100 trigger1 = !time value = 20 [State 40, 6] type = ChangeState triggerall = prevstateno = 100 trigger1 = !time value = 100 ;--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; States that are always executed (use statedef -2) ;--------------------------------------------------------------------------- [statedef -2] ;----|THIS IS FOR THE Z AXIS|------------------------------------------------------------------- [State 0, DisplayToClipboard] ;FOR SEEING THE Z AXIS VALUE type = DisplayToClipboard triggerall = numenemy trigger1 = 1 text = "Pos y = %f ZDist from P2 = %f" params = fvar(39),(fvar(39)-enemynear,fvar(39)) ignorehitpause = 1 [State 0, AssertSpecial] ;MIGHT WANNA ADD YOUR OWN DROP SHADOW. I FAILED MISERABLY SO THERE IS NO EXAMPLE! type = AssertSpecial trigger1 = 1 flag = noautoturn flag2= noshadow [State 0, Turn] ;This allows you to turn whenever. Kinda screws with running though. type = Turn ;Gotta tap the opposite direction thrice. Using a variable for a timer might fix running. trigger1 = ctrl && statetype != A trigger1 = command = "holdback" && command != "holdfwd" [State 0, PlayerPush] ;Be nice, you have the ability to walk "around" someone now. type = PlayerPush ;You may be able to adjust the width of players for pushing to work well, but I didn't try. trigger1 = 1 value = 0 [State 0, SprPriority] ;This always sets your layer to the exact location on the z axis. type = SprPriority ;Make sure to either adjust or delete any sprpriority sctrls that may conflict. I didn't. triggerall = movetype != H ;SPECIFICALLY FOR BEING KNOCKED DOWN. trigger1 = 1 ;Yes value = floor(fvar(39)) ;Keepin' it real, our fvriend, the z axis. That's not a typo. [State 0, VelSet] ;This prevents you from sliding up or down while attacking. type = VelSet ;Made this because I was too lazy to add velsets everywhere. trigger1 = movetype = A && statetype = S y = 0 [State 0, VarSet] ;REMEMBER THIS VARIABLE! IT IS YOUR FVRIEND!! type = VarSet triggerall = statetype != A && movetype != H && stateno != 42 ;As long as you aren't airborne or hurt, it will update. trigger1 = 1 fv = 39 ;Yes value = pos y ;Yep ignorehitpause = 1 persistent = 1 [State 0, PosSet] ;Can't have you walking too far up or down. Adjust these as you see fit. type = PosSet triggerall = movetype != H trigger1 = fvar(39) > 30 y = 30 ;THIS ONE IS DOWNWARDS [State 0, PosSet] type = PosSet triggerall = movetype != H trigger1 = fvar(39) < -50 y = -50 ;THIS ONE IS UPWARDS ;----------|END OF Z AXIS|--------------------------------------------------------------------------- ;--------------------------------------------------------------------------- ; States that are executed when in self's state file (use statedef -3) ;--------------------------------------------------------------------------- [Statedef -3] ;This controller plays a sound everytime KFM lands from a jump, or ;from his back-dash. [State -3, Landing Sound] type = PlaySnd triggerall = Time = 1 trigger1 = stateno = 52 ;Jump land trigger2 = stateno = 106 ;Run-back land value = 40, 0 Codigo pa treparte a la pared y encima escalarla ;----------------------------------------------------------------------------- [StateDef 60] type = A physics = A anim = 60 ctrl = 0 [State 60, VarSet] type = VarSet trigger1 = Time = 0 trigger2 = Command = "holdback" v = 1 value = 0 [State 60, VarAdd] type = VarAdd trigger1 = Command != "holdback" v = 1 value = 1 [State 60, Let Go] type = ChangeState trigger1 = var(1) >= 10 value = 50 [State 61, VelMul] type = VelMul trigger1 = 1 trigger1 = Pos Y < -50 trigger1 = Vel Y < 0 x = 1 y = .75 [State 60, VelSet] type = VelSet triggerall = Command = "holdback" trigger1 = Vel Y > 0 x = 0 y = 1.5 [State 60, Floor] type = ChangeState trigger1 = Pos Y = 0 value = 0 [state a] type = changestate trigger1 = command = "c" trigger1 = time >= 1 value = 310 ;--------------------------------------------------------------------------- [Statedef 310] type = A physics = A ctrl = 1 anim = 310 [state a] type = varset trigger1 = time = 0 trigger1 = command != "hold_b" v = 3 value = 0 [state a] type = varset trigger1 = time = 0 trigger1 = command = "hold_b" v = 3 value = 1 [State a] type = afterimage trigger1 = time = 0 trigger1 = var(3) = 1 trans = add timegap = 1 FrameGap = 5 time = -1 PalBright = 255,255,255 PalContrast = 41,81,173 [state a] type = posadd trigger1 = time = 0 x = 5 [State a] type = removeExplod trigger1 = time = 0 id = 400 [State 50, 1] type = velset trigger1 = var(3) = 0 trigger1 = Time = 0 x = 3 y = -6 [State 50, 1] type = velset trigger1 = var(3) = 1 trigger1 = Time = 0 x = 5 y = -7 [State 50, 1] type = velset trigger1 = time >= 10 trigger1 = var(3) = 0 trigger1 = command = "holdfwd" x = 2.5 [State 50, 1] type = velset trigger1 = time >= 10 trigger1 = var(3) = 0 trigger1 = command = "holdback" x = -2.5 [State 50, 1] type = velset trigger1 = time >= 10 trigger1 = var(3) = 1 trigger1 = command = "holdfwd" x = 4.5 [State 50, 1] type = velset trigger1 = time >= 10 trigger1 = var(3) = 1 trigger1 = command = "holdback" x = -4.5 [State 50, 1] type = velset trigger1 = time >= 10 trigger1 = command != "holdfwd" trigger1 = command != "holdback" x = 0 [State 50, 1] type = velset trigger1 = time >= 10 trigger1 = command != "holdback" trigger1 = vel y <= 0 y = 0 [state a] type = velmul triggerall = time < 10 trigger1 = facing = -1 trigger1 = pos x < 0 trigger2 = facing = 1 trigger2 = pos x > 0 x = 0.8 [State 191, Snd 1] type = PlaySnd trigger1 = time = 1 value = 300,1 [State 191, Snd 1] type = PlaySnd trigger1 = time = 1 value = 301,0 [State 50, 3] type = ChangeAnim trigger1 = Vel y > -2 persistent = 0 value = 44 [state a] type = varset trigger1 = animelem = 1 v = 10 value = 1 [state a] type = varset trigger1 = animelem = 2 v = 10 value = 2 [state a] type = varset trigger1 = animelem = 3 v = 10 value = 3 [state a] type = varset trigger1 = animelem = 4 v = 10 value = 4 [state a] type = changeanim trigger1 = var(8) > 0 trigger1 = anim = 310 value = 315 elem = var(10) [state a] type = changeanim trigger1 = var(8) = 0 trigger1 = anim = 315 value = 310 elem = var(10) [state a] type = changeanim trigger1 = var(8) > 0 trigger1 = anim = 44 value = 244 elem = var(10) [state a] type = changeanim trigger1 = var(8) = 0 trigger1 = anim = 244 value = 44 elem = var(10) [State a] type = Explod trigger1 = var(11) = 0 trigger1 = var(8) = 19 anim = 205 id = 200 sprpriority = 5 postype = p1 pos = 2,0 bindtime = -1 under = 0 trans = addalpha alpha = 235,220 ownpal = 1 [State a] type = Explod trigger1 = var(11) = 1 trigger1 = var(8) = 19 anim = 206 id = 200 sprpriority = 5 postype = p1 pos = 2,0 bindtime = -1 under = 0 trans = addalpha alpha = 235,220 ownpal = 1 [State a] type = Explod trigger1 = var(11) = 2 trigger1 = var(8) = 19 anim = 207 id = 200 sprpriority = 5 postype = p1 pos = 2,0 bindtime = -1 under = 0 trans = addalpha alpha = 235,220 ownpal = 1