Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV

Apprendre
RPG Maker

Guides
Tutoriels
Making-of

Dans le
Forum

Section Entraide

Tutos: Ren'Py - Combiner les (...) / Tutos: Réaliser un pathfinder sur (...) / News: Cérémonie des Alex d'or 2020 / Jeux: Beetle Ninja / Jeux: Le Miroir de Philéas / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

108 connectés actuellement

10806999 visiteurs
depuis l'ouverture

97 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Level Up!

Zarok

RPG Fusion

Offgame

Tous nos partenaires

Devenir
partenaire



Input amélioré
Script pour RPG Maker XP
Ecrit par zeus81
Publié par zeus81 (lui envoyer un message privé)
Signaler un script cassé

Il existe une version améliorée ici.

Ce script est à mettre au dessus du script Main comme d'habitude.
De plus il faut rajouter dans le dossier du jeu ce fichier dll :
https://www.megaupload.com/fr/?d=2MUB9HO7

Portion de code : Tout sélectionner

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
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
#Input amélioré
#Script créé (à moitié) par Zeus81
#
#Nouveautés :
#méthode release?(input) : retourne TRUE si la touche "input" vient d'être relachée sinon retourne FALSE
#méthode input?          : retourne TRUE si une touche quelconque est pressée sinon retourne FALSE
#Avant on ne pouvais pas choisir les touches que l'on voulais pour son jeu.
#Mais maintenant c'est possible !!!
#Allez à la ligne 160 pour configurer les touches.
#
#Note : Ce script empêche l'utilisation de joystick et rend la configuration des touches faite avec F1 inutile.
module Input
  #--------------------------------------------------------------------------
  Mouse_Click_Gauche = 0x01
  Mouse_Click_Droit = 0x02
  Mouse_Bouton_Molette = 0x04
  Mouse_4eme_Bouton = 0x05
  Mouse_5eme_Bouton = 0x06
  #--------------------------------------------------------------------------
  Key_Retour = 0x08
  Key_Tab = 0x09
  Key__ = 0x0C #Touche 5 quand clavier numérique non vérrouillé
  Key_Entree = 0x0D
  Key_Maj_Gauche_et_Droit = 0x10
  Key_Ctrl_Gauche_et_Droit = 0x11
  Key_Alt_et_Alt_Gr = 0x12
  Key_Pause = 0x13
  Key_Verr_Maj = 0x14
  Key_Echap = 0x1B
  Key_Espace = 0x20
  Key_Page_Precedente = 0x21
  Key_Page_Suivante = 0x22
  Key_Fin = 0x23
  Key_Origine = 0x24
  Key_Fleche_Gauche = 0x25
  Key_Fleche_Haut = 0x26
  Key_Fleche_Droite = 0x27
  Key_Fleche_Bas = 0x28
  Key_Impression_Ecran = 0x2C
  Key_Inser = 0x2D
  Key_Suppr = 0x2E
  #--------------------------------------------------------------------------
  Key_0 = 0x30
  Key_1 = 0x31
  Key_2 = 0x32
  Key_3 = 0x33
  Key_4 = 0x34
  Key_5 = 0x35
  Key_6 = 0x36
  Key_7 = 0x37
  Key_8 = 0x38
  Key_9 = 0x39
  #--------------------------------------------------------------------------
  Key_A = 0x41
  Key_B = 0x42
  Key_C = 0x43
  Key_D = 0x44
  Key_E = 0x45
  Key_F = 0x46
  Key_G = 0x47
  Key_H = 0x48
  Key_I = 0x49
  Key_J = 0x4A
  Key_K = 0x4B
  Key_L = 0x4C
  Key_M = 0x4D
  Key_N = 0x4E
  Key_O = 0x4F
  Key_P = 0x50
  Key_Q = 0x51
  Key_R = 0x52
  Key_S = 0x53
  Key_T = 0x54
  Key_U = 0x55
  Key_V = 0x56
  Key_W = 0x57
  Key_X = 0x58
  Key_Y = 0x59
  Key_Z = 0x5A
  #--------------------------------------------------------------------------
  Key_Windows_Gauche = 0x5B
  Key_Windows_Droit = 0x5C
  Key_Applications = 0x5D
  #--------------------------------------------------------------------------
  Numericpad_0 = 0x60
  Numericpad_1 = 0x61
  Numericpad_2 = 0x62
  Numericpad_3 = 0x63
  Numericpad_4 = 0x64
  Numericpad_5 = 0x65
  Numericpad_6 = 0x66
  Numericpad_7 = 0x67
  Numericpad_8 = 0x68
  Numericpad_9 = 0x69
  Numericpad_Multiplier = 0x6A # *
  Numericpad_Additionner = 0x6B # +
  Numericpad_Soustraire = 0x6D # -
  Numericpad_Decimale = 0x6E # .
  Numericpad_Diviser = 0x6F # /
  #--------------------------------------------------------------------------
  Key_F1 = 0x70
  Key_F2 = 0x71
  Key_F3 = 0x72
  Key_F4 = 0x73
  Key_F5 = 0x74
  Key_F6 = 0x75
  Key_F7 = 0x76
  Key_F8 = 0x77
  Key_F9 = 0x78
  Key_F10 = 0x79
  Key_F11 = 0x7A
  Key_F12 = 0x7B
  #--------------------------------------------------------------------------
  Key_Verr_Num = 0x90
  Key_Arret_Defil = 0x91
  #--------------------------------------------------------------------------
  Key_Maj_Gauche = 0xA0
  Key_Maj_Droit = 0xA1
  Key_Ctrl_Gauche = 0xA2
  Key_Ctrl_Droit = 0xA3
  Key_Alt = 0xA4
  Key_Alt_Gr = 0xA5
  #--------------------------------------------------------------------------
  Key_Raccourci_Home = 0xAC
  Key_Raccourci_Volume_Muet = 0xAD
  Key_Raccourci_Volume_Moins = 0xAE
  Key_Raccourci_Volume_Plus = 0xAF
  Key_Raccourci_Play_Pause = 0xB3
  Key_Raccourci_Outlook = 0xB4
  Key_Raccourci_Windows_Media_Player = 0xB5
  Key_Raccourci_Calculatrice = 0xB7
  #--------------------------------------------------------------------------
  Key_Monnaie = 0xBA # £ $
  Key_Plus = 0xBB # +
  Key_Virgule = 0xBC # ,
  Key_Point = 0xBE # .
  Key_Slash = 0xBF # /
  Key_Pourcent = 0xC0 # %
  Key_Degree = 0xDB # °
  Key_Micro = 0xDC # µ
  Key_Accent = 0xDD # ^
  Key_Exposant = 0xDE # ²
  Key_Exclam = 0xDF # !
  Key_Superieur = 0xE2 # >
  #--------------------------------------------------------------------------
  AsyncKeyState = Win32API.new("user32","GetAsyncKeyState",['i'],'i')
  #--------------------------------------------------------------------------
  @input = []
  for i in 0..32
    @input[i] = [0]
  end
  @last_dir = 0
  @state = []
  @last_state = []
  @repeat_state = []
  for i in 0..32
    @state[i] = 0
    @last_state[i] = 0
    @repeat_state[i] = 0
  end
  #--------------------------------------------------------------------------
  #C'est facile il suffit de copier le nom de la touche que l'on veux entre les lignes 10 et 150
  #et de l'attribuer au bouton que l'on désire, si-dessous.
  #Il est aussi possible de mettre plusieurs touches sur un bouton en les séparants par des virgules.
  #exemple : @input[C] = [Key_Entree , Key_Espace]
  @input[DOWN] = [Key_Fleche_Bas]
  @input[LEFT] = [Key_Fleche_Gauche]
  @input[RIGHT] = [Key_Fleche_Droite]
  @input[UP] = [Key_Fleche_Haut]
  @input[A] = [Numericpad_Additionner]
  @input[B] = [Numericpad_0]
  @input[C] = [Key_Entree]
  @input[X] = [Numericpad_1]
  @input[Y] = [Numericpad_2]
  @input[Z] = [Numericpad_3]
  @input[L] = [Numericpad_4]
  @input[R] = [Numericpad_5]
  @input[SHIFT] = [Key_Maj_Gauche_et_Droit]
  @input[CTRL] = [Key_Ctrl_Gauche_et_Droit]
  @input[ALT] = [Key_Alt_et_Alt_Gr]
  @input[F5] = [Key_F5]
  @input[F6] = [Key_F6]
  @input[F7] = [Key_F7]
  @input[F8] = [Key_F8]
  @input[F9] = [Key_F9]
  #--------------------------------------------------------------------------
  module_function
  #--------------------------------------------------------------------------
  def update
    for input in 0..32
      @repeat_state[input] += 1
      @last_state[input] = @state[input]
      @state[input] = 0
      for i in 0...@input[input].size
        case input
        when 1
          ok = (AsyncKeyState.call(@input[2][i]) != 0 and AsyncKeyState.call(@input[4][i]) != 0)
          @state[input] += 1 if ok
        when 3
          ok = (AsyncKeyState.call(@input[2][i]) != 0 and AsyncKeyState.call(@input[6][i]) != 0)
          @state[input] += 1 if ok
        when 7
          ok = (AsyncKeyState.call(@input[8][i]) != 0 and AsyncKeyState.call(@input[4][i]) != 0)
          @state[input] += 1 if ok
        when 9
          ok = (AsyncKeyState.call(@input[8][i]) != 0 and AsyncKeyState.call(@input[6][i]) != 0)
          @state[input] += 1 if ok
        else
          @state[input] += AsyncKeyState.call(@input[input][i])
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  def trigger?(input)
    return (@state[input] != 0 and @last_state[input] == 0)
  end
  #--------------------------------------------------------------------------
  def repeat?(input)
    if @state[input] != 0
      if @repeat_state[input] == 1
        return true
      elsif @repeat_state[input] > 15
        return ((@repeat_state[input]-16)%4 == 0)
      end
    else
      @repeat_state[input] = 0
    end
    return false
  end
  #--------------------------------------------------------------------------
  def press?(input)
    return @state[input] != 0
  end
  #--------------------------------------------------------------------------
  def release?(input)
    return (@state[input] == 0 and @last_state[input] != 0)
  end
  #--------------------------------------------------------------------------
  def input?
    result = false
    for input in 0..32
      result = true if @state[input] != 0
    end
    return result
  end
  #--------------------------------------------------------------------------
  def dir4
    if press?(DOWN) and press?(LEFT)
      if @last_dir == DOWN
        return @last_state[DOWN] != 0 ? 4 : 2
      else
        return @last_state[DOWN] != 0 ? 2 : 4
      end
    elsif press?(DOWN) and press?(RIGHT)
      if @last_dir == DOWN
        return @last_state[DOWN] != 0 ? 6 : 2
      else
        return @last_state[DOWN] != 0 ? 2 : 6
      end
    elsif press?(UP) and press?(LEFT)
      if @last_dir == UP
        return @last_state[UP] != 0 ? 4 : 8
      else
        return @last_state[UP] != 0 ? 8 : 4
      end
    elsif press?(UP) and press?(RIGHT)
      if @last_dir == UP
        return @last_state[UP] != 0 ? 6 : 8
      else
        return @last_state[UP] != 0 ? 8 : 6
      end
    elsif press?(DOWN) and press?(UP)
      return 0
    elsif press?(LEFT) and press?(RIGHT)
      return 0
    elsif press?(DOWN)
      @last_dir = DOWN
      return 2
    elsif press?(LEFT)
      @last_dir = LEFT
      return 4
    elsif press?(RIGHT)
      @last_dir = RIGHT
      return 6
    elsif press?(UP)
      @last_dir = UP
      return 8
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  def dir8
    if press?(DOWN) and press?(LEFT)
      return 1
    elsif press?(DOWN) and press?(RIGHT)
      return 3
    elsif press?(UP) and press?(LEFT)
      return 7
    elsif press?(UP) and press?(RIGHT)
      return 9
    elsif press?(DOWN) and press?(UP)
      return 0
    elsif press?(LEFT) and press?(RIGHT)
      return 0
    elsif press?(DOWN)
      return 2
    elsif press?(LEFT)
      return 4
    elsif press?(RIGHT)
      return 6
    elsif press?(UP)
      return 8
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
end



Mis à jour le 4/7/2020.





Romain68 - posté le 14/08/2008 à 16:30:13 (2658 messages postés)

❤ 0

J'ai essayé de mettre ce script avec celui du AMS Ultimate mais j'ai pas l'impression qu'il peuvent marcher ensemble...:'(
Quand je démarre le projet les script liés aux touche de saut et de course ne fonctionnent plus.
Sinon tu peux me dire comment STP!

Merci

https://lumensection.com


Lutopia - posté le 23/01/2009 à 23:36:06 (29 messages postés)

❤ 0

Si c'était possible de réuploader le .dll ça serait génial ^^

Merci

Echo 152, la suite d'une guerre qui va bouleverser les esprits !


Zeus81 - posté le 16/11/2009 à 15:25:25 (11071 messages postés)

❤ 0

Se reporter ici pour une meilleure version.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Articles perso | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Jeux complets | Tous les jeux | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers