Day.png);">
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

Sorties: Star Trek: Glorious Wolf - (...) / Sorties: Dread Mac Farlane - episode 3 / News: Plein d'images cools créées par (...) / Sorties: Star Trek: Glorious Wolf - (...) / Jeux: Final Fantasy 2.0 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

183 connectés actuellement

29183753 visiteurs
depuis l'ouverture

4018 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker Détente

Planète Glutko

Leo-Games

Tous nos partenaires

Devenir
partenaire



Resolution Changer Ultimate 1.1

Permet de changer la résolution du jeu.

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

❤ 0

Auteur : Zeus81
Logiciel : RPG Maker XP
Nombre de scripts : 1

Installation
Vous devez le copier au dessus du main.
Il faut aussi rajouter ces 2 fichiers dans le dossier de votre jeu. (Lien fontionnel ici)
La résolution se configure en début du script.
Si vous utilisez l'AMS Ultimate, vous devez placer ce script en-dessous, et ajouter le deuxième script sous le script Resolution Changer Ultimate.

Notice
- Attention l'utilisation de ce script implique la création de systèmes de menu/combat adaptés à la nouvelle résolution.
- Attention aussi à ne pas mettre de résolution trop grande, non seulement ça peut faire ramer mais en plus les gens avec de vieux écrans ne pourraient plus jouer à votre jeu, ce qui serait bête.
- Pour passer en mode plein écran faut faire non plus Alt+Entrée mais F5.
- Enfin si la résolution est supérieure à 640x480 les effets de transitions ne marcheront plus, ça se limitera à un simple fondu.

Ajouts version 1.1
- S'il y a trop d'évènements ça peut ralentir le jeu, afin d'optimiser les performances il est possible de désactiver l'affichage des évènements n'en nécessitant pas en écrivant " [INVISIBLE] " dans leur nom.
- Il est désormais possible de choisir si le jeu démarre en plein écran ou pas au début du script.

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
# Resolution Changer Ultimate v1.1
# Script créé par Zeus81
 
class << Graphics
  def width ; return 800; end # Configurez ici la largeur de l'écran
  def height; return 600; end # Configurez ici la hauteur de l'écran
  Fullscreen_Start = false    # Configurez ici si le jeu démarre en mode plein écran (true) ou pas (false)
  
  FindWindow       = Win32API.new("user32", "FindWindow", "pp", "l")
  CreateWindowEx   = Win32API.new("user32", "CreateWindowEx", "lpplllllllll", "l")
  UpdateWindow     = Win32API.new("user32", "UpdateWindow", "l", "l")
  ShowWindow       = Win32API.new("user32", "ShowWindow", "ll", "l")
  SetWindowLong    = Win32API.new("user32", "SetWindowLong", "lll", "l")
  SetWindowPos     = Win32API.new("user32", "SetWindowPos", "lllllll", "l")
  GetSystemMetrics = Win32API.new("user32", "GetSystemMetrics", "l", "l")
  GetDC            = Win32API.new("user32", "GetDC", "l", "l")
  FillRect         = Win32API.new("user32", "FillRect", "lpl", "l")
  SetKeyState      = Win32API.new("user32", "keybd_event", "llll", "")
  CreateSolidBrush = Win32API.new("gdi32", "CreateSolidBrush", "l", "l")
  SetResolution    = Win32API.new("Display", "SetResolution", "lll", "l")
  Screenshot       = Win32API.new("Screenshot", "Screenshot", "llllpll", "")
  Resolutions = [[], []]
  Resolutions[0].push([ 320,  240])
  Resolutions[0].push([ 640,  480])
  Resolutions[0].push([ 768,  576])
  Resolutions[0].push([ 800,  600])
  Resolutions[0].push([1024,  768])
  Resolutions[0].push([1152,  864])
  Resolutions[0].push([1280,  960])
  Resolutions[0].push([1280, 1024])
  Resolutions[0].push([1400, 1050])
  Resolutions[0].push([1600, 1200])
  Resolutions[0].push([2048, 1536])
  Resolutions[0].push([2560, 1920])
  Resolutions[0].push([2560, 2048])
  Resolutions[1].push([ 320,  200])
  Resolutions[1].push([ 800,  480])
  Resolutions[1].push([ 854,  480])
  Resolutions[1].push([ 960,  600])
  Resolutions[1].push([1088,  612])
  Resolutions[1].push([1280,  720])
  Resolutions[1].push([1280,  768])
  Resolutions[1].push([1280,  800])
  Resolutions[1].push([1360,  768])
  Resolutions[1].push([1440,  900])
  Resolutions[1].push([1680, 1050])
  Resolutions[1].push([1920, 1080])
  Resolutions[1].push([1920, 1200])
  Resolutions[1].push([2560, 1440])
  Resolutions[1].push([2560, 1600])
  Transition = Sprite.new
  Transition.z = 0xFFFF
  First_Start = !defined?(First_Start)
  if First_Start
    open("Game.ini") {|file| file.read[/Title=(.*?)\n/]}
    WindowHandle     = FindWindow.call("RGSS Player", $1)
    BackWindowHandle = CreateWindowEx.call(0x08000000, "Static", "", 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0)
    FillRectArgs = [GetDC.call(BackWindowHandle), [0,0,0xFFFF,0xFFFF].pack("l4"), CreateSolidBrush.call(0)]
    @@fullscreen, @@client_resolution = nil
    alias :zeus81_rcu_graphics_freeze     :freeze
    alias :zeus81_rcu_graphics_transition :transition
    alias :zeus81_rcu_graphics_update     :update
  end
  def update
    zeus81_rcu_graphics_update
    set_key_state(164, false)
    change_mode if Input.trigger?(Input::F5)
  end
  def freeze
    if width <= 640 and height <= 480; zeus81_rcu_graphics_freeze
    else
      Screenshot.call(0, 0, width, height, "freeze.bmp", WindowHandle, 0)
      Transition.bitmap = Bitmap.new("freeze.bmp")
      File.delete("freeze.bmp")
    end
  end
  def transition(d=8, f="", v=40)
    if width <= 640 and height <= 480; zeus81_rcu_graphics_transition(d, f, v)
    else
      d.times {|i| Transition.opacity = 256 - i*256/d; update}
      Transition.bitmap.dispose if Transition.bitmap
      Transition.bitmap, Transition.opacity = nil, 255
    end
  end
  def fullscreen?; return @@fullscreen; end
  def change_mode; set_resolution(!@@fullscreen); end
  def fullscreen_mode; set_resolution(true) unless @@fullscreen == true; end
  def windowed_mode; set_resolution(false) unless @@fullscreen == false; end
  private
  def set_key_state(k, b); SetKeyState.call(k, 0, (b ? 0 : 2), 0); end
  def get_resolution; return GetSystemMetrics.call(0), GetSystemMetrics.call(1); end
  def set_resolution(fullscreen)
    @@client_resolution = get_resolution unless @@fullscreen == true
    @@fullscreen = fullscreen
    w, h, z, f =  width, height, -1, 64
    if @@fullscreen
      ShowWindow.call(BackWindowHandle, 3)
      SetWindowLong.call(WindowHandle, -16, 0x14000000)
      ratio = @@client_resolution[0] / @@client_resolution[1].to_f
      for res in Resolutions[ratio < 1.5 ? 0 : 1]
        next unless res[0] >= width and res[1] >= height
        SetResolution.call(res[0], res[1], 4)
        break if res == get_resolution
      end
    else
      ShowWindow.call(BackWindowHandle, 0)
      SetWindowLong.call(WindowHandle, -16, 0x14CA0000)
      SetResolution.call(@@client_resolution[0], @@client_resolution[1], 0)
      w += (GetSystemMetrics.call(5)+2) * 2
      h += (GetSystemMetrics.call(6)+2) * 2 + GetSystemMetrics.call(4)
      z = f = 0
    end
    x, y = get_resolution
    x, y = [(x-w)/2, 0].max, [(y-h)/2, 0].max
    SetWindowPos.call(WindowHandle, z, x, y, w, h, f)
    UpdateWindow.call(BackWindowHandle)
    FillRect.call(*FillRectArgs)
  end
  Fullscreen_Start ? Graphics.fullscreen_mode : Graphics.windowed_mode if First_Start
end
 
class RPG::Weather
  def update
    return if @type == 0
    for i in 1..@max
      sprite = @sprites[i]
      break if sprite == nil
      case @type
      when 1; sprite.x -= 2; sprite.y += 16; sprite.opacity -= 8
      when 2; sprite.x -= 8; sprite.y += 16; sprite.opacity -= 12
      when 3; sprite.x -= 2; sprite.y +=  8; sprite.opacity -= 8
      end
      x, y = sprite.x - @ox, sprite.y - @oy
      if sprite.opacity < 64 or x < -50 or x > Graphics.width+110 or y < -300 or y > Graphics.height+20
        sprite.x, sprite.y = rand(Graphics.width+160)- 50+@ox, rand(Graphics.height+220)-200+@oy
        sprite.opacity = 255
      end
    end
  end
end
 
class Game_Map
  def scroll_right(distance); self.display_x += distance; end
  def scroll_left(distance) ; self.display_x -= distance; end
  def scroll_down(distance) ; self.display_y += distance; end
  def scroll_up(distance)   ; self.display_y -= distance; end
  def display_x=(x); @display_x = middle(0, x, width*128-Graphics.width*4) if @display_x != x and width*32 > Graphics.width; end
  def display_y=(y); @display_y = middle(0, y, height*128-Graphics.height*4) if @display_y != y and height*32 > Graphics.height; end
  def middle(min, x, max); return (x > min ? x < max ? x : max : min); end
  end
  
class Game_Event
  def visible; return !@event.name.include?("[INVISIBLE]"); end
end
 
class Game_Player
  CENTER_X, CENTER_Y = (Graphics.width/2-16)*4, (Graphics.height/2-16)*4
  def center(x, y); $game_map.display_x, $game_map.display_y = x*128-CENTER_X, y*128-CENTER_Y; end
end
 
class Sprite_Character
  attr_accessor :animation_viewport, :clones
  def initialize(a, b); super(a); @character, @clones = b, []; end
  alias :zeus81_rcu_sprite_character_update :update
  def update; zeus81_rcu_sprite_character_update; @clones.each {|c| c.update}; end
  def dispose; super; @clones.each {|c| c.dispose}; end
  def flash(a, b); super; @clones.each {|c| c.flash(a, b)}; end
  def bitmap=(a); (super; @clones.each {|c| c.bitmap=a}) if bitmap != a; end
  def visible=(a); (super; @clones.each {|c| c.visible=a}) if visible != a; end
  def opacity=(a); (super; @clones.each {|c| c.opacity=a}) if opacity != a; end
  def src_rect=(a); super; @clones.each {|c| c.src_rect=a}; end
  def ox=(a); (super; @clones.each {|c| c.ox=a}) if ox != a; end
  def oy=(a); (super; @clones.each {|c| c.oy=a}) if oy != a; end
  def x=(a); (super; @clones.each {|c| c.x=a-c.viewport.rect.x+viewport.rect.x}) if x != a; end
  def y=(a); (super; @clones.each {|c| c.y=a-c.viewport.rect.y+viewport.rect.y}) if y != a; end
  def z=(a); (super; @clones.each {|c| c.z=a-c.viewport.rect.y+viewport.rect.y}) if z != a; end
  def blend_type=(a); (super; @clones.each {|c| c.blend_type=a}) if blend_type != a; end
  def bush_depth=(a); (super; @clones.each {|c| c.bush_depth=a}) if bush_depth != a; end
  def animation(animation, hit)
    dispose_animation
    @_animation = animation
    return if @_animation == nil
    @_animation_hit, @_animation_duration = hit, @_animation.frame_max
    bitmap = RPG::Cache.animation(@_animation.animation_name, @_animation.animation_hue)
    if @@_reference_count.include?(bitmap); @@_reference_count[bitmap] += 1
    else; @@_reference_count[bitmap] = 1
    end
    @_animation_sprites = []
    if @_animation.position != 3 or not @@_animations.include?(@_animation)
      16.times do
        sprite = ::Sprite.new(@animation_viewport)
        sprite.bitmap, sprite.visible = bitmap, false
        @_animation_sprites.push(sprite)
      end
      @@_animations.push(@_animation) unless @@_animations.include?(@_animation)
    end
    update_animation
  end
end
 
class Spriteset_Map
  def initialize
    @tilemaps, @panoramas, @fogs, @character_sprites, @picture_sprites = [], [], [], [], []
    r = Rect.new(0, 0, [$game_map.width*32, Graphics.width].min, [$game_map.height*32, Graphics.height].min)
    r.x, r.y = (Graphics.width-r.width)/2, (Graphics.height-r.height)/2
    iw, ih = (r.width/640.0).ceil, (r.height/480.0).ceil
    for i in 0...iw*ih
      x, y = i%iw*640, i/iw*480
      w, h = [r.width-x, r.width, 640].min, [r.height-y, r.height, 480].min
      v = Viewport.new(r.x+x, r.y+y, w, h)
      @tilemaps.push(Tilemap.new(v))
      @tilemaps[-1].tileset = RPG::Cache.tileset($game_map.tileset_name)
      7.times {|j| @tilemaps[-1].autotiles[j] = RPG::Cache.autotile($game_map.autotile_names[j])}
      @tilemaps[-1].map_data, @tilemaps[-1].priorities = $game_map.data, $game_map.priorities
      @panoramas.push(Plane.new(v))
      @fogs.push(Plane.new(v))
      @panoramas[-1].z, @fogs[-1].z = -1000, 3000
      if i == 0
        $game_map.events.each_value {|e| @character_sprites.push(Sprite_Character.new(v, e)) if e.visible}
        @character_sprites.push(Sprite_Character.new(v, $game_player))
      else; @character_sprites.each {|s| s.clones.push(Sprite.new(v))}
      end
    end
    @viewport1, @viewport2, @viewport3 = Viewport.new(r), Viewport.new(r), Viewport.new(r)
    @viewport2.z, @viewport3.z = 200, 5000
    @weather = RPG::Weather.new(@viewport1)
    @character_sprites.each {|s| s.animation_viewport=@viewport1; s.update}
    (1..50).each {|i| @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i]))}
    @timer_sprite = Sprite_Timer.new
    update
  end
  def dispose
    @tilemaps[0].tileset.dispose
    7.times {|i| @tilemaps[0].autotiles[i].dispose}
    @tilemaps.each {|tilemap| tilemap.viewport.dispose; tilemap.dispose}
    @panoramas.each {|panorama| panorama.dispose}
    @fogs.each {|fog| fog.dispose}
    @character_sprites.each {|sprite| sprite.dispose}
    @weather.dispose
    @picture_sprites.each {|sprite| sprite.dispose}
    @timer_sprite.dispose
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
  end
  def update
    if @panorama_name != $game_map.panorama_name or @panorama_hue != $game_map.panorama_hue
      @panorama_name, @panorama_hue = $game_map.panorama_name, $game_map.panorama_hue
      @panoramas[0].bitmap.dispose if @panoramas[0].bitmap
      @panoramas[0].bitmap = (@panorama_name == "" ? nil : RPG::Cache.panorama(@panorama_name, @panorama_hue))
      @panoramas.each {|panorama| panorama.bitmap = @panoramas[0].bitmap}
      Graphics.frame_reset
    end
    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
      @fog_name, @fog_hue = $game_map.fog_name, $game_map.fog_hue
      @fogs[0].bitmap.dispose if @fogs[0].bitmap
      @fogs[0].bitmap = (@fog_name == "" ? nil : RPG::Cache.fog(@fog_name, @fog_hue))
      @fogs.each {|fog| fog.bitmap = @fogs[0].bitmap}
      Graphics.frame_reset
    end
    @viewport1.tone, @viewport1.ox, @viewport3.color = $game_screen.tone, $game_screen.shake, $game_screen.flash_color
    @viewport1.update
    @viewport3.update
    ox, oy = $game_map.display_x/4, $game_map.display_y/4
    for i in 0...@tilemaps.size
      tilemap = @tilemaps[i]
      #tilemap.viewport.tone, tilemap.viewport.ox = @viewport1.tone, @viewport1.ox
      tilemap.viewport.ox = @viewport1.ox
      tilemap.viewport.update
      tilemap.ox = ox+tilemap.viewport.rect.x-@viewport1.rect.x
      tilemap.oy = oy+tilemap.viewport.rect.y-@viewport1.rect.y
      tilemap.update
      panorama = @panoramas[i]
      panorama.ox, panorama.oy = tilemap.ox/2, tilemap.oy/2 if panorama.bitmap
      fog = @fogs[i]
      if fog.bitmap
        fog.ox, fog.oy = tilemap.ox+$game_map.fog_ox, tilemap.oy+$game_map.fog_oy
        fog.zoom_x, fog.zoom_y = $game_map.fog_zoom/100.0, $game_map.fog_zoom/100.0
        fog.opacity, fog.blend_type, fog.tone = $game_map.fog_opacity, $game_map.fog_blend_type, $game_map.fog_tone
      end
    end
    @character_sprites.each {|sprite| sprite.update}
    @weather.type, @weather.max = $game_screen.weather_type, $game_screen.weather_max
    @weather.ox, @weather.oy = ox, oy
    @weather.update
    @picture_sprites.each {|sprite| sprite.update}
    @timer_sprite.update
  end
end



Script de compatibilité avec l'AMS Ultimate

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
class Game_Character
  def update_walk
    if @pattern != @last_pattern
      @last_pattern = @pattern
      return if @walk_steps == 0 or @phase == 1 or @phase == 4 or @phase == 5 or @phase == 6
      if screen_x.between?(0, Graphics.width) and screen_y.between?(0, Graphics.height)
        n = Math.max(@pattern_max / @walk_steps, 1)
        make_step(@pattern / n % 2, @dash) if @pattern % n == 1 or n == 1
      end
    end
  end
end
 
class Sprite_Character
  attr_reader :trails
  alias :zeus81_rcu_sprite_character_initialize :initialize
  def initialize(viewport, character)
    @trails = [Sprite_Trail.new(viewport, [1], character)]
    zeus81_rcu_sprite_character_initialize(viewport, character)
  end
  def zoom_x=(a); (super; @clones.each {|c| c.zoom_x=a}) if zoom_x != a; end
  def zoom_y=(a); (super; @clones.each {|c| c.zoom_y=a}) if zoom_y != a; end
  def update_trails
    @character.trails.each do |t|
      t = Sprite_Trail.new(viewport, t, @character)
      @trails.push(t)
      @clones.each {|c| t.clones.push(Sprite.new(c.viewport))}
      t.initialize_clones
    end
    @character.trails.clear
    @trails.each {|t| t.update; @trails[@trails.index(t)] = t.dispose if t.opacity == 0}
    @trails.compact!
  end
end
 
class Sprite_Trail
  attr_reader :clones
  alias :zeus81_rcu_sprite_trail_initialize :initialize
  def initialize(a, b, c); @clones=[]; zeus81_rcu_sprite_trail_initialize(a, b, c); end
  def initialize_clones; @clones.each do |c|
    c.bitmap, c.src_rect, c.ox, c.oy, c.zoom_x, c.zoom_y, c.blend_type, c.opacity, c.visible, c.x, c.y, c.z = 
    bitmap, src_rect, ox, oy, zoom_x, zoom_y, blend_type, opacity, visible,
    x-c.viewport.rect.x+viewport.rect.x, y-c.viewport.rect.y+viewport.rect.y, z-c.viewport.rect.y+viewport.rect.y
  end; end
  def dispose; super; @clones.each {|c| c.dispose}; nil; end
  def visible=(a); (super; @clones.each {|c| c.visible=a}) if visible != a; end
  def opacity=(a); (super; @clones.each {|c| c.opacity=a}) if opacity != a; end
  def x=(a); (super; @clones.each {|c| c.x=a-c.viewport.rect.x+viewport.rect.x}) if x != a; end
  def y=(a); (super; @clones.each {|c| c.y=a-c.viewport.rect.y+viewport.rect.y}) if y != a; end
  def z=(a); (super; @clones.each {|c| c.z=a-c.viewport.rect.y+viewport.rect.y}) if z != a; end
  def zoom_x=(a); (super; @clones.each {|c| c.zoom_x=a}) if zoom_x != a; end
  def zoom_y=(a); (super; @clones.each {|c| c.zoom_y=a}) if zoom_y != a; end
end
 
class Spriteset_Map
  alias :zeus81_rcu_spriteset_map_initialize :initialize
  def initialize
    zeus81_rcu_spriteset_map_initialize
    @character_sprites.each {|s| s.clones.each {|c| s.trails[0].clones.push(Sprite.new(c.viewport))}; s.trails[0].initialize_clones}
  end
end




Mis à jour le 4/7/2020






kilam1110 - posté le 27/12/2009 à 21:29:45 (9159 messages postés)

❤ 0

Preum's sur le script Ultime :F
Ouais, c'est kon j'utilise pas XP :F Mais ouais c'est bien...

New RPG Maker - Forum traitant du logiciel RPG Maker tout en français ! | SURVIVE V2.5 - Dégommez du zombie !


Zeus81 - posté le 27/12/2009 à 21:44:30 (11071 messages postés)

❤ 0

Pour être compatible avec l'AMS Ultimate, le Resolution Changer Ultimate doit être placé au dessous de l'AMSU.
Ensuite il faut rajouter le script suivant en dessous du RCU.

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
class Game_Character
  def update_walk
    if @pattern != @last_pattern
      @last_pattern = @pattern
      return if @walk_steps == 0 or @phase == 1 or @phase == 4 or @phase == 5 or @phase == 6
      if screen_x.between?(0, Graphics.width) and screen_y.between?(0, Graphics.height)
        n = Math.max(@pattern_max / @walk_steps, 1)
        make_step(@pattern / n % 2, @dash) if @pattern % n == 1 or n == 1
      end
    end
  end
end
 
class Sprite_Character
  attr_reader :trails
  alias :zeus81_rcu_sprite_character_initialize :initialize
  def initialize(viewport, character)
    @trails = [Sprite_Trail.new(viewport, [1], character)]
    zeus81_rcu_sprite_character_initialize(viewport, character)
  end
  def zoom_x=(a); (super; @clones.each {|c| c.zoom_x=a}) if zoom_x != a; end
  def zoom_y=(a); (super; @clones.each {|c| c.zoom_y=a}) if zoom_y != a; end
  def update_trails
    @character.trails.each do |t|
      t = Sprite_Trail.new(viewport, t, @character)
      @trails.push(t)
      @clones.each {|c| t.clones.push(Sprite.new(c.viewport))}
      t.initialize_clones
    end
    @character.trails.clear
    @trails.each {|t| t.update; @trails[@trails.index(t)] = t.dispose if t.opacity == 0}
    @trails.compact!
  end
end
 
class Sprite_Trail
  attr_reader :clones
  alias :zeus81_rcu_sprite_trail_initialize :initialize
  def initialize(a, b, c); @clones=[]; zeus81_rcu_sprite_trail_initialize(a, b, c); end
  def initialize_clones; @clones.each do |c|
    c.bitmap, c.src_rect, c.ox, c.oy, c.zoom_x, c.zoom_y, c.blend_type, c.opacity, c.visible, c.x, c.y, c.z = 
    bitmap, src_rect, ox, oy, zoom_x, zoom_y, blend_type, opacity, visible,
    x-c.viewport.rect.x+viewport.rect.x, y-c.viewport.rect.y+viewport.rect.y, z-c.viewport.rect.y+viewport.rect.y
  end; end
  def dispose; super; @clones.each {|c| c.dispose}; nil; end
  def visible=(a); (super; @clones.each {|c| c.visible=a}) if visible != a; end
  def opacity=(a); (super; @clones.each {|c| c.opacity=a}) if opacity != a; end
  def x=(a); (super; @clones.each {|c| c.x=a-c.viewport.rect.x+viewport.rect.x}) if x != a; end
  def y=(a); (super; @clones.each {|c| c.y=a-c.viewport.rect.y+viewport.rect.y}) if y != a; end
  def z=(a); (super; @clones.each {|c| c.z=a-c.viewport.rect.y+viewport.rect.y}) if z != a; end
  def zoom_x=(a); (super; @clones.each {|c| c.zoom_x=a}) if zoom_x != a; end
  def zoom_y=(a); (super; @clones.each {|c| c.zoom_y=a}) if zoom_y != a; end
end
 
class Spriteset_Map
  alias :zeus81_rcu_spriteset_map_initialize :initialize
  def initialize
    zeus81_rcu_spriteset_map_initialize
    @character_sprites.each {|s| s.clones.each {|c| s.trails[0].clones.push(Sprite.new(c.viewport))}; s.trails[0].initialize_clones}
  end
end




Tata-Monos - posté le 27/12/2009 à 22:00:13 (57322 messages postés)

❤ 0

Vive le homebrew

Tien en full écran chez moi :

J'ai du contour noir comme VX
Et quand je fais la touche Windows pour avoir le barre de menu, ça se mélange enfin ça marche pas trop.

Signer du nez ?


Zeus81 - posté le 27/12/2009 à 22:41:14 (11071 messages postés)

❤ 0

Cool tu m'as fait un test combo Vista + 64bits + Wide Screen. :F
C'est bon ça a l'air de bien marcher.
Pour les touches Windows, Alt+Tab, Crtl+Alt+Suppr, ça ne quitte pas le mode plein écran mais c'est pas grave.


Tata-Monos - posté le 27/12/2009 à 22:51:50 (57322 messages postés)

❤ 0

Vive le homebrew

Citation:

Wide Screen.


Pour Vista 64 avec Rm Xp version anglaise officiel. Ca marche.
Pour le Wide, je ne sais pas si j'ai un Wide.
J'ai prévus le coup.
J'ai cette écran. Lien

Et j'ai aussi un CRT 19 pouce aussi en 1024 je ne sais plus quoi branché sur le pc.

Signer du nez ?


Zeus81 - posté le 27/12/2009 à 23:27:05 (11071 messages postés)

❤ 0

Oui oui c'est bon.


le cornu - posté le 27/12/2009 à 23:37:57 (1316 messages postés)

❤ 0

Bouh...........

Cool je teste sa !!!
Sa ta pris combien de temps a faire sa ? C'est compatible avec tes autre scripts ?

https://yalpel.fr/


Tata-Monos - posté le 28/12/2009 à 00:04:50 (57322 messages postés)

❤ 0

Vive le homebrew

Citation:

Ah tous les coups quand mon dernier script ultime sera accepté y'aura une avalanche d'autres trucs qui vont être accepté juste derrière et il ne restera même pas une seconde sur la page d'accueil.
Tss, tss, si c'est pas malheureux.



:lol tu avais raison.

Signer du nez ?


Zeus81 - posté le 28/12/2009 à 00:37:44 (11071 messages postés)

❤ 0

C'est un manque de respect envers les gens qui proposent des contenus que de les valider par vingtaines alors qu'on ne voit que les cinq derniers sur la page d'accueil. :sriden
Vous les empêchez sciemment de rencontrer leur public, c'est honteux !
Faudrait interdire plus de cinq validations par jour.
Bon celui là j'ai mis que deux jours à le faire mais quand même, ça intéresse peut être des gens.

Citation:

C'est compatible avec tes autre scripts ?


Non y'a quelques trucs à modifier, je le ferrais si quelqu'un le veut vraiment.


Nikopoll - posté le 28/12/2009 à 00:57:04 (4492 messages postés)

❤ 0

Le staff se contente de faire son boulot, tu n'as qu'à faire de la pub sur le forum pour tes scripts.


NanakyTim - posté le 28/12/2009 à 01:02:05 (23817 messages postés)

❤ 0

Leader Bocaliste Floodeur Légendaire

Fais comme Gif, mets une image "Mes scripts" regroupant les liens de tous tes scripts :D

Edit: Ow, déjà qu'il y a un long temps d'attente pour voir son script/tuto/jeu accepté, si maintenant on fait que 5 validations par jours... :hihi

Héros ou Fléau ? Devenez le Roi de Quineroy ! ~ Plongez dans l'univers sombre du Darkans ! ~ Dimens Reis... Allez y faire un tour. ~ Rangez votre chambre ! ~ Avez-vous peur du noir ? ~ Sauvez le futur, en allant dans le passé: BOCALATOR...


Zeus81 - posté le 28/12/2009 à 01:08:47 (11071 messages postés)

❤ 0

Evite de trop me provoquer Niko, parce que quand il s'agit de jouer au plus con je gagne toujours (aussi étrange que cela puisse paraître).


le cornu - posté le 28/12/2009 à 10:32:17 (1316 messages postés)

❤ 0

Bouh...........

Citation:

je le ferrais si quelqu'un le veut vraiment.



Ouép moi je veut bien. :)

EDIT:

Sa fait beaucoup ramer chez moi, une perte d'environ 20 FPS.

https://yalpel.fr/


kilam1110 - posté le 28/12/2009 à 11:14:52 (9159 messages postés)

❤ 0

N'empêche tu t'est bien fait niquer :F

New RPG Maker - Forum traitant du logiciel RPG Maker tout en français ! | SURVIVE V2.5 - Dégommez du zombie !


Zeus81 - posté le 28/12/2009 à 23:52:33 (11071 messages postés)

❤ 0

Citation:

Sa fait beaucoup ramer chez moi, une perte d'environ 20 FPS.


Tant que ça. oO
Parce qu'en fait ça dépend du nombre d'event et de la résolution.
Par exemple moi sur mon PC avec une résolution de 800x600 je peux mettre jusqu'à 40 events sans que ça ralentisse et j'ai vraiment pas un PC dont on peut être fier.
T'as mis quoi pour descendre à 20 FPS ?
Sinon dis moi c'est avec quel script qu'il te faut la compatibilité.



Bon j'ai fait une version 1.1 qui rame un chouïa moins et qui rajoutes quelques fonctionnalités, t'auras qu'à l'essayer.


Tata-Monos - posté le 29/12/2009 à 00:44:21 (57322 messages postés)

❤ 0

Vive le homebrew

100 Evènement qui représente un bonhomme normalement
et 100 événement avec un bonhomme en processus //.

Ba c'est nikel chez moi. Je suis à 38 fps avec l'option Smooth Mode et reduce screen flickering d'activé.



Mise à jour en 1.1

Signer du nez ?


Nikopoll - posté le 29/12/2009 à 01:01:29 (4492 messages postés)

❤ 0

Citation:

Evite de trop me provoquer Niko, parce que quand il s'agit de jouer au plus con je gagne toujours (aussi étrange que cela puisse paraître).


Ce n'était pas une provocation, alors change de ton, parce que je peux aussi être très con.


Zeus81 - posté le 29/12/2009 à 01:09:46 (11071 messages postés)

❤ 0

Citation:

Le staff se contente de faire son boulot, tu n'as qu'à faire ta pub toi même.


Non seulement c'est de la provoc mais en plus gratuite puisque tu viens me casser les couilles alors que je n'étais pas sérieux une seconde, ce que tu n'as sans doute pas saisi et qui te rend d'autant plus pathétique.


minusc - posté le 29/12/2009 à 01:21:27 (239 messages postés)

❤ 0

Citoyen de Rapture

Est-ce qu'il y aurait une commande possible pour modifier la résolution pendant en plein jeu ? (comme ça on fait une superbe remise en question du support ! Vous jouez à un jeu vidéo les gars, le boss est capable de changer la résolution pour que vous ne voyez plus vos pv !)

http://www.hordes.fr?ref=Minusc


kilam1110 - posté le 29/12/2009 à 02:15:15 (9159 messages postés)

❤ 0

Moi j'attend la réponse de Nikopoll :F [/batard]
Sinon euh... Très bonne MAJ... :doute2
tentative de faux post constructif...

New RPG Maker - Forum traitant du logiciel RPG Maker tout en français ! | SURVIVE V2.5 - Dégommez du zombie !


Nikopoll - posté le 29/12/2009 à 04:12:14 (4492 messages postés)

❤ 0

Ce n'est absolument pas de la provoc', tu t'enfonces mon pauvre. Je t'invitais simplement à faire de la pub pour tes scripts sur le forum car tu t'étais déjà plaint du fait que tu disparaissais trop vite de la page d'accueil.
Alors tu as décidé de mal prendre mon post, c'est ton affaire, mais si tu commences à me parler vulgairement et à monter sur tes grands chevaux je vais te refroidir assez rapidement.


Crystal - posté le 29/12/2009 à 06:14:31 (2068 messages postés) -

❤ 0

Nikopoll, tu as beau faire partie de l'équipe, ce n'est pas une raison pour ne pas être à risque d'un averto, au même titre que Zeus.

Alors svp, un peu de calme.


Nikopoll - posté le 29/12/2009 à 07:02:43 (4492 messages postés)

❤ 0

Je suis parfaitement calme.


le cornu - posté le 29/12/2009 à 12:25:24 (1316 messages postés)

❤ 0

Bouh...........

Citation:

Parce qu'en fait ça dépend du nombre d'event et de la résolution.



Sur une map de 50x50, avec seulement 4 events, des pnj et en 800*600. Mais je crois que sa vient de ma machine.^^'

Citation:


j'ai vraiment pas un PC dont on peut être fier



Moi non plus enfin pas celui d'en haut je ferrais des testes avec mon autre pc qui a 1 ans. Le pc sur lequel j'ai une chute de 20 FPS à 512 de ram, AMD Athlon(tm)XP 2400+, 1,99 GHz,

Citation:

Sinon dis moi c'est avec quel script qu'il te faut la compatibilité.



Avec le script de déplacement amélioré.

Citation:

Bon j'ai fait une version 1.1 qui rame un chouïa moins et qui rajoutes quelques fonctionnalités, t'auras qu'à l'essayer.



Ouép je vais refaire des testes.

Citation:


Est-ce qu'il y aurait une commande possible pour modifier la résolution pendant en plein jeu ?



+1

https://yalpel.fr/


Exemples - posté le 29/12/2009 à 14:56:29 (2021 messages postés)

❤ 0

Pff.

J'aime bien quand il y a des disputes come sa, on dirait un vieux couple ^^ J'espère que sa vexe personne ^^'

Bouh.


Toy master - posté le 29/12/2009 à 14:57:29 (2553 messages postés)

❤ 0

Programmeur confirmé et à la retraite !

Très bon script, par contre, il faut faire tous ses systemes custom, y compris le systeme de message, et c'est pas pratique ^^

Mais cela reste excellant pour ceux qui veulent augmenter les possibilités graphiques de leur jeu ;)

--Citation : L'homme n'est pas fait pour travailler, la preuve c'est que ça le fatigue !--Un petit rpg totalement debile !--Ma galerie !--Un petit rpg totalement débile 2 !


Tata-Monos - posté le 29/12/2009 à 16:06:22 (57322 messages postés)

❤ 0

Vive le homebrew

Citation:

J'aime bien quand il y a des disputes come sa, on dirait un vieux couple ^^ J'espère que sa vexe personne ^^'


Après ça fini au lit ?

Signer du nez ?


Nikopoll - posté le 29/12/2009 à 16:48:31 (4492 messages postés)

❤ 0

Ba non, les voies de Dieu sont impénétrables. :/


Tata-Monos - posté le 29/12/2009 à 17:53:44 (57322 messages postés)

❤ 0

Vive le homebrew

Amen !

Signer du nez ?


Sylvanor - posté le 29/12/2009 à 20:43:12 (24558 messages postés) - webmaster -

❤ 0

Le gars chiant qui rigole jamais (il paraît)

Ahah excellent Zeus, on m'avait dit que les résolutions wide étaient impossibles sous XP et VX, je trouvais ça extrêmement décourageant. C'est du super boulot, j'espère que beaucoup de makers utiliseront ce script. Je n'utilise plus que des écrans wide et j'en ai un peu marre des barres noires. :D

Les croissants croâssent en croix, s'ancrent ou à cent croîssent sans crocs à sang. Crois! Sens! ౡ


NanakyTim - posté le 29/12/2009 à 23:32:22 (23817 messages postés)

❤ 0

Leader Bocaliste Floodeur Légendaire

Citation:

on dirait un vieux couple ^^



Hum, comment dire... :F (pas taper)

Héros ou Fléau ? Devenez le Roi de Quineroy ! ~ Plongez dans l'univers sombre du Darkans ! ~ Dimens Reis... Allez y faire un tour. ~ Rangez votre chambre ! ~ Avez-vous peur du noir ? ~ Sauvez le futur, en allant dans le passé: BOCALATOR...


Zeus81 - posté le 29/12/2009 à 23:42:42 (11071 messages postés)

❤ 0

Citation:

Est-ce qu'il y aurait une commande possible pour modifier la résolution pendant en plein jeu ?


Non ça servirait à rien.

le cornu : J'ai mis le "patch" Pour l'AMSU dans le deuxième message, par contre utiliser ces deux scripts en même temps peut être assez gourmand. :F
Faudra être économe en event.


le cornu - posté le 30/12/2009 à 10:48:27 (1316 messages postés)

❤ 0

Bouh...........

Merci je verrais si cela est trop gourmand sinon je pense privilégier l'AMSU.

https://yalpel.fr/


Sylvanor - posté le 30/12/2009 à 11:56:02 (24558 messages postés) - webmaster -

❤ 0

Le gars chiant qui rigole jamais (il paraît)

Citation:

Non ça servirait à rien.



Ah je pense que si justement.
Ca permettrait d'intégrer une option de choix d'écran à l'intérieur du jeu, c'est assez sympa comme truc.

Les croissants croâssent en croix, s'ancrent ou à cent croîssent sans crocs à sang. Crois! Sens! ౡ


minusc - posté le 30/12/2009 à 14:58:57 (239 messages postés)

❤ 0

Citoyen de Rapture

Ou bien même de pouvoir perturber le joueur. Haha. Cacher des éléments ou en ajouter d'autre pour le fun par exemple. Un peu à la manière de Psycho Mantis qui fait bouger la manette ou qui lit la carte mémoire, on aurait un méchant qui perturbe en modifiant la résolution !

Non ?

http://www.hordes.fr?ref=Minusc


Rockmik - posté le 30/12/2009 à 15:37:02 (12689 messages postés)

❤ 0

En ligne

Bien ! C'est très pratique !

Sinon à quand un script qui permettrait d'utiliser la carte graphique du PC via l'appel d'une dll ? :ange

Les ramens, c'est délicieux.


Zeus81 - posté le 30/12/2009 à 19:19:17 (11071 messages postés)

❤ 0

Citation:

Ou bien même de pouvoir perturber le joueur. Haha. Cacher des éléments ou en ajouter d'autre pour le fun par exemple. Un peu à la manière de Psycho Mantis qui fait bouger la manette ou qui lit la carte mémoire, on aurait un méchant qui perturbe en modifiant la résolution !


Non, c'est comme si quand tu voudrais avoir une scène en noir et blanc tu changeais le mode d'affichage de ton écran, c'est ridicule.
Ben là c'est pareil si tu veux cacher une partie de l'écran t'y affiche une image noire.

Citation:

Ca permettrait d'intégrer une option de choix d'écran à l'intérieur du jeu, c'est assez sympa comme truc.


Si on augmente la résolution, le joueur voit plus de "carreaux" à l'écran.
Comment bien régler les scènes avec déplacements de caméra et tout, si la résolution est variable ?
Et puis si c'est le joueur qui choisit la résolution, il faut créer des menus qui s'adaptent automatiquement, si quelqu'un est capable de programmer ça il est sûrement aussi capable de rajouter 2 lignes à ce script qui lui permettrait de changer la résolution in game.


Sylvanor - posté le 30/12/2009 à 20:02:33 (24558 messages postés) - webmaster -

❤ 0

Le gars chiant qui rigole jamais (il paraît)

Citation:

Comment bien régler les scènes avec déplacements de caméra et tout, si la résolution est variable ?



Bah... Comme tous les jeux qui proposent l'option, et comme quand on fait un film...
Il faut faire attention à ne rien caser de crucial sur les bords.

Citation:

Et puis si c'est le joueur qui choisit la résolution, il faut créer des menus qui s'adaptent automatiquement, si quelqu'un est capable de programmer ça il est sûrement aussi capable de rajouter 2 lignes à ce script qui lui permettrait de changer la résolution in game.



Ohf pas forcément. Il peut simplement s'agir de deux versions des menus, programmées en évènements.

Les croissants croâssent en croix, s'ancrent ou à cent croîssent sans crocs à sang. Crois! Sens! ౡ


Certere - posté le 31/12/2009 à 20:08:55 (105 messages postés)

❤ 0

Vraiment utile ! merci !


Tata-Monos - posté le 26/07/2010 à 23:00:47 (57322 messages postés)

❤ 0

Vive le homebrew

Citation:

Pour Vista 64 avec Rm Xp version anglaise officiel. Ca marche.


Tien sur un Seven 64 bits avec la nouvelle version de RMXp (1.04) anglais, cela ne fonctionne plus.


Script''linr20: Runtime Error occured
GetprocAdress: Set Résolution or SetResolution A

Signer du nez ?


Zeus81 - posté le 28/07/2010 à 18:56:01 (11071 messages postés)

❤ 0

T'aurais pas oublié de mettre le Display.dll dans le dossier du jeu par hasard ? :hihi


Tata-Monos - posté le 28/07/2010 à 19:04:12 (57322 messages postés)

❤ 0

Vive le homebrew

J'ai le droit de faire oups: sonic
:D

Signer du nez ?


Dragonisien - posté le 28/08/2010 à 21:45:29 (131 messages postés)

❤ 0

PTDR, chez moi il ne fonctionne pas, mais mon jeu lag moins XD


Spanner - posté le 24/10/2010 à 11:52:41 (53 messages postés)

❤ 0

Slurp!!

Zeus, j'ai un problème. Les fichiers midi et MP3 ne passent plus sur les maps.

[ TURBO ] [ Site d'Illusio-Corp ]


Timo - posté le 29/11/2010 à 20:15:52 (822 messages postés)

❤ 0

Super script. Je l'essaie !
Il marche à merveille !


thesnake2 - posté le 02/09/2011 à 19:21:20 (10 messages postés)

❤ 0

Les fichiers midi, c'est la exquis !

Est ce normal que lorsque j'ai mis ce script en résolution de 800 x 600 (Mon écran ayant une résolution de 1366 x 768), j'ai mon jeu qui se lance en 640 x 480 avec bordure noirs ?
Si quelqu'un peut m'aider S.V.P.:'(


mat77164 - posté le 28/09/2011 à 17:42:22 (3 messages postés)

❤ 0

image

Bug !!! Et testé sur un projet vierge en plus :( Solution ou Démo ?

S.V.P =(


Zeus81 - posté le 28/09/2011 à 20:55:34 (11071 messages postés)

❤ 0

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
# Resolution Changer Ultimate v1.1
# Script créé par Zeus81
 
class << Graphics
  def width ; return 800; end # Configurez ici la largeur de l'écran
  def height; return 600; end # Configurez ici la hauteur de l'écran
  Fullscreen_Start = false    # Configurez ici si le jeu démarre en mode plein écran (true) ou pas (false)
  
  FindWindow       = Win32API.new("user32", "FindWindow", "pp", "l")
  CreateWindowEx   = Win32API.new("user32", "CreateWindowEx", "lpplllllllll", "l")
  UpdateWindow     = Win32API.new("user32", "UpdateWindow", "l", "l")
  ShowWindow       = Win32API.new("user32", "ShowWindow", "ll", "l")
  SetWindowLong    = Win32API.new("user32", "SetWindowLong", "lll", "l")
  SetWindowPos     = Win32API.new("user32", "SetWindowPos", "lllllll", "l")
  GetSystemMetrics = Win32API.new("user32", "GetSystemMetrics", "l", "l")
  GetDC            = Win32API.new("user32", "GetDC", "l", "l")
  FillRect         = Win32API.new("user32", "FillRect", "lpl", "l")
  SetKeyState      = Win32API.new("user32", "keybd_event", "llll", "")
  CreateSolidBrush = Win32API.new("gdi32", "CreateSolidBrush", "l", "l")
  SetResolution    = Win32API.new("Display", "SetResolution", "lll", "l")
  Screenshot       = Win32API.new("Screenshot", "Screenshot", "llllpll", "")
  Resolutions = [[], []]
  Resolutions[0].push([ 320,  240])
  Resolutions[0].push([ 640,  480])
  Resolutions[0].push([ 768,  576])
  Resolutions[0].push([ 800,  600])
  Resolutions[0].push([1024,  768])
  Resolutions[0].push([1152,  864])
  Resolutions[0].push([1280,  960])
  Resolutions[0].push([1280, 1024])
  Resolutions[0].push([1400, 1050])
  Resolutions[0].push([1600, 1200])
  Resolutions[0].push([2048, 1536])
  Resolutions[0].push([2560, 1920])
  Resolutions[0].push([2560, 2048])
  Resolutions[1].push([ 320,  200])
  Resolutions[1].push([ 800,  480])
  Resolutions[1].push([ 854,  480])
  Resolutions[1].push([ 960,  600])
  Resolutions[1].push([1024,  600])
  Resolutions[1].push([1088,  612])
  Resolutions[1].push([1280,  720])
  Resolutions[1].push([1280,  768])
  Resolutions[1].push([1280,  800])
  Resolutions[1].push([1360,  768])
  Resolutions[1].push([1440,  900])
  Resolutions[1].push([1600,  900])
  Resolutions[1].push([1680, 1050])
  Resolutions[1].push([1920, 1080])
  Resolutions[1].push([1920, 1200])
  Resolutions[1].push([2560, 1440])
  Resolutions[1].push([2560, 1600])
  Transition = Sprite.new
  Transition.z = 0xFFFF
  First_Start = !defined?(First_Start)
  if First_Start
    open("Game.ini") {|file| file.read[/Title=(.*?)\n/]}
    WindowHandle     = FindWindow.call("RGSS Player", 0)
    BackWindowHandle = CreateWindowEx.call(0x08000000, "Static", "", 0x80000000, 0, 0, 0, 0, 0, 0, 0, 0)
    FillRectArgs = [GetDC.call(BackWindowHandle), [0,0,0xFFFF,0xFFFF].pack("l4"), CreateSolidBrush.call(0)]
    @@fullscreen, @@client_resolution = nil
    alias :zeus81_rcu_graphics_freeze     :freeze
    alias :zeus81_rcu_graphics_transition :transition
    alias :zeus81_rcu_graphics_update     :update
  end
  def update
    zeus81_rcu_graphics_update
    set_key_state(164, false)
    change_mode if Input.trigger?(Input::F5)
  end
  def freeze
    if width <= 640 and height <= 480; zeus81_rcu_graphics_freeze
    else
      Screenshot.call(0, 0, width, height, "freeze.bmp", WindowHandle, 0)
      Transition.bitmap = Bitmap.new("freeze.bmp")
      File.delete("freeze.bmp")
    end
  end
  def transition(d=8, f="", v=40)
    if width <= 640 and height <= 480; zeus81_rcu_graphics_transition(d, f, v)
    else
      d.times {|i| Transition.opacity = 256 - i*256/d; update}
      Transition.bitmap.dispose if Transition.bitmap
      Transition.bitmap, Transition.opacity = nil, 255
    end
  end
  def fullscreen?; return @@fullscreen; end
  def change_mode; set_resolution(!@@fullscreen); end
  def fullscreen_mode; set_resolution(true) unless @@fullscreen == true; end
  def windowed_mode; set_resolution(false) unless @@fullscreen == false; end
  private
  def set_key_state(k, b); SetKeyState.call(k, 0, (b ? 0 : 2), 0); end
  def get_resolution; return GetSystemMetrics.call(0), GetSystemMetrics.call(1); end
  def set_resolution(fullscreen)
    @@client_resolution = get_resolution unless @@fullscreen == true
    @@fullscreen = fullscreen
    w, h, z, f =  width, height, -1, 64
    if @@fullscreen
      ShowWindow.call(BackWindowHandle, 3)
      SetWindowLong.call(WindowHandle, -16, 0x14000000)
      ratio = @@client_resolution[0] / @@client_resolution[1].to_f
      for res in Resolutions[ratio < 1.5 ? 0 : 1]
        next unless res[0] >= width and res[1] >= height
        SetResolution.call(res[0], res[1], 4)
        break if res == get_resolution
      end
    else
      ShowWindow.call(BackWindowHandle, 0)
      SetWindowLong.call(WindowHandle, -16, 0x14CA0000)
      SetResolution.call(@@client_resolution[0], @@client_resolution[1], 0)
      w += (GetSystemMetrics.call(5)+2) * 2
      h += (GetSystemMetrics.call(6)+2) * 2 + GetSystemMetrics.call(4)
      z = f = 0
    end
    x, y = get_resolution
    x, y = [(x-w)/2, 0].max, [(y-h)/2, 0].max
    SetWindowPos.call(WindowHandle, z, x, y, w, h, f)
    UpdateWindow.call(BackWindowHandle)
    FillRect.call(*FillRectArgs)
  end
  Fullscreen_Start ? Graphics.fullscreen_mode : Graphics.windowed_mode if First_Start
end
 
class RPG::Weather
  def update
    return if @type == 0
    for i in 1..@max
      sprite = @sprites[i]
      break if sprite == nil
      case @type
      when 1; sprite.x -= 2; sprite.y += 16; sprite.opacity -= 8
      when 2; sprite.x -= 8; sprite.y += 16; sprite.opacity -= 12
      when 3; sprite.x -= 2; sprite.y +=  8; sprite.opacity -= 8
      end
      x, y = sprite.x - @ox, sprite.y - @oy
      if sprite.opacity < 64 or x < -50 or x > Graphics.width+110 or y < -300 or y > Graphics.height+20
        sprite.x, sprite.y = rand(Graphics.width+160)- 50+@ox, rand(Graphics.height+220)-200+@oy
        sprite.opacity = 255
      end
    end
  end
end
 
class Game_Map
  def scroll_right(distance); self.display_x += distance; end
  def scroll_left(distance) ; self.display_x -= distance; end
  def scroll_down(distance) ; self.display_y += distance; end
  def scroll_up(distance)   ; self.display_y -= distance; end
  def display_x=(x); @display_x = middle(0, x, width*128-Graphics.width*4) if @display_x != x and width*32 > Graphics.width; end
  def display_y=(y); @display_y = middle(0, y, height*128-Graphics.height*4) if @display_y != y and height*32 > Graphics.height; end
  def middle(min, x, max); return (x > min ? x < max ? x : max : min); end
  end
  
class Game_Event
  def visible; return !@event.name.include?("[INVISIBLE]"); end
end
 
class Game_Player
  CENTER_X, CENTER_Y = (Graphics.width/2-16)*4, (Graphics.height/2-16)*4
  def center(x, y); $game_map.display_x, $game_map.display_y = x*128-CENTER_X, y*128-CENTER_Y; end
end
 
class Sprite_Character
  attr_accessor :animation_viewport, :clones
  def initialize(a, b); super(a); @character, @clones = b, []; end
  alias :zeus81_rcu_sprite_character_update :update
  def update; zeus81_rcu_sprite_character_update; @clones.each {|c| c.update}; end
  def dispose; super; @clones.each {|c| c.dispose}; end
  def flash(a, b); super; @clones.each {|c| c.flash(a, b)}; end
  def bitmap=(a); (super; @clones.each {|c| c.bitmap=a}) if bitmap != a; end
  def visible=(a); (super; @clones.each {|c| c.visible=a}) if visible != a; end
  def opacity=(a); (super; @clones.each {|c| c.opacity=a}) if opacity != a; end
  def src_rect=(a); super; @clones.each {|c| c.src_rect=a}; end
  def ox=(a); (super; @clones.each {|c| c.ox=a}) if ox != a; end
  def oy=(a); (super; @clones.each {|c| c.oy=a}) if oy != a; end
  def x=(a); (super; @clones.each {|c| c.x=a-c.viewport.rect.x+viewport.rect.x}) if x != a; end
  def y=(a); (super; @clones.each {|c| c.y=a-c.viewport.rect.y+viewport.rect.y}) if y != a; end
  def z=(a); (super; @clones.each {|c| c.z=a-c.viewport.rect.y+viewport.rect.y}) if z != a; end
  def blend_type=(a); (super; @clones.each {|c| c.blend_type=a}) if blend_type != a; end
  def bush_depth=(a); (super; @clones.each {|c| c.bush_depth=a}) if bush_depth != a; end
  def animation(animation, hit)
    dispose_animation
    @_animation = animation
    return if @_animation == nil
    @_animation_hit, @_animation_duration = hit, @_animation.frame_max
    bitmap = RPG::Cache.animation(@_animation.animation_name, @_animation.animation_hue)
    if @@_reference_count.include?(bitmap); @@_reference_count[bitmap] += 1
    else; @@_reference_count[bitmap] = 1
    end
    @_animation_sprites = []
    if @_animation.position != 3 or not @@_animations.include?(@_animation)
      16.times do
        sprite = ::Sprite.new(@animation_viewport)
        sprite.bitmap, sprite.visible = bitmap, false
        @_animation_sprites.push(sprite)
      end
      @@_animations.push(@_animation) unless @@_animations.include?(@_animation)
    end
    update_animation
  end
end
 
class Spriteset_Map
  def initialize
    @tilemaps, @panoramas, @fogs, @character_sprites, @picture_sprites = [], [], [], [], []
    r = Rect.new(0, 0, [$game_map.width*32, Graphics.width].min, [$game_map.height*32, Graphics.height].min)
    r.x, r.y = (Graphics.width-r.width)/2, (Graphics.height-r.height)/2
    iw, ih = (r.width/640.0).ceil, (r.height/480.0).ceil
    for i in 0...iw*ih
      x, y = i%iw*640, i/iw*480
      w, h = [r.width-x, r.width, 640].min, [r.height-y, r.height, 480].min
      v = Viewport.new(r.x+x, r.y+y, w, h)
      @tilemaps.push(Tilemap.new(v))
      @tilemaps[-1].tileset = RPG::Cache.tileset($game_map.tileset_name)
      7.times {|j| @tilemaps[-1].autotiles[j] = RPG::Cache.autotile($game_map.autotile_names[j])}
      @tilemaps[-1].map_data, @tilemaps[-1].priorities = $game_map.data, $game_map.priorities
      @panoramas.push(Plane.new(v))
      @fogs.push(Plane.new(v))
      @panoramas[-1].z, @fogs[-1].z = -1000, 3000
      if i == 0
        $game_map.events.each_value {|e| @character_sprites.push(Sprite_Character.new(v, e)) if e.visible}
        @character_sprites.push(Sprite_Character.new(v, $game_player))
      else; @character_sprites.each {|s| s.clones.push(Sprite.new(v))}
      end
    end
    @viewport1, @viewport2, @viewport3 = Viewport.new(r), Viewport.new(r), Viewport.new(r)
    @viewport2.z, @viewport3.z = 200, 5000
    @weather = RPG::Weather.new(@viewport1)
    @character_sprites.each {|s| s.animation_viewport=@viewport1; s.update}
    (1..50).each {|i| @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i]))}
    @timer_sprite = Sprite_Timer.new
    update
  end
  def dispose
    @tilemaps[0].tileset.dispose
    7.times {|i| @tilemaps[0].autotiles[i].dispose}
    @tilemaps.each {|tilemap| tilemap.viewport.dispose; tilemap.dispose}
    @panoramas.each {|panorama| panorama.dispose}
    @fogs.each {|fog| fog.dispose}
    @character_sprites.each {|sprite| sprite.dispose}
    @weather.dispose
    @picture_sprites.each {|sprite| sprite.dispose}
    @timer_sprite.dispose
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
  end
  def update
    if @panorama_name != $game_map.panorama_name or @panorama_hue != $game_map.panorama_hue
      @panorama_name, @panorama_hue = $game_map.panorama_name, $game_map.panorama_hue
      @panoramas[0].bitmap.dispose if @panoramas[0].bitmap
      @panoramas[0].bitmap = (@panorama_name == "" ? nil : RPG::Cache.panorama(@panorama_name, @panorama_hue))
      @panoramas.each {|panorama| panorama.bitmap = @panoramas[0].bitmap}
      Graphics.frame_reset
    end
    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
      @fog_name, @fog_hue = $game_map.fog_name, $game_map.fog_hue
      @fogs[0].bitmap.dispose if @fogs[0].bitmap
      @fogs[0].bitmap = (@fog_name == "" ? nil : RPG::Cache.fog(@fog_name, @fog_hue))
      @fogs.each {|fog| fog.bitmap = @fogs[0].bitmap}
      Graphics.frame_reset
    end
    @viewport1.tone, @viewport1.ox, @viewport3.color = $game_screen.tone, $game_screen.shake, $game_screen.flash_color
    @viewport1.update
    @viewport3.update
    ox, oy = $game_map.display_x/4, $game_map.display_y/4
    for i in 0...@tilemaps.size
      tilemap = @tilemaps[i]
      tilemap.viewport.tone, tilemap.viewport.ox = @viewport1.tone, @viewport1.ox
      tilemap.viewport.update
      tilemap.ox = ox+tilemap.viewport.rect.x-@viewport1.rect.x
      tilemap.oy = oy+tilemap.viewport.rect.y-@viewport1.rect.y
      tilemap.update
      panorama = @panoramas[i]
      panorama.ox, panorama.oy = tilemap.ox-ox/2, tilemap.oy-oy/2 if panorama.bitmap
      fog = @fogs[i]
      if fog.bitmap
        fog.ox, fog.oy = tilemap.ox+$game_map.fog_ox, tilemap.oy+$game_map.fog_oy
        fog.zoom_x, fog.zoom_y = $game_map.fog_zoom/100.0, $game_map.fog_zoom/100.0
        fog.opacity, fog.blend_type, fog.tone = $game_map.fog_opacity, $game_map.fog_blend_type, $game_map.fog_tone
      end
    end
    @character_sprites.each {|sprite| sprite.update}
    @weather.type, @weather.max = $game_screen.weather_type, $game_screen.weather_max
    @weather.ox, @weather.oy = ox, oy
    @weather.update
    @picture_sprites.each {|sprite| sprite.update}
    @timer_sprite.update
  end
end


https://www.dropbox.com/s/1jczr90wzad9b8k/Display%20%2B%20Screenshot%20dll.zip?dl=1


miduki - posté le 14/06/2012 à 01:54:18 (1012 messages postés)

❤ 0

Raaaaah ! Trop bien ce script, mais moi ça me fait la même chose, qu'a Monos ! en plein écran, j'ai les contours tout noir que puis-je faire ?

Ca fait 2 ans le dernier message ... Aurais-je une réponse ?

https://projetego.com/ Projet Ego


CanardPCdrop - posté le 15/09/2012 à 14:26:32 (10 messages postés)

❤ 0

Les fichiers midi, c'est la exquis !

Merciiiiiiiii Zeus pour cette amélioration :ange2:ange2
Déjà que j'adore tes scripts, mais la je te vénére :plusun
Une ovation pour Zeus81 s'il vous plait !!! :youpi


Rîken - posté le 01/06/2014 à 18:28:15 (67 messages postés)

❤ 0

le lien vers les 2 fichiers à ajouté est mort.


NanakyTim - posté le 21/12/2017 à 19:35:34 (23817 messages postés)

❤ 0

Leader Bocaliste Floodeur Légendaire

Quelle beauté :sriden

Héros ou Fléau ? Devenez le Roi de Quineroy ! ~ Plongez dans l'univers sombre du Darkans ! ~ Dimens Reis... Allez y faire un tour. ~ Rangez votre chambre ! ~ Avez-vous peur du noir ? ~ Sauvez le futur, en allant dans le passé: BOCALATOR...


NanakyTim - posté le 03/06/2020 à 21:32:55 (23817 messages postés)

❤ 0

Leader Bocaliste Floodeur Légendaire

Pour ceux qui utilisent ce script, pensez à remplacer la ligne 269 :

Portion de code : Tout sélectionner

1
tilemap.viewport.tone, tilemap.viewport.ox = @viewport1.tone, @viewport1.ox



Par :

Portion de code : Tout sélectionner

1
tilemap.viewport.ox = @viewport1.ox



Ça bousille les tons de l'écran en en cumulant deux sinon. Quand on l'enlève ça fonctionne correctement peu importe la résolution. Je comprends pas pourquoi Zeus a ajouté cette ligne qui n'existe pas dans le Spriteset_Map d'origine.

Héros ou Fléau ? Devenez le Roi de Quineroy ! ~ Plongez dans l'univers sombre du Darkans ! ~ Dimens Reis... Allez y faire un tour. ~ Rangez votre chambre ! ~ Avez-vous peur du noir ? ~ Sauvez le futur, en allant dans le passé: BOCALATOR...


Gari - posté le 04/07/2020 à 11:50:15 (5899 messages postés) - honor

❤ 0

J'ai modifié la page principale avec la modification.


VRP024 - posté le 22/02/2021 à 05:17:06 (24 messages postés)

❤ 0

Tes propres scripts sont incompatibles entre-eux, Lacunes/20?
Plus de 200 lignes pour un script vu 1000 fois. Aïe... Bon... C'est un bon début...


Gari - posté le 04/03/2021 à 13:13:34 (5899 messages postés) - honor

❤ 0

Certains caractères avaient disparu lors du transfert des scripts. Le script devrait de nouveau être fonctionnel.


Ardonie - posté le 08/06/2022 à 22:14:50 (854 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Salut à toi Zeus et merci beaucoup pour ce script ! Ca va être bien utile pour moderniser mes projets.
petit souci cependant : En lançant le projet, j'ai un message d'erreur avant que la fenêtre ne se ferme.
image

Voici l'ordre de mes scripts :

AMSU 1.5 (je ne peux pas ouvrir les démos au delà de cette version car ma version d'RMXP est trop ancienne, le bug est aussi présent avec l'AMSU 1.3.)
AMSU Utilitaire (celui qui corrige l'affichage du héros dans les menus)
AMSU Map Config
Resolution Changer Ultimate
Resolution Changer comptabilité avec AMSU

J'ai mis les deux fichiers dans Data, j'ai aussi testé avec les fichiers dans le dossier du jeu comme ça, à côté des dossiers Data, Audio... le message est un peu différent celà dit... : il semble chercher le fichier Display.

Voilà voilà.... Si vous avez de quoi allumer ma lenterne... :pense

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Gari - posté le 09/06/2022 à 09:13:32 (5899 messages postés) - honor

❤ 0

Ce qui semble normal, c'est ce qui se trouve ligne 20 (le fichier Display).
Petit conseil, peut-être commencer avec le screen resolution changer seul sur un projet vierge, histoire de vérifier qu'il s'agit du problème, et ajouter tes autres scripts au fur et à mesure ?
Tu peux également utiliser ce script pour éviter le crash lié à une ressource manquante : https://www.rpg-maker.fr/scripts-231-anti-no-such-file.html


Nemau - posté le 09/06/2022 à 16:19:11 (52124 messages postés) - honor -

❤ 0

The Inconstant Gardener

Salut Ardonie. Zeus81 n'est plus passé sur Oniro depuis longtemps donc il y a peu de chances qu'il te réponde malheureusement.

Quel RPG Maker choisir ?Ocarina of Time PCPolaris 03 • Le matérialisme c'est quand tu as du matériel.


Ardonie - posté le 09/06/2022 à 19:12:41 (854 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Salut Gari, Salut Nemau ! :sourit
Oh mince, Zeus n'est plus actif sur le serveur ? Mon coeur se brise.
Faut dire, j'ai pas reposté sur ce forum depuis 2 ans, et avant ça, j'avais pas reposté depuis 5 ans... Faut croire que certains d'entre-nous passent à autre chose... Genre Unity ou Unreal Engine

Je viens de tester le Script seul sur un projet vierge,
j'ai lancé le jeu avant de placer les deux fichiers dans mon dossier,
et j'obtiens la même erreur que citée plus haut.

ensuite, j'ai ajouté les deux fichier dans le dossier du projet, j'obtiens
l'erreur suivante : "LoadLibrary: Display" avec toujours la première ligne au sujet de la ligne 20.

j'ai ensuite remplacé le code du script en haut du topic par celui posté en dernier par Zeus. (si ça se trouve, c'est le même, mais je vais pas regarder en détail.)

je bouge Display dans data. screenshot reste dans le dossier principal.
L'erreur change, on revient sur "GetProcAdress: SetResolution or SetResolutionA"

je déplace screenshot.dll dans Data, l'erreur se répète.

Pour résumer.... Bah c'est cassé !:sriden

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Sh4k4 - posté le 22/02/2023 à 23:54:12 (33 messages postés)

❤ 0

Scripteur / Event Maker

Ardonie a dit:

Salut à toi Zeus et merci beaucoup pour ce script ! Ca va être bien utile pour moderniser mes projets.
petit souci cependant : En lançant le projet, j'ai un message d'erreur avant que la fenêtre ne se ferme.
image

Voici l'ordre de mes scripts :

AMSU 1.5 (je ne peux pas ouvrir les démos au delà de cette version car ma version d'RMXP est trop ancienne, le bug est aussi présent avec l'AMSU 1.3.)
AMSU Utilitaire (celui qui corrige l'affichage du héros dans les menus)
AMSU Map Config
Resolution Changer Ultimate
Resolution Changer comptabilité avec AMSU

J'ai mis les deux fichiers dans Data, j'ai aussi testé avec les fichiers dans le dossier du jeu comme ça, à côté des dossiers Data, Audio... le message est un peu différent celà dit... : il semble chercher le fichier Display.

Voilà voilà.... Si vous avez de quoi allumer ma lenterne... :pense



Cette erreur selon mon expérience a été provoquée à la suite de mises à jours de l'ordinateur, que ce soit Windows ou les drivers du GPU.

On peut cependant le fixer.

Sur Windows 10 :
-Panneau de configuration
-Système et sécurité
-Système
-Paramètres avancés du système (à droite de l'écran)
-Onglet Paramètres système avancés, dans Performances, cliquer Paramètres...
-Onglet Prévention de l'exécution des données
-Cocher Activer la prévention d'exécution des données pour tous les programmes et les services, sauf ceux que je sélectionne :
-Cliquer Ajouter
-Sélectionner l'exécutable du jeu, généralement Game.exe de base.
-Cliquer Appliquer et OK
-Rédémmarrer l'ordinateur

Normalement cela règle le problème.

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/Plugins | Ressources graphiques / sonores | 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