Accueil du SiteAccueil du Site  AccueilAccueil  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  ConnexionConnexion  S'enregistrerS'enregistrer  




Partagez | 
 

 [XP] Mode 7

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: [XP] Mode 7   Dim 28 Sep 2008 - 10:19

auteur: mewsterus

ce script permet d'avoir une interface façon un peu 3D, les screens montre bien ce que ça donne:



Mais ça change selon comment vous modifiez .

les instructions sont dans le code, mais en anglais, Quelqu'un d'aimable les a traduits :

-faire un nouveau script au dessus de main, le nommer comme vous voulez
-pour activer le mode, ajoute [#XX] dans le nom de la map, remplacer les X pour le pourcentage à appliquer.
ex: Overworld[#40] c'est comme le screen
-pour redimensionner les sprites sur la map ajouter [OV] au nom de la map. cela va rendre les sprites plus petits sur la map.
-pour ajouter un ciel, utiliser un panorama

script :

Code:
Citation :
=begin

Mode07 on the Map!
Includes:
Mode07 v0.6
Overworld Sprite Resize
Written by mewsterus

Special Thanks:
Fanha Giang (for a reverse engineered Tilemap class)
--------------------------------------------------------------------------------
Instructions:
--------------------------------------------------------------------------------
To install, just insert this in a descriptive code slot right above Main.
This is different than previous instructions; please read the next paragraph.

If you had a previous install of this script and need an original version of
Spriteset_Map, one can be found at:
http://www.rpg-palace.com/scripts/spriteset_map.txt

To activate Mode07, add [#XX] to the map's name, replacing XX with the
percentage of Mode07 to apply. Greater numbers will result in a more slanted
world.

To activate overworld sprite resize, add [OV] to the map's name. This will make
sprites smaller on that map.

For the purposes of location scripts, these identifiers will not appear.


Examples:

"Overworld[#40]" will result in a slant identical to the second screenshot.
"Underworld[OV]" will resize only the player character to a small size, as if
seen from high above.
"Atthelevelworld[OV][#12]" will result in the player being resized, and a modest
slant of 12%
"JustPlainWorld" will result in the same old map you've always seen.

To add a sky, simply use the panorama with the tileset. Also, events will not
be drawn flat with the map. Any vertical objects such as trees should be put
in events and displayed that way.

You can also add a sky by adding a fog. If you add this, you can make it look
like the first screenshot.

A note on the $strip_size variable; the default value is 8, however there is
extremely minimal, almost nonexistant lag with 16. The screen is extremely
smooth with 4, or even 2. If you're having major problems with lag, you may
need to use 32, but it won't look too pretty.
--------------------------------------------------------------------------------
* Draw_Tilemap v1.72-0.6
Fanha Giang, 02/12/2006 (mm/dd/yyyy)
Edited for Mode07 by mewsterus 08/08/2006 (mm/dd/yyyy)
=end
#===============================================================================
$width = 640 # Screen width (will not change resolution,
$height = 480 # Screen height here for compatibility)
$ov_zoom = 0.6 # Overworld zoom multiplier
$strip_size = 8 # Size of each strip of the map. Higher numbers will lag less.
# Recommended that this number be a power of 2.
# Do not make higher than 64.
$curve = true # Whether the map is curled, for overworlds (old method)
$data_map = load_data("Data/MapInfos.rxdata")
#===============================================================================
class RPG::MapInfo
def name # Definition prevents location scripts from reading anything within
return @name.gsub(/\[.*\]/) {""} # brackets, including the brackets
end
#-----------------------------------------------------------------------------
def original_name
return @name
end
#-----------------------------------------------------------------------------
def overworld?
return @name.scan(/[OV]/).size > 0
end
#-----------------------------------------------------------------------------
def pitch
@name =~ /\[#[ ]*([00-99]+)\]/i
return $1
end
end
#===============================================================================
class Draw_Tilemap # This class controls a set of sprites, with different Z
# values, arranged into horizontal bars
attr_accessor :tileset
attr_accessor :map_data
attr_accessor :priorities
attr_accessor :autotiles
attr_accessor :bitmaps
attr_accessor :pitch
attr_accessor :ox
attr_accessor :oy
attr_accessor :plus_y
INDEX = # Autotile definitions
[
26, 27, 32, 33, 4, 27, 32, 33, 26, 5, 32, 33, 4, 5, 32, 33,
26, 27, 32, 11, 4, 27, 32, 11, 26, 5, 32, 11, 4, 5, 32, 11,
26, 27, 10, 33, 4, 27, 10, 33, 26, 5, 10, 33, 4, 5, 10, 33,
26, 27, 10, 11, 4, 27, 10, 11, 26, 5, 10, 11, 4, 5, 10, 11,
24, 25, 30, 31, 24, 5, 30, 31, 24, 25, 30, 11, 24, 5, 30, 11,
14, 15, 20, 21, 14, 15, 20, 11, 14, 15, 10, 21, 14, 15, 10, 11,
28, 29, 34, 35, 28, 29, 10, 35, 4, 29, 34, 35, 4, 29, 10, 35,
38, 39, 44, 45, 4, 39, 44, 45, 38, 5, 44, 45, 4, 5, 44, 45,
24, 29, 30, 35, 14, 15, 44, 45, 12, 13, 18 ,19, 12, 13, 18, 11,
16, 17, 22, 23, 16, 17, 10, 23, 40, 41, 46, 47, 4, 41, 46, 47,
36, 37, 42, 43, 36, 5, 42, 43, 12, 17, 18, 23, 12, 13, 42, 43,
36, 41, 42, 47, 16, 17, 46, 47, 12, 17, 42, 47, 0, 1, 6, 7
]
X = [0, 1, 0, 1] # Used in 16x16 autotile drawing; left, right, left, right
Y = [0, 0, 1, 1] # Used in 16x16 autotile drawing; up, up, down, down
#-----------------------------------------------------------------------------
def initialize
# Get initial data from Game_Map
@tileset = RPG::Cache.tileset($game_map.tileset_name)
@map_data = $game_map.data
@priorities = $game_map.priorities
@autotiles = []
for i in 0..6
@autotiles[i] = RPG::Cache.autotile($game_map.autotile_names[i])
end
# Provide blank data in proper object form
@ox = 0
@oy = 0
# Bitmaps used for each priority's drawing. Priorities 2-5 are combined.
@bitmaps = [Bitmap.new($game_map.width*32, $game_map.height*32+$strip_size),
Bitmap.new($game_map.width*32, $game_map.height*32+$strip_size),
Bitmap.new($game_map.width*32, $game_map.height*32+$strip_size)]
# Generate blank sprites
@sprites = [[], [], []]
for i in 0..2 # For each layer
for j in 0..$game_map.height * (32 / $strip_size) - 1
# For each horizontal strip of $strip_size height, make a blank sprite
@sprites[i].push(Sprite.new)
@sprites[i][j].bitmap = Bitmap.new($game_map.width*32, $strip_size*2)
@sprites[i][j].x = $width / 2
@sprites[i][j].y = -64
@sprites[i][j].z = -5 + (i * 10)
end
end
@disposed = false
draw
end
#-----------------------------------------------------------------------------
def update
# Retrieve variable values for slant drawing; these values accesible by event
@pitch = $game_map.pitch.to_f
@plus_y = $game_map.plus_y
for i in 0..2 # For each layer
for j in [0, (($height / 2) - (($height * 60) /
@pitch) + @oy) / $strip_size].max.to_i..[@sprites[i].size - 1,
(@oy + $height) / $strip_size].min.to_i
# For each strip within the visible screen, update OX/Y
@sprites[i][j].x = $width / 2
@sprites[i][j].y = j * $strip_size - @oy
unless @pitch == 0 # Apply X Zoom
@sprites[i][j].zoom_x = (@sprites[i][j].y - $height / 2) *
(@pitch / ($height * 25)) + 1
if $curve # Zoom Y values same as X, and compensate
@sprites[i][j].zoom_y = @sprites[i][j].zoom_x
@sprites[i][j].y += $strip_size * (1 - @sprites[i][j].zoom_y) *
((1 - @sprites[i][j].zoom_y) /
(2 * ((@pitch / 100) /
($height / ($strip_size * 2)))) + 0.5)
end
end
@sprites[i][j].ox = @ox + $width / 2
# Add plus_y value; used in airship script
@sprites[i][j].y += @plus_y
end
end
end
#-----------------------------------------------------------------------------
def dispose
# Dispose all sprites
for i in 0..2
for j in @sprites[i]
j.bitmap.dispose
j.dispose
end
end
for i in @bitmaps
i.dispose
end
@tileset.dispose
for i in 0..6
@autotiles[i].dispose
end
@disposed = true
end
#-----------------------------------------------------------------------------
def disposed?
return @disposed
end
#-----------------------------------------------------------------------------
def draw
# Draw each individual position by XY value
for x in 0...@map_data.xsize
for y in 0...@map_data.ysize
draw_position(x, y)
end
end
for i in 0..2 # For each priority
for j in 0..@sprites[i].size - 1
# For each horizontal strip, transfer the bitmap appropriately
@sprites[i][j].bitmap.blt(0, 0, @bitmaps[i],
Rect.new(0, j * $strip_size, $game_map.width * 32, $strip_size * 2))
end
end
end
#-----------------------------------------------------------------------------
def draw_position(x, y)
for layer in 0..2
pos = @map_data[x, y, layer]
@priorities[pos] = 2 if @priorities[pos] > 2 # Round priorities down to 2
if pos >= 384 # If it is a tile
# src_rect = 32x32 Rect on the tileset for source bitmap
src_rect = Rect.new(((pos-384)%Cool*32, ((pos-384)/Cool*32, 32, 32)
# Transfer source bitmap on the tileset to the current map tile
@bitmaps[@priorities[pos]].blt(x * 32, y * 32, @tileset, src_rect)
elsif pos >= 48 and pos < 384 # If it is an autotile
id = pos / 48 - 1 # Which autotile is used (0-6)
# plus_x is in development for animated autotiles
plus_x = 0 #((@anim / 4) % (@autotiles[id].width / 96)) * 96
for corner in 0..3
h = 4 * (pos % 48) + corner # Used to access INDEX
# src_rect = 16x16 Rect on the autotile for source bitmap
src_rect = Rect.new((INDEX[h]%6)*16+plus_x, (INDEX[h]/6)*16, 16, 16)
# Transfer source bitmap on the autotile to the current 16x16 tile
@bitmaps[@priorities[pos]].blt(x*32+X[corner]*16, y*32+Y[corner]*16,
@autotiles[id], src_rect)
end
end
end
end
end
#===============================================================================
class Game_Map
attr_accessor :pitch
attr_accessor :plus_y
#-----------------------------------------------------------------------------
alias setup_or :setup
def setup(map_id)
setup_or(map_id)
@pitch = $data_map[$game_map.map_id].pitch
@plus_y = 0
end
#-----------------------------------------------------------------------------
def name
return $data_map[@map_id].name
end
end
#===============================================================================
class Sprite_Character < RPG::Sprite
attr_accessor :character
#-----------------------------------------------------------------------------
def initialize(character = nil)
super()
@character = character
update
end
#-----------------------------------------------------------------------------
alias update_or :update
def update
update_or
# Update pitch value, and update zoom values to match
@pitch = $data_map[$game_map.map_id].pitch.to_f
self.zoom_x =
self.zoom_y = ((@character.screen_y - 16) - ($height / 2)) *
(@pitch / ($height * 25)) + 1
# Set sprite coordinates. X value is multiplied by zoom value from the center
self.x = ($width / 2) + ((@character.screen_x - ($width / 2)) * self.zoom_x)
self.y = @character.screen_y
# Add Y value for zoom compensation while in curve mode
if $curve and @pitch != 0
self.y += (8 * (1 - self.zoom_y) * ((1 - self.zoom_y) /
(2 * ((@pitch / 100) / ($height / 16.0))) + 0.5))
end
# Add plus_y value; used in airship script
self.y += $game_map.plus_y unless @character.is_a?(Game_Player)
self.z = @character.screen_z(@ch) - (self.zoom_y < 0.5 ? 1000 : 0)
if $data_map[$game_map.map_id].overworld? and
@character.is_a?(Game_Player) # Multiply zoom by Overworld factor if
self.zoom_x *= $ov_zoom # the map is marked with [OV] and event
self.zoom_y *= $ov_zoom # is a Game_Player
end
end
end
#===============================================================================
class Spriteset_Map
def initialize
# Make viewports
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 2000
@viewport3.z = 5000
# Make tilemap
@tilemap = Draw_Tilemap.new
# Make panorama plane
@panorama = Plane.new
@panorama.z = -2000
# Make fog plane
@fog = Plane.new
@fog.z = 3000
# Make character sprites
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new($game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new($game_player))
# Make weather
@weather = RPG::Weather.new(@viewport1)
# Make picture sprites
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport2,
$game_screen.pictures[i]))
end
# Make timer sprite
@timer_sprite = Sprite_Timer.new
# Frame update
update
end
#-----------------------------------------------------------------------------
def dispose
# Dispose of tilemap
@tilemap.dispose
# Dispose of panorama plane
@panorama.dispose
# Dispose of fog plane
@fog.dispose
# Dispose of character sprites
for sprite in @character_sprites
sprite.dispose
end
# Dispose of weather
@weather.dispose
# Dispose of picture sprites
for sprite in @picture_sprites
sprite.dispose
end
# Dispose of timer sprite
@timer_sprite.dispose
# Dispose of viewports
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
end
end

_____________________


Dernière édition par Elekami le Ven 16 Nov 2012 - 23:01, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
axel4
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 684
Date d'inscription : 31/08/2008
Jauge LPC :
32 / 10032 / 100


MessageSujet: Re: [XP] Mode 7   Dim 28 Sep 2008 - 10:50

Mais c'est génial il y a le même pour VX ?

_____________________
Testeur de jeux vidéos, je m'appelle Sora13 pour ceci et vous pouvez voir mes vidéos sur ce site: http://www.jeuxvideo.fr/forum/profil/sora13-10474630/



T'aime pas Kingdom Hearts tu loupe un superbe jeu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerboss.idoo.com
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: Re: [XP] Mode 7   Dim 28 Sep 2008 - 14:21

Au jour d'aujourd'hui, non.
Désolé!

_____________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
axel4
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 684
Date d'inscription : 31/08/2008
Jauge LPC :
32 / 10032 / 100


MessageSujet: Re: [XP] Mode 7   Dim 28 Sep 2008 - 19:37

A mince, mais j'espère que oui^^

_____________________
Testeur de jeux vidéos, je m'appelle Sora13 pour ceci et vous pouvez voir mes vidéos sur ce site: http://www.jeuxvideo.fr/forum/profil/sora13-10474630/



T'aime pas Kingdom Hearts tu loupe un superbe jeu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerboss.idoo.com
TheCloud
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 207
Date d'inscription : 10/10/2008
Jauge LPC :
7 / 1007 / 100




MessageSujet: Re: [XP] Mode 7   Sam 11 Oct 2008 - 12:33

Met toi à xp =P

Elekami c'est pas façon trois dimensions c'est juste un mode07

_____________________
Projet : Akhdesia [RMVXAce]
Nous cherchons un graphiste !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
axel4
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 684
Date d'inscription : 31/08/2008
Jauge LPC :
32 / 10032 / 100


MessageSujet: Re: [XP] Mode 7   Sam 11 Oct 2008 - 19:04

Bin franchement il est cool je dit bravo à celui qui la fait BRAVO!!!!!!

_____________________
Testeur de jeux vidéos, je m'appelle Sora13 pour ceci et vous pouvez voir mes vidéos sur ce site: http://www.jeuxvideo.fr/forum/profil/sora13-10474630/



T'aime pas Kingdom Hearts tu loupe un superbe jeu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerboss.idoo.com
Claire
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 71
Date d'inscription : 19/07/2008
Jauge LPC :
35 / 10035 / 100


MessageSujet: Re: [XP] Mode 7   Sam 11 Oct 2008 - 19:52

Vraiment très sympa, je l'avais déjà vu sur un démo, mais franchement l'effet de profondeur est vraiment bien réussi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
axel4
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 684
Date d'inscription : 31/08/2008
Jauge LPC :
32 / 10032 / 100


MessageSujet: Re: [XP] Mode 7   Sam 11 Oct 2008 - 20:08

Oui le gars doit bien si connaitre en scripts Shocked dommage pour VX aussi

_____________________
Testeur de jeux vidéos, je m'appelle Sora13 pour ceci et vous pouvez voir mes vidéos sur ce site: http://www.jeuxvideo.fr/forum/profil/sora13-10474630/



T'aime pas Kingdom Hearts tu loupe un superbe jeu.


Dernière édition par axel4 le Sam 10 Jan 2009 - 12:49, édité 3 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerboss.idoo.com
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: Re: [XP] Mode 7   Sam 15 Nov 2008 - 10:55

Voici des nouveaux screens, c'est vraiment super comme script:


_____________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
axel4
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 684
Date d'inscription : 31/08/2008
Jauge LPC :
32 / 10032 / 100


MessageSujet: Re: [XP] Mode 7   Sam 10 Jan 2009 - 12:51

Bien ce screen montre tout les avantages de ce script pas vrai ?

Super comme effet 3D je pense que l'on pourra faire mieux plus tard ^^

Bonne année au faite.

_____________________
Testeur de jeux vidéos, je m'appelle Sora13 pour ceci et vous pouvez voir mes vidéos sur ce site: http://www.jeuxvideo.fr/forum/profil/sora13-10474630/



T'aime pas Kingdom Hearts tu loupe un superbe jeu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerboss.idoo.com
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: Re: [XP] Mode 7   Sam 10 Jan 2009 - 19:16

Ce serait bien qu'il y en a sur VX... Il me fait penser à Final Fantasy 7 (sorry j'suis en mode FF7 en ce moment)

_____________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
platina
Paysan (niveau 2)
Paysan (niveau 2)
avatar

Masculin
Messages postés : 12
Date d'inscription : 13/05/2010
Jauge LPC :
0 / 1000 / 100


MessageSujet: Re: [XP] Mode 7   Mer 19 Mai 2010 - 19:18

le seule mod 7 qui existe pour vx c'est celui du airship
(scirpt et pour se a qui sa intéresse je vous enverer le script)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: Re: [XP] Mode 7   Sam 22 Mai 2010 - 8:12

Post le sur le forum Wink

_____________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
Contenu sponsorisé




MessageSujet: Re: [XP] Mode 7   

Revenir en haut Aller en bas
 
[XP] Mode 7
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» La Mode en 1908
» MODE D'EMPLOI POUR UNE DEMANDE DE DÉBARQUEMENT
» Régionales - mode d'emploi
» salon forme, mode et beauté à Dijon
» auto-entrepreneurs: Mode d'emploi

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker XP :: Autres-
Sauter vers: