Sujet n°5115
Posté par Warp' le 28 Sep - 01:59 (2009)
Titre : Script 3D / abandon du script
Bonjour!
J'ai un problème avec un script 3D que jai trouvé sur le fofo.
Voici le script
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 <b style="color:#054C3C">script</b> 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 <b style="color:#054C3C">script</b>  
        @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=mailto:0...@map_data.xsize]0...@map_data.xsize[/url]  
      for y in [url=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 [url=mailto:0..@sprites[i].size]0..@sprites[i].size[/url] - 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 <b style="color:#054C3C">script</b>  
    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  
[b]



[/b]
Et voici le Log
---------- Erreur de script : évènement ----------
----- Type
NameError
----- Message
(eval):1:in `command_355'undefined local variable or method `game_switches' for #<Interpreter:0x736b4b0>
----- Position de l'évènement
MAP 19 EVENT 4
SCRIPT
game_switches[1500] = true

----- Backtrace
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `eval'
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `execute_command'
Script : Interpreter 1 | Ligne : 199 | Méthode : in `update'
Script : Interpreter 1 | Ligne : 113 | Méthode : in `loop'
Script : Interpreter 1 | Ligne : 204 | Méthode : in `update'
Script : Game_Event | Ligne : 221 | Méthode : in `update'
Script : Game_Map | Ligne : 393 | Méthode : in `update'
Script : Game_Map | Ligne : 392 | Méthode : in `each'
Script : Game_Map | Ligne : 392 | Méthode : in `update'
Script : Scene_Map | Ligne : 193 | Méthode : in `transfer_player'
Script : Scene_Map | Ligne : 55 | Méthode : in `alias_update'
Script : Scene_Map | Ligne : 46 | Méthode : in `loop'
Script : Scene_Map | Ligne : 59 | Méthode : in `alias_update'
Script : MAPPANEL | Ligne : 90 | Méthode : in `update'
Script : Scene_Map | Ligne : 25 | Méthode : in `main'
Script : Scene_Map | Ligne : 19 | Méthode : in `loop'
Script : Scene_Map | Ligne : 30 | Méthode : in `main'
Script : Main | Ligne : 57


Merci à l'avance


Posté par Rbzproject le 28 Sep - 05:20 (2009)
Warpas déja ce n'est pas un script de 3D c'est un script qui donne de la perspective mais il écrase tout les tiles(pas tres jolies.)
PS:je l'utilisais avant^^.

Tien déja ajoute le script au dessus de main ey nomme le effet_perspective: 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 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)%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


ensuite je pense que ton soucis vient du script game Player donc remplace le par sa:
Code:
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#  プレイヤーを扱うクラスです。イベントの起動判定や、マップのスクロールなどの
# 機能を持っています。このクラスのインスタンスは $game_player で参照されます。
#==============================================================================

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● 定数
  #--------------------------------------------------------------------------
  CENTER_X = (320 - 16) * 4   # Center X Position
  CENTER_Y = (240 - 16) * 4   # Center Y Position
  #--------------------------------------------------------------------------
  # - passable?(x,y,d)
  #--------------------------------------------------------------------------
  def passable?(x, y, d)
    # 新しい座標を求める
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # 座標がマップ外の場合
    unless $game_map.valid?(new_x, new_y)
      # 通行不可
      return false
    end
    # デバッグモードが ON かつ CTRL キーが押されている場合
    if $DEBUG and Input.press?(Input::CTRL)
      # 通行可
      return true
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 画面中央に来るようにマップの表示位置を設定
  #--------------------------------------------------------------------------
  def center(x, y)
    max_x = ($game_map.width - 20) * 128
    max_y = ($game_map.height - 15) * 128
    $game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max
    $game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max
  end
  #--------------------------------------------------------------------------
  # ● 指定位置に移動
  #     x : X 座標
  #     y : Y 座標
  #--------------------------------------------------------------------------
  def moveto(x, y)
    super
    # センタリング
    center(x, y)
    # エンカウント カウントを作成
    make_encounter_count
  end
  #--------------------------------------------------------------------------
  # ● 歩数増加
  #--------------------------------------------------------------------------
  def increase_steps
    super
    # 移動ルート強制中ではない場合
    unless @move_route_forcing
      # 歩数増加
      $game_party.increase_steps
      # 歩数が偶数の場合
      if $game_party.steps % 2 == 0
        # スリップダメージチェック
        $game_party.check_map_slip_damage
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● エンカウント カウント取得
  #--------------------------------------------------------------------------
  def encounter_count
    return @encounter_count
  end
  #--------------------------------------------------------------------------
  # ● エンカウント カウント作成
  #--------------------------------------------------------------------------
  def make_encounter_count
    # サイコロを 2 個振るイメージ
    if $game_map.map_id != 0
      n = $game_map.encounter_step
      @encounter_count = rand(n) + rand(n) + 1
    end
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    # パーティ人数が 0 人の場合
    if $game_party.actors.size == 0
      # キャラクターのファイル名と色相をクリア
      @character_name = ""
      @character_hue = 0
      # メソッド終了
      return
    end
    # 先頭のアクターを取得
    actor = $game_party.actors[0]
    # キャラクターのファイル名と色相を設定
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    # 不透明度と合成方法を初期化
    @opacity = 255
    @blend_type = 0
  end
  #--------------------------------------------------------------------------
  # ● 同位置のイベント起動判定
  #--------------------------------------------------------------------------
  def check_event_trigger_here(triggers)
    result = false
    # イベント実行中の場合
    if $game_system.map_interpreter.running?
      return result
    end
    # 全イベントのループ
    for event in $game_map.events.values
      # イベントの座標とトリガーが一致した場合
      if event.x == @x and event.y == @y and triggers.include?(event.trigger)
        # ジャンプ中以外で、起動判定が同位置のイベントなら
        if not event.jumping? and event.over_trigger?
          event.start
          result = true
        end
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ● 正面のイベント起動判定
  #--------------------------------------------------------------------------
  def check_event_trigger_there(triggers)
    result = false
    # イベント実行中の場合
    if $game_system.map_interpreter.running?
      return result
    end
    # 正面の座標を計算
    new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
    new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
    # 全イベントのループ
    for event in $game_map.events.values
      # イベントの座標とトリガーが一致した場合
      if event.x == new_x and event.y == new_y and
         triggers.include?(event.trigger)
        # ジャンプ中以外で、起動判定が正面のイベントなら
        if not event.jumping? and not event.over_trigger?
          event.start
          result = true
        end
      end
    end
    # 該当するイベントが見つからなかった場合
    if result == false
      # 正面のタイルがカウンターなら
      if $game_map.counter?(new_x, new_y)
        # 1 タイル奥の座標を計算
        new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
        new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
        # 全イベントのループ
        for event in $game_map.events.values
          # イベントの座標とトリガーが一致した場合
          if event.x == new_x and event.y == new_y and
             triggers.include?(event.trigger)
            # ジャンプ中以外で、起動判定が正面のイベントなら
            if not event.jumping? and not event.over_trigger?
              event.start
              result = true
            end
          end
        end
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ● 接触イベントの起動判定
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    result = false
    # イベント実行中の場合
    if $game_system.map_interpreter.running?
      return result
    end
    # 全イベントのループ
    for event in $game_map.events.values
      # イベントの座標とトリガーが一致した場合
      if event.x == x and event.y == y and [1,2].include?(event.trigger)
        # ジャンプ中以外で、起動判定が正面のイベントなら
        if not event.jumping? and not event.over_trigger?
          event.start
          result = true
        end
      end
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ローカル変数に移動中かどうかを記憶
    last_moving = moving?
    # 移動中、イベント実行中、移動ルート強制中、
    # メッセージウィンドウ表示中のいずれでもない場合
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # 方向ボタンが押されていれば、その方向へプレイヤーを移動
      case Input.dir4
      when 2
        move_down
      when 4
        move_left
      when 6
        move_right
      when 8
        move_up
      end
    end
    # ローカル変数に座標を記憶
    last_real_x = @real_x
    last_real_y = @real_y
    super
    # キャラクターが下に移動し、かつ画面上の位置が中央より下の場合
    if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
      # マップを下にスクロール
      $game_map.scroll_down(@real_y - last_real_y)
    end
    # キャラクターが左に移動し、かつ画面上の位置が中央より左の場合
    if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
      # マップを左にスクロール
      $game_map.scroll_left(last_real_x - @real_x)
    end
    # キャラクターが右に移動し、かつ画面上の位置が中央より右の場合
    if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
      # マップを右にスクロール
      $game_map.scroll_right(@real_x - last_real_x)
    end
    # キャラクターが上に移動し、かつ画面上の位置が中央より上の場合
    if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
      # マップを上にスクロール
      $game_map.scroll_up(last_real_y - @real_y)
    end
    # 移動中ではない場合
    unless moving?
      # 前回プレイヤーが移動中だった場合
      if last_moving
        # 同位置のイベントとの接触によるイベント起動判定
        result = check_event_trigger_here([1,2])
        # 起動したイベントがない場合
        if result == false
          # デバッグモードが ON かつ CTRL キーが押されている場合を除き
          unless $DEBUG and Input.press?(Input::CTRL)
            # エンカウント カウントダウン
            if @encounter_count > 0
              @encounter_count -= 1
            end
          end
        end
      end
      # C ボタンが押された場合
      if Input.trigger?(Input::C)
        # 同位置および正面のイベント起動判定
        check_event_trigger_here([0])
        check_event_trigger_there([0,1,2])
      end
      #===================================
      # Jump!
      #===================================
      unless $game_system.map_interpreter.running?
        #jump down
        if Input.press?(Input::DOWN) and direction == 2
          if passable?(@x, @y, 8) and $game_map.terrain_tag($game_player.x, $game_player.y+1)  == 2
            jump(0,2)
          end
        end
        #jump left
        if Input.press?(Input::LEFT) and direction == 4
          if passable?(@x, @y, 6) and $game_map.terrain_tag($game_player.x-1, $game_player.y)  == 4
            jump(-2,0)
          end
        end
        #jump up
        if Input.press?(Input::RIGHT) and direction == 6
          if passable?(@x, @y, 4) and $game_map.terrain_tag($game_player.x+1, $game_player.y)  == 3
            jump(2,0)
          end
        end
      end
      # End jump
    end
  end
end


Et voila tu me dira si tu as des problemes.

Posté par Warp' le 28 Sep - 10:37 (2009)
Ca me dit   qu'il y a une erreur de syntaxe à la ligne 200
voici le log
---------- Erreur de script : évènement ----------
----- Type
NameError
----- Message
(eval):1:in `command_355'undefined local variable or method `game_switches' for #<Interpreter:0x736b4b0>
----- Position de l'évènement
MAP 19 EVENT 4
SCRIPT
game_switches[1500] = true

----- Backtrace
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `eval'
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `execute_command'
Script : Interpreter 1 | Ligne : 199 | Méthode : in `update'
Script : Interpreter 1 | Ligne : 113 | Méthode : in `loop'
Script : Interpreter 1 | Ligne : 204 | Méthode : in `update'
Script : Game_Event | Ligne : 221 | Méthode : in `update'
Script : Game_Map | Ligne : 393 | Méthode : in `update'
Script : Game_Map | Ligne : 392 | Méthode : in `each'
Script : Game_Map | Ligne : 392 | Méthode : in `update'
Script : Scene_Map | Ligne : 193 | Méthode : in `transfer_player'
Script : Scene_Map | Ligne : 55 | Méthode : in `alias_update'
Script : Scene_Map | Ligne : 46 | Méthode : in `loop'
Script : Scene_Map | Ligne : 59 | Méthode : in `alias_update'
Script : MAPPANEL | Ligne : 90 | Méthode : in `update'
Script : Scene_Map | Ligne : 25 | Méthode : in `main'
Script : Scene_Map | Ligne : 19 | Méthode : in `loop'
Script : Scene_Map | Ligne : 30 | Méthode : in `main'
Script : Main | Ligne : 57

Posté par Pαlвσlѕку le 28 Sep - 10:51 (2009)
Ton bug vient d'un événement ^^ (MAP 19 EVENT 4)

Il faut mettre :

Code:
$game_switches[1500] = true

A la place de ton morceau qui bug.

Posté par Sasugeo le 28 Sep - 18:41 (2009)
warpras a écrit:
Ca me dit   qu'il y a une erreur de syntaxe à la ligne 200 voici le log
---------- Erreur de script : évènement ----------
----- Type
NameError
----- Message
(eval):1:in `command_355'undefined local variable or method `game_switches' for #<Interpreter:0x736b4b0>
----- Position de l'évènement
MAP 19 EVENT 4
SCRIPT
game_switches[1500] = true

----- Backtrace
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `eval'
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `execute_command'
Script : Interpreter 1 | Ligne : 199 | Méthode : in `update'
Script : Interpreter 1 | Ligne : 113 | Méthode : in `loop'
Script : Interpreter 1 | Ligne : 204 | Méthode : in `update'
Script : Game_Event | Ligne : 221 | Méthode : in `update'
Script : Game_Map | Ligne : 393 | Méthode : in `update'
Script : Game_Map | Ligne : 392 | Méthode : in `each'
Script : Game_Map | Ligne : 392 | Méthode : in `update'
Script : Scene_Map | Ligne : 193 | Méthode : in `transfer_player'
Script : Scene_Map | Ligne : 55 | Méthode : in `alias_update'
Script : Scene_Map | Ligne : 46 | Méthode : in `loop'
Script : Scene_Map | Ligne : 59 | Méthode : in `alias_update'
Script : MAPPANEL | Ligne : 90 | Méthode : in `update'
Script : Scene_Map | Ligne : 25 | Méthode : in `main'
Script : Scene_Map | Ligne : 19 | Méthode : in `loop'
Script : Scene_Map | Ligne : 30 | Méthode : in `main'
Script : Main | Ligne : 57




j'ai le meme probleme mais je n'ai pas compris palbosky

Posté par Pαlвσlѕку le 28 Sep - 19:04 (2009)
Le log m'informe sur ceci :

Code:
----- Position de l'évènement
MAP 19 EVENT 4
SCRIPT
game_switches[1500] = true

Ca veut dire que l'erreur se trouve dans la map 19 dans l'event 4, dans un insérer de script.

Posté par Warp' le 29 Sep - 10:55 (2009)
Mais je n'ai pas d'event 4 sur ma map 19. Il y en avait un mais il n'y en a plus maintenant

Posté par Lén le 29 Sep - 12:50 (2009)
LOL !
alors prépare toi, voici la solution: Supprime ta map et recommence la !
Attend confirmation, mais je crois que c'est la seule solution.

Posté par Warp' le 29 Sep - 19:58 (2009)
Le bug du script, ce seulement une erreur de syntaxe qui varie entre la ligne 198 et 200 dépendemment.
J'ai découvert que lerreur de levent est un log précédent

Posté par Sasugeo le 3 Oct - 23:36 (2009)
a moi c'est sa qui bug

Posté par Lén le 4 Oct - 00:06 (2009)
normal que ça bug ... ta une fonction HTML dans un script ruby ...
remplace ta ligne surlignée par ça:

 
Citation:
 for y in 0...@map_data.ysize


Posté par Invité le 10 Oct - 11:54 (2009)
oui ca marche pas mal mais il y a des bugs d'évents et de superposition.
quelqu'un saurait corriger ca?

Posté par Warp' le 10 Oct - 12:01 (2009)
tu peux faire un screen?

Posté par Invité le 10 Oct - 13:04 (2009)
Voila:

Posté par Warp' le 10 Oct - 13:33 (2009)
je vois leproblème mais je ne serai pas capable d'arranger cela d'autant plus que j'ai abandonné ce script

Posté par Lén le 10 Oct - 16:54 (2009)
y'a pas de bug la c'est normal ... il faut lire le turorial (cherche sur google).
Quand tu lance le jeu toute ta map est transformée en une image... normal que tu marche sur les arbres !

Vas lire les tuto du script Neo Mode 7

Posté par Invité le 11 Oct - 08:41 (2009)
Domage le lien est expiré j'aurai bien aimé en savoir + mais sinon vous ne connaitrez pas d'autres script qui donne un petit effet 3D sypat comme dans le projet rubis abime et aqua marine?
Merci

Posté par Pαlвσlѕку le 11 Oct - 10:57 (2009)
Dans Pokémon RA/SM, c'est le Neo Mode 7 qui fait la 3D. Je ne donnerai pas plus de détails.

Posté par Lén le 11 Oct - 11:12 (2009)
C'est une blague ?
2s de recherche avec google, et voila un lien sur comment il marche:
http://rpgcreative.net/forum/viewtopic.php?f=72&t=14832&sid=a2e073a…

Posté par Invité le 12 Oct - 11:27 (2009)
Oui j'ai déjà telecharger la démo mais aucun moyen d'accéder au script.
Et puis de toute facon je crois qu'il est incompatible avec psp.
Mais le projet RA/SM m'interesse beaucoup.
J'aimerais beaucoup faire marcher le mod néo 7 sur PSP.
Je vais quand meme essayer de poster ça dans la section demande mais je ne sais pas si j'aurais un réponse très concluante...

Posté par Lén le 12 Oct - 17:16 (2009)
Aucun moyen d'accéder au script ? comment ça  :shock:

Et, by the way, ce script marche très bien avec psp, j'en ai fait les tests, et plusieurs personnes arrivent a l'utiliser a ma connaissance ...

Posté par Invité le 12 Oct - 17:59 (2009)
peut-tu me dire comment tu fais, ce serais sympat. c'est pas une blague j'ai essayer par tt les moyens mais je n'y arrive pas

Posté par Sphinx le 12 Oct - 18:16 (2009)
J'avoue avoir moi même vainement tenté.

J'ai pu, sans problèmes, ouvrir l'éditeur (suffit d'ouvrir le fichier Game.rxprog ac le bloc note, notepad ou autre, puis de remplacer le "RPGXP 1.02" en "RPGXP 1.01") mais par contre je n'ai pas réussi à démarrer le jeu... ^o^"

Pour être plus précis, j'ai remplacé la librairie RGSS102E (que je n'ai pas :() par la RGSS100J (que j'ai ! 42) mais les écritures ne s'affichaient plus dans l'écran titre xP


edit :

En fait, en effet il suffisait juste de reprendre la RGSS102E.dll ^o^"
=> La dll en question <=

>> donc voici les étapes :

Posté par Invité le 12 Oct - 19:45 (2009)
mercig enfin pu accédé au scripts Imbécile heureux .
Mais une fois le jeu lancé, il me dit erreur dans le script néo mod 7 part3 ? 107 ??? méthode error etc...

Posté par Lén le 12 Oct - 23:05 (2009)
Super ! Et les screens ? les rapports d'erreurs ? Viens pas les mains vide si tu veux de l'aide !

Posté par Pαlвσlѕку le 13 Oct - 20:12 (2009)
Sphinx, il y a beaucoup plus simple.

Il suffit de remplacer le fichier Game.rxproj de la démo du NM7 par ce même fichier mais venant de PSP ^^.

Posté par Sasugeo le 14 Oct - 16:31 (2009)

moi sa me met sa

Posté par antoinedu92 le 14 Oct - 19:22 (2009)
et à part ça personne n'a de problemes...
C'est bizard, j'ai suivi tt les tutos et j'ai plein de bugs:




Posté par KnightLink le 14 Oct - 19:31 (2009)
La 4ème dimension version pokémon =o

Posté par antoinedu92 le 14 Oct - 19:55 (2009)
oué c'est un peu ça :^^:  mé bon c'est pas vraiment volontaire je sais pas comment corriger ça.

Posté par Pαlвσlѕку le 14 Oct - 20:40 (2009)
Je suis sûr qu'en cherchant davantage, tu trouveras la solution.

La solution existe bien puisque Razbuz l'a trouvée. Avec de l'entraînement est beaucoup de patience, je suis sûr que tu arriveras à obtenir ce résultat un jour ou l'autre :

Screen


Non libre d'utilisation, merci.

Bonne chance !

PS : Pas la peine d'envoyer un MP à moi-même ou à Razbuz car on ne te donnera pas la solution.

Posté par antoinedu92 le 15 Oct - 07:28 (2009)
Oh :shock:  ça donne trop envie. j'ai déjà ennormément cherché mais je ne voit pas ou je pourrait touver autre chose.
J'ai déjà cherché partout.

Posté par Rbzproject le 15 Oct - 17:45 (2009)
J'ais encore mieux Palb 8) .(mode se la pète,activer)

Screen


Bref bonne chance a toi,antoinedu92. :D
(mode se la pète,désactiver)

Posté par antoinedu92 le 15 Oct - 17:54 (2009)
Ha c'est pas possible,comment faites vous pour avoir de tel resultat alors que moi je galère...
Je ne m'y connait pas du tout en script, la seul chose que je sais faire c'est les évents, les maps et suivre les tutos...
Vous êtes sur que vous ne voulez pas me dire comment faire car je galère vraiment la...
Merci.

Posté par Rbzproject le 15 Oct - 18:03 (2009)
euh...
Spoiler
NON ! ! Coupable Dsl mais je te dirais rien du tout j'ais chercher jais trouver et ont a perfectionner le script avec palb,
donc tu va devoir te débrouiller,voila tout.^^

Posté par antoinedu92 le 15 Oct - 18:06 (2009)
Daccord mais là le script ne marche pas du tout chez moi malgré les tutos ( regardez les screens shots que j'ai faits).
Dites moi au moins comment le faire fonctionner correctement.
Merci

Posté par Pαlвσlѕку le 15 Oct - 20:54 (2009)
Rabzuz a écrit:
J'ais encore mieux Palb 8) .(mode se la pète,activer)

{{{Screen}}}

Bref bonne chance a toi,antoinedu92. :D
(mode se la pète,désactiver)

Sans les arbres, on voit moins l'effet de perspective. Imbécile heureux

antoinedu92 a écrit:
Daccord mais là le script ne marche pas du tout chez moi malgré les tutos ( regardez les screens shots que j'ai faits).
Dites moi au moins comment le faire fonctionner correctement.
Merci

Si la réponse se trouverait sur le forum, je pense que ça se serait ^^.

Tu vois Razbuz, ça ce remarque mieux ici la 3D :

Screen



Ce n'est que en cherchant que tu trouveras. Même si tu as déjà chercher, cherche encore. Clin d'œil foireux

Posté par Rbzproject le 15 Oct - 21:26 (2009)
C'est vraie que la 3D se remarque mieux.^^ et c'est pour sa que j'ais rajouter des
arbres sur ma map.=P

Screen


(Quand on regarde bien on dirait presque COAA :D )

Posté par Sphinx le 16 Oct - 07:20 (2009)
...

Que vous ne vouliez pas partager, c'est une chose, mais arrêtez de flooder...

Posté par Invité le 16 Oct - 11:23 (2009)
Mais N'est ce pas possible, la réponse de la NE SE Trouve Pas dans le forum, je n'arrête pas de chercher.

Posté par Lén le 16 Oct - 15:13 (2009)
tu veux la réponse: tu a mal mappé.

Ca me faisait pareil au début, mais c'est parce que je faisait des erreurs de couches.

Posté par Pαlвσlѕку le 16 Oct - 17:52 (2009)
Je vais te mettre sur la voie. (Razbuz risque de me tuer, bref.)

Le problème n'est pas le script mais la façon dont on mappe. Pour éviter les bugs d'affichages, il y a un principe de mapping à comprendre. Les règles de mapping de base ne peuvent pas vraiment être appliquer donc il faut trouver une autre méthode pour que ça fonctionne correctement. Razbuz a réussi à la trouver maintenant, c'est à ton tour.

Je sais très bien que la réponse n'est pas sur le forum (et je pense qu'elle n'est pas non plus sur le net). Quand je dis "recherche", je sous entend que tu dois faire des tests sur RMXP pour regarder ce qui fonctionne et ce qui ne fonctionne pas. C'est en faisant des erreurs qu'on apprend.

PS : Sur les screens que tu as pu voir, la taille des screens est de 256*192 pixels, comme l'écran de la DS. Ceci est rendu possible grâce au 1*1 pixel et à un script de changement de taille de la fenêtre de jeu.

Posté par antoinedu92 le 16 Oct - 18:34 (2009)
Merci beaucoup pour votre aide, pour l'instant ça marche Imbécile heureux .
Le seul autre point, c'est que la caméra est très éloigné du joueur.
Je pense , mais je ne suis pas sur qu'il faudrait modifier ds le script 2 ligne 185 par 100 au lieu de 50.
Si oui puis-je le faire sans danger?
Merci

Posté par Pαlвσlѕку le 16 Oct - 20:12 (2009)
Oui tu peux le faire sans danger. Si ça ne fonctionne pas, remet comme c'était avant. Imbécile heureux

Posté par Invité le 16 Oct - 20:29 (2009)
oh non ca recommence à bugger.
Quand je mappe, je met les arbres en 3eme couche, il y en certain qui ne buggent pas et d'autre qui apparaissent beaucoup plus gros et qui donnent un effet d'être en l'air :shock: . étrange.

Posté par Lén le 16 Oct - 20:57 (2009)
Le secret c'est de mapper un seul arbre a la fois, pas d'arbres collés. merci de cloturer le topic  Bouche extensiblek:

Posté par antoinedu92 le 16 Oct - 21:13 (2009)
ça ne marche tjs pas mais je ne vois pas ce que ça pourrait changer de mapper les arbres les uns après les autres.
il y a tjs autant de bugs et le tag de l'eau ne marche pas .
Domage...

Posté par Pαlвσlѕку le 17 Oct - 10:05 (2009)
Les bugs >> Le mapping est la réponse au problème.

Tag de l'eau >> Il suffit de rajouter quelques lignes dans l'un des scripts du NM7, sachant que ces lignes se trouvent dans un script de PSP.

Je pense que ce topic est hors-sujet et comme l'a dit Lén, il devrait être locker.

Posté par antoinedu92 le 17 Oct - 13:41 (2009)
pk vous ne voulez pas me donner la réponse une bonne fois pr toute, je n'arrete pas de reconfigurer mon tile, changer les couches etc...
rien a faire les arbres ont tjs des bugs quoi que je fase.

Posté par Rbzproject le 17 Oct - 14:27 (2009)
Cest pas qu'on veut pas te donner la réponse.
Moi je n'ais pas eu ce probleme et meme quand ont a un probleme il,faut le résoudre sois meme
des fois. :?
Voila je ne peux pas t'aider la! !

Posté par antoinedu92 le 17 Oct - 14:47 (2009)
Attendez, je pense avoir trouvé, moi j'ai mis une rangé d'arbre en 2eme couche et plus bas une autre rangé en 3eme couche et ainsi de suite en alternant 2eme et 3eme couche.
Par contre pour les rochers ou l'eau c'est plus compliqué.
Et pour le tag de l'eau...... no commentaire.