segunda-feira, 9 de março de 2009

super jump 2.0

fiz um novo tópico para não misturar com o código anterior, esse aqui é mais otimizado, mas se por acaso tiver algum problema em fvars, pode usar o antigo sussegado 

começemos...

) no CMD

;-| Super Jump |--------------------------------------------------------------
[command]
name = "DU"
command = ~$D,U
time = 15
[command]
name = "DUF"
command = ~$D,UF
time = 15
[command]
name = "DUB"
command = ~$D,UB
time = 15



cole isso na parte dos comandos de seu char (antes do statedef -1)

depois disso, vem a parte de efetuar o comando em si:

; Super Jump
;-------------------------
[state -1, superjump up, fwd and back]
type = changestate
triggerall = (command = "DU" || command = "DUF" || command = "DUB")
triggerall = statetype!= A
trigger1 = ctrl 
value = 900



entendeu bulhufas? então vamos entender:

type = changestate;quer dizer que você vai para o state em questão se...
triggerall = (command = "DU" || command = "DUF" || command = "DUB");efetuar um desses comandos...
triggerall = statetype!= A; não estiver no ar...
trigger1 = ctrl ; e tiver o controle do lutador
value = 900 ; e esse é o state para o qual você vai, o do pulo, duh =P

2)no CNS

; Super Jump
;-------------------------
;---[Starts]---
[statedef 900]
type = S
physics = S
anim = 40
ctrl = 0

[State 900, superjump dir]
type = varset
trigger1 = !time
fvar(19) = ifelse(command = "DUF", const(velocity.jump.fwd.x)+2, ifelse(command = "DUB", const(velocity.jump.back.x)-2,0))

[state 900, end]
type = changestate
trigger1 = animtime = 0
value = 901



amagad, wtf? calma, vamos desmembrar o bicho 


[statedef 900]
type = S
physics = S
anim = 40
ctrl = 0

simples, você tá no chão, não tá atacando ninguém e a anim disso é a 40, e não tens o controle do char 

[State 900, superjump dir]
type = varset
trigger1 = !time
fvar(19) = ifelse(command = "DUF", const(velocity.jump.fwd.x)+2, ifelse(command = "DUB", const(velocity.jump.back.x)-2,0))

aqui usamos um treco muito divertido chamado fvar, que nada mais é do que uma var que pode usar numeros quebrados mas por que eu não usei uma var então?
se usasse, estaria admitindo que os valores de const em questão são numeros inteiros, e usando fvar eles podem ser quebrados, entendeu? 

agora sendo bem simples, a fvar(19) definirá a direção do jump. eu poderia usar 3 varsets diferentes, mas prefiro usar o ifelse para simplificar. ifelse quer dizer "se, porém...", eu demoraria para explicar seu uso, mas o meu amigo kurai naito fez um tuto explicando sua função, vão no site dele e façam o dowload 

mas uma explicação rapida do treco: se você fizer o comando "DUF" a velocidade será a constante de velocidade pra frente durante o pulo mais 2, se apertar o comando "DUB" será a constante de velocidade para trás menos 2, se for qualquer outro comando, no caso "DU", o valor será 0, sem aceleração 

[state 900, end]
type = changestate
trigger1 = animtime = 0
value = 901
aqui muda para o state do pulo no ar, quando a anim 40 chegar ao fim, e 901 é o state dessa parte do código 

;---[Jump]---
[statedef 901]
type = A
physics = A
anim = 41
velset = fvar(19),const(velocity.jump.y)*1.125
ctrl = 1

[state 901, noturn]
type = assertspecial
trigger1 = 1
flag = noautoturn


esse é o state final do código, tá chegando ao fim essa epopéia do pulo 


;---[Jump]---
[statedef 901]
type = A
physics = A
anim = 41
velset = fvar(19),const(velocity.jump.y)*1.125
ctrl = 1

cê tá no ar, não tá atacando ninguém, a anim desse pulo é a 41, a velocidade x é o valor da fvar(19), e a velocidade y é a constante de velocidade y multiplicado por 1.125 (para diferenciar da altura do pulo normal, para ir mais alto aumente esse ultimo valor), e você têm o controle do bicho 

[state 901, noturn]
type = assertspecial
trigger1 = 1
flag = noautoturn
isso é para o seu char nao virar sozinho durante o pulo, quando passar pelo oponente 

e chegamos ao fim desse código, se você quer apelas copiar e colar essa bosta sem saber pra que serve cada coisa, acompanhe abaixo:

no CMD

;-| Super Jump |--------------------------------------------------------------
[command]
name = "DU"
command = ~$D,U
time = 15
[command]
name = "DUF"
command = ~$D,UF
time = 15
[command]
name = "DUB"
command = ~$D,UB
time = 15

; Super Jump
;-------------------------
[state -1, superjump up, fwd and back]
type = changestate
triggerall = (command = "DU" || command = "DUF" || command = "DUB")
triggerall = statetype!= A
trigger1 = ctrl 
value = 900

no CNS

; Super Jump
;-------------------------
;---[Starts]---
[statedef 900]
type = S
physics = S
anim = 40
ctrl = 0

[State 900, superjump dir]
type = varset
trigger1 = !time
fvar(19) = ifelse(command = "DUF", const(velocity.jump.fwd.x)+2, ifelse(command = "DUB", const(velocity.jump.back.x)-2,0))

[state 900, end]
type = changestate
trigger1 = animtime = 0
value = 901

;---[Jump]---
[statedef 901]
type = A
physics = A
anim = 41
velset = fvar(19),const(velocity.jump.y)*1.125
ctrl = 1

[state 901, noturn]
type = assertspecial
trigger1 = 1
flag = noautoturn



espero que entendam, tá super simples, mas eu que sou tosco e não sou bom professor mesmo 

Um comentário: