Partagez
Aller en bas
avatar
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 27
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Sam 12 Sep 2009 - 18:44
Voici un script pour avoir plus de couches pour mapper comme dans RPG maker XP

L'auteur est S. F. LaValle

Images
Spoiler:

Le code
Spoiler:
Code:
class Scene_Map < Scene_Base

  alias start_2 start

  alias update_2 update

  attr_reader :map_layer_spritesets

  #--------------------------------------------------------------------------

  # * Start processing

  #--------------------------------------------------------------------------

  def start

    start_2

    setup_map_layers

  end

 

  def update_transfer_player

    return unless $game_player.transfer?

    fade = (Graphics.brightness > 0)

    fadeout(30) if fade

    @spriteset.dispose              # Dispose of sprite set

    for i in 0...@map_layer_spritesets.size

      @map_layer_spritesets[i].dispose

    end

    $game_player.perform_transfer  # Execute player transfer

    $game_map.autoplay              # Automatically switch BGM and BGS

    $game_map.update

    Graphics.wait(15)

    @spriteset = Spriteset_Map.new  # Recreate sprite set

    setup_map_layers

    fadein(30) if fade

    Input.update

  end

   

  def setup_map_layers

    maps = load_data("Data/MapInfos.rvdata")

    game_map_name = maps[$game_map.map_id].name

    @map_layers = []

    @map_layer_spritesets = []

    map_names = []

    layer_map_names = []

    layer_index = []

    c = maps.keys

    d = c.max

    for i in 1..d

      unless maps[i] == nil

        a = nil

        map_names.push(maps[i].name)

        a = maps[i].name =~ /(l|L)\d+/

        layer_map_names.push(maps[i].name) if a != nil

        layer_index.push(maps.index(maps[i])) if a != nil

      end

    end

    for string in layer_map_names

      string.chop! until string == game_map_name or string == ""# nil

    end

    if layer_map_names.include?(game_map_name)

      for i in 0...layer_map_names.size

        if layer_map_names[i] != ""

          map = Game_Map.new

          map.setup(layer_index[i])

          @map_layer_spritesets.push(Spriteset_Map_2.new(map))

          @map_layers.push(map)

        end

      end

    end

  end

 

  def update

    update_2

    for i in 0...@map_layer_spritesets.size

      @map_layers[i].update

      @map_layer_spritesets[i].update

    end

  end 

end

class Spriteset_Map_2 < Spriteset_Map

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize(layer)

    @layer = layer

    create_viewports

    create_tilemap

    update

  end



  def update

    update_tilemap

    update_viewports

  end



  def dispose

    @tilemap.dispose

  end

 

  #--------------------------------------------------------------------------

  # * Create Tilemap

  #--------------------------------------------------------------------------

  def create_tilemap(a1 = nil, a2 = nil, a3 = nil, a4 = nil, a5 = nil, b = nil, c = nil, d = nil, e = nil)

    @tilemap = Tilemap.new(@viewport1)

    @tilemap.bitmaps[0] = (a1 == nil ? Cache.system("TileA1") : a1)

    @tilemap.bitmaps[1] = (a2 == nil ? Cache.system("TileA2") : a2)

    @tilemap.bitmaps[2] = (a3 == nil ? Cache.system("TileA3") : a3)

    @tilemap.bitmaps[3] = (a4 == nil ? Cache.system("TileA4") : a4)

    @tilemap.bitmaps[4] = (a5 == nil ? Cache.system("TileA5") : a5)

    @tilemap.bitmaps[5] = (b == nil ? Cache.system("TileB") : b)

    @tilemap.bitmaps[6] = (c == nil ? Cache.system("TileC") : c)

    @tilemap.bitmaps[7] = (d == nil ? Cache.system("TileD") : d)

    @tilemap.bitmaps[8] = (e == nil ? Cache.system("TileE") : e)

    @tilemap.map_data = @layer.data

    @tilemap.passages = @layer.passages

  end

  #--------------------------------------------------------------------------

  # * Update Tilemap

  #--------------------------------------------------------------------------

#  def update_tilemap

#    @tilemap.ox = @layer.display_x / 8

#    @tilemap.oy = @layer.display_y / 8

#    @tilemap.update

#  end

  #--------------------------------------------------------------------------

  # * Update Viewport

  #--------------------------------------------------------------------------

  def update_viewports

    @viewport1.tone = @layer.screen.tone

    @viewport1.ox = @layer.screen.shake

    @viewport2.color = @layer.screen.flash_color

    @viewport3.color.set(0, 0, 0, 255 - @layer.screen.brightness)

    @viewport1.update

    @viewport2.update

    @viewport3.update

  end

end

Utilisation : Faites une sous map ayant le même nom que la map mère mais en rajoutant L1. Si vous voulez faire plusieurs sous couches, faites la même opération mais rajoutez L2, L3 ...etc. Voir les images ci-dessous pour plus de compréhension.


Dernière édition par adurna le Sam 12 Sep 2009 - 19:47, édité 1 fois
avatar
Røck!n Øut
Membre

Nombre de messages : 77
Age : 24
Localisation : France => PACA (Provence) => Bouches-du-Rhone
Distinction : aucune
Date d'inscription : 16/12/2008
http://roslash.webs.com/

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Sam 12 Sep 2009 - 18:54
Il est mal vue de mettre simplement un lien vers une page alors que mettre le script ne mange vraiment pas de pain.

Mais bon ça part d'une bonne intention ^^", en tout cas le script m'a l'air sympa et sera sûrement utile à plus d'un ^^".
avatar
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 27
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Sam 12 Sep 2009 - 19:11
oui je n'est pas mi directement le script sur le fofo mais il y a une bonne raison je ne suis pas sur de savoir si l'auteur de se script accepte qu'il soit publier sur un autre forum donc je contourne le problème en ne donnent qu'un lieu!!!
avatar
Darky Face
Membre

Nombre de messages : 741
Age : 22
Localisation : Dans un tigre.
Distinction : Champion mondial paralympique au 100 m. roulettes
Grosse CMB (Grosse Contusion des Membres, Ballot)
Adepte de Chatroulette.
Adjuvant-chef du club masochiste de la commu'.
Date d'inscription : 22/07/2008

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Sam 12 Sep 2009 - 19:25
Ouf... Je suis pas modo, mais pourrais-tu soigner ton orthographe? C'en est presque illisible...
Et puis le lien ne marche pas chez moi...
De plus,tu n'es pas nécessairement dans l'obligation de mettre le code, mais mettre une petite description de ce
scipt
ne serait pas de refus, car je ne comprends pas l'utilité, il y a déjà deux couches pour créer les maps sur RPG Maker VX.

Finalement, je ne sais pas si cela compte pour de la pub, et y a-t-il vraiment une différence entre mettre un lien ou mettre le code, en ce qui concerne l'accord de l'auteur?
avatar
Djidane
Membre

Nombre de messages : 1444
Age : 25
Localisation : Paris
Distinction : Héritier d'Alexdream (mais on l'aime quand même).
Lèche cul professionnel
et il aime ça!!!
Date d'inscription : 30/12/2008

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Sam 12 Sep 2009 - 19:29
Et bien Dark' sache que le lien marche car je vien de l'utiliser ...

Bah va s'y décris le script Adurna car personne ne comprendra je pense Very Happy
avatar
Darky Face
Membre

Nombre de messages : 741
Age : 22
Localisation : Dans un tigre.
Distinction : Champion mondial paralympique au 100 m. roulettes
Grosse CMB (Grosse Contusion des Membres, Ballot)
Adepte de Chatroulette.
Adjuvant-chef du club masochiste de la commu'.
Date d'inscription : 22/07/2008

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Sam 12 Sep 2009 - 19:32
Bon, le lien marche chez moi.
Bah, c'est assez utile dans certains cas (quand il y a beaucoup d'éléments à superposer), mais ça ne fait que remplacer la méthode "Mettre des events pour faire 3 couches".
Merci du partage.
avatar
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 27
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Sam 12 Sep 2009 - 19:48
et voila s'est éditer
avatar
Invité
Invité

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Mar 5 Oct 2010 - 18:29
Code:
Eh hop... Moshine qui remonte des vieux sujet ...  :dehors: 

Très pratique pour les rideaux ou les tables !
avatar
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 27
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Mar 5 Oct 2010 - 21:24
bon ce coup si ça peut pas passer tu viens de faire 2 nécropost de suite et celui là et d'un ans (la tu as de quoi rentré dans le livre de pire nécro...)
donc bon désoler mais ce sera un ptit averto...
avatar
Gore33
Membre

Nombre de messages : 189
Age : 19
Localisation : Dans un monde virtuel
Distinction : aucune
Date d'inscription : 27/10/2009

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

le Mar 5 Oct 2010 - 21:39
Eh bien, en faite !^^
Il est cool ton script, mais il bug...^^



Sa serais cool de le réglé, parce que se script est MORTEEEEEL !^^
Contenu sponsorisé

Re: script pour pouvoir avoir une imfiniter de couche pour mapper!!!

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum