You'll be redirected to new website in 30s.
Click here if it doesn't redirect automatically or if you don't want to wait.
Or click here if you don't want to be redirected.
Sexta-feira, 03/05/2024, 9:06 AM
Bem vindo Visitante | RSS
Menu
Chat
Globo de Vísitas
Estatísticas
Total Online: 1
Visitantes: 1
Usuários: 0
Login
Esse tutorial vai ensinar a vcs como bloquear as teclas F1, F2 e infelizmente o Espaço

Primeiramente você precisa ter o StateDef -2 no seu char, caso não tenha, apenas adicione a seguinte linha no seu char:

Code
[StateDef -2]

Agora vou explicar mais ou menos como funciona o code.
Iremos criar um helper, esse helper vai ser idêntico ao char e será controlado pelo jogador, enquanto mandamos o char pra um State com animação invisível, ou seja, o Player irá controlar o helper ao invés do char.
Usaremos também variáveis para controlar a vida do char para ficar igual a vida do helper, e é ai q fica o segredo! Como F1, F2 e Espaço não afetam helpers, essas teclas não conseguiram mexer na vida do char, q será igual a do helper ^^

Vamos então chamar nosso helper:

Code
[State -2, Helper]
Type = Helper ;<-- Chama o Helper
TriggerAll = NumHelper(9000) = 0 ;<-- Se não tiver nenhum outro helper igual a esse
Trigger1 = RoundState = 1 ;<-- E também se estiver na introdução da luta
Trigger1 = Var(43) = 0 ;<-- Pequena correção de bug xD
HelperType = Player ;<-- Vai ser um helper considerado como Jogador
Name = "Char" ;<-- Nome do helper
ID = 9000 ;<-- ID do helper
StateNo = 191 ;<-- O Helper vai para a introdução do char
Pos = 0,0 ;<-- Posição do helper
PosType = P1 ;<-- Posição em relação ao P1
Facing = 1 ;<-- Olhando pra mesma direção do char
KeyCtrl = 1 ;<-- O Player poderá controlar o helper
OwnPal = 1 ;<-- O helper terá paleta própria

[State -2, Helper 2]
Type = Helper
TriggerAll = NumHelper(9000) = 0
Trigger1 = RoundState = 2 ;<-- Se o player tiver pulado a intro, vai chamar o helper também
Trigger1 = Var(43) = 0 ;<-- Pequena correção de bug xD
HelperType = Player
Name = "Char"
ID = 9000
StateNo = 0 ;<-- Mas direto na stand
Pos = 0,0
PosType = P1
Facing = 1
KeyCtrl = 1
OwnPal = 1

Agora vamos usar alguns controles no Helper para ele não bugar:


Code
[State -2, Turn]
Type = Turn ;<-- Isso fará o helper virar
Trigger1 = IsHelper(9000) ;<-- Se for o helper
Trigger1 = StateNo = 0 ;<-- E ele estiver na Stand
Trigger1 = P2Dist X < 0 ;<-- E o P2 tiver passado por ele

[State -2, LifeSet]
Type = LifeSet ;<-- Isso vai definir a quantidade de vida do Helper
Trigger1 = IsHelper(9000)
Trigger1 = Life > 1000 ;<-- Se o helper tiver mais do que 1000 de vida (obs: Helpers entram em cena com muuuuuuuita vida)
Value = 1000 ;<-- Vida do helper

[State -2, CtrlSet]
Type = CtrlSet ;<-- Irá definir o controle do Helper
Trigger1 = IsHelper(9000)
Trigger1 = RoundState = 2 ;<-- Quando estiver no momento da luta
Trigger1 = PrevStateNo = 191 ;<-- E se o state anterior for a Intro
Value = 1 ;<-- Controle

[State -2, StopSnd]
Type = StopSnd ;<-- Para o som
TriggerAll = IsHelper(9000)
Trigger1 = Life = 0 ;<-- Quando o helper morrer
Trigger2 = Win ;<-- Ou vencer
Trigger3 = Lose ;<-- Ou perder
Trigger4 = DrawGame ;<-- Ou empatar
Channel = 0 ;<-- Canal do som

[State -2, DestroySelf]
Type = DestroySelf ;<--  Irá fazer o helper sumir
TriggerAll = IsHelper(9000)
Trigger1 = Life = 0
Trigger2 = Win
Trigger3 = Lose
Trigger4 = DrawGame

Agora usaremos Variáveis para definir guardar a posição do helper e fazer o char seguir o helper:


Code
[State -2, ParentVarSet]
Type = ParentVarSet ;<-- Seta uma var do "Pai" do helper
Trigger1 = IsHelper(9000)
Trigger1 = Root,Var(40) != Floor(Pos X) ;<-- Quando a var(40) do char for diferente da posição X arredondada do helper (obs: Posição tem valores arredondados)
V = 40 ;<-- Vai usar a var 40
Value = Floor(Pos X) ;<-- A var 40 vai valer a posição X arredondada do helper

[State -2, ParentVarSet 2]
Type = ParentVarSet ;<-- Mesma coisa do de cima
Trigger1 = IsHelper(9000)
Trigger1 = Root,Var(41) != Floor(Pos Y) ;<-- Mas com a posição Y
V = 41 ;<-- E usando a var 41
Value = Floor(Pos Y)

Agora vamos usar mais duas variáveis, uma para ativar quando o Helper estiver com 1000 de vida e outra para guardar a vida do Helper:


Code
[State -2, ParentVarSet 3]
Type = ParentVarSet
Trigger1 = IsHelper(9000)
V = 42 ;<-- Vamos usar a Var 42
Value = Life ;<-- Para armazenar a vida do helper

[State -2, ParentVarSet 4]
Type = ParentVarSet
Trigger1 = IsHelper(9000)
Trigger1 = Life = 1000 ;<-- Quando o helper estiver com 1000 de vida
V = 43 ;<-- A var 43
Value = 1 ;<-- Será "ativada"

Agora vamos mandar o char para um State com animação invisível:


Code
[State -2, ChangeState]
Type = ChangeState ;<-- Vai mandar para outro state
Trigger1 = !IsHelper(9000) ;<-- Se não for o helper (ou seja, se for o char)
Trigger1 = NumHelper(9000) = 1 ;<-- E se o helper já estiver na tela
Trigger1 = StateNo != 7000 ;<-- E também se o char já não estiver no state
Trigger1 = Life > 0 ;<-- E somente se o char estiver vivo
Value = 7000 ;<-- Valor do state
Ctrl = 0 ;<-- O Player não poderá controlar o char, só o helper

Agora vamos criar uma animação invisível, eu vou usar a animação 7000, é só criar uma Begin Action e usar a Imagem -1 do grupo -1 q fica invisível, caso saiba mexer no air pelo bloco de notas, é só adicionar esse code:


Code
; Char invisível
[Begin Action 7000]
-1,-1, 0,0, 1,

Agora vamos criar o State 7000 e programa-lo:


Code
[StateDef 7000]
MoveType = I ;<-- O Char não está atacando e nem levando Hit
Physics = N ;<-- Física nula
Anim = 7000 ;<-- Animação invisível
Ctrl = 0 ;<-- Sem controle do char

[State 7000, StateTypeSet]
Type = StateTypeSet ;<-- Muda o Tipo do state
Trigger1 = Pos Y < 0 ;<-- Se o char estiver acima do chão
Trigger1 = StateType != A ;<-- E já não estiver no Tipo "Air"
StateType = A ;<-- Muda para "Air"

[State 7000, StateTypeSet 2]
Type = StateTypeSet
Trigger1 = Pos Y >= 0 ;<-- Se  char estiver no chão
Trigger1 = StateType != S ;<-- E já não estiver no Tipo "Stand"
StateType = S ;<-- Muda para "Stand"

[State 7000, NotHitBy]
Type = NotHitBy ;<-- Impede que o char seja atingido
Trigger1 = 1 ;<-- O tempo todo
Value = SCA ;<-- Por qualquer golpe
Time = 1 ;<-- Duração (obs: como o code será ativado o tempo todo, a duração pode ser 1 mesmo)

[State 7000, AssertSpecial]
Type = AssertSpecial ;<-- Define uma utilidade especial para o char
Trigger1 = 1
Flag = Invisible ;<-- O char ficará Invisível

[State 7000, PosSet]
Type = PosSet ;<-- Define a posição do char
Trigger1 = Var(40) != Floor(Pos X) ;<-- Caso a posição X seja diferente da Var 40
X = Var(40) ;<-- A posição X será a var 40 q o helper definiu no char

[State 7000, PosSet 2]
Type = PosSet ;<-- Mesma coisa do de cima
Trigger1 = Var(41) != Floor(Pos Y) ;<-- Mas com a posição Y
Y = Var(41) ;<-- E var 41

[State 7000, LifeSet]
Type = LifeSet ;<-- Irá definir a vida do char
Trigger1 = RoundState = 2 ;<-- Se já estiver no período de luta
Trigger1 = Var(43) = 1 ;<-- Caso a var 43 já esteja ativada
Trigger1 = Life != Var(42) ;<-- E a vida do char for diferente da Var 42
Value = Var(42) ;<-- A vida do char terá o mesmo valor da Var 42 definida pelo helper

[State 7000, LifeSet 2]
Type = LifeSet ;<-- Code para corrigir um pequeno Bug xD
Trigger1 = NumHelper(9000) = 0
Value = 0

[State 7000, ChangeState]
Type = ChangeState ;<-- Muda o state do char
Trigger1 = Win ;<-- Caso o char vença a partida
Trigger2 = Lose ;<-- Ou perca a partida
Trigger3 = DrawGame ;<-- Ou Empate a partida
Value = 0 ;<-- O char volta para o stand
Ctrl = 1 ;<-- E o Player reganha o controle do char

E é isso!
O State 7000 pode ser outro de sua preferência, assim como a animação e as variáveis ^^
Espero que vocês entendam e gostem do tuto o/

Flws ^^

Pesquisar
Hospedagem
Deseja ter seu trabalho hospedado aqui?
Clique aqui.
Calendário
«  Maio 2024  »
STQQSSD
  12345
6789101112
13141516171819
20212223242526
2728293031
Link Us
Clique na imagem para ver o código.
Thunder Mugen
Thunder Mugen
Parceiros

Valeuzão Deus
Mugen Full
Kazushi
Lab's Mugen

Copyright MyCorp © 2024Thunderbert