RM-Land : le forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



Bienvenue sur RM-Land : Le forum !
Après votre inscription, vous aurez accès à tout le forum : Partage de ressources, de scripts, résolution de vos problèmes, présentations de projets et montage de teams.
 
AccueilLe sitePortailDernières imagesRechercherS'enregistrerConnexion
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 map en 3d profendeur

Aller en bas 
3 participants
AuteurMessage
Invité
Invité




map en 3d profendeur Empty
MessageSujet: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 10:33

de rpgcreative
auteur: mewsterus
ce script permet d'avoir une interface façon un peu 3D, les screens montre bien quoi ça donne:
map en 3d profendeur Airshipnd4

un autre:
map en 3d profendeur Grasslandvp3

-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 2e 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

voila le code:
Code:
=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 [url=http://rmxp.forumgratuit.org/mailto:0...@map_data.xsize]0...@map_data.xsize[/url]
      for y in [url=http://rmxp.forumgratuit.org/mailto:0...@map_data.ysize]0...@map_data.ysize[/url]
        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)%8)*32, ((pos-384)/8)*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
Revenir en haut Aller en bas
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 14:09

map en 3d profendeur 718600 il est super se script merci du partage^^
Revenir en haut Aller en bas
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 14:11

ben je l'ai trouve sur rpgcrative avec un peu de recherche on arrive a tous map en 3d profendeur 770429
Revenir en haut Aller en bas
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 14:12

Oui c'est sur! RPGCREATIVE c'est un super forum^^
Revenir en haut Aller en bas
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 14:14

arrete ou sam va se facher map en 3d profendeur 265752
Revenir en haut Aller en bas
Shikamaru
Designer
Designer
Shikamaru


Nombre de messages : 1560
Age : 31
Localisation : Tunisie > Mon ordinateur > RM LAND
Date d'inscription : 31/12/2007

map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 15:08

Merci pour le Script je le connais mais je préfére laisser mes maps 2D lol

Euh c'est vrai que Creative est super mais n'oublions pas RM Land le meilleur Forum selon moi et Dinonico sans doute ( on est tout les deux des membres d'or aprés 4 post :p )
Revenir en haut Aller en bas
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 16:27

tu devrais modifier le message au-dessus shikamaru (tu es DEJA membre d'or)map en 3d profendeur 136403
Revenir en haut Aller en bas
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeMar 27 Mai - 22:27

Encore plus de réaliste! Bien, bon, exelent, parfait!

Merci du partage de ce scripts
Revenir en haut Aller en bas
Aslan7
Bon membre
Bon membre
Aslan7


Nombre de messages : 58
Age : 31
Date d'inscription : 28/06/2007

map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeLun 1 Sep - 17:05

J'ai un problème de "sintax error" à la ligne 199 :

198 :# Draw each individual position by XY value
199 : for x in (url=https://rmxp.forumgratuit.org/mailto:0...@map_data.xsize]0...@map_data.xsize(/url)
200 : for y in (url=https://rmxp.forumgratuit.org/mailto:0...@map_data.ysize]0...@map_data.ysize(/url)

(J'ai mis des parenthèses à la place des crochets sur (url) sinon c'était considéré comme des balises )


Avez vous une solution ?
Revenir en haut Aller en bas
http://www.mongolfus.jimdo.com
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeLun 1 Sep - 17:13

Je n'aime pas ce script,il plie tout,comme si vous pliez une feuille de papier:
Les decors plieront aussi.
C'est pas beau et en plus,ca créé des bords noirs sur le côté certaines fois,lorqu'on eleve trop.

Et ce n'est pas de la 3D,mais une illusion de 3d map en 3d profendeur 346378
Revenir en haut Aller en bas
Shikamaru
Designer
Designer
Shikamaru


Nombre de messages : 1560
Age : 31
Localisation : Tunisie > Mon ordinateur > RM LAND
Date d'inscription : 31/12/2007

map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeLun 1 Sep - 17:45

Conseil :

Evite ce script , il ne permet pas à un projet de réussir map en 3d profendeur 346378

plein de bug et d'erreurs , enfin Mon grand conseil est de laisser la vue tel qu'elle est map en 3d profendeur 346378 un Vrai RPG map en 3d profendeur 346378
Revenir en haut Aller en bas
Usaginou
Administrateur
Administrateur
Usaginou


Nombre de messages : 599
Age : 34
Localisation : Dans les vosges
Date d'inscription : 15/08/2008

map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeLun 1 Sep - 18:51

Ce script peut être utile mais il ne faut pas en abusé c'est tout.
Pour une cinématique, cela peut rendre du meillaur effet ^^

Pour ton problème je viens de regarder rapidement mais pas trouver solution, moi ca marche :(
Revenir en haut Aller en bas
http://www.hentai-paradise.fr
Invité
Invité




map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeLun 1 Sep - 19:16

voila la solution pour ton probleme Aslan7:
remplace
Code:
for x in (url=http://rmxp.forumgratuit.org/mailto:0...@map_data.xsize]0...@map_data.xsize(/url)
par
Code:
  for x in 0...@map_data.xsize
et
Code:
for y in (url=http://rmxp.forumgratuit.org/mailto:0...@map_data.ysize]0...@map_data.ysize(/url)
par
Code:
  for y in 0...@map_data.ysize
et ce script s'appele Mode07
pour l'utiliser ajoute au nom du map [#XX] et remplace XX par le pourcentage que tu veut par exemple MAP001[#50]
Revenir en haut Aller en bas
Shikamaru
Designer
Designer
Shikamaru


Nombre de messages : 1560
Age : 31
Localisation : Tunisie > Mon ordinateur > RM LAND
Date d'inscription : 31/12/2007

map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitimeLun 1 Sep - 19:36

C'est une faute de Copier/coller de la part de Fisher :@

Non vraiment , je déconseille encore , mais tu peux toujours l'utiliser map en 3d profendeur 346378

Bonne continuation
Revenir en haut Aller en bas
Contenu sponsorisé





map en 3d profendeur Empty
MessageSujet: Re: map en 3d profendeur   map en 3d profendeur Icon_minitime

Revenir en haut Aller en bas
 
map en 3d profendeur
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RM-Land : le forum :: Quartier des makers :: Bibliothèque-
Sauter vers: