AccueilFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 [Script] Superposer plusieurs fogs

Aller en bas 
AuteurMessage
KeyLad
Inquisiteur
Inquisiteur
avatar

Masculin Nombre de messages : 365
Age : 26
Localisation : France, Isère
Emploi/loisirs : Guitare, skate, ma copine
Projet en Cours : Projet 1
Date d'inscription : 03/10/2007

MessageSujet: [Script] Superposer plusieurs fogs   Jeu 10 Jan - 15:48

Tout est expliqué dans le script :

Code:
#==============================================================================
# OUTILS
# Multi Fog 1.1
#--------------------
# Stephane, Roys
# Mai 2007
# Multi Fog
# Ajoute plusieur fog a l'ecran
# Instructions :
# - Ajouter un event et le nommer Fog
# - Ajouter en commentaire
#  Inserer commentaire: Fichier Nom_du_fichier_de_fog
#  Inserer commentaire: Opacite 0.255 (opacité du fog)
#  Inserer commentaire: zpriorite hauteur_du_fog
#  Inserer commentaire: Deplacement ox oy
# ou ox=decalage_sur_les_x à chaque frame et oy decalage_sur_les_y à chaque frame
#  Inserer commentaire: transparence 0=Normal 1=Eclaircie 2=Obscurcie
#  Inserer commentaire: pause nombre_de_frame (avant d'appliquer les décalages ox et oy)
#==============================================================================

#==============================================================================
# GAME MAP
#==============================================================================
class Game_Map
 
  alias tools_multifog_game_map_setup setup
  #----------------------------------------------------------------------------
  attr_accessor  :fogs
  #----------------------------------------------------------------------------
  # CONSTANTE
  IDENTIFIANT_FOG = "FOG"      # Nom de l'event pour detecter l'objet

  #----------------------------------------------------------------------------
  # SETUP
  #----------------------------------------------------------------------------
  def setup(map_id)
    tools_multifog_game_map_setup(map_id)
    # Tableau des nouveaux fogs
    @fogs=[]
    #---------------------------
    # Analyse les events pour detecter si l'objet est ajouté
    for event in @events.values
      creer_fog(event) if event.name.upcase == IDENTIFIANT_FOG
    end
  end
 
  #----------------------------------------------------------------------------
  # CREER FOG
  # Ajoute un fog à la partie dans $game_map.fogs
  #----------------------------------------------------------------------------
  def creer_fog(event)
    # Recupère les commentaires de l'event
    list=event.list
    file=nil
    opacite = 255
    zpriorite=3000
    ox=0
    oy=0
    transparence=0
    pause=0
    # Parcours les options de l'event
    for ligne in list
      next if ligne.code != 108  # ok si c'est un commentaire
      case ligne.parameters[0].split[0].upcase
      #  Fichier du fog
      when "FICHIER"
        file=ligne.parameters[0].split[1]
      when "OPACITE"
        # Opacité
        opacite=ligne.parameters[0].split[1].to_i
      when "ZPRIORITE"
        # Hauteur z
        zpriorite=ligne.parameters[0].split[1].to_i
      when "DEPLACEMENT"
        # ox et oy
        ox= ligne.parameters[0].split[1].to_i
        oy= ligne.parameters[0].split[2].to_i
      when "TRANSPARENCE"
        transparence=ligne.parameters[0].split[1].to_i
      when "PAUSE"
        pause=ligne.parameters[0].split[1].to_i
      end
    end
    return if file==nil
    new_fog=Game_Event_Fog.new(file,opacite,zpriorite,ox,oy,transparence,pause)
    @events.delete(event)
  end
end

#==============================================================================
# GAME EVENT FOG
#==============================================================================
class Game_Event_Fog
  #----------------------------------------------------------------------------
  attr_accessor:file
  attr_accessor:opacite
  attr_accessor:zpriorite
  attr_accessor:ox
  attr_accessor:oy
  attr_accessor:transparence
  attr_accessor:lumineux
  attr_accessor:pause
 
  def initialize(file,opacite,zpriorite,ox,oy,transparence,pause)
    @file=file
    @opacite=opacite
    @zpriorite=zpriorite
    @ox=ox
    @oy=oy
    @transparence=transparence
    @pause=pause
    #---------------------------
    $game_map.fogs.push(self)
  end
end

#==============================================================================
# SPRITESET MAP
#==============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  alias tools_multifog_spriteset_map_initialize initialize
  alias tools_multifog_spriteset_map_dispose dispose
  alias tools_multifog_spriteset_map_update update
 
  #--------------------------------------------------------------------------
  # MAIN INITIALIZE
  #--------------------------------------------------------------------------
  def initialize
    @fogs_sprites=[]
    tools_multifog_spriteset_map_initialize
    for fog in $game_map.fogs
      plane=Plane.new(@viewport1)
      plane.bitmap = RPG::Cache.fog(fog.file, 0)
      plane.opacity= fog.opacite
      plane.z=fog.zpriorite
      plane.ox=fog.ox
      plane.oy=fog.oy
      plane.blend_type =fog.transparence
      @fogs_sprites.push(plane)
    end
  end
 
  #--------------------------------------------------------------------------
  # DISPOSE
  #--------------------------------------------------------------------------
  def dispose
    tools_multifog_spriteset_map_dispose
    for fog in @fogs_sprites
      fog.dispose
    end
  end
 
  #--------------------------------------------------------------------------
  # UPDATE
  #--------------------------------------------------------------------------
  def update
    tools_multifog_spriteset_map_update
    for i in 0..@fogs_sprites.size-1
      fog=$game_map.fogs[i]
      plane=@fogs_sprites[i]
      plane.ox = $game_map.display_x / 4
      plane.oy = $game_map.display_y / 4
      plane.tone=$game_temps.tone(true) if fog.lumineux
      if fog.pause==0
        plane.ox+=fog.ox*Graphics.frame_count
        plane.oy+=fog.oy*Graphics.frame_count
      else
        plane.ox+=fog.ox*Graphics.frame_count/fog.pause
        plane.oy+=fog.oy*Graphics.frame_count/fog.pause
      end
    end
  end
end
#======================================
# MAIN
# Game Event
# Méthode pour gerer les events des pnjs et le nom de l'event
#======================================
class Game_Event < Game_Character

  #--------------------------------------------------------------------------
  def name
    return @event.name
  end
  #--------------------------------------------------------------------------
  def id
    return @id
  end
end

_________________
- Lisez les règles
- Faite de la pub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
[Script] Superposer plusieurs fogs
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Sunrise :: Alchimisterie :: Scripts :: Scripts Libres-
Sauter vers: