[PSDK] Script de gestion du dossier des faces

4 Réponses • 292 Vues

Bonsoir à toutes et à tous,

Ce script très simple permet simplement de gérer les images de faces (les visages) dans un dossier à part entière plutôt que de les placer dans le dossier « graphics/battlers ». Grâce à ce script, cela vous permet de les mettre tout simplement dans « graphics/faces » et des les positionner correctement sur l'axe verticale.



Le script est en fichier joint.

#==============================================================================
# Dossier personnalisé des visages pour les messages
# Version  : 1.0.0
# Auteur    : Dakin Quelia
#==============================================================================
# Utilisation :
#  - Créer un dossier "faces" dans "Graphics" avec toutes les images
#==============================================================================
module RPG
  module Cache
    #--------------------------------------------------------------------------
    # Constantes
    #--------------------------------------------------------------------------
    FACESETS_PATH = 'faces'

    #--------------------------------------------------------------------------
    # Tableau des méthodes de chargement appelées au démarrage du jeu
    #--------------------------------------------------------------------------
    remove_const :LOADS
    LOADS = %i[load_animation load_autotile load_ball load_battleback load_battler load_face load_character load_fog load_icon
            load_panorama load_particle load_pc load_picture load_pokedex load_title load_tileset
            load_transition load_interface load_foot_print load_b_icon load_poke_front load_poke_back]

    module_function
   
    #--------------------------------------------------------------------------
    #  Charger / décharger le cache des visages
    #  @param flush_it [Booléen] si nous avons besoin de rafraîchir le cache
    #--------------------------------------------------------------------------
    def load_face(flush_it = false)
        if flush_it
          dispose_bitmaps_from_cache_tab(@face_cache)
        else
          @face_cache = {}
          @face_data = Yuki::VD.new(PSDK_PATH + '/master/face', :read)
        end
    end
 
    #--------------------------------------------------------------------------
    #  Teste l'existence d'une image dans le dossier
    #  @param filename [String]
    #  @return [Boolean]
    #--------------------------------------------------------------------------
    def face_exist?(filename)
        test_file_existence(filename, FACESETS_PATH, @face_data)
    end
 
    #--------------------------------------------------------------------------
    # Chargement de l'image du visage
    # @param filename [String] nom de l'image dans le dossier
    # @param _hue [Integer] ignoré (compatibilité avec RMXP)
    # @return [Bitmap]
    #--------------------------------------------------------------------------
    def face(filename, _hue = 0)
        load_image(@face_cache, filename, FACESETS_PATH, @face_data)
    end
  end
end

module Yuki
    #--------------------------------------------------------------------------
    #  On redéfinit la classe Message afin d'utiliser le nouveau système
    #  de cache des visages
    #--------------------------------------------------------------------------
    class Message
        def initialize(viewport, parent = $scene)
            raise 'Viewport required to display message' unless viewport
            super(viewport)
            @text_stack = UI::SpriteStack.new(self)
            @face_stack = UI::SpriteStack.new(viewport, default_cache: :face)
            @face_stack.y = -48
            @name_window = Window.new(viewport)
            @name_text = create_name_text
            reset_overwrites
            init_window
            self.visible = false
            @auto_skip = false
            @stay_visible = false
            @drawing_message = false
            @text_sample = create_sample_text
            @text_sample.visible = false
            @fade_out = false
            @fade_in = false
            @@instances[@parent = parent] = self
        end
    end
end

Bien à vous

« Modifié: 13 avril 2021, 21:48:18 par Dakin Quelia »

Script PSDK

Nuri Yuri

HostMaster

Je te conseille de mettre le script dans le message également.
On a souvent tendance à perdre les fichiers joints xD

Merci pour le partage et GG :D
ln(yo) = <3
D'accord. Oui, j'ai remarqué.

Du coup, voilà j'ai mis à jour mon premier message. ;)

Zenos

Mappeur

et du coup ? Comment ça s'utilise ? c:
Très simplement.

1) Tu crées un dossier « faces » dans « graphics » et tu mets tes images qui représenteront les visages des personnages.
2) Dans un évènement, tu fais « Afficher message » et tu fais :
:[face=position X, nomdufichier]:

Exemple :
:[face=280, prof_chen]:

;)

There was an error while thanking
Thanking...