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/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Programmes: foisTrois / Programmes: foisDeux / Sorties: Dysfonctionnement / Jeux: Décadence / Packs de ressources: Ressources rétro (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

156 connectés actuellement

11051561 visiteurs
depuis l'ouverture

922 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Eclipso

Kingdom Ultimate

Le Studio du Chat Vert

Le Comptoir Du clickeur

Tous nos partenaires

Devenir
partenaire



Pause et Cheat-Code 3.0

Permet de mettre son jeu en pause et de créer ses propres Cheat-Codes.

Script pour RPG Maker XP
Ecrit par TLN
Publié par TLN (lui envoyer un message privé)
Signaler un script cassé

Auteur : TLN & cybersam
Logiciel : RPG Maker XP
Nombre de scripts : 1

Z'en avez marre que des gens s'amusent à tricher dans vos jeux ? Ben offrez-leur des Cheat-Codes !

Voici un script codé en partie par mes soins (car j'utilise le script de gestion des touches du clavier de Cybersam), qui vous permettra donc de 1) mettre votre jeu en pause en appuyant ici sur F3 (vous pouvez d'ailleurs vous en contenter !) et de 2) d'incrémenter vos jeux de Cheat-Code, qui peuvent être utiles pour vous ou les joueurs qui joueront à vos jeux.

Spoiler (cliquez pour afficher)



Installation
A placer en haut de la liste des scripts.

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
# Ce script permet d'insérer du text avec le clavier en jeu.
# Il fonctionne avec la commande Appel de script (Script Call).
#
# Il s'agit ici de la version utilisée par TLN, qui a été raccourcie
# pour correspondre aux besoins pour intégrer Pause et Cheat-codes.
#
# Une version 4 du script est sortie et est disponible.
#==============================================
#
# this version is now as module and easier to add to every script and 
# every event...
#
# here is nothing you need to change...
# only if you want to add more keys...
# add them in separate block below the last block 
# so you wont get confused... ^-^ 
# for the mouse is now only 5 buttons... 
# if you want more buttons because your mouse have more...
# then you'll have to wait till microsoft update there stuff... ^-^
#
# I'll try to make the mouse-wheel work...
# I can't promise anything... ^-^
#
# till next update you can add more stuff or just use it as it is atm...
#
# in the next release will be hopefully the mouse-wheel (not sure though)
# and the joy-stick/pad buttons... 
# but before that i'll have to reasearch a little about that... ^-^
#==============================================
 
module Kboard
  
  $RMouse_BUTTON_L = 0x01        # left mouse button
  $RMouse_BUTTON_R = 0x02        # right mouse button
  $RMouse_BUTTON_M = 0x04        # middle mouse button
  $RMouse_BUTTON_4 = 0x05        # 4th mouse button # only tested with win2k with a logitech mouse (MX900)
  $RMouse_BUTTON_5 = 0x06        # 5th mouse button # only tested with win2k with a logitech mouse (MX900)
 
  $R_Key_BACK      = 0x08        # BACKSPACE key
  $R_Key_TAB       = 0x09        # TAB key
  $R_Key_RETURN    = 0x0D        # ENTER key
  $R_Key_SHIFT     = 0x10        # SHIFT key
  $R_Key_PAUSE     = 0x13        # PAUSE key
  $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  $R_Key_ESCAPE    = 0x1B        # ESC key
  $R_Key_SPACE     = 0x20        # SPACEBAR
  $R_Key_PRIOR     = 0x21        # PAGE UP key
  $R_Key_NEXT      = 0x22        # PAGE DOWN key
  $R_Key_END       = 0x23        # END key
  $R_Key_HOME      = 0x24        # HOME key
  $R_Key_LEFT      = 0x25        # LEFT ARROW key
  $R_Key_UP        = 0x26        # UP ARROW key
  $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  $R_Key_DOWN      = 0x28        # DOWN ARROW key
  $R_Key_SELECT    = 0x29        # SELECT key
  $R_Key_PRINT     = 0x2A        # PRINT key
  $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  $R_Key_INSERT    = 0x2D        # INS key
  $R_Key_DELETE    = 0x2E        # DEL key
  
  $R_Key_0         = 0x30        # 0 key
  $R_Key_1         = 0x31        # 1 key
  $R_Key_2         = 0x32        # 2 key
  $R_Key_3         = 0x33        # 3 key
  $R_Key_4         = 0x34        # 4 key
  $R_Key_5         = 0x35        # 5 key
  $R_Key_6         = 0x36        # 6 key
  $R_Key_7         = 0x37        # 7 key
  $R_Key_8         = 0x38        # 8 key
  $R_Key_9         = 0x39        # 9 key
 
  $R_Key_A         = 0x41        # A key
  $R_Key_B         = 0x42        # B key
  $R_Key_C         = 0x43        # C key
  $R_Key_D         = 0x44        # D key
  $R_Key_E         = 0x45        # E key
  $R_Key_F         = 0x46        # F key
  $R_Key_G         = 0x47        # G key
  $R_Key_H         = 0x48        # H key
  $R_Key_I         = 0x49        # I key
  $R_Key_J         = 0x4A        # J key
  $R_Key_K         = 0x4B        # K key
  $R_Key_L         = 0x4C        # L key
  $R_Key_M         = 0x4D        # M key
  $R_Key_N         = 0x4E        # N key
  $R_Key_O         = 0x4F        # O key
  $R_Key_P         = 0x50        # P key
  $R_Key_Q         = 0x51        # Q key
  $R_Key_R         = 0x52        # R key
  $R_Key_S         = 0x53        # S key
  $R_Key_T         = 0x54        # T key
  $R_Key_U         = 0x55        # U key
  $R_Key_V         = 0x56        # V key
  $R_Key_W         = 0x57        # W key
  $R_Key_X         = 0x58        # X key
  $R_Key_Y         = 0x59        # Y key
  $R_Key_Z         = 0x5A        # Z key
 
  $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard) 
  $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
 
  $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  $R_Key_NUMPAD9         = 0x69        # Numeric keypad 9 key
  $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  $R_Key_ADD       = 0x6B        # Add key (+)
  $R_Key_SEPARATOR = 0x6C        # Separator key
  $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  $R_Key_DECIMAL   = 0x6E        # Decimal key
  $R_Key_DIVIDE    = 0x6F        # Divide key (/)
 
  $R_Key_F1        = 0x70        # F1 key
  $R_Key_F2        = 0x71        # F2 key
  $R_Key_F3        = 0x72        # F3 key
  $R_Key_F4        = 0x73        # F4 key
  $R_Key_F5        = 0x74        # F5 key
  $R_Key_F6        = 0x75        # F6 key
  $R_Key_F7        = 0x76        # F7 key
  $R_Key_F8        = 0x77        # F8 key
  $R_Key_F9        = 0x78        # F9 key
  $R_Key_F10       = 0x79        # F10 key
  $R_Key_F11       = 0x7A        # F11 key
  $R_Key_F12       = 0x7B        # F12 key
 
  $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
 
  $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  $R_Key_L_ALT     = 0xA4        # Left ALT key
  $R_Key_R_ALT     = 0xA5        # Right ALT key
  
  $R_Key_SEP         = 0xBC        # , key
  $R_Key_DASH        = 0xBD        # - key
  $R_Key_DOTT        = 0xBE        # . key
 
  GetKeyState = Win32API.new("user32", "GetAsyncKeyState", ['i'],'i')
  GetKeyboardState = Win32API.new("user32", "GetKeyState", ['i'],'i')
  GetSetKeyState = Win32API.new("user32", "SetKeyboardState", ['i'],'i')
 
  module_function
  
  def keyboard(rkey)
    GetKeyState.call(rkey) & 0x01 == 1  #
  end
  
  def key(rkey, key = 0)
    GetKeyboardState.call(rkey) & 0x01 == key #
  end
end



Créez ensuite un nouveau script en-dessous de "Window_Base" et au-dessus de "Main" que vous nommerez "Window_Pause" (à la fin de la série des "Windows_" par exemple) :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Window_Pause < Window_Base
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = 60
    refresh
  end
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(260, (480/2)-60, 120, 60, "Pause")
  end
end



Créez encore un dernier script nommé "Scene_Pause" et placez-le avec les autres scenes (toujours au-dessus de "Main"):

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
class Scene_Pause
  #--------------------------------------------------------------------------
  def main
    @spriteset = Spriteset_Map.new
    @picSprite = RPG::Sprite.new
    @picSprite.bitmap = RPG::Cache.picture("Cache")
    @picSprite.opacity = 100
    @picSprite.z += 998
    @pause_window = Window_Pause.new
    @pause_window.z += 999
    @pause_window.opacity = 0
    Graphics.transition
    @compteur = 0
    @entry = ""
    @code = ""
    loop do
      @compteur += 1
      if @compteur == 11
        @compteur = 0
        @code = ""
      end
      code_verif
      Graphics.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @picSprite.dispose
    @spriteset.dispose
    @pause_window.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
    @compteur = nil
    @entry = nil
    @code = nil
  end
  #--------------------------------------------------------------------------
  def update
    if Kboard.keyboard($R_Key_ESCAPE)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Kboard.keyboard($R_Key_F3)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
  end
  #--------------------------------------------------------------------------
  def code_verif
    @entry = ""
          if Kboard.keyboard($R_Key_SPACE) # space key (to insert space between the chars... ^-^)
            @entry = " " # space.. you can set anything else if you want ^-^'
          end
          if Kboard.key($R_Key_CAPITAL, 1) # if caps lock is active then write the chars in higher case
            if Kboard.keyboard($R_Key_A)
              @entry = "A"
            end
            if Kboard.keyboard($R_Key_B)
              @entry = "B"
            end
            if Kboard.keyboard($R_Key_C)
              @entry = "C"
            end
            if Kboard.keyboard($R_Key_D)
              @entry = "D"
            end          
            if Kboard.keyboard($R_Key_E)
              @entry = "E"
            end
            if Kboard.keyboard($R_Key_F)
              @entry = "F"
            end
            if Kboard.keyboard($R_Key_G)
              @entry = "G"
            end
            if Kboard.keyboard($R_Key_H)
              @entry = "H"
            end
            if Kboard.keyboard($R_Key_I)
              @entry = "I"
            end
            if Kboard.keyboard($R_Key_J)
              @entry = "J"
            end
            if Kboard.keyboard($R_Key_K)
              @entry = "K"
            end
            if Kboard.keyboard($R_Key_L)
              @entry = "L"
            end
            if Kboard.keyboard($R_Key_M)
              @entry = "M"
            end
            if Kboard.keyboard($R_Key_N)
              @entry = "N"
            end
            if Kboard.keyboard($R_Key_O)
              @entry = "O"
            end
            if Kboard.keyboard($R_Key_P)
              @entry = "P"
            end
            if Kboard.keyboard($R_Key_Q)
              @entry = "Q"
            end
            if Kboard.keyboard($R_Key_R)
              @entry = "R"
            end
            if Kboard.keyboard($R_Key_S)
              @entry = "S"
            end
            if Kboard.keyboard($R_Key_T)
              @entry = "T"
            end
            if Kboard.keyboard($R_Key_U)
              @entry = "U"
            end
            if Kboard.keyboard($R_Key_V)
              @entry = "V"
            end
            if Kboard.keyboard($R_Key_W)
              @entry = "W"
            end
            if Kboard.keyboard($R_Key_X)
              @entry = "X"
            end
            if Kboard.keyboard($R_Key_Y)
              @entry = "Y"
            end
            if Kboard.keyboard($R_Key_Z)
              @entry = "Z"
            end
 
          elsif Kboard.key($R_Key_CAPITAL) # if caps lock is deactivated then write in lower case
 
            if Kboard.keyboard($R_Key_A)
              @entry = "a"
            end
            if Kboard.keyboard($R_Key_B)
              @entry = "b"
            end
            if Kboard.keyboard($R_Key_C)
              @entry = "c"
            end
            if Kboard.keyboard($R_Key_D)
              @entry = "d"
            end          
            if Kboard.keyboard($R_Key_E)
              @entry = "e"
            end
            if Kboard.keyboard($R_Key_F)
              @entry = "f"
            end
            if Kboard.keyboard($R_Key_G)
              @entry = "g"
            end
            if Kboard.keyboard($R_Key_H)
              @entry = "h"
            end
            if Kboard.keyboard($R_Key_I)
              @entry = "i"
            end
            if Kboard.keyboard($R_Key_J)
              @entry = "j"
            end
            if Kboard.keyboard($R_Key_K)
              @entry = "k"
            end
            if Kboard.keyboard($R_Key_L)
              @entry = "l"
            end
            if Kboard.keyboard($R_Key_M)
              @entry = "m"
            end
            if Kboard.keyboard($R_Key_N)
              @entry = "n"
            end
            if Kboard.keyboard($R_Key_O)
              @entry = "o"
            end
            if Kboard.keyboard($R_Key_P)
              @entry = "p"
            end
            if Kboard.keyboard($R_Key_Q)
              @entry = "q"
            end
            if Kboard.keyboard($R_Key_R)
              @entry = "r"
            end
            if Kboard.keyboard($R_Key_S)
              @entry = "s"
            end
            if Kboard.keyboard($R_Key_T)
              @entry = "t"
            end
            if Kboard.keyboard($R_Key_U)
              @entry = "u"
            end
            if Kboard.keyboard($R_Key_V)
              @entry = "v"
            end
            if Kboard.keyboard($R_Key_W)
              @entry = "w"
            end
            if Kboard.keyboard($R_Key_X)
              @entry = "x"
            end
            if Kboard.keyboard($R_Key_Y)
              @entry = "y"
            end
            if Kboard.keyboard($R_Key_Z)
              @entry = "z"
            end
          end
   
# numbers
 
          if Kboard.keyboard($R_Key_0)
            @entry = "0"
          end
          if Kboard.keyboard($R_Key_1)
            @entry = "1"
          end
          if Kboard.keyboard($R_Key_2)
            @entry = "2"
          end
          if Kboard.keyboard($R_Key_3)
            @entry = "3"
          end
          if Kboard.keyboard($R_Key_4)
            @entry = "4"
          end
          if Kboard.keyboard($R_Key_5)
            @entry = "5"
          end
          if Kboard.keyboard($R_Key_6)
            @entry = "6"
          end
          if Kboard.keyboard($R_Key_7)
            @entry = "7"
          end
          if Kboard.keyboard($R_Key_8)
            @entry = "8"
          end
          if Kboard.keyboard($R_Key_9)
            @entry = "9"
          end
          
     
          
# numpad
          if Kboard.keyboard($R_Key_NUMPAD0)
            @entry = "0"
          end
          if Kboard.keyboard($R_Key_NUMPAD1)
            @entry = "1"
          end
          if Kboard.keyboard($R_Key_NUMPAD2)
            @entry = "2"
          end
          if Kboard.keyboard($R_Key_NUMPAD3)
            @entry = "3"
          end
          if Kboard.keyboard($R_Key_NUMPAD4)
            @entry = "4"
          end
          if Kboard.keyboard($R_Key_NUMPAD5)
            @entry = "5"
          end
          if Kboard.keyboard($R_Key_NUMPAD6)
            @entry = "6"
          end
          if Kboard.keyboard($R_Key_NUMPAD7)
            @entry = "7"
          end
          if Kboard.keyboard($R_Key_NUMPAD8)
            @entry = "8"
          end
          if Kboard.keyboard($R_Key_NUMPAD9)
            @entry = "9"
          end
 
          if Kboard.keyboard($R_Key_ADD) # + (numpad)
            @entry = "+"
          end
          if Kboard.keyboard($R_Key_SUBTRACT) # - (numpad)
            @entry = "-"
          end
          if Kboard.keyboard($R_Key_DIVIDE) # / (numpad)
            @entry = "/"
          end
          if Kboard.keyboard($R_Key_MULTIPLY) # * (numpad)
            @entry = "*"
          end
          
    @code += @entry
    if @entry != ""
      @compteur = 0
    end
    case @code
    when "code"
      print("Code activé")
      @code = ""
    end
  end
end



Ensuite collez ceci à la ligne 48 du script "Scene_Map" (juste au début de la méthode "update") :

Portion de code : Tout sélectionner

1
2
3
4
     if Kboard.keyboard($R_Key_F3)
       $game_system.se_play($data_system.decision_se)
       $scene = Scene_Pause.new
     end



Et enfin créez vous une image totalement noire que vous nommerez "Cache.png" et que vous mettrez dans le dossier "picture" du jeu

Explications :

Grâce au script "Keyboard_Input" en utilisant le procédé "if Kboard.keyboard($R_Key_#)" où "#" correspond au nom donné aux touches dans ce même script l'on vérifie à n'importe quel moment si ladite touche est pressée.
La fonction "if Kboard.key($R_Key_CAPITAL, 1)" et "if Kboard.key($R_Key_CAPITAL)" vérifient respectivement si la touche CAPS LOCK est activée ou non.

On vérifie alors dans ce script si la touche F3 est pressée et ce dans la méthode d'update du script "Scene_Map" (en gros toutes les 0.25 sec) auquel cas on joue un effet sonore de confirmation et l'on se téléporte à la scène de pause.

Ensuite il nous faut créer cette scène de pause.
On commence par créer l'image de notre map dans la méthode "main" qui va s'activer lorsque l'on sera sur la scene "pause" :

Portion de code : Tout sélectionner

1
2
3
  def main
    @spriteset = Spriteset_Map.new
 


On crée ensuite un cache qui va assombrir notre map :

Portion de code : Tout sélectionner

1
2
3
4
    @picSprite = RPG::Sprite.new
    @picSprite.bitmap = RPG::Cache.picture("Cache")
    @picSprite.opacity = 100
    @picSprite.z += 998


(on choisit donc l'image du sprite qui sera le "cache", on lui donne une opacité de 100 pour que ça ne cache pas toute la map et on place le cache au dessus des images éventuelles de la map)

Après quoi l'on crée notre fenêtre de pause :

Portion de code : Tout sélectionner

1
2
3
4
    @pause_window = Window_Pause.new
    @pause_window.z += 999
    @pause_window.opacity = 0
    Graphics.transition


(si vous voulez des explications sur cette fenêtre lisez plus généralement mon tuto sur le CMS ; sachez simplement que j'ai rendu le fond totalement transparent (mais pas le texte), que la fenêtre que l'on ne voit pas prend tout l'écran et que la zone où le texte apparait dans la fenêtre est centrée par rapport à l'écran)

Le "Graphics.transition" je crois qu'il sert à faire justement la transition entre la scène précédente et la scène où l'on atterit.

On donne une valeur de départ aux variables que l'on va utiliser pour ne pas faire boguer le script lorsque l'on fera des opérations sur ces variables (ben voui si tu ajoute 1 à rien bah ça bug ^^)

Portion de code : Tout sélectionner

1
2
3
    @compteur = 0
    @entry = ""
    @code = ""



On crée ensuite notre boucle (loop do) qui se brisera lorsque l'on changera de scene :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
    loop do
      @compteur += 1
      if @compteur == 11
        @compteur = 0
        @code = ""
      end
      code_verif
      Graphics.update
      update
      if $scene != self
        break
      end
    end



Une boucle comme ça se répète toutes les 0.25 seconde, à chaque passage on ajoute 1 au compteur de temps.
Un "if" vérifie si le laps de temps que l'on a entre chaque frappe est écoulé, auquel cas il réinitialise le compteur et remet la variable contenant le code à "" (autrement dis aucun texte)
Ensuite on effectue la méthode "code_verif" (qu'on reverra plus tard) qui vérifie si une touche est pressée, si le code entré est obn etc ...
On a après le bazar habituel d'une boucle "loop" de scene, à savoir l'update des graphismes, la méthode update que l'on verra plus tard et enfin la condition de cassage de boucle qui vérifie si on a changé de scene.
À noter que l'on ne met pas à jour les valeurs des entrée de touches (Input.update) car cela interfère avec les valeurs des variables du script "Complete Keyboard Input" et cause une mauvaise interprétation des entrées de touche.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
Graphics.freeze
    @picSprite.dispose
    @spriteset.dispose
    @pause_window.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
    @compteur = nil
    @entry = nil
    @code = nil


Fin de la méthode main, on est sensé avoir quitté la scene en cour donc on efface les images de la map, du cache ainsi que la fenêtre de pause ; on vérifie si on va atterir sur la scene de l'écran titre auquel cas on joue une transition et on remet les variables utilisée dans leur position originelle à savoir "nil" qui signifie "rien" (la variable n'aura aucune valeur)

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
  def update
    if Kboard.keyboard($R_Key_ESCAPE)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
    if Kboard.keyboard($R_Key_F3)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
  end


Méthode d'update : on vérifie grâce au script "Complete Keyboard Input" et non plus grâce à la méthode originelle que les bonnes touches permettant de revenir à la map sont pressée, auquel cas on joue un effet sonore d'annulation et l'on se "retéléporte" à la map.

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
 def code_verif
    @entry = ""
          if Kboard.keyboard($R_Key_SPACE) # space key (to insert space between the chars... ^-^)
            @entry = " " # space.. you can set anything else if you want ^-^'
          end
          if Kboard.key($R_Key_CAPITAL, 1) # if caps lock is active then write the chars in higher case
            if Kboard.keyboard($R_Key_A)
              @entry = "A"
            end
            if Kboard.keyboard($R_Key_B)
              @entry = "B"
            end
            if Kboard.keyboard($R_Key_C)
              @entry = "C"
            end
            if Kboard.keyboard($R_Key_D)
              @entry = "D"
            end          
            if Kboard.keyboard($R_Key_E)
              @entry = "E"
            end
            if Kboard.keyboard($R_Key_F)
              @entry = "F"
            end
            if Kboard.keyboard($R_Key_G)
              @entry = "G"
            end
            if Kboard.keyboard($R_Key_H)
              @entry = "H"
            end
            if Kboard.keyboard($R_Key_I)
              @entry = "I"
            end
            if Kboard.keyboard($R_Key_J)
              @entry = "J"
            end
            if Kboard.keyboard($R_Key_K)
              @entry = "K"
            end
            if Kboard.keyboard($R_Key_L)
              @entry = "L"
            end
            if Kboard.keyboard($R_Key_M)
              @entry = "M"
            end
            if Kboard.keyboard($R_Key_N)
              @entry = "N"
            end
            if Kboard.keyboard($R_Key_O)
              @entry = "O"
            end
            if Kboard.keyboard($R_Key_P)
              @entry = "P"
            end
            if Kboard.keyboard($R_Key_Q)
              @entry = "Q"
            end
            if Kboard.keyboard($R_Key_R)
              @entry = "R"
            end
            if Kboard.keyboard($R_Key_S)
              @entry = "S"
            end
            if Kboard.keyboard($R_Key_T)
              @entry = "T"
            end
            if Kboard.keyboard($R_Key_U)
              @entry = "U"
            end
            if Kboard.keyboard($R_Key_V)
              @entry = "V"
            end
            if Kboard.keyboard($R_Key_W)
              @entry = "W"
            end
            if Kboard.keyboard($R_Key_X)
              @entry = "X"
            end
            if Kboard.keyboard($R_Key_Y)
              @entry = "Y"
            end
            if Kboard.keyboard($R_Key_Z)
              @entry = "Z"
            end
 
          elsif Kboard.key($R_Key_CAPITAL) # if caps lock is deactivated then write in lower case
 
            if Kboard.keyboard($R_Key_A)
              @entry = "a"
            end
            if Kboard.keyboard($R_Key_B)
              @entry = "b"
            end
            if Kboard.keyboard($R_Key_C)
              @entry = "c"
            end
            if Kboard.keyboard($R_Key_D)
              @entry = "d"
            end          
            if Kboard.keyboard($R_Key_E)
              @entry = "e"
            end
            if Kboard.keyboard($R_Key_F)
              @entry = "f"
            end
            if Kboard.keyboard($R_Key_G)
              @entry = "g"
            end
            if Kboard.keyboard($R_Key_H)
              @entry = "h"
            end
            if Kboard.keyboard($R_Key_I)
              @entry = "i"
            end
            if Kboard.keyboard($R_Key_J)
              @entry = "j"
            end
            if Kboard.keyboard($R_Key_K)
              @entry = "k"
            end
            if Kboard.keyboard($R_Key_L)
              @entry = "l"
            end
            if Kboard.keyboard($R_Key_M)
              @entry = "m"
            end
            if Kboard.keyboard($R_Key_N)
              @entry = "n"
            end
            if Kboard.keyboard($R_Key_O)
              @entry = "o"
            end
            if Kboard.keyboard($R_Key_P)
              @entry = "p"
            end
            if Kboard.keyboard($R_Key_Q)
              @entry = "q"
            end
            if Kboard.keyboard($R_Key_R)
              @entry = "r"
            end
            if Kboard.keyboard($R_Key_S)
              @entry = "s"
            end
            if Kboard.keyboard($R_Key_T)
              @entry = "t"
            end
            if Kboard.keyboard($R_Key_U)
              @entry = "u"
            end
            if Kboard.keyboard($R_Key_V)
              @entry = "v"
            end
            if Kboard.keyboard($R_Key_W)
              @entry = "w"
            end
            if Kboard.keyboard($R_Key_X)
              @entry = "x"
            end
            if Kboard.keyboard($R_Key_Y)
              @entry = "y"
            end
            if Kboard.keyboard($R_Key_Z)
              @entry = "z"
            end
          end
   
# numbers
 
          if Kboard.keyboard($R_Key_0)
            @entry = "0"
          end
          if Kboard.keyboard($R_Key_1)
            @entry = "1"
          end
          if Kboard.keyboard($R_Key_2)
            @entry = "2"
          end
          if Kboard.keyboard($R_Key_3)
            @entry = "3"
          end
          if Kboard.keyboard($R_Key_4)
            @entry = "4"
          end
          if Kboard.keyboard($R_Key_5)
            @entry = "5"
          end
          if Kboard.keyboard($R_Key_6)
            @entry = "6"
          end
          if Kboard.keyboard($R_Key_7)
            @entry = "7"
          end
          if Kboard.keyboard($R_Key_8)
            @entry = "8"
          end
          if Kboard.keyboard($R_Key_9)
            @entry = "9"
          end
          
     
          
# numpad
          if Kboard.keyboard($R_Key_NUMPAD0)
            @entry = "0"
          end
          if Kboard.keyboard($R_Key_NUMPAD1)
            @entry = "1"
          end
          if Kboard.keyboard($R_Key_NUMPAD2)
            @entry = "2"
          end
          if Kboard.keyboard($R_Key_NUMPAD3)
            @entry = "3"
          end
          if Kboard.keyboard($R_Key_NUMPAD4)
            @entry = "4"
          end
          if Kboard.keyboard($R_Key_NUMPAD5)
            @entry = "5"
          end
          if Kboard.keyboard($R_Key_NUMPAD6)
            @entry = "6"
          end
          if Kboard.keyboard($R_Key_NUMPAD7)
            @entry = "7"
          end
          if Kboard.keyboard($R_Key_NUMPAD8)
            @entry = "8"
          end
          if Kboard.keyboard($R_Key_NUMPAD9)
            @entry = "9"
          end
 
          if Kboard.keyboard($R_Key_ADD) # + (numpad)
            @entry = "+"
          end
          if Kboard.keyboard($R_Key_SUBTRACT) # - (numpad)
            @entry = "-"
          end
          if Kboard.keyboard($R_Key_DIVIDE) # / (numpad)
            @entry = "/"
          end
          if Kboard.keyboard($R_Key_MULTIPLY) # * (numpad)
            @entry = "*"
          end
          
    @code += @entry
    if @entry != ""
      @compteur = 0
    end
    case @code
    when "code"
      print("Code activé")
      @code = ""
    end
  end



Le gros du script : On commence par donner une valeur nulle au texte de la variable dans laquelle on stock le caractère entré (on met = "" et non = nil car sinon lors de l'ajout de la dernière entrée à la variable du code il y aura un bug (si on ajoute rien ça bug, et non si on n'ajoute aucun text ; ce qui est différent)

Après on fait correspondre le caractère à ajouter (@entry) avec la touche qui serait potentiellement appuyée.
On ajoute cette entrée à la variable du code.
Et si le caractère entré est différent (!=) de "" -ce qui veut dire que l'on aura entré quelque chose- l'on réinitialise le compteur pour que l'on ai le temps d'entrer le caractère suivant.

Et enfin grâce au "case @code" (un truc que j'ai appris récemment ^^) il nous suffit de rajouter un ou plusieur <> et un seul "end" pour personnaliser son code ainsi que l'effet :

Portion de code : Tout sélectionner

1
2
3
4
5
case @code
    when "code"
      print("Code activé")
      @code = ""
    end


1) Entrez le nom du code que vous voulez à la place du "code" (sans oublier de guillemets)
2) Créez votre effet ; vous pouvez mettre "print("Code activé")" pour que s'affiche la phrase entre parenthèse à l'écran comme dans une fenêtre de message d'erreur ; n'oubliez pas par contre de réinitialiser la variable du code en entrant <<@code = "">> après votre effet sans quoi ce même effet se répétera 11 fois.
Pour rajouter une possibilité de code, copiez-collez la ligne du <> et répétez les étapes 1) et 2)

NB : Pour ceux qui ne sont pas encore trop ruby :
Collez ceci comme effet :

Portion de code : Tout sélectionner

1
$what_code = 1


(Où "1" est le N° que vous donnez au code activé)
Et créez un événement commun en processus parallèle avec comme condition d'activation le premier switch par exemple que vous laisserais actionné soit tout le temps, soit seulement quand vous souhaitez que les codes soit effectif (mais attention alors à ne pas afficher un message "code activé" sans vérifier si ce bouton était activé ou pas).
Dans cet événement parallèle mettez une fouchette de condition qui vérifie le script "$what_code == 1"
Si c'est oui appelez un autre événement parallèle qui va correspondre à l'effet de ce code, si non mettez une autre fouchette de condition identique et recommencez cette opération pour chacun de vos codes potentiels et ainsi de suite.
N'oubliez pas cependant de mettre un "wait 1 frame" à la fin de cet événement qui est censé vérifier ce script sans discontinuer affin que le jeu ne lag pas.


Mis à jour le 13 juillet 2020.
Merci à Cantarelle pour l'aide au deboggage.






yannisleboss - posté le 22/02/2012 à 18:58:46 (64 messages postés)

❤ 0

Yes premier commentaire pour te signaler que "Complete Keyboard Input Script" ne marche pas

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 | 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 | Ressources | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | 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