Partagez
Aller en bas
MrPsit
Membre

Nombre de messages : 29
Date d'inscription : 26/02/2014

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 5 Mar 2014 - 18:29
Juste par curiosité, histoire de mieux comprendre ce que j'utilise (et puis j'essaye de me former aux scripts depuis peu), qu'est-ce qui provoquait une erreur ?

Merci beaucoup en tout cas pour cette réponse rapide !
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Ven 7 Mar 2014 - 13:02
Et bien j'ai fait en sorte que lorsque l'on ouvre le menu l'image de l'étage s'ajoute a l'image faite de la carte en fond et j'avais fait un cas particulier que si on ce trouve a un emplacement sur la carte ou l'image de l'étage et vide cela ne ce fasse pas mais j'avais oublier de faire ce cas particulier pour ce qui est de supprimer l'image fait de la carte quand on quitte le menu. Il essayer donc de supprimer une image qui n'exister pas ^^ (d’où le nil)
MrPsit
MrPsit
Membre

Nombre de messages : 29
Age : 23
Localisation : Auvergne
Distinction : aucune
Date d'inscription : 26/02/2014

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Ven 7 Mar 2014 - 13:40
D'accord ! Je comprends le principe.
Merci pour cette réponse !
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mar 24 Juin 2014 - 1:36
Salut petit up pour une annonce de mise a jour pour bientôt avec changement de système de création d'étage :
- Correction de certain bug lors de la modification du ton de l'écran par exemple
- Réduction de la latence
- Script remanier

Et je tente d'ajouter certain truc au niveaux de l'overlay mapping de yami

Edit :
Voici donc la bête :
La partit overlay n'est pas encore prête par contre
Il y a de plus une nouvelle configuration en début de script a changer Smile
Code:

################################################################################
#                   ETAGE BY VINCENT_26                                        #
################################################################################
=begin
Crédit : Vincent_26 (vous n’êtes pas obliger ^^)
Ce script permet de créer des étages facilement
Pour le mettre n’en place rien de plus simple :
-Ajouter l'id de la map sur laquelle vous voulez activer le script dans le tableau
prévu à cet effet.

-Créer les étages grâce aux régions id (ici ex avec RDC = 0 )
0 : RDC (Rez de chaussé)
1 : escalier
2 : étage (impassable)
3 : étage (au-dessus du héros)
4 : escalier (etage par rapport au RDC)
5 : étage (impassable depuis l'étage 3 mais etage pour le RDC)
6 : étage pour le RDC et l'étage 3
...
C’est tout ^^
############################# BUG ET MAJ #######################################
-Ombre non pris en compte

-Bug avec l'autotile 1 si mis en étage

Ces différents bugs vont-être mis à jour dès que possible
=end
#Si vous utiliser le systeme d'overlay de Yami mettre true :
YAMI_OVERLAY = true
#il faut de plus que ce script soit sous le script d'overlay
#ID Variable d'enregistrement de l'étage actuel (variable in game)
VAR = 1
#Map d'activation du script
MAP = [1,2]
#Nombre d'étage max associé au map
ETAGE_MAX = [6,6]
#Définir région RDC (Toute les région de 0 a la valeur définit ferons office de RDC)
RDC = 0
#Nom des event :
#ETAGE <id>

###### NE RIEN TOUCHER SOUS CETTE LIGNE SANS SAVOIR CE QUE VOUS FAITES #########
#╔═════════════════════════════════════════════════════════════════════════════╗
#║    Modification du test de collision du perso                               ║
#║    Update de l'étage depuis l'update du héros                               ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_CharacterBase
  #Modification de la détection de contact décor
  alias map_passable2? map_passable?
  def map_passable?(x, y, d)
    if (MAP.include?($game_map.map_id) == true)
      @boucle4 = 0 if @boucle4 == nil
      @boucle4 = 0 if @boucle4 == 4
      if (@boucle4 == 0)
        $game_etage.save_coordonnée_arrivée(d)
        $game_etage.region_info($myx,$myy)
        $game_etage.determine_position_perso
      end
      $game_etage.create_sprite
      @boucle4 += 1
      return true if Input.press?(:CTRL)
      return determine_passability(x,y,d)
    else
      return true if Input.press?(:CTRL)
      return map_passable2?(x, y, d)
    end
  end
  
  #Test de position du perso vis a vis de la case suivante
  def determine_passability(x,y,d)
    return true if Input.press?(:CTRL)
    if $game_etage.dessous_heros
      return true
    elsif $game_etage.test == true
      a = map_passable2?(x, y, d)
      if (($game_variables[VAR] < $a[7]-2)&&(d == 8))||(($game_variables[VAR] < $a[3]-2)&&(d == 6))||(($game_variables[VAR] < $a[5]-2)&&(d == 4))||(($game_variables[VAR] < $a[1]-2)&&(d == 2))
        return true
      else
        return a
      end
    elsif $game_etage.test == false
      return false
    end
  end
  
  #Modifie la détection de collision avec un event
  def collide_with_events?(x, y)
    $game_map.events_xy_nt(x, y).any? do |event|
      if (MAP.include?($game_map.map_id) == true)
        if ($game_map.map_event[event.id].name.include? "ETAGE")
          a = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
          if ($game_variables[VAR] == a-1)||($game_variables[VAR] == a)||($game_variables[VAR] == a+1)
            return event.normal_priority? || self.is_a?(Game_Event)
          else
            return false
          end
        else
          if ($game_variables[VAR] == RDC)||($game_variables[VAR] == RDC+1)
            return event.normal_priority? || self.is_a?(Game_Event)
          else
            return false
          end
        end
      else
        return event.normal_priority? || self.is_a?(Game_Event)
      end
    end
  end
  
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║    Modification des contact avec les event si au-dessus du héros            ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Player < Game_Character
  #Modifie la possibiliter de démarrage d'un event
  def start_map_event(x, y, triggers, normal)
    return if $game_map.interpreter.running?
    $game_map.events_xy(x, y).each do |event|
      if (MAP.include?($game_map.map_id) == true)
        if ($game_map.map_event[event.id].name.include? "ETAGE")
          a = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
          if ($game_variables[VAR] == a-1)||($game_variables[VAR] == a)||($game_variables[VAR] == a+1)
            if event.trigger_in?(triggers) && event.normal_priority? == normal
              event.start
            end
          end
        else
          if ($game_variables[VAR] == RDC)||($game_variables[VAR] == RDC+1)
            if event.trigger_in?(triggers) && event.normal_priority? == normal
              event.start
            end
          end
        end
      else
        if event.trigger_in?(triggers) && event.normal_priority? == normal
          event.start
        end
      end
    end
  end
  #Modifie la détection d'activation d' un event
  alias check_event_trigger_touch_etage check_event_trigger_touch
  def check_event_trigger_touch(x, y)
    $game_map.events_xy_nt(x, y).any? do |event|
      if (MAP.include?($game_map.map_id) == true)
        if ($game_map.map_event[event.id].name.include? "ETAGE")
          a = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
          if ($game_variables[VAR] == a-1)||($game_variables[VAR] == a)||($game_variables[VAR] == a+1)
            check_event_trigger_touch_etage(x,y)
          end
        else
          if ($game_variables[VAR] == RDC)||($game_variables[VAR] == RDC+1)
            check_event_trigger_touch_etage(x,y)
          end
        end
      else
        check_event_trigger_touch_etage(x,y)
      end
    end
  end
  #Réinitialize l'étage en cas de changement de carte
  alias perform_transfer_etage perform_transfer
  def perform_transfer
    perform_transfer_etage
    $game_etage.initialize_map
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║    Ajoute une fonction de récuperation des event de la map                  ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Map
  #Permet de récuperer la table des event de la map
  def map_event
    @map.events
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║    Met en place l'update                                                    ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Spriteset_Map
  #Ajout de l'updzte pour l'image des etage
  alias update_etage update
  def update
    update_etage
    $spriteset_map_bloc.update rescue true
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║  Ajoute le masquage des image lors de l'ouverture du menu                   ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Scene_MenuBase < Scene_Base
  #Creation du background des menu
  alias create_background_etage create_background
  def create_background
    create_background_etage
    if $spriteset_map_bloc != nil
      @background_sprite_etage = Sprite.new
      @background_sprite_etage.bitmap = $spriteset_map_bloc.take_sprite_etage
      @background_sprite_etage.color.set(16, 16, 16, 128)
      $spriteset_map_bloc.hide_sprite
    end
  end
  #Suppression du background des menu
  alias dispose_background_etage dispose_background
  def dispose_background
    dispose_background_etage
    @background_sprite_etage.dispose if $spriteset_map_bloc != nil
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║  Modifie le script d'overlay si présent pour adaptation au sprite (hauteur) ║
#╚═════════════════════════════════════════════════════════════════════════════╝
if YAMI_OVERLAY
  class Spriteset_Map
    def create_overlay_map
      @current_light = 0
      @current_shadow = 0
      @current_par = 0
      @current_ground = 0
      # Ground Layer
      @ground = Sprite.new(@viewport1)
      @ground.z = 1
      @ground.opacity = YSA::OVERLAY::GROUND_OPACITY
      # Light Layer
      @light = Sprite.new(@viewport2)
      @light.opacity = YSA::OVERLAY::LIGHT_OPACITY
      @light.blend_type = 1
      @light.z = 0#299
      # Shadow Layer
      @shadow = Sprite.new(@viewport2)
      @shadow.opacity = YSA::OVERLAY::SHADOW_OPACITY
      @shadow.blend_type = 2
      @shadow.z = -1#298
      # Parallax Layer
      @par = Sprite.new(@viewport2)
      @par.opacity = YSA::OVERLAY::PARALLAX_OPACITY
      @par.z = -1#297
    end
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║  Ajustement du ton des image                                                ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Screen
  #Démarrage modification  du ton etage en cas de modification ton écran
  alias start_tone_change_old start_tone_change
  def start_tone_change(tone, duration)
    start_tone_change_old(tone, duration)
    $spriteset_map_bloc.start_tone_change(tone, duration)
  end
  #Updtate du ton etage en cas de modification ton écran
  def update_tone
    if @tone_duration > 0
      d = @tone_duration
      @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
      @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
      @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
      @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
      @tone_duration -= 1
    end
    $spriteset_map_bloc.update_tone if $spriteset_map_bloc
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║  Réinitialization de l'image de l'étage au changement de map                ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Scene_Map < Scene_Base
  #Initialisation de l'étage au démarrage d'une map
  alias start_etage start
  def start
    start_etage
    $game_etage.initialize_map
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║  Ajout de la class principale au démarrage                                  ║
#╚═════════════════════════════════════════════════════════════════════════════╝
module DataManager
  #Ajout du démarrage du script a la BDD
  class << self
    alias :create_game_objects_etage :create_game_objects
    def create_game_objects
      create_game_objects_etage
      $game_etage       = Game_Etage.new
    end
  end
end
#╔═════════════════════════════════════════════════════════════════════════════╗
#║  Class principale (calcul et détermine les variables nécessaires au sprite) ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Game_Etage
  
  attr_reader :dessous_heros
  attr_reader :test
  
  #Initialisation de la map
  def initialize_map
    if (MAP.include?($game_map.map_id) == true)
      $myy = 0
      $myx = 0
      region_info($myx,$myy)
      determine_position_perso
      $spriteset_map_bloc = Spriteset_Map_Bloc.new if $spriteset_map_bloc == nil
      $spriteset_map_bloc.show_sprite
      $spriteset_map_bloc.update
      $game_variables[VAR] = RDC if $game_variables[VAR] < RDC
      create_sprite
    end
  end
  
  #Récupération des dnnée d'arriver
  def save_coordonnée_arrivée(d)
    $myx = (2-(d % 6))/2
    $myy = (d % 4) - 1 - ((2-(d % 6))/2)
  end
  
  #Détermination de la position du perso
  def determine_position_perso
    @test = false
    if (($a[4]-$game_variables[VAR] > 2)&&($a[4] >= RDC))||((RDC-$game_variables[VAR] > 2)&&($a[4] < RDC))
      @dessous_heros = true
    elsif (($a[4]-$game_variables[VAR] == 2)&&($a[4] >= RDC))||((RDC-$game_variables[VAR] == 2)&&($a[4] < RDC))
      @dessous_heros = false
    elsif (($a[4]-$game_variables[VAR] > (-2))&&($a[4]-$game_variables[VAR] < 2)&&($a[4] >= RDC))||((RDC-$game_variables[VAR] > (-2))&&(RDC-$game_variables[VAR] < 2)&&($a[4] < RDC))
      @dessous_heros = false
      @test = true
    elsif (($a[4]-$game_variables[VAR] <= (-2))&&($a[4] >= RDC))||((RDC-$game_variables[VAR] <= (-2))&&($a[4] < RDC))
      @dessous_heros = false
    end
  end
  
  #Gestion des sprite
  def create_sprite
    if (MAP.include?($game_map.map_id) == true)
      $spriteset_map_bloc.show_sprite
      for i in 0..(($game_variables[VAR]-1)/3-RDC)
        $spriteset_map_bloc.hide_sprite(i)
      end
    end
  end
  
  #Récupération des info de la map
  ####################
  #0 1 2
  #3 4 5
  #6 7 8
  def region_info(x,y)
    $b = []
    for i in 0..8
      $b[i] = [$game_player.x+x+(i%3)-1,$game_player.y+y+(i/3)-1]
    end
    $a = []
    for i in 0..8
      $a[i] = $game_map.region_id(($game_player.x+(i%3)-1+x),($game_player.y+(i/3)-1+y))
    end
  end
        
  #Ajustement des donnée des tiles
  def tile_test(id)
    if id < 1024
      if (id/256).floor == 0
        return [5,[id%256,0]]#B
      elsif (id/256).to_i == 1
        return [6,[id%256,0]]#C
      elsif (id/256).to_i == 2
        return [7,[id%256,0]]#D
      else
        return [8,[id%256,0]] #E
      end
    elsif id < 1664
      #[4,[id%128,0]].to_s
      return [4,[(id-1024)%128,0]]#A5
    elsif id < 2816
      return [0,[(id-1664)/48,(id-1664)%48]]#A1#[0,[((id-512)%768)/48,((id-512)%768)-((((id-512)%768)/48).to_i*48)]]#A1
    elsif id < 4352
      return [1,[(id-2816)/48,(id-2816)%48]]#A2#[1,[((id-1280)%1536)/48,((id-1280)%1536)-((((id-1280)%1536)/48).to_i*48)]]#A2
    elsif id < 5888
      return [2,[(id-4352)/48,(id-4352)%48]]#A3#[2,[(((id-512)%1536)/48+16)%32,((id-512)%1536)-((((id-512)%1536)/48).to_i*48)]]#A3
    else
      return [3,[(id-5888)/48,((id-5888)%48)]]#A4
    end
  end
  
  #Test du changement de map
  def map_change(id)
    return ($game_map.map_id == id)
  end
  
end


Dernière édition par vincent26 le Lun 4 Aoû 2014 - 19:18, édité 1 fois
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mar 24 Juin 2014 - 4:15
Et voici la suite ^^ :

Code:

#╔═════════════════════════════════════════════════════════════════════════════╗
#║  Création de l'image de l'étage                                             ║
#╚═════════════════════════════════════════════════════════════════════════════╝
class Spriteset_Map_Bloc

  attr_reader :tone
  
  #Initialisation
  def initialize
    @tone = $game_map.screen.tone
    @tone_target = Tone.new
    @tone_duration = 0
    @sprite_etage = []
    @sprite_event_etage = []
    create_viewports
    create_etage
  end
  
  #Creation des plan de travail
  def create_viewports
    $viewport4 = Viewport.new
    $viewport4.z = 25
  end
    
  #Update
  def update
    update_tone
    if $game_player.moving?
      if (@boucle_update == 0)&&($game_etage.test == true)
        recreate_event_sprite($game_variables[VAR]) if $game_variables[VAR] != [$a[4],RDC].max
        $game_variables[VAR] = [$a[4],RDC].max
      end
      @boucle_update = @boucle_update + 1
    else
      @boucle_update = 0
    end
    for sprite in @sprite_etage
      sprite.ox = $game_map.display_x * 32
      sprite.oy = $game_map.display_y * 32
    end
    for sprite in @sprite_event_etage
      sprite.ox = $game_map.display_x * 32
      sprite.oy = $game_map.display_y * 32
    end
  end
  
  #Gestion de changement de ton écran
  def start_tone_change(tone, duration)
    @tone_target = tone.clone
    @tone_duration = duration
    if @tone_duration == 0
      for sprite in @sprite_etage
        sprite.tone = @tone_target.clone
      end
      for sprite in @sprite_event_etage
        sprite.tone = @tone_target.clone
      end
    end
  end
  
  #Update ton des sprite
  def update_tone
    if @tone_duration > 0
      d = @tone_duration
      @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
      @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
      @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
      @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
      @tone_duration -= 1
    end
    for sprite in @sprite_etage
      sprite.tone = @tone
    end
    for sprite in @sprite_event_etage
      sprite.tone = @tone
    end
  end
  
  #Gestion du masquage des sprite
  def hide_sprite(couche = -1)
    if couche == -1
      for sprite in @sprite_etage
        sprite.visible = false
      end
      for sprite in @sprite_event_etage
        sprite.visible = false
      end
    else
      @sprite_etage[couche].visible = false
      @sprite_event_etage[couche].visible = false
    end
  end
 
  #Gestion de l'affichage des sprite
  def show_sprite(couche = -1)
    if couche == -1
      for sprite in @sprite_etage
        sprite.visible = true
      end
      for sprite in @sprite_event_etage
        sprite.visible = true
      end
    else
      @sprite_etage[couche].visible = true
      @sprite_event_etage[couche].visible = true
    end
  end
  
  #Récuperation des image pour fond menu
  def take_sprite_etage
    fond = Bitmap.new(Graphics.width,Graphics.height)
    rect = Rect.new(0,0,Graphics.width,Graphics.height)
    for i in 0..@sprite_etage.length-1
      if @sprite_etage[i].visible == true
        bitmap = @sprite_etage.bitmap.clone rescue Bitmap.new(Graphics.width,Graphics.height)
        fond.blt(0,0, bitmap, rect)
        bitmap = @sprite_event_etage.bitmap.clone rescue Bitmap.new(Graphics.width,Graphics.height)
        fond.blt(0,0, bitmap, rect)
      end
    end
    return fond.blur
  end
  
  #Creation des sprite d'étage ( Gestionnaire )
  def create_etage_bitmap(couche = -1)
    @rect2 = Rect.new(0,0,32,32)
    if couche == -1
      for bloc in 1..(ETAGE_MAX[MAP.index($game_map.map_id)]-RDC)/3
        create_etage_bitmap2(bloc)
      end
    else
      create_etage_bitmap2(couche/3)
    end
  end
  
  #Creation des sprite d'étage ( Executeur )
  def create_etage_bitmap2(bloc)
    bitmap_etage = Bitmap.new($game_map.width*32,$game_map.height*32)
    bitmap_event = Bitmap.new($game_map.width*32,$game_map.height*32)
    for x in 0..$game_map.width-1
      for y in 0..$game_map.height-1
        if ($game_map.region_id(x,y) == bloc*3)||($game_map.region_id(x,y) == bloc*3-1)||($game_map.region_id(x,y) == bloc*3+1)
          for couche in 0..2
            @blocb = Bitmap.new(32,32)
            for angle in 0..3
              take_texture([x,y],2-couche,angle)
              @blocb.blt((angle%2)*16,(angle/2)*16, @secondary_bitmap, @rect2)
            end
            bitmap_etage.blt(x*32,y*32,@blocb,@rect2)
          end
        end
        $game_map.events_xy_nt(x,y).any? do |event|
          @cw = 32
          @ch = 32
          @rectevent = Rect.new(0,0,32,32)
          take_graphic_event(event,bloc)
          if take_graphic_event(event,bloc)
            bitmap_event.blt(x*32-(@cw-32)/2,y*32-(@ch-32),@blocb,@rectevent)
          end
        end
      end
    end
    @sprite_etage[bloc-1] = Sprite.new($viewport4)
    @sprite_etage[bloc-1].ox = $game_map.display_x * 32
    @sprite_etage[bloc-1].oy = $game_map.display_y * 32
    @sprite_etage[bloc-1].z = bloc*3
    @sprite_etage[bloc-1].bitmap = bitmap_etage
    @sprite_event_etage[bloc-1] = Sprite.new($viewport4)
    @sprite_event_etage[bloc-1].ox = $game_map.display_x * 32
    @sprite_event_etage[bloc-1].oy = $game_map.display_y * 32
    @sprite_event_etage[bloc-1].z = bloc*3+2
    @sprite_event_etage[bloc-1].bitmap = bitmap_event
  end
  
  #Gestion de la modification des sprite event en cas de modification de l'un d'entre eux
  def recreate_event_sprite(bloc)
    bitmap_etage = Bitmap.new($game_map.width*32,$game_map.height*32)
    bitmap_event = Bitmap.new($game_map.width*32,$game_map.height*32)
    for x in 0..$game_map.width-1
      for y in 0..$game_map.height-1
        $game_map.events_xy_nt(x,y).any? do |event|
          @cw = 32
          @ch = 32
          @rectevent = Rect.new(0,0,32,32)
          if take_graphic_event(event,bloc)
            bitmap_event.blt(x*32-(@cw-32)/2,y*32-(@ch-32),@blocb,@rectevent)
          end
        end
      end
    end
    @sprite_event_etage[bloc-1].bitmap.dispose rescue true
    @sprite_event_etage[bloc-1].dispose rescue true
    @sprite_event_etage[bloc-1] = Sprite.new($viewport4)
    @sprite_event_etage[bloc-1].ox = $game_map.display_x * 32
    @sprite_event_etage[bloc-1].oy = $game_map.display_y * 32
    @sprite_event_etage[bloc-1].z = bloc*3+2
    @sprite_event_etage[bloc-1].bitmap = bitmap_event
  end
  
  #Récuperation des graphics d'un event
  def take_graphic_event(event,bloc)
    test = $game_map.map_event[event.id].name[7..$game_map.map_event[event.id].name.length-2].to_i
    if ($game_map.map_event[event.id].name.include? "ETAGE")&&((test == bloc*3)||(test == bloc*3-1)||(test == bloc*3+1))
      a = $game_map.map_event[event.id].pages
      for i in 0..a.length-1
        b = a[a.length-1-i].condition
        if conditions_met?(b,event)
          c = a[a.length-1-i].graphic
          name = c.character_name
          id = c.character_index
          direction = c.direction
          pattern = c.pattern
          picture = Cache.character(name)
          sign = name[/^[\!\$]./]
          if sign && sign.include?('$')
            @cw = picture.width / 3
            @ch = picture.height / 4
          else
            @cw = picture.width / 12
            @ch = picture.height / 8
          end
          x = (id % 4)*@cw*3 +pattern*@cw
          y = (id/4).floor*@ch*4 + (direction/2-1)*@ch
          y += 2 if (sign && !sign.include?('!'))||(!sign)
          rect = Rect.new(x,y,@cw,@ch)
          @rectevent = Rect.new(0,0,@cw,@ch)
          @blocb = Bitmap.new(@cw,@ch)
          @blocb.blt(0,0,picture,rect)
          i = a.length
          return true
        end
      end
    end
    return false
  end
  
  #Test des condition des events
  def conditions_met?(c,event)
    if c.switch1_valid
      return false unless $game_switches[c.switch1_id]
    end
    if c.switch2_valid
      return false unless $game_switches[c.switch2_id]
    end
    if c.variable_valid
      return false if $game_variables[c.variable_id] < c.variable_value
    end
    if c.self_switch_valid
      key = [$game_map.map_id, event.id, c.self_switch_ch]
      return false if $game_self_switches[key] != true
    end
    if c.item_valid
      item = $data_items[c.item_id]
      return false unless $game_party.has_item?(item)
    end
    if c.actor_valid
      actor = $game_actors[c.actor_id]
      return false unless $game_party.members.include?(actor)
    end
    return true
  end
  
  #Creation des etage
  def create_etage
    @tiles_list = $game_map.tileset.tileset_names
    @sprite_etage = []
    @sprite_event_etage = []
    @rect = Rect.new(0,0,16,16)
    create_etage_bitmap
  end
  
  #récuperation des texture
  def take_texture(coord_map,couche,angle_square)
    create_auto_tile_table(coord_map[0],coord_map[1])
    @value_table = nil
    @secondary_bitmap = Bitmap.new(16,16)
    @value_table = $game_etage.tile_test(@table_tile[couche]) if  (@table_tile[couche] != 0)#&&(couche != 0)
    take_angle(@value_table[0],@value_table[1][0],@value_table[1][1],angle_square) if @value_table != nil
  end
  
  #Creation du sprite d'un angle de carreaux (16*16 pixel)
  def take_angle(tile,id,type,angle)
    x = nil
    y = nil
    if tile >= 4 #Tile basic B,C,D,E,A5 MARCHE !!!
      x = (id % 8)*32 + (angle % 2)*16 +(8*32)*((id/128).floor)
      y = ((id - (id % 8))/8)*32 + ((angle-(angle % 2))/2)*16 -(16*32)*((id/128).floor)
    elsif tile == 0  #auto tile A1 ne marche pas
      auto_tile_A1(tile,id,type,angle)
      x = @xy[0]
      y = @xy[1]
    elsif tile == 1  #auto tile A2   MARCHE !!!
      auto_tile_A2(tile,id,type,angle)
      x = @xy[0]
      y = @xy[1]
    elsif  tile == 2 #mur toit A3    MARCHE !!!
      auto_tile_A3(tile,id,type,angle)
      x = @xy[0]
      y = @xy[1]
    elsif  tile == 3 #mur toit A4 avec auto tile   MARCHE !!!
      auto_tile_A4(tile,id,type,angle)
      x = @xy[0]
      y = @xy[1]
    end
    @bitmap_stockage = Cache.tileset(@tiles_list[tile])
    x = 0 if x == nil
    y = 0 if y == nil
    @rect = Rect.new(x,y,16,16)
    @secondary_bitmap = Bitmap.new(16,16)
    @secondary_bitmap.blt(0,0, @bitmap_stockage, @rect)
  end
  
  #Creation de la table d'auto tile
  def create_auto_tile_table(x,y)
    @table_tile = $game_map.all_tiles(x,y)
  end
  
  #Récuperation des coordonnée de découpage des tiles
  ##############################################################################
  def auto_tile_A1(tile,id,type,angle)
    x_sous_tile = (id %  * 64
    y_sous_tile = ((id-(id%8))/8)*96
    if angle == 0
      if [1,3,5,7,9,11,13,15,26,27,29,31,39].include?(type)#angle haut gauche vers l'exterieur
        x = x_sous_tile+32
        y = y_sous_tile
      elsif [0,2,4,6,8,10,12,14,24,25,28,30,38].include?(type)#rien
        x = x_sous_tile+32
        y = y_sous_tile+64
      elsif  [16,17,18,19,32,40,41,44].include?(type)#barre verticale haut gauche
        x = x_sous_tile
        y = y_sous_tile+64
      elsif  [20,21,22,23,33,36,37,45].include?(type)#barre horizontal haut gauche
        x = x_sous_tile+32
        y = y_sous_tile+32
      elsif  [34,35,42,43,46].include?(type)#angle haut gauche vers l'interieur
        x = x_sous_tile
        y = y_sous_tile
      end
    elsif angle == 1
      if [2,3,6,7,10,11,14,15,17,19,30,31,41].include?(type)#angle haut droit vers l'exterieur
        x = x_sous_tile+48
        y = y_sous_tile
      elsif [0,1,4,5,8,9,12,13,16,18,28,29,40].include?(type)#rien
        x = x_sous_tile+16
        y = y_sous_tile+64
      elsif  [24,25,26,27,32,38,39,44].include?(type)#barre verticale haut droit
        x = x_sous_tile+48
        y = y_sous_tile+64
      elsif  [20,21,22,23,33,34,35,43].include?(type)#barre horizontal haut droit
        x = x_sous_tile+16
        y = y_sous_tile+32
      elsif  [36,37,42,45,46].include?(type)#angle haut droit vers l'interieur
        x = x_sous_tile+16
        y = y_sous_tile
      end
    elsif angle == 2
      if [8,9,10,11,12,13,14,15,22,23,25,27,37].include?(type)#angle bas gauche vers l'exterieur
        x = x_sous_tile+32
        y = y_sous_tile+16
      elsif [0,1,2,3,4,5,6,7,20,21,24,26,36].include?(type)#rien
        x = x_sous_tile+32
        y = y_sous_tile+48
      elsif  [16,17,18,19,32,34,35,42].include?(type)#barre verticale bas gauche
        x = x_sous_tile
        y = y_sous_tile+48
      elsif  [28,29,30,31,33,38,39,45].include?(type)#barre horizontal bas gauche
        x = x_sous_tile+32
        y = y_sous_tile+64+16
      elsif  [40,41,43,44,46].include?(type)#angle bas gauche vers l'interieur
        x = x_sous_tile
        y = y_sous_tile+16
      end
    elsif angle == 3
        if [4,5,6,7,12,13,14,15,18,19,21,23,35].include?(type)#angle bas droit vers l'exterieur
        x = x_sous_tile+48
        y = y_sous_tile+16
      elsif [0,1,2,3,8,9,10,11,16,17,20,22,34].include?(type)#rien
        x = x_sous_tile+16
        y = y_sous_tile+48
      elsif  [24,25,26,27,32,36,37,42].include?(type)#barre verticale bas droit
        x = x_sous_tile+48
        y = y_sous_tile+48
      elsif  [28,29,30,31,33,40,41,43].include?(type)#barre horizontal bas droit
        x = x_sous_tile+16
        y = y_sous_tile+64+16
      elsif  [38,39,44,45,46].include?(type)#angle bas droit vers l'interieur
        x = x_sous_tile+16
        y = y_sous_tile+16
      end
    end
    @xy = [x,y]
  end
  ##############################################################################
  def auto_tile_A2(tile,id,type,angle)
    x_sous_tile = (id %  * 64
    y_sous_tile = ((id-(id%8))/8)*96
    if angle == 0
      if [1,3,5,7,9,11,13,15,26,27,29,31,39].include?(type)#angle haut gauche vers l'exterieur
        x = x_sous_tile+32
        y = y_sous_tile
      elsif [0,2,4,6,8,10,12,14,24,25,28,30,38].include?(type)#rien
        x = x_sous_tile+32
        y = y_sous_tile+64
      elsif  [16,17,18,19,32,40,41,44].include?(type)#barre verticale haut gauche
        x = x_sous_tile
        y = y_sous_tile+64
      elsif  [20,21,22,23,33,36,37,45].include?(type)#barre horizontal haut gauche
        x = x_sous_tile+32
        y = y_sous_tile+32
      elsif  [34,35,42,43,46].include?(type)#angle haut gauche vers l'interieur
        x = x_sous_tile
        y = y_sous_tile
      end
    elsif angle == 1
      if [2,3,6,7,10,11,14,15,17,19,30,31,41].include?(type)#angle haut droit vers l'exterieur
        x = x_sous_tile+48
        y = y_sous_tile
      elsif [0,1,4,5,8,9,12,13,16,18,28,29,40].include?(type)#rien
        x = x_sous_tile+16
        y = y_sous_tile+64
      elsif  [24,25,26,27,32,38,39,44].include?(type)#barre verticale haut droit
        x = x_sous_tile+48
        y = y_sous_tile+64
      elsif  [20,21,22,23,33,34,35,43].include?(type)#barre horizontal haut droit
        x = x_sous_tile+16
        y = y_sous_tile+32
      elsif  [36,37,42,45,46].include?(type)#angle haut droit vers l'interieur
        x = x_sous_tile+16
        y = y_sous_tile
      end
    elsif angle == 2
      if [8,9,10,11,12,13,14,15,22,23,25,27,37].include?(type)#angle bas gauche vers l'exterieur
        x = x_sous_tile+32
        y = y_sous_tile+16
      elsif [0,1,2,3,4,5,6,7,20,21,24,26,36].include?(type)#rien
        x = x_sous_tile+32
        y = y_sous_tile+48
        elsif  [16,17,18,19,32,34,35,42].include?(type)#barre verticale bas gauche
        x = x_sous_tile
        y = y_sous_tile+48
      elsif  [28,29,30,31,33,38,39,45].include?(type)#barre horizontal bas gauche
        x = x_sous_tile+32
        y = y_sous_tile+64+16
      elsif  [40,41,43,44,46].include?(type)#angle bas gauche vers l'interieur
        x = x_sous_tile
        y = y_sous_tile+16
      end
    elsif angle == 3
      if [4,5,6,7,12,13,14,15,18,19,21,23,35].include?(type)#angle bas droit vers l'exterieur
        x = x_sous_tile+48
        y = y_sous_tile+16
      elsif [0,1,2,3,8,9,10,11,16,17,20,22,34].include?(type)#rien
        x = x_sous_tile+16
        y = y_sous_tile+48
      elsif  [24,25,26,27,32,36,37,42].include?(type)#barre verticale bas droit
        x = x_sous_tile+48
        y = y_sous_tile+48
      elsif  [28,29,30,31,33,40,41,43].include?(type)#barre horizontal bas droit
        x = x_sous_tile+16
        y = y_sous_tile+64+16
      elsif  [38,39,44,45,46].include?(type)#angle bas droit vers l'interieur
        x = x_sous_tile+16
        y = y_sous_tile+16
      end
    end
    @xy = [x,y]
  end
  ##############################################################################
  def auto_tile_A3(tile,id,type,angle)
    x_sous_tile = (id %  * 64
    y_sous_tile = ((id-(id % 8))/8) * 64
    if angle == 0
      if [0,4,8,12].include?(type)#rien
        x = x_sous_tile+32
        y = y_sous_tile+32
      elsif  [1,9,5,13].include?(type)#barre verticale haut gauche
        x = x_sous_tile
        y = y_sous_tile+32
      elsif  [2,6,10,14].include?(type)#barre horizontal haut gauche
        x = x_sous_tile+32
        y = y_sous_tile
      elsif  [3,7,11,15].include?(type)#angle haut gauche vers l'interieur
        x = x_sous_tile
        y = y_sous_tile
      end
    elsif angle == 1
      if [0,1,8,9].include?(type)#rien
        x = x_sous_tile+16
        y = y_sous_tile+32
      elsif  [4,12,5,13].include?(type)#barre verticale haut droit
        x = x_sous_tile+48
        y = y_sous_tile+32
      elsif  [2,3,11,10].include?(type)#barre horizontal haut droit
        x = x_sous_tile+16
        y = y_sous_tile
      elsif  [6,14,7,15].include?(type)#angle haut droit vers l'interieur
        x = x_sous_tile+48
        y = y_sous_tile
      end
    elsif angle == 2
      if [0,2,4,6].include?(type)#rien
        x = x_sous_tile+32
        y = y_sous_tile+16
      elsif  [1,3,5,7].include?(type)#barre verticale bas gauche
        x = x_sous_tile
        y = y_sous_tile+16
      elsif  [8,12,14,10].include?(type)#barre horizontal bas gauche
        x = x_sous_tile+32
        y = y_sous_tile+48
      elsif  [9,11,13,15].include?(type)#angle bas gauche vers l'interieur
        x = x_sous_tile
        y = y_sous_tile+48
      end
    elsif angle == 3
      if [3,2,1,0].include?(type)#rien
        x = x_sous_tile+16
        y = y_sous_tile+16
      elsif  [6,4,7,5].include?(type)#barre verticale bas droit
        x = x_sous_tile+48
        y = y_sous_tile+16
      elsif  [9,8,11,10].include?(type)#barre horizontal bas droit
        x = x_sous_tile+16
        y = y_sous_tile+48
      elsif  [12,14,13,15].include?(type)#angle bas droit vers l'interieur
        x = x_sous_tile+48
        y = y_sous_tile+48
      end
    end
    @xy = [x,y]
  end
  ##############################################################################
  def auto_tile_A4(tile,id,type,angle)
    x_sous_tile = (id %  * 64
    y2 = ((id-(id % 8))/8)
    y_sous_tile = ((y2-(y2%2))/2)*64 + ((y2+(y2%2))/2)*96
    if ( y2 % 2 ) == 1
      if angle == 0
        if [0,4,8,12].include?(type)#rien
          x = x_sous_tile+32
          y = y_sous_tile+32
        elsif  [1,9,5,13].include?(type)#barre verticale haut gauche
          x = x_sous_tile
          y = y_sous_tile+32
        elsif  [2,6,10,14].include?(type)#barre horizontal haut gauche
          x = x_sous_tile+32
          y = y_sous_tile
        elsif  [3,7,11,15].include?(type)#angle haut gauche vers l'interieur
          x = x_sous_tile
          y = y_sous_tile
        end
      elsif angle == 1
        if [0,1,8,9].include?(type)#rien
          x = x_sous_tile+16
          y = y_sous_tile+32
        elsif  [4,12,5,13].include?(type)#barre verticale haut droit
          x = x_sous_tile+48
          y = y_sous_tile+32
        elsif  [2,3,11,10].include?(type)#barre horizontal haut droit
          x = x_sous_tile+16
          y = y_sous_tile
        elsif  [6,14,7,15].include?(type)#angle haut droit vers l'interieur
          x = x_sous_tile+48
          y = y_sous_tile
        end
      elsif angle == 2
        if [0,2,4,6].include?(type)#rien
          x = x_sous_tile+32
          y = y_sous_tile+16
        elsif  [1,3,5,7].include?(type)#barre verticale bas gauche
          x = x_sous_tile
          y = y_sous_tile+16
        elsif  [8,12,14,10].include?(type)#barre horizontal bas gauche
          x = x_sous_tile+32
          y = y_sous_tile+48
        elsif  [9,11,13,15].include?(type)#angle bas gauche vers l'interieur
          x = x_sous_tile
          y = y_sous_tile+48
        end
      elsif angle == 3
        if [3,2,1,0].include?(type)#rien
          x = x_sous_tile+16
          y = y_sous_tile+16
        elsif  [6,4,7,5].include?(type)#barre verticale bas droit
          x = x_sous_tile+48
          y = y_sous_tile+16
        elsif  [9,8,11,10].include?(type)#barre horizontal bas droit
          x = x_sous_tile+16
          y = y_sous_tile+48
        elsif  [12,14,13,15].include?(type)#angle bas droit vers l'interieur
          x = x_sous_tile+48
          y = y_sous_tile+48
        end
      end
    else
      if angle == 0
        if [1,3,5,7,9,11,13,15,26,27,29,31,39].include?(type)#angle haut gauche vers l'exterieur
          x = x_sous_tile+32
          y = y_sous_tile
        elsif [0,2,4,6,8,10,12,14,24,25,28,30,38].include?(type)#rien
          x = x_sous_tile+32
          y = y_sous_tile+64
        elsif  [16,17,18,19,32,40,41,44].include?(type)#barre verticale haut gauche
          x = x_sous_tile
          y = y_sous_tile+64
        elsif  [20,21,22,23,33,36,37,45].include?(type)#barre horizontal haut gauche
          x = x_sous_tile+32
          y = y_sous_tile+32
        elsif  [34,35,42,43,46].include?(type)#angle haut gauche vers l'interieur
          x = x_sous_tile
          y = y_sous_tile
        end
      elsif angle == 1
        if [2,3,6,7,10,11,14,15,17,19,30,31,41].include?(type)#angle haut droit vers l'exterieur
          x = x_sous_tile+48
          y = y_sous_tile
        elsif [0,1,4,5,8,9,12,13,16,18,28,29,40].include?(type)#rien
          x = x_sous_tile+16
          y = y_sous_tile+64
        elsif  [24,25,26,27,32,38,39,44].include?(type)#barre verticale haut droit
          x = x_sous_tile+48
          y = y_sous_tile+64
        elsif  [20,21,22,23,33,34,35,43].include?(type)#barre horizontal haut droit
          x = x_sous_tile+16
          y = y_sous_tile+32
        elsif  [36,37,42,45,46].include?(type)#angle haut droit vers l'interieur
          x = x_sous_tile+16
          y = y_sous_tile
        end
      elsif angle == 2
        if [8,9,10,11,12,13,14,15,22,23,25,27,37].include?(type)#angle bas gauche vers l'exterieur
          x = x_sous_tile+32
          y = y_sous_tile+16
        elsif [0,1,2,3,4,5,6,7,20,21,24,26,36].include?(type)#rien
          x = x_sous_tile+32
          y = y_sous_tile+48
        elsif  [16,17,18,19,32,34,35,42].include?(type)#barre verticale bas gauche
          x = x_sous_tile
          y = y_sous_tile+48
        elsif  [28,29,30,31,33,38,39,45].include?(type)#barre horizontal bas gauche
          x = x_sous_tile+32
          y = y_sous_tile+64+16
        elsif  [40,41,43,44,46].include?(type)#angle bas gauche vers l'interieur
          x = x_sous_tile
          y = y_sous_tile+16
        end
      elsif angle == 3
        if [4,5,6,7,12,13,14,15,18,19,21,23,35].include?(type)#angle bas droit vers l'exterieur
          x = x_sous_tile+48
          y = y_sous_tile+16
        elsif [0,1,2,3,8,9,10,11,16,17,20,22,34].include?(type)#rien
          x = x_sous_tile+16
          y = y_sous_tile+48
        elsif  [24,25,26,27,32,36,37,42].include?(type)#barre verticale bas droit
          x = x_sous_tile+48
          y = y_sous_tile+48
        elsif  [28,29,30,31,33,40,41,43].include?(type)#barre horizontal bas droit
          x = x_sous_tile+16
          y = y_sous_tile+64+16
        elsif  [38,39,44,45,46].include?(type)#angle bas droit vers l'interieur
          x = x_sous_tile+16
          y = y_sous_tile+16
        end
      end
    end
    @xy = [x,y]
  end
end

Cependant la démo n'est pas encore a jour

Voici la liste des correction :
-Ton de l'écran changeant
-Events de plus de 32*32 pixel sur étage bien pris en compte
-Correction de l'affichage des events
-Réduction de la latence engendrée
-Pour l'utilisation de l'overlay l'image recouvre désormais intégrité de l'écran
-Programmation revue et simplifier (script plus court de presque 300 ligne)

A venir :
Mise en place de l'overlay sur les étage a partir du script de Yami
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Ven 27 Juin 2014 - 19:55
Trop bien!
C'est parfait pour l'overlay!
Merci encore pour ce script Vincent_26! Wink
Enferno9
Enferno9
Membre

Nombre de messages : 26
Age : 18
Localisation : Quelque part.
Distinction : aucune
Date d'inscription : 09/06/2014

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Lun 7 Juil 2014 - 17:24
Ça à l'air d'être un super script mais j'ai juste un problème,quand je veux tester mon jeu,il est écrit:

Script 'Étages' line 5: SyntaxError occured

unexpected '='
=begin
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 9 Juil 2014 - 0:41
C'est parce que en copiant le script tu as tu avoir des espace qui ce sont creer entre le texte et le bord de page et qu'il faut que le =begin soit totalement a gauche de même le =end ligne 27 il me semble Wink
Enferno9
Enferno9
Membre

Nombre de messages : 26
Age : 18
Localisation : Quelque part.
Distinction : aucune
Date d'inscription : 09/06/2014

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 9 Juil 2014 - 10:17
Ah ok merci ^^
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Jeu 4 Déc 2014 - 18:50
Salut, j'ai mis le dernier script que tu a fait, mais j'ai une erreur a ça:
line 712: SyntaxError occured
unexpected tSTAR
  x_sous_tile = (id % *64)

Edit: Sur la démo, j'ai trouvé un bug, j’étais au-dessous du pont de la 1er map, je sauvegarde, puis je retourne a l'écran titre, là je vois une partie du pont un peu zoomer, sur l’écran titre.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Jeu 4 Déc 2014 - 19:26
Il va falloir que je fasse pas mal de modification car la modification de la résolution de l'écran n'est pas pris en compte et ya pas mal de truc que je doit modifier ^^

merci pour les rapport de bug je regarderais ça a l'occasion (je ne pense pas le mettre a jour de suite mais j'y compte bien quand même ^^)
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Lun 15 Déc 2014 - 20:01
Voila après un peu de boulot la version 2.0 du script est disponible Very Happy

plein de nouvelle chose :
-System totalement revue et modifier
-Ombre pris en compte
-Tile animée pris en compte
-Event animée pris en compte
-Résolution pris en compte

Si vous voulez ajouter des chose hésiter a pas a me dire Smile

(Le script et dans le 1 er message)
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Ven 16 Jan 2015 - 12:41
Salut, j'ai changer de script de combat, j'ai pris celui de falco, et j'ai des erreurs sur son script depuis que j'ai mis ton script.
Chaos17
Chaos17
Membre

Nombre de messages : 222
Localisation : France
Distinction : aucune
Date d'inscription : 11/04/2012
http://blogofchaos17.wordpress.com/

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Dim 18 Jan 2015 - 10:06
Trop, cool!
Je testerai ça prochainement avec le script d'overlay de Yami et mes parallax.
Merci beaucoup Very Happy
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Dim 18 Jan 2015 - 18:43
Peut -tu me faire une démo pour voir Dany ?

Merci Chaos Wink
leparadoxvirtuel85
leparadoxvirtuel85
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 04/02/2015

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 4 Fév 2015 - 16:38
Merci Pour ce script ^^
Il a l'air vraiment très utile j'aimerai apprendre a scripté mais pour le moment je suis vraiment qu'un débutant en tout cas Merci cela va servir grandement Very Happy
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mar 17 Fév 2015 - 9:31
Bon un peu en retard, mais voilà là démo, si tu peux regarder l'erreur.
Il y a que les scripts de falco et le tient:
https://onedrive.live.com/redir?resid=4E688318658A9688!1397&authkey=!AJHn22F16Ee7KuY&ithint=file%2cexe
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Dim 1 Mar 2015 - 15:13
Dany => Pour avec le script de falco essaye de mettre le script d'étage au dessus de ceux de falco et de remplacer la ligne qui va planter par ça , tu me dira si tout marche:

if @viewport4 == nil
@viewport4 = Viewport.new
@viewport4.z = 20
end
@viewport4.tone.set($game_map.screen.tone)
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mar 3 Mar 2015 - 19:39
Merci Vincent26, mais j'ai trouver la solution, j'ai réussi a corriger mon problème du script XAS et Unlimited Resolution, enfin, j'ai trouver autre que ce script Unlimited Resolution.
Mais je vais essayer si sa fonctionne ton code! Smile
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Dim 15 Mar 2015 - 18:04
Petit up pour la correction d'un bug (merci a Origins) du menu sauvegarde (ou les sauvegarde n’était plus visible)

V2.1 Dans le premier post Wink
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 31
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mar 17 Mar 2015 - 20:58
Coucou, j'ai utilisé ton script dans l'un de mes donjons comme suit :

[VXAce]Script d'étage - Page 2 Captur16

J'ai bien noté l'ID de la map. Le truc, c'est que mon perso traverse bien le passage mais en marchant au-dessus et non pas en-dessous.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mar 17 Mar 2015 - 23:14
J'ai refait la même map et je n'ai pas le bug peut-tu me faire une petite démo ?
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 31
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 18 Mar 2015 - 10:05
Je viens de chercher pendant une heure, je n'ai pas trouvé ce qui provoquait ce bug. J'ai testé sur un Nouveau projet avec tous les scripts que j'utilise mais le bug ne se produit pas. Donc, on peut probablement en déduire que le souci se trouve au niveau de mes évênements ou de la BDD mais je n'ai pas trouvé quoi.

Donc, j'ai pris un extrait de mon vrai jeu test que j'ai condensé pour éviter les choses inutiles : http://www.mediafire.com/download/yea85vtansie6u3/Test+Etage.exe

Quand tu lanceras le jeu, va dans la grotte à droite, j'ai reproduit le passage dans le mur. Le bug est présent.

Edit : Visiblement, le problème vient de mes maps. Sur un Nouveau projet, lorsque j'importe les maps de mon jeu test, le bug fait son retour.

Edit2 : Par ailleurs, j'ai testé le script sur les maps 1 et 2, comme par défaut, ce qui correspond à ma WorldMap et mon Camp. J'ai constaté d'autres bugs. Sur ma WorldMap où j'ai assigné des zones de combat, la zone 3 où je suis censé passer dessous, je rencontre un mur invisible. Dans mon camp, la zone 4 de ma WorldMap apparaît sur la map de mon camp. Et j'ai aussi de gros lags lorsque je rentre dans ces maps et lors du lancement du jeu.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 18 Mar 2015 - 12:54
C'est bon j'ai trouver Wink j'ai mis a jour le script dans le 1er post (dit moi si tu rencontre encore des bug)
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 31
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 18 Mar 2015 - 17:14
Effectivement, ça marche mieux. De même dans mon camp, le bug d'affichage n'apparaît plus. Par contre, il y a un lag de 5 bonnes secondes lorsque je mets une map sous un tel système, même pour 2-3 cases concernées. S'il faut en mettre régulièrement, ce n'est pas jouable.

Autres bugs rencontrés (sur ma WorldMap, c'est moins pertinent mais je te le dis quand même) :

- Comme je te le disais, là où j'ai assigné des zones de combat, la zone 3 où je suis censé passer dessous, je rencontre un mur invisible.
- Dans le cas où je monte en aéronef (pas testé avec les réglages de base de RPG Maker, j'utilise le Mode 7), gros problème d'affichage et de lag.

Sinon, c'est un super script qui, mine de rien, permet de faire des choses qu'on voit généralement dans les RPGs. Mais le problème du lag est pour le moment trop problématique.
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

[VXAce]Script d'étage - Page 2 Empty Re: [VXAce]Script d'étage

le Mer 18 Mar 2015 - 19:04
Le script a été mis a jour en 1er page Wink
J'ai ajouter la prise en compte de l'aeronef et modifier un truc pour baisser un peu la latence dis moi si ça va

Pour le mur invisible comment fait-tu pour avoir ce bug ?
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum