Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
242 connectés actuellement
30741524 visiteurs depuis l'ouverture
1897 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Narak -
posté le 21/06/2013 à 13:40:01 (62 messages postés)
| | Domaine concerné: Script
Logiciel utilisé: Rpg Maker VX
Bonjour,
Je prévient d'avance que j'ai fait plusieurs recherches pendant plus de un mois mais je n'es pas trouvé de réponse (pas pressé) mais maintenant je viens de finir mes examens, donc comme tous les ans je recommence à utiliser ce logiciel pendant cette période.
Je suis passé au script PRABS (http://www.youtube.com/watch?v=9pGn985IAuE) qui me semble le plus intéressant pour mon jeux.
Mais celui-ci met en place la reconnaissance des touches, je ne peut alors plus utiliser dans les événements "condition : si touche haut appuyer" il n'est alors possible d'éffectuer cette action que par appelle de script.
J'en revient à mon problème, que doit-je mettre dans "conditioncript:??????"
Il est possible que la solution soit parmi ces scripts
PR ABS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
| #===============================================================================
# PRABS
#-------------------------------------------------------------------------------
# By: PR Coders
#===============================================================================
PRCoders.log_script("ABS", 2.0)
#===============================================================================
# Module Input
#-------------------------------------------------------------------------------
# Credits: PRCoders
# poccil
#===============================================================================
if PRCoders.check_enabled?("ABS", 2.0)
PRCoders.load_script("ABS", 2.0)
module Input
#--------------------------------------------------------------------------
# * Váriáveis
#--------------------------------------------------------------------------
@keys = Array.new(256)
@pressed = Array.new(256)
@repeated = Array.new(256)
@released = Array.new(256)
@dir = Array.new(2)
#--------------------------------------------------------------------------
# * Constantes
#--------------------------------------------------------------------------
Mouse_Left = 1
Mouse_Right = 2
Mouse_Middle = 4
Back = 8
Tab = 9
Enter = 13
SHIFT = Shift = 16
CTRL = Ctrl = 17
ALT = Alt = 18
Pause = 0x13
CAPS = 0x14
Esc = 0x1B
LEFT = 0x25
UP = 0x26
RIGHT = 0x27
DOWN = 0x28
Space = 32
PageUp = 0x21
PageDowm = 0x22
Home = 0x23
End = 0x24
Numberkeys = {}
Numberkeys[0] = 48 # => 0
Numberkeys[1] = 49 # => 1
Numberkeys[2] = 50 # => 2
Numberkeys[3] = 51 # => 3
Numberkeys[4] = 52 # => 4
Numberkeys[5] = 53 # => 5
Numberkeys[6] = 54 # => 6
Numberkeys[7] = 55 # => 7
Numberkeys[8] = 56 # => 8
Numberkeys[9] = 57 # => 9
Numberpad = {}
Numberpad[0] = 96
Numberpad[1] = 97
Numberpad[2] = 98
Numberpad[3] = 99
Numberpad[4] = 100
Numberpad[5] = 101
Numberpad[6] = 102
Numberpad[7] = 103
Numberpad[8] = 104
Numberpad[9] = 105
Letters = {}
Letters["A"] = 65
Letters["B"] = 66
Letters["C"] = 67
Letters["D"] = 68
Letters["E"] = 69
Letters["F"] = 70
Letters["G"] = 71
Letters["H"] = 72
Letters["I"] = 73
Letters["J"] = 74
Letters["K"] = 75
Letters["L"] = 76
Letters["M"] = 77
Letters["N"] = 78
Letters["O"] = 79
Letters["P"] = 80
Letters["Q"] = 81
Letters["R"] = 82
Letters["S"] = 83
Letters["T"] = 84
Letters["U"] = 85
Letters["V"] = 86
Letters["W"] = 87
Letters["X"] = 88
Letters["Y"] = 89
Letters["Z"] = 90
Fkeys = {}
F1 = Fkeys[1] = 112
F2 = Fkeys[2] = 113
F3 = Fkeys[3] = 114
F4 = Fkeys[4] = 115
F5 = Fkeys[5] = 116
F6 = Fkeys[6] = 117
F7 = Fkeys[7] = 118
F8 = Fkeys[8] = 119
F9 = Fkeys[9] = 120
F10 = Fkeys[10] = 121
F11 = Fkeys[11] = 122
F12 = Fkeys[12] = 123
Collon = 186 # => \ |
Equal = 187 # => = +
Comma = 188 # => , <
Underscore = 189 # => - _
Dot = 190 # => . >
Backslash = 191 # => / ?
Lb = 219
Rb = 221
Quote = 222 # => '"
#--------------------------------------------------------------------------
# * Constantes originais
#--------------------------------------------------------------------------
A = Letters["C"]
B = [Letters["X"], Esc]
C = [Letters["Z"], Space, Enter]
X = Letters["A"]
Y = Letters["S"]
Z = Letters["D"]
L = Letters["Q"]
R = Letters["W"]
#--------------------------------------------------------------------------
# * Métodos da DLL
#--------------------------------------------------------------------------
UPDATE = Win32API.new("PRABS.dll", "UpdateInputArray", "lllll", "")
ADDKEY = Win32API.new("PRABS.dll", "InputAddUsedKey", "i", "")
#--------------------------------------------------------------------------
# * Adiciona uma tecla para ser atualizada
#--------------------------------------------------------------------------
def self.add_key(key)
if (key.is_a?(Array))
for k in key
self.add_key(k)
end
return
end
ADDKEY.call(key)
end
#--------------------------------------------------------------------------
# * Reseta as teclas atualizadas
#--------------------------------------------------------------------------
def self.clear
Win32API.new("PRABS.dll", "ClearUsedKeys", "", "").call()
end
#--------------------------------------------------------------------------
# * Reseta as teclas atualizadas
#--------------------------------------------------------------------------
def self.setup_direction_keys(up, down, left, right)
self.add_key(up)
self.add_key(down)
self.add_key(left)
self.add_key(right)
Win32API.new("PRABS.dll", "SetupDirectionKeys", "iiii", "").call(up, down, left, right)
end
#--------------------------------------------------------------------------
# * Atualização
#--------------------------------------------------------------------------
def self.update
UPDATE.call(@keys.__id__, @pressed.__id__, @repeated.__id__, @released.__id__, @dir.__id__)
end
#--------------------------------------------------------------------------
# * Trigger?
#--------------------------------------------------------------------------
def self.trigger?(key)
if (key.is_a?(Array))
return key.any? { |k| self.trigger?(k) }
end
return @keys[key]
end
#--------------------------------------------------------------------------
# * Press?
#--------------------------------------------------------------------------
def self.press?(key)
if (key.is_a?(Array))
return key.any? { |k| self.press?(k) }
end
return @pressed[key]
end
#--------------------------------------------------------------------------
# * Repeat?
#--------------------------------------------------------------------------
def self.repeat?(key)
if (key.is_a?(Array))
return key.any? { |k| self.repeat?(k) }
end
return @repeated[key]
end
#--------------------------------------------------------------------------
# * Release?
#--------------------------------------------------------------------------
def self.release?(key)
if (key.is_a?(Array))
return key.any? { |k| self.release?(k) }
end
return @released[key]
end
#--------------------------------------------------------------------------
# * Dir4
#--------------------------------------------------------------------------
def self.dir4
return @dir[0]
end
#--------------------------------------------------------------------------
# * Dir8
#--------------------------------------------------------------------------
def self.dir8
return @dir[1]
end
self.clear
end
# Adicionando as teclas mais utilizadas ao sistema
Input.add_key(Input:OWN)
Input.add_key(Input::UP)
Input.add_key(Input::LEFT)
Input.add_key(Input::RIGHT)
Input.add_key(Input::A)
Input.add_key(Input::B)
Input.add_key(Input::C)
Input.add_key(Input::X)
Input.add_key(Input::Y)
Input.add_key(Input::Z)
Input.add_key(Input::L)
Input.add_key(Input::R)
Input.add_key(Input::CTRL)
Input.add_key(Input::SHIFT)
Input.add_key(Input::ALT)
Input.setup_direction_keys(Input::UP, Input:OWN, Input::LEFT, Input::RIGHT) |
Config - Keys
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
| ==============================================================================
# PRABS::CONFIG::BUTTONS
#==============================================================================
module PRABS::CONFIG::BUTTONS
# Dodge Key
ESQUIVAR = Input::X
# Right Hand
RIGHT_HAND = Input::Y
# Left Hand
LEFT_HAND = Input::Z
end
=begin
#==============================================================================
# Lista de teclas
#==============================================================================
# Algumas teclas
Input::Mouse_Left
Input::Mouse_Right
Input::Mouse_Middle
Input::Back
Input::Tab
Input::Enter
Input::SHIFTShift
Input::CTRLCtrl
Input::ALTAlt
Input:ause
Input::CAPS
Input::Esc
Input::LEFT
Input::UP
Input::RIGHT
Input:OWN
Input::Space
Input:ageUp
Input:ageDowm
Input::Home
Input::End
# Numerkeys: Os números acima das letras
Input::Numberkeys[0]
Input::Numberkeys[1]
Input::Numberkeys[2]
Input::Numberkeys[3]
Input::Numberkeys[4]
Input::Numberkeys[5]
Input::Numberkeys[6]
Input::Numberkeys[7]
Input::Numberkeys[8]
Input::Numberkeys[9]
# Numer pad: Os números do lado das setas
Input::Numberpad[0]
Input::Numberpad[1]
Input::Numberpad[2]
Input::Numberpad[3]
Input::Numberpad[4]
Input::Numberpad[5]
Input::Numberpad[6]
Input::Numberpad[7]
Input::Numberpad[8]
Input::Numberpad[9]
# Letras do teclado
Input::Letters["A"]
Input::Letters["B"]
Input::Letters["C"]
Input::Letters["D"]
Input::Letters["E"]
Input::Letters["F"]
Input::Letters["G"]
Input::Letters["H"]
Input::Letters["I"]
Input::Letters["J"]
Input::Letters["K"]
Input::Letters["L"]
Input::Letters["M"]
Input::Letters["N"]
Input::Letters["O"]
Input::Letters["P"]
Input::Letters["Q"]
Input::Letters["R"]
Input::Letters["S"]
Input::Letters["T"]
Input::Letters["U"]
Input::Letters["V"]
Input::Letters["W"]
Input::Letters["X"]
Input::Letters["Y"]
Input::Letters["Z"]
# Teclas especiais do jogo
Input::A # Tecla "C"
Input::B # Teclas "X" e Esc
Input::C # Teclas "Z", Barra de Espaço e Enter
Input::X # Tecla "A"
Input::Y # Tecla "S"
Input::Z # Tecla "D"
Input::L # Tecla "Q"
Input::R # Tecla "W"
=end
|
Config - Hotkeys
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #===============================================================================
# Config - Hotkeys
#===============================================================================
module PRABS::CONFIG
# Hotkeys
HOTKEYS[0] = Input::Numberkeys[1]
HOTKEYS[1] = Input::Numberkeys[2]
HOTKEYS[2] = Input::Numberkeys[3]
HOTKEYS[3] = Input::Numberkeys[4]
HOTKEYS[4] = Input::Numberkeys[5]
HOTKEYS[5] = Input::Numberkeys[6]
HOTKEYS[6] = Input::Numberkeys[7]
HOTKEYS[7] = Input::Numberkeys[8]
end |
Comme je disais, je suis arrivé à mes vacances et j'aimerais bien pouvoir avancer ^^'
Merci, d'avance
|
viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250 |
Joke -
posté le 21/06/2013 à 14:14:28 (5090 messages postés)
| Bilouteux fou | Tu as mis un mois pour trouver un script qui empêche d'utiliser les commandes événements, et n'explique rien ?
Input.trigger?(arg) pour détecter dès l'appui
Input.press?(arg) pour détecter pendant l'appui
avec "arg" remplacé par "Input::CEQUETUVEUX" présent dans le script "Config - Keys" (par exemple, Input::LEFT = touche gauche.)
Du coup en événement ça fait :
condition : si script : Input.trigger?(Input::LEFT)
La condition sera validée si on appuie sur gauche.
Mais attention il y a une erreur de copier/coller dans le script, sûrement à cause de la formation du smiley "" ( : D )
Input:OWN n'est pas Input:OWN mais :
Mais plutôt... Utilise un vrai script, comme Input Ultimate 2 de Zeus81 :
http://pastebin.com/LKd9hbDa
C'est bien plus complet et fonctionnel si ça t'intéresse. ^^
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
Narak -
posté le 21/06/2013 à 14:44:14 (62 messages postés)
| | La faute lors du copié/collé est bien du aux smileys
Le commande donné
1
| Input.trigger?(Input::LEFT) |
Me donne une erreur sur la ligne
1
| UPDATE = Win32API.new("PRABS.dll", "UpdateInputArray", "lllll", "") |
Je crois que je vais utiliser Input Ultimate mais doit-je bien le copier à la suite de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #==============================================================================
# PRABS::CONFIG::BUTTONS
#==============================================================================
module PRABS::CONFIG::BUTTONS
# Dodge Key
ESQUIVAR = Input::X
# Right Hand
RIGHT_HAND = Input::Y
# Left Hand
LEFT_HAND = Input::Z
end |
Dans "Config-Keys"
Et merci d'avoir prit le temps de répondre
|
viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250 |
Joke -
posté le 21/06/2013 à 15:00:45 (5090 messages postés)
| Bilouteux fou | Euh, ben utilise l'input ultimate, assure toi de bien virer tout ce que tu avais de l'ancien script, comme si tu ne l'avais pas installé, et mets l'input ultimate au dessus de Main, dans Materials.
Lis bien toute les explications au début du script de Zeus.
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
Narak -
posté le 21/06/2013 à 15:53:03 (62 messages postés)
| | L'input ultime met tout en désordre l'abs que j'utilise.
Donc j'aimerais avoir des information sur ce que tu voulaits dire :
Citation: avec "arg" remplacé par "Input::CEQUETUVEUX" présent dans le script "Config - Keys" (par exemple, Input::LEFT = touche gauche.) |
|
viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250 |
Joke -
posté le 21/06/2013 à 16:09:39 (5090 messages postés)
| Bilouteux fou | Bon, j'ai mal compris, en effet je pensais que tu voulais juste avoir la gestion des appuis touches, mais comme ton script de l'ABS utilise forcément ce script là, tu dois le garder...
Dans ce cas je suis trop naze pour voir comment faire. En tout cas c'est pas normal que ça t'empêche de faire l'habituel "condition touche pressée"... Quelle connerie il a bien pu faire, ton script ?
|
biloumaster.fr, mon joli site ouèb tout bô tout frai ! |
Narak -
posté le 21/06/2013 à 16:18:34 (62 messages postés)
| | J'ai une hypothèse.
Le script à bien prit en compte toute les touches mais il n'a pas fait les rapport entre les nouvelles et les anciennes.
Toute aide accepté
____________
Merci à XHTMLBoy pour la solution
Citation: Tu as le choix dans la liste de ces touches :
"Keys" (dans les scripts que tu as postés)
Et tu fais une condition Si, Script > Input.press?(Une touche)
tu peux aussi utiliser Input.trigger?(une touche) (qui vérifie si la touche vient d'être enfoncée), Input.repeat?(Une touche) qui vérifie la pression successive ou Input.release?(Une touche) qui vérifie si la touche vient d'être relâchée.
Un Exemple qui vérifie que la touche G est enfoncée :
Si Script > Input.press?(Input::Letters["G"])
Afficher message : Ahaha |
Et merci d'avoir essayer de m'avoir aider Joke, tu m'avais donné la solution mais j'avais mal comprit j'avais juste essayer "Input.trigger?"
Bon weekend
|
viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250 | Index du forum > Entraide > [RESOLU] [Rpg Maker VX] Script Clavier ABS
|
|
|