| Logado como Visitante | Grupo "Visitantes" Está vendo: Forum | Domingo, 19/05/2024, 5:22 PM | RSS |
Anime Mugen


[ Novas Mensagens · Membros · Regras · Buscar · RSS ]
  • Página 1 de 1
  • 1
Moderador do fórum: lMDl  
Forum » | M.U.G.E.N » Tutoriais e Dicas » Bloqueando F1 e F2 no seu char (Também bloqueia o espaço) (Postado por Thunderbert)
Bloqueando F1 e F2 no seu char (Também bloqueia o espaço)
TidusData: Domingo, 16/01/2011, 1:21 PM | Mensagem # 1
Criador
Grupo: Administradores
Mensagens: 557
Awards: 0
Reputação: 25
Status: Offline
Yo pessoal!
Vim aqui postar um tutorial q é, no mínimo, interessante xD
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 ^^

EDIT: Editei pq esqueci de uns negócios q estava trazendo um pequeno bug xD
Agora ta funcionando ^^




Conhecimento é a única virtude e ignorância é o único vício.

Twitter - Follow Me
www.jgnetwork.com.br | JG Network - Desenvolvimento em Web.


 
Dih_Nii-SanData: Segunda, 17/01/2011, 11:01 AM | Mensagem # 2
Criador Iniciante
Grupo: Usuários
Mensagens: 430
Awards: 1
Reputação: 20
Status: Offline
trágico blokear o espaço i__i
-q
abráa'ç


 
taylorData: Segunda, 17/01/2011, 6:50 PM | Mensagem # 3
Editor
Grupo: Usuários
Mensagens: 158
Awards: 0
Reputação: 15
Status: Offline
Maneiro cara o/
Otimo tutorial


 
ThunderbertData: Segunda, 17/01/2011, 8:04 PM | Mensagem # 4
Criador Iniciante
Grupo: Usuários
Mensagens: 343
Awards: 0
Reputação: 19
Status: Offline
Quote (Dih_Nii-San)
trágico blokear o espaço i__i
-q
abráa'ç

aheuahuehauehuaheua! Cheater xD

Quote (taylor)
Maneiro cara o/
Otimo tutorial

Vlw ae man ^^




Vlw MD ²
Vlw Baka-Sennin
Vlw FM ²
 
Forum » | M.U.G.E.N » Tutoriais e Dicas » Bloqueando F1 e F2 no seu char (Também bloqueia o espaço) (Postado por Thunderbert)
  • Página 1 de 1
  • 1
Buscar:

Copyright Anime Mugen © 2024 Hospedado por uCoz
Refresh Smileys Manager
Mini-chat