Oniromancie: Scripts - Resolution Changer Ultimate


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (36 connectés)

Bienvenue
visiteur !








Statistiques

Liste des
membres


Contact

82 connectés actuellement

9170812 visiteurs
depuis l'ouverture

1064 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

Tashiroworld

Making4Life

Medator

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Resolution Changer Ultimate
Script pour RPG Maker XP
Ecrit par Zeus81


Script pour RMXP qui permet de changer la résolution du jeu.
Vous devez le copier au dessus du main.
Il faut aussi rajouter ces 2 fichiers dans le dossier de votre jeu.
La résolution se configure au début du script.
Exemple en 800x480 :
image
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:



# 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
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))}
@timer_sprite = Sprite_Timer.new
update
end
def dispose
@tilemaps[0].tileset.dispose
7.times {|i| @tilemaps[0].autotiles.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
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
panorama.ox, panorama.oy = tilemap.ox/2, tilemap.oy/2 if panorama.bitmap
fog = @fogs
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


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.
Enfin si la résolution est supérieure à 640x480 les effets de transitions ne marcheront plus, ça se limitera à un simple fondu.


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

Bah TG.

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. (11072 messages postés) - bocauxharam

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. (56267 messages postés) - admin

Vive le making libre

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.

Pixner|Offgame | Le comptoire des clikeurs


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

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. (56267 messages postés) - admin

Vive le making libre

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.

Pixner|Offgame | Le comptoire des clikeurs


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

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 ?

Yo ho ho et une bouteille de rhum ♪♫♫♪


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

Vive le making libre

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.

Pixner|Offgame | Le comptoire des clikeurs


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

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)

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. (20635 messages postés) - staff

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

Plongez dans l'univers sombre du Darkans ! ~Une dictature, mais une dictature juste... Votez Bocaux Haram ! ~ Sauvez le futur, en allant dans le passé: BOCALATOR... ~ Dimens Reis... Allez y faire un tour. Rangez votre chambre ! Avez-vous peur du noir ?


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

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.

Yo ho ho et une bouteille de rhum ♪♫♫♪


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

Bah TG.

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. (11072 messages postés) - bocauxharam

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. (56267 messages postés) - admin

Vive le making libre

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

Pixner|Offgame | Le comptoire des clikeurs


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. (11072 messages postés) - bocauxharam

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. (9157 messages postés) - bocauxharam

Bah TG.

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)

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. (1913 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

Yo ho ho et une bouteille de rhum ♪♫♫♪


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

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. (56267 messages postés) - admin

Vive le making libre

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 ?

Pixner|Offgame | Le comptoire des clikeurs


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. (56267 messages postés) - admin

Vive le making libre

Amen !

Pixner|Offgame | Le comptoire des clikeurs


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

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. (20635 messages postés) - staff

Leader Bocaliste Floodeur Légendaire

Citation:

on dirait un vieux couple ^^



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

Plongez dans l'univers sombre du Darkans ! ~Une dictature, mais une dictature juste... Votez Bocaux Haram ! ~ Sauvez le futur, en allant dans le passé: BOCALATOR... ~ Dimens Reis... Allez y faire un tour. Rangez votre chambre ! Avez-vous peur du noir ?


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

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)

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

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

Yo ho ho et une bouteille de rhum ♪♫♫♪


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

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)

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. (12633 messages postés) - honor

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


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

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. (20163 messages postés) - webmaster

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. (56267 messages postés) - admin

Vive le making libre

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

Pixner|Offgame | Le comptoire des clikeurs


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

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. (56267 messages postés) - admin

Vive le making libre

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

Pixner|Offgame | Le comptoire des clikeurs


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

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


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)

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. (11072 messages postés) - bocauxharam

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. (965 messages postés) - bocauxharam

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 ?

Projet Gaïa 5 : http://www.rpg-maker.fr/index.php?page=forum&id=26241_______________________________La derniere femme : (Hentaï RPG/interdit -16ans) http://www.rpg-maker.fr/index.php?page=forum&id=22777 ____________________________________ LES CHRONIQUES DE GAÏA : 100%MULTIMAKING ouvert à tous ! http://www.rpg-maker.fr/index.php?page=forum&id=24199


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 :ange2:ange2
Déjà que j'adore tes scripts, mais la je te vénére :elusun
Une ovation pour Zeus81 s'il vous plait !!! :youpi


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

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

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

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis