Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
298 connectés actuellement
30732347 visiteurs depuis l'ouverture
2325 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
❤ 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.
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
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)
| | Preum's sur le script Ultime
Ouais, c'est kon j'utilise pas XP 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)
| | 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.
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)
| 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)
| | Cool tu m'as fait un test combo Vista + 64bits + Wide Screen.
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)
| Vive le homebrew | Citation:
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)
| | Oui oui c'est bon.
|
le cornu -
posté le 27/12/2009 à 23:37:57 (1316 messages postés)
| 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)
| 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. |
tu avais raison.
|
Signer du nez ? |
Zeus81 -
posté le 28/12/2009 à 00:37:44 (11071 messages postés)
| | 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.
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)
| | 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)
| | Fais comme Gif, mets une image "Mes scripts" regroupant les liens de tous tes scripts
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...
|
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)
| | 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)
| 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/ |
Zeus81 -
posté le 28/12/2009 à 23:52:33 (11071 messages postés)
| | 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)
| 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)
| | 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)
| | 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)
| 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)
| | Moi j'attend la réponse de Nikopoll [/batard]
Sinon euh... Très bonne MAJ...
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)
| | 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 (2146 messages postés)
- | | 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)
| | Je suis parfaitement calme.
|
le cornu -
posté le 29/12/2009 à 12:25:24 (1316 messages postés)
| 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)
| 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)
| 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)
| 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)
| | Ba non, les voies de Dieu sont impénétrables. :/
|
Tata-Monos -
posté le 29/12/2009 à 17:53:44 (57322 messages postés)
| Vive le homebrew | Amen !
|
Signer du nez ? |
Sylvanor -
posté le 29/12/2009 à 20:43:12 (24806 messages postés)
- | 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.
|
Les croissants croâssent en croix, s'ancrent ou à cent croîssent sans crocs à sang. Crois! Sens! ౡ |
Zeus81 -
posté le 29/12/2009 à 23:42:42 (11071 messages postés)
| | 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.
Faudra être économe en event.
|
le cornu -
posté le 30/12/2009 à 10:48:27 (1316 messages postés)
| 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 (24806 messages postés)
- | Le gars chiant qui rigole jamais (il paraît) | Citation:
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)
| 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)
| 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 ?
|
Les ramens, c'est délicieux. |
Zeus81 -
posté le 30/12/2009 à 19:19:17 (11071 messages postés)
| | 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 (24806 messages postés)
- | 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)
| | Vraiment utile ! merci !
|
Tata-Monos -
posté le 26/07/2010 à 23:00:47 (57322 messages postés)
| 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)
| | T'aurais pas oublié de mettre le Display.dll dans le dossier du jeu par hasard ?
|
Tata-Monos -
posté le 28/07/2010 à 19:04:12 (57322 messages postés)
| Vive le homebrew | J'ai le droit de faire oups: sonic
|
Signer du nez ? |
Dragonisien -
posté le 28/08/2010 à 21:45:29 (131 messages postés)
| | PTDR, chez moi il ne fonctionne pas, mais mon jeu lag moins
|
Spanner -
posté le 24/10/2010 à 11:52:41 (53 messages postés)
| 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)
| | Super script. Je l'essaie !
Il marche à merveille !
|
thesnake2 -
posté le 02/09/2011 à 19:21:20 (10 messages postés)
| 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)
| |
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)
| |
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)
| | 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)
| Les fichiers midi, c'est la exquis ! | Merciiiiiiiii Zeus pour cette amélioration
Déjà que j'adore tes scripts, mais la je te vénére
Une ovation pour Zeus81 s'il vous plait !!!
|
Rîken -
posté le 01/06/2014 à 18:28:15 (67 messages postés)
| | le lien vers les 2 fichiers à ajouté est mort.
|
NanakyTim -
posté le 03/06/2020 à 21:32:55 (23817 messages postés)
| | Pour ceux qui utilisent ce script, pensez à remplacer la ligne 269 :
1
| tilemap.viewport.tone, tilemap.viewport.ox = @viewport1.tone, @viewport1.ox |
Par :
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 (5901 messages postés)
- | | J'ai modifié la page principale avec la modification.
|
VRP024 -
posté le 22/02/2021 à 05:17:06 (24 messages postés)
| | 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 (5901 messages postés)
- | | 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 (861 messages postés)
- | 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.
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...
|
Travaille actuellement sur Roadelicious | Mes Musiques! | Anciens projets : Sylvan Melody, Terkass |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 (5901 messages postés)
- | | 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
|
| Narrer l'autocatégorème | 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 PC • Polaris 03 |
Ardonie -
posté le 09/06/2022 à 19:12:41 (861 messages postés)
- | Ex Couteau Suisse Agréé | Salut Gari, Salut Nemau !
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é !
|
Travaille actuellement sur Roadelicious | Mes Musiques! | Anciens projets : Sylvan Melody, Terkass |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)
| 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.
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... |
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.
| |
|
|