[Pedido] Condição
2 participantes
Página 1 de 1
[Pedido] Condição
Eaw galera da lua não, de marte besta!
Enquanto reabastecemos nossas naves esperando a mensagem para poder voltar a terra, nós se ocupamos
com outras coisas, eu estou fazendo uns trabalhos, etc.
Meu pedido seria um script de condição de tecla, um coração generoso poderia criar um ou achar.
Definições:
A condição seria que se qualquer tecla, qualquer tecla do tecladonão pô, do mouse fosse pressionado aconteceria algo, tipo, se pressionasse a tecla P abrisse o inventário (Lembrando que este script
deve ser personalizável), o script deve ser para vx, vlw pela atenção!
Enquanto reabastecemos nossas naves esperando a mensagem para poder voltar a terra, nós se ocupamos
com outras coisas, eu estou fazendo uns trabalhos, etc.
Meu pedido seria um script de condição de tecla, um coração generoso poderia criar um ou achar.
Definições:
A condição seria que se qualquer tecla, qualquer tecla do teclado
deve ser personalizável), o script deve ser para vx, vlw pela atenção!
vinisan07- Mensagens : 35
Data de inscrição : 01/12/2011
Re: [Pedido] Condição
Fiz para você, primeiro coloque este script do MaxHero e da RTH acima do main:
E abaixo deste coloque o que fiz para você:
Configure no modulo.
Para o primeiro valor das constantes coloque
Coloque
O segundo valor é a tecla que abrirá 'x' menu.
Qualquer dúvida, basta perguntar.
Até mais.
- Código:
#===============================================================================
# Keyboard Extensor [RMVX] and [RMXP] 1.5
#-------------------------------------------------------------------------------
# Credits: Maxhero and RTH
#===============================================================================
module Input
#--------------------------------------------------------------------------
# Constantes usada pelo Input
#--------------------------------------------------------------------------
Letter = {
'A' => 65,
'B' => 66,
'C' => 67,
'D' => 68,
'E' => 69,
'F' => 70,
'G' => 71,
'H' => 72,
'I' => 73,
'J' => 74,
'K' => 75,
'L' => 76,
'M' => 77,
'N' => 78,
'O' => 79,
'P' => 80,
'Q' => 81,
'R' => 82,
'S' => 83,
'T' => 84,
'U' => 85,
'V' => 86,
'W' => 87,
'X' => 88,
'Y' => 89,
'Z' => 90
}
Number = {
'0' => 48,
'1' => 49,
'2' => 50,
'3' => 51,
'4' => 52,
'5' => 53,
'6' => 54,
'7' => 55,
'8' => 56,
'9' => 57
}
Numpad = {
'1' => 96,
'2' => 97,
'3' => 98,
'4' => 99,
'5' => 100,
'6' => 101,
'7' => 102,
'8' => 103,
'9' => 104,
'0' => 105
}
Special = {
'BKS' => 8,
'SPC' => 32,
'DEL' => 127,
'F1' => 112,
'F2' => 113,
'F3' => 114,
'F4' => 115,
'F5' => 116,
'F6' => 117,
'F7' => 118,
'F8' => 119,
'F9' => 120,
'F10' => 121,
'F11' => 122,
'F12' => 123,
'ESC' => 27,
'TAB' => 11,
'RETURN' => 13
}
Arrow = {
'LEFT' => 0x25,
'UP' => 0x26,
'RIGHT' => 0x27,
'DOWN' => 0x28
}
#--------------------------------------------------------------------------
# Teclas padrões do maker
#--------------------------------------------------------------------------
A = [16, 90]
B = [27, 88, 105]
C = [13, 32, 67]
X = 65
Y = 83
Z = 68
L = 81
R = 87
LEFT = 0x25
UP = 0x26
RIGHT = 0x27
DOWN = 0x28
#--------------------------------------------------------------------------
# Variaveis
#--------------------------------------------------------------------------
@@press = Array.new(256, false)
@@trigger = Array.new(256, false)
@@repeat = Array.new(256, false)
@@release = Array.new(256, false)
@@repeat_counter = Array.new(256, 0)
@@first_repeat_delay = 15
@@second_repeat_delay = 8
@@temp_array = '0' * 256
#--------------------------------------------------------------------------
# Funções
#--------------------------------------------------------------------------
GetKeyboardState = Win32API.new('user32', 'GetKeyboardState', ['P'], 'V')
#--------------------------------------------------------------------------
# Atualiza o Input
#--------------------------------------------------------------------------
def self.update
GetKeyboardState.call(@@temp_array)
array = @@temp_array.unpack('C*')
for i in 0...array.size
if ((array[i] & 0xF0) != 0)
@@release[i] = false
if (@@press[i])
@@repeat_counter[i] -= 1
if (@@repeat_counter[i] <= 0)
@@repeat[i] = true
@@repeat_counter[i] = @@second_repeat_delay
else
@@repeat[i] = false
end
@@trigger[i] = false
else
@@trigger[i] = true
@@repeat[i] = true
@@press[i] = true
@@repeat_counter[i] = @@first_repeat_delay
end
else
@@release[i] = (@@press[i])
@@trigger[i] = false
@@repeat[i] = false
@@press[i] = false
end
end
end
#--------------------------------------------------------------------------
# Verifica se se a tecla está sendo pressionada
#--------------------------------------------------------------------------
def self.press?(key)
return key.any? {|k| self.press?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.press?(k) } if key.is_a?(Hash)
return @@press[key]
end
#--------------------------------------------------------------------------
# Verifica se se a tecla acabou se ser pressionada
#--------------------------------------------------------------------------
def self.trigger?(key)
return key.any? {|k| self.trigger?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.trigger?(k) } if key.is_a?(Hash)
return @@trigger[key]
end
#--------------------------------------------------------------------------
# Retorna algumas vezes quando a tecla é mantida pressionada
#--------------------------------------------------------------------------
def self.repeat?(key)
return key.any? {|k| self.repeat?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.repeat?(k) } if key.is_a?(Hash)
return @@repeat[key]
end
#--------------------------------------------------------------------------
# Verifica se se a tecla acabou se ser solta
#--------------------------------------------------------------------------
def self.release?(key)
return key.any? {|k| self.release?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.release?(k) } if key.is_a?(Hash)
return @@release[key]
end
#--------------------------------------------------------------------------
# Define o delay do método .repeat?
#--------------------------------------------------------------------------
def self.set_repeat_delay(first, second = first)
@@first_repeat_delay = first
@@second_repeat_delay = second
end
end
E abaixo deste coloque o que fiz para você:
- Código:
module JohnBolton92
#Tecla de abertura da janela de itens
Item = [false, "C"]
#Tecla de abertura da janela de habilidades
Skill = [true, "D"]
#Tecla de abertura da janela de equipamentos
Equip = [true, "E"]
#Tecla de abertura da janela de status
Status = [true, "F"]
#Tecla de abertura da janela de salvamento
Save = [true, "G"]
#Tecla de abertura da janela de carregamento
Load = [true, "H"]
#Tecla de abertura da janela de finalização
End = [true, "I"]
#Efeito Sonoro ao abrir qualquer um das janelas acima
Sound_Effect = [true, "Book"]
end
class Scene_Map
include JohnBolton92
alias update_bolton92 update
def update
if Input.trigger?(eval("Input::Letter#{"[Item[1]]"}")) and Item[0]
$scene = Scene_Item.new
sound_effect
elsif Input.trigger?(eval("Input::Letter#{"[Skill[1]]"}")) and Skill[0]
$scene = Scene_Skill.new
sound_effect
elsif Input.trigger?(eval("Input::Letter#{"[Equip[1]]"}")) and Equip[0]
$scene = Scene_Equip.new
sound_effect
elsif Input.trigger?(eval("Input::Letter#{"[Status[1]]"}")) and Status[0]
$scene = Scene_Status.new
sound_effect
elsif Input.trigger?(eval("Input::Letter#{"[Save[1]]"}")) and Save[0]
$scene = Scene_File.new(true,false,true)
sound_effect
elsif Input.trigger?(eval("Input::Letter#{"[Load[1]]"}")) and Load[0]
$scene = Scene_File.new(false,false,true)
sound_effect
elsif Input.trigger?(eval("Input::Letter#{"[End[1]]"}")) and End[0]
$scene = Scene_End.new
sound_effect
end
update_bolton92
end
def sound_effect
if Sound_Effect[0]
Audio.se_play("Audio/SE/" + Sound_Effect[1])
end
end
end
Configure no modulo.
Para o primeiro valor das constantes coloque
- Código:
true
Coloque
- Código:
false
O segundo valor é a tecla que abrirá 'x' menu.
Qualquer dúvida, basta perguntar.
Até mais.
JohnBolton- Mensagens : 6
Data de inscrição : 25/12/2011
Idade : 28
Localização : São Carlos, SP.
Re: [Pedido] Condição
Edit:
Ei eu testei o script, adorei! Era o que eu estava esperando vlw!Mas... faltou o principal que eu queria, eu queria um script que quando precionasse tal tecla acontecia algo, tipo, eu aperto space, e aparece uma mensagem no meio com o nome pause, e outras coisas, entende, mas se você não conseguir, não tem problema!
Mesmo assim adorei o script, vlw!
vinisan07- Mensagens : 35
Data de inscrição : 01/12/2011
Re: [Pedido] Condição
Na sua primeira explicação não dava para ter ideia do que você queria. Pensei que fosse daquele jeito lá. E com a última explicação, continuei sem entender muito bem, tente explicar melhor e com mais detalhes, e o que exatamente quer que eu faço para você.
Até
Até
JohnBolton- Mensagens : 6
Data de inscrição : 25/12/2011
Idade : 28
Localização : São Carlos, SP.
Re: [Pedido] Condição
bem, eu quero um script de quando pressionada tal tecla aconteça algo, não status, não equips, não habilidades, e sim um evento que esteja em campo.
vinisan07- Mensagens : 35
Data de inscrição : 01/12/2011
Re: [Pedido] Condição
Tipo o que o enter faz? Ou quer que ao apertar uma tecla ative qualquer evento do mapa pré-determinado por você? Pois se for isso, é mais simples por eventos.
JohnBolton- Mensagens : 6
Data de inscrição : 25/12/2011
Idade : 28
Localização : São Carlos, SP.
Re: [Pedido] Condição
eu sei, mas o script que eu quero, bem eu num sei explica bem, mas vou tentar, quando o personagem apertar a tecla P acontece algo, nas condições de tecla, só pode usar as teclas Q,W,A,S,D,Shift,Z,X, e as setas, eu queria mais que isso, entendeu? Para poder usar os números e as outras teclas, mas o meu principal é para um jogo que eu estou fazendo para quando o Personagem apertar a tecla P ele acontecesse algo em campo, não abrisse os status, ou outras coisas! Se não entendeu não tem problema, vlw por tentar me ajudar!
vinisan07- Mensagens : 35
Data de inscrição : 01/12/2011
Re: [Pedido] Condição
Basta usar este script:
Instruções:
- Código:
#===============================================================================
# Keyboard Extensor [RMVX] and [RMXP] 1.5
#-------------------------------------------------------------------------------
# Credits: Maxhero and RTH
#===============================================================================
module Input
#--------------------------------------------------------------------------
# Constantes usada pelo Input
#--------------------------------------------------------------------------
Letter = {
'A' => 65,
'B' => 66,
'C' => 67,
'D' => 68,
'E' => 69,
'F' => 70,
'G' => 71,
'H' => 72,
'I' => 73,
'J' => 74,
'K' => 75,
'L' => 76,
'M' => 77,
'N' => 78,
'O' => 79,
'P' => 80,
'Q' => 81,
'R' => 82,
'S' => 83,
'T' => 84,
'U' => 85,
'V' => 86,
'W' => 87,
'X' => 88,
'Y' => 89,
'Z' => 90
}
Number = {
'0' => 48,
'1' => 49,
'2' => 50,
'3' => 51,
'4' => 52,
'5' => 53,
'6' => 54,
'7' => 55,
'8' => 56,
'9' => 57
}
Numpad = {
'1' => 96,
'2' => 97,
'3' => 98,
'4' => 99,
'5' => 100,
'6' => 101,
'7' => 102,
'8' => 103,
'9' => 104,
'0' => 105
}
Special = {
'BKS' => 8,
'SPC' => 32,
'DEL' => 127,
'F1' => 112,
'F2' => 113,
'F3' => 114,
'F4' => 115,
'F5' => 116,
'F6' => 117,
'F7' => 118,
'F8' => 119,
'F9' => 120,
'F10' => 121,
'F11' => 122,
'F12' => 123,
'ESC' => 27,
'TAB' => 11,
'RETURN' => 13
}
Arrow = {
'LEFT' => 0x25,
'UP' => 0x26,
'RIGHT' => 0x27,
'DOWN' => 0x28
}
#--------------------------------------------------------------------------
# Teclas padrões do maker
#--------------------------------------------------------------------------
A = [16, 90]
B = [27, 88, 105]
C = [13, 32, 67]
X = 65
Y = 83
Z = 68
L = 81
R = 87
LEFT = 0x25
UP = 0x26
RIGHT = 0x27
DOWN = 0x28
#--------------------------------------------------------------------------
# Variaveis
#--------------------------------------------------------------------------
@@press = Array.new(256, false)
@@trigger = Array.new(256, false)
@@repeat = Array.new(256, false)
@@release = Array.new(256, false)
@@repeat_counter = Array.new(256, 0)
@@first_repeat_delay = 15
@@second_repeat_delay = 8
@@temp_array = '0' * 256
#--------------------------------------------------------------------------
# Funções
#--------------------------------------------------------------------------
GetKeyboardState = Win32API.new('user32', 'GetKeyboardState', ['P'], 'V')
#--------------------------------------------------------------------------
# Atualiza o Input
#--------------------------------------------------------------------------
def self.update
GetKeyboardState.call(@@temp_array)
array = @@temp_array.unpack('C*')
for i in 0...array.size
if ((array[i] & 0xF0) != 0)
@@release[i] = false
if (@@press[i])
@@repeat_counter[i] -= 1
if (@@repeat_counter[i] <= 0)
@@repeat[i] = true
@@repeat_counter[i] = @@second_repeat_delay
else
@@repeat[i] = false
end
@@trigger[i] = false
else
@@trigger[i] = true
@@repeat[i] = true
@@press[i] = true
@@repeat_counter[i] = @@first_repeat_delay
end
else
@@release[i] = (@@press[i])
@@trigger[i] = false
@@repeat[i] = false
@@press[i] = false
end
end
end
#--------------------------------------------------------------------------
# Verifica se se a tecla está sendo pressionada
#--------------------------------------------------------------------------
def self.press?(key)
return key.any? {|k| self.press?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.press?(k) } if key.is_a?(Hash)
return @@press[key]
end
#--------------------------------------------------------------------------
# Verifica se se a tecla acabou se ser pressionada
#--------------------------------------------------------------------------
def self.trigger?(key)
return key.any? {|k| self.trigger?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.trigger?(k) } if key.is_a?(Hash)
return @@trigger[key]
end
#--------------------------------------------------------------------------
# Retorna algumas vezes quando a tecla é mantida pressionada
#--------------------------------------------------------------------------
def self.repeat?(key)
return key.any? {|k| self.repeat?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.repeat?(k) } if key.is_a?(Hash)
return @@repeat[key]
end
#--------------------------------------------------------------------------
# Verifica se se a tecla acabou se ser solta
#--------------------------------------------------------------------------
def self.release?(key)
return key.any? {|k| self.release?(k) } if key.is_a?(Array)
return key.any? {|i, k| self.release?(k) } if key.is_a?(Hash)
return @@release[key]
end
#--------------------------------------------------------------------------
# Define o delay do método .repeat?
#--------------------------------------------------------------------------
def self.set_repeat_delay(first, second = first)
@@first_repeat_delay = first
@@second_repeat_delay = second
end
end
Instruções:
- Código:
Usando Letras
Input::Letter['A'] #Usa a Letra A
Input::Number['1'] #Usa o Numero 1
Input::Numpad['1'] #Usa o Numero 1 do Bloco numerico
Input::Special['BKS'] #Backspace
Input::Special['SPC'] #Espaço
Input::Special['DEL'] #Delete
Input::Special['F1'] #F1
Input::Special['F2'] #F2
Input::Special['F3'] #F3
Input::Special['F4'] #F4
Input::Special['F5'] #F5
Input::Special['F6'] #F6
Input::Special['F7'] #F7
Input::Special['F8'] #F8
Input::Special['F9'] #F9
Input::Special['F10'] #F10
Input::Special['F11'] #F11
Input::Special['F12'] #F12
Input::Special['ESC'] #ESC
Input::Special['TAB'] #TAB
Input::Special['RETURN'] #Enter
Em Scripts:
Se eu for usar fica assim:
if Input.trigger?(Input::Letter['A']) #Se Gatilhar (apertar e soltar) a tecla A
e para os eventos:
Condição>Script: Input.trigger?(Input::Letter['A'])
JohnBolton- Mensagens : 6
Data de inscrição : 25/12/2011
Idade : 28
Localização : São Carlos, SP.
Re: [Pedido] Condição
tem que colocar Input::Letter['A'] para ativar a condição da tecla A é?
Edit: aew quando eu testei o personagem não se mecheu, porque?! e me ensina a usar este script, eu num so muito disso!
Edit: aew quando eu testei o personagem não se mecheu, porque?! e me ensina a usar este script, eu num so muito disso!
vinisan07- Mensagens : 35
Data de inscrição : 01/12/2011
Re: [Pedido] Condição
Mais ou menos isso, vá na 1ª aba dos eventos, lá, acesse o comando "Condições".
Abrirá uma nova janela, nesta janela, vá na 4ª aba, e no ultimo comando, selecione "Script"
E coloque as condições de tecla lá, por exemplo:
Até mais.
Abrirá uma nova janela, nesta janela, vá na 4ª aba, e no ultimo comando, selecione "Script"
E coloque as condições de tecla lá, por exemplo:
- Código:
Input.trigger?(Input::Letter['A'])
Até mais.
JohnBolton- Mensagens : 6
Data de inscrição : 25/12/2011
Idade : 28
Localização : São Carlos, SP.
Re: [Pedido] Condição
Ah, deixa pra lá, o que tenho já me serve, este script não funcionou comigo, a condição não funcionou, o personagem não dá para mexer e as teclas que dá para usar é X, Esc, Enter. Deixa pra lá, tento me virar nos eventos! VLW!
vinisan07- Mensagens : 35
Data de inscrição : 01/12/2011
Tópicos semelhantes
» [Duvida RGSS2]condição em Module
» [PEDIDO]Script que o boneco cria sua popria arma[PEDIDO]
» [Pedido/VX] Pedido Avançado de Pular
» (Pedido) Pedido de uma historia!
» {RGSS2/PEDIDO/DUVIDA}Uma duvida e um pedido
» [PEDIDO]Script que o boneco cria sua popria arma[PEDIDO]
» [Pedido/VX] Pedido Avançado de Pular
» (Pedido) Pedido de uma historia!
» {RGSS2/PEDIDO/DUVIDA}Uma duvida e um pedido
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|