~ S'évader de la banalité... Et entrer dans l'imaginaire ! ~
 
AccueilGuelnika, le site de E-m !S'enregistrerConnexion

Répondre au sujet
Partagez | 
 

 [VX/VXace] Afficher les objets trouvés/reçu sur la map

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
garywiss6
Rétrograde Lv 54
Rétrograde Lv 54
avatar

Nombre de messages : 5264
Age : 22

MessageSujet: [VX/VXace] Afficher les objets trouvés/reçu sur la map   Mar 19 Aoû 2014, 16:47

Afficher les objets trouvés/reçu sur la map



Auteur : Blockade pour VX modifié pour VX ace par moi

Ce script permet d'afficher une fenêtre avec les objets obtenus lors d'un gain d'objet. Il gère des gains multiples, il est adaptable en fonction des situations et il permet le gain d'expérience.

Le script n'est pas de moi à la base, il a été conçu pour VX, je l'ai juste adapté pour VX Ace.

Screen :



Lien du script original pour VX :
http://www.rpg-maker.fr/scripts-251-afficher-les-objets-trouvesrecu-sur-la-map.html

Script pour VX Ace :

Code:

#===============================================================

# ° [VXace] Afficher les objets trouvés/reçu sur la map

# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#  ° Par Blockade adapté par Garywiss pour VxAce
#  ° http://rpg-maker-vx.bbactif.com/forum.htm
#  ° Crée le 12/04/10
#  ° Version 1.1
#  ° Remerciment à Khai ( http://ktbanh.wordpress.com/)
# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

# ° Notes de version :

#    ~ v 1.0

#      - Sortie du script

#    ~ v 1.1

#      - Permet de gagner de l'expérience

# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

# °  Fonctionnalités (v 1.1)

#  - Affiche une fenêtre avec les objets obtenu     

#  - Gestion des gains multiples

#  - Adaptable en fonction des situations

#  - Possibilité de gagner de l'expérience

# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

# °  Installation :

#  Insérez le script au dessus de main & jetez un coup d'œil au module de

#  configuration

# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

# °  Utilisation

# >> Dans le cas d'un butin simple (1 seul objet)

# Dans l'event, selectioner "Appel de script", et mettre :

# gain(type,index,num,lieu)

#  Type = Le type de l'objet (1 : Objets / 2 : Armes / 3 : Armures / 4 : Gils / 5 : Exp)

#  Index = L'ID de l'objet obtenu (0 en cas de gils) /!\ Il faut mettre un 0 ou un autre chiffre, en cas de gils,

#                                                                                            et ne sourtout pas mettre gain(4,123) ou gain(4,123,1) 

#                                                                                            les arguments num (et lieu) seraient décalé et le script

#                                                                                            ne comprendrais pas.

#    /!\ Pour le gain d'expérience, mettez l'ID de votre héros, ou 0 pour toute l'équipe

#  Num = La quantité d'objets/gils reçus

#

#  /!\ Lieu est facultatif, pour les données affiché par défaut voir le module de configuration

#  Lieu = Le lieu d'où le script est appelé. Il peut s'agir de différentes situation, si il est appelé d'un

#  coffre par exemple, le texte d'intitulé changera en "Butin trouvé", si un PNJ les donnes alors il

#  affichera "Butin reçu". Les textes et son sont changeables dans le module de configuration.

#  Par défaut on trouve :

#      - Rien : Texte par défaut

#      - 1 : Coffre

#      - 2 :  PNJ

#      - 3 : Autres

# /!\ Ce sont les utilisation par défaut, vous pouvez très bien modifier ! Il suffit de modifier

# dans le module de configuration les valeurs des textes et sons !

# => Pour ceux qui s'y connaissent un peu en script, il peuvent rajouter des options, cherchez la méthode :

#  def set_text(lieu) (~ ligne 273) et modifiez le case comme ceci :

#  case lieu

#~      when 0 # Par défaut

#~        title = "Butin"

#~        Audio.se_play("Audio/SE/#{Config_Contenu::SE_defaut}",

#            Config_Contenu::Volume_defaut,

#            Config_Contenu::Tempo_defaut) if Config_Contenu::Musique_defaut

#~      when 1 # Coffre

#~        title = Config_Contenu::Text_coffre

#~        Audio.se_play("Audio/SE/#{Config_Contenu::SE_coffre}",

#            Config_Contenu::Volume_coffre,

#            Config_Contenu::Tempo_coffre) if Config_Contenu::Musique_coffre

#~      when 2 # PNJ

#~        title = Config_Contenu::Text_pnj

#~        Audio.se_play("Audio/SE/#{Config_Contenu::SE_pnj}",

#            Config_Contenu::Volume_pnj,

#            Config_Contenu::Tempo_pnj)  if Config_Contenu::Musique_pnj

#~      when 3 # Recu (Autres coffre/PNJ)

#~        title = Config_Contenu::Text_autre

#~        Audio.se_play("Audio/SE/#{Config_Contenu::SE_autre}",

#            Config_Contenu::Volume_autres,

#            Config_Contenu::Tempo_autres)  if Config_Contenu::Musique_coffre

#~      when x

#            title = "Votre texte"

#            Audio.se_play("Audio/SE/nom_de_votre_se",volume_du_se, tempo_du_se)

#    end

# => Ou x est le nombre pour appeler votre option, et nom_de_votre_se & volume_du_se & tempo_du_se sont explicites

#

#  Exemple : gain(1,5,7,2) va donner l'objet (1) Ether (qui a pour ID 5) en 7 exemplaire avec l'option 1 (Coffre, par défaut)

#

# >> Dans le cas d'un butin multiples (> 1 seul objet)

# Ce sont exactement les même réglages sauf que si vous voulez donner un ether x6 et une massue x1 avec option PNJ

# gain([1,2], [5,1]  ,  [6,1] , 2)

#          type  index  num  lieu

# C'est le même fonctionement sauf sous forme de tableau !

# /!\ Attention il ne peut pas avoir plusieurs options de lieu.

# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/



#===============================================================

# Début de la configuration

module Config_Contenu

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

# >> Configuration des textes

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

Text_gain_gold = "Gils obtenus" # Texte affiché avant la quantité d'argent obtenu

Text_quantite = "x" # Texte situé avant la quantité d'objet gagné

Text_gain_exp = "Exp. obtenue" # Texte affiché avant la quantité d'argent obtenu

Afficher_level_up = true # Afficher les nouveau sorts si le héros gagne un niveau



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

# >> Configuration des graphiques

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

Update_spiriteset = true # Continuer à faire bouger les autotitles lors de l'apparition de la fenêtre (L'eau par exemple)

Update_event = false      # Continuer à exécuter les events



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

# >> Configuration des icones

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

Icone_argent = 85 # L'ID de l'icône affichée pour l'argent

Icone_exp = 95 # L'ID de l'icône affichée pour l'expérience



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

# >> Configuration du titre affiché

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

# > Par défaut

Text_defaut = "Butin"      # Texte affiché par défaut lors de l'obtention d'un butin

Musique_defaut = true    # Jouer le SE ? (par défaut)

SE_defaut = "Saint5"      # Le SE joué par défaut lors de l'obtention d'un butin

Volume_defaut = 100    # Le volume du SE joué par défaut

Tempo_defaut  = 100    # Le tempo du SE joué par défaut



# > Un coffre (Lieu = 1)

Text_coffre = "Butin trouvé"    # Texte affiché  lors de l'obtention d'un butin (Lieu = 1)

Musique_coffre = true            # Jouer le SE ? (Lieu = 1)

SE_coffre = "Chest"                # Le SE joué lors de l'obtention d'un butin (Lieu = 1)

Volume_coffre= 100                # Le volume du SE joué (Lieu = 1)

Tempo_coffre = 100                # Le tempo du SE joué (Lieu = 1)



# > Un PNJ (Lieu = 2)

Text_pnj = "Butin reçu"          # Texte affiché  lors de l'obtention d'un butin (Lieu = 2)

Musique_pnj = true                # Jouer le SE ? (Lieu = 2)

SE_pnj = "Saint5"                    # Le SE joué lors de l'obtention d'un butin (Lieu = 2)

Volume_pnj = 100                  # Le volume du SE joué (Lieu = 2)

Tempo_pnj  = 100                  # Le tempo du SE joué (Lieu = 2 )



# > Autres (Objet caché...) (Lieu = 3)

Text_autre = "Butin trouvé"      # Texte affiché  lors de l'obtention d'un butin (Lieu = 3)

Musique_autre = true          # Jouer le SE ? (Lieu = 3)

SE_autre = "Saint5"                # Le SE joué lors de l'obtention d'un butin (Lieu = 3)

Volume_autre = 100                # Le volume du SE joué (Lieu = 3)

Tempo_autre  = 100                #  Le tempo du SE joué (Lieu = 3)



end

# Fin de la configuration

#===============================================================

#===== petit ajout au niveau du SceneManager ===================
module SceneManager
  #--------------------------------------------------------------------------
  # * Add a scene
  #--------------------------------------------------------------------------
  def self.add(newScene)
    @stack.push(@scene)
    @scene = newScene
  end
end

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

# * Méthode qui appelle la scene

#    type      : 1 : Objets / 2 : Armes / 3 : Armures / 4 : Gils

#    index    : L'ID de l'objet obtenu (0 en cas de gils)

#    num : Le nombre d'objets/gils obtenus

#    lieu : texte de description (facultatif)

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

def gain(type,index,num,lieu=0)

  scene = Scene_Contenu.new(type,index,num,lieu)
  SceneManager.add(scene)

end




#==============================================================================

# ** Window_Lieu

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

#  La fenêtre qui gère le titre général du butin obtenu

#==============================================================================

class Window_Lieu < Window_Base

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

# * Initialize

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

  def initialize

    super(0,0,250,56)

  end

 

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

# * Affiche le texte dans la fenêtre (/!\ Personalisable)

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

  def set_text(lieu)

    case lieu

      when 0 # Par défaut

        title = "Butin"

        Audio.se_play("Audio/SE/#{Config_Contenu::SE_defaut}",

          Config_Contenu::Volume_defaut,

          Config_Contenu::Tempo_defaut) if Config_Contenu::Musique_defaut

      when 1 # Coffre

        title = Config_Contenu::Text_coffre

        Audio.se_play("Audio/SE/#{Config_Contenu::SE_coffre}",

          Config_Contenu::Volume_coffre,

          Config_Contenu::Tempo_coffre) if Config_Contenu::Musique_coffre

      when 2 # PNJ

        title = Config_Contenu::Text_pnj

        Audio.se_play("Audio/SE/#{Config_Contenu::SE_pnj}",

          Config_Contenu::Volume_pnj,

          Config_Contenu::Tempo_pnj)  if Config_Contenu::Musique_pnj

      when 3 # Recu (Autres coffre/PNJ)

        title = Config_Contenu::Text_autre

        Audio.se_play("Audio/SE/#{Config_Contenu::SE_autre}",

          Config_Contenu::Volume_autres,

          Config_Contenu::Tempo_autres)  if Config_Contenu::Musique_coffre

    end

    self.contents.draw_text(0,0,contents.width,24,title,1)

  end

end



#==============================================================================

# ** Window_Butin

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

#  La fenêtre qui gère les objets obtenus

#==============================================================================

class Window_Butin < Window_Base

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

# * Initialize

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

  def initialize(type)

    if type.is_a?(Array)

      super(0,0,250,56 + 25*(type.size-1))

    else

      super(0,0,250,56)

    end

  end

 

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

# * Affiche les objets/gils gagnés

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

  def set_gain(x,y,butin,icone,num,special)

    @num = num

    draw_icon(icone,x,y)

    self.contents.draw_text(x+25,y,150,24,butin)

    if special

      self.contents.draw_text(x,y,contents.width,24,@num,2)

    else

      self.contents.draw_text(x,y,contents.width,24,Config_Contenu::Text_quantite + @num.to_s,2)

    end

  end

end
#==============================================================================

# ** Scene_Contenu

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

#  La classe qui gère les fenêtres de contenu de coffre

#==============================================================================

class Scene_Contenu < Scene_Base

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

# * Initialize

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

  def initialize(type,index,num,lieu)

 
    @type = type ; @index = index

    @num = num ;  @lieu = lieu

    @spriteset = Spriteset_Map.new


    @gain_multiples = @type.is_a?(Array)

    donner_butin


    afficher_fenetres


    ajuster_position_fenetres


    afficher_texte

  end

 

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

# * Donne le butin gagné

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

  def donner_butin

    if @gain_multiples

      for i in 0...@type.size

        case @type[i]

          when 1

            $game_party.gain_item($data_items[@index[i]], @num[i])

          when 2

            $game_party.gain_item($data_weapons[@index[i]], @num[i])       

          when 3

            $game_party.gain_item($data_armors[@index[i]], @num[i])     

          when 4

            $game_party.gain_gold(@num[i])

          when 5

            if @index == 0

              $game_party.members.each{|member|

              member.change_exp(member.exp + @num[i],Config_Contenu::Afficher_level_up)

              }

            else

              actor = $game_actors[@index]

              actor.change_exp(actor.exp + @num[i],Config_Contenu::Afficher_level_up)

            end

        end

      end

    else

      case @type

        when 1

          $game_party.gain_item($data_items[@index], @num)

        when 2

          $game_party.gain_item($data_weapons[@index], @num)       

        when 3

          $game_party.gain_item($data_armors[@index], @num)     

        when 4

          $game_party.gain_gold(@num)

        when 5

          if @index  == 0

            $game_party.members.each{|member|

              member.change_exp(member.exp + @num,Config_Contenu::Afficher_level_up)

            }

        else

          actor = $game_actors[@index]

          actor.change_exp(actor.exp + @num,Config_Contenu::Afficher_level_up)

        end

      end

    end

  end

 

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

# * Affiche les fenêtres de butin

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

  def afficher_fenetres

    @window_lieu = Window_Lieu.new

    @window_butin = Window_Butin.new(@type)

  end

 

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

# * Centre les fenêtre sur l'écran

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

  def ajuster_position_fenetres

    @window_lieu.x=(544-@window_lieu.width)/2

    @window_butin.x = (544-@window_butin.width)/2

    if @gain_multiples

      @window_lieu.y = (416-@window_lieu.height-@window_butin.height)/2

      @window_butin.y = @window_lieu.y + @window_butin.height-25*(@type.size-1)

    else

      @window_lieu.y=(416-@window_lieu.height-@window_butin.height)/2

      @window_butin.y =(416-@window_lieu.height+@window_butin.height)/2

    end

end



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

# * Affiche le texte voulu

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

  def afficher_texte

    @window_lieu.set_text(@lieu)
 
    if @gain_multiples

      y = 0

      for i in 0...@type.size
        special = false

        case @type[i]

          when 1
            nom = $data_items[@index[i]].name

            icone = $data_items[@index[i]].icon_index

          when 2

            nom = $data_weapons[@index[i]].name

            icone = $data_weapons[@index[i]].icon_index     

          when 3

            nom = $data_armors[@index[i]].name

            icone = $data_armors[@index[i]].icon_index   

          when 4

            nom = Config_Contenu::Text_gain_gold

            icone = Config_Contenu::Icone_argent

            special = true

          when 5

            nom = Config_Contenu::Text_gain_exp

            icone = Config_Contenu::Icone_exp

            special = true

        end

      @window_butin.set_gain(0,y,nom,icone,@num[i],special)

      y += 25

      end

    else

      argent = false

      case @type

        when 1

          nom = $data_items[@index].name

          icone = $data_items[@index].icon_index

        when 2

          nom = $data_weapons[@index].name

          icone = $data_weapons[@index].icon_index     

        when 3

          nom = $data_armors[@index].name

          icone = $data_armors[@index].icon_index   

        when 4

          nom = Config_Contenu::Text_gain_gold

          icone = Config_Contenu::Icone_argent

          special = true

        when 5

          nom = Config_Contenu::Text_gain_exp

          icone = Config_Contenu::Icone_exp

          special = true 

        end

      @window_butin.set_gain(0,0,nom,icone,@num,special)

    end

  end

 

 

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

# * Update

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

  def update
super
    @spriteset.update if Config_Contenu::Update_spiriteset

    $game_map.update if Config_Contenu::Update_event
    return_scene if Input.trigger?(Input::B) or Input.trigger?(Input::C)

  end


end

____________
Un soir banal sur skype a écrit:
Moi : C'était quoi ce cri ?
Choco : C'est ma saucisse qui a hurlé.


Dernière édition par garywiss6 le Mar 19 Aoû 2014, 20:04, édité 2 fois
Revenir en haut Aller en bas
http://vuesubjective.org/Garywiss/
Choco-sama
Fan traître de harusame lvl 69
avatar

Nombre de messages : 13757
Age : 30

MessageSujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map   Mar 19 Aoû 2014, 19:13

Bon boulot ça^^

Ah un script de Blockade, c'est quasiment une marque de confiance Wink


Merci du partage^^


+10 points making... oh wait...

____________
Zim a écrit:
voire les super-hardcore-poke-nerds genre Choco



"Quand j'ai faim, hop, un voisin!"

Derniers Pokemons Chromatiques/ Shiney capturés: Ningale/ Axoloto/ Herbizarre/ Maracachi/ Golemastoc
Revenir en haut Aller en bas
Floya
Show-yan fan Lv 51
Show-yan fan Lv 51
avatar

Nombre de messages : 6557
Age : 20

MessageSujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map   Mar 19 Aoû 2014, 20:00

Oh tu l'as fait finalement. Beau boulot. cactus smile

____________
◅ Cliquez !
Revenir en haut Aller en bas
Daragonis
Maker de Légende Lv 52
Maker de Légende Lv 52
avatar

Nombre de messages : 4578
Age : 20

MessageSujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map   Mar 19 Aoû 2014, 20:07

Joli travail ! :fier:

Tu comptes l'utiliser dans un jeu de ta création ? 1000 clins d\'oeil 
Revenir en haut Aller en bas
garywiss6
Rétrograde Lv 54
Rétrograde Lv 54
avatar

Nombre de messages : 5264
Age : 22

MessageSujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map   Mar 19 Aoû 2014, 20:12

Merci pour vos retours ^^

A la base j'ai fait ça sur une demande de Dragongaze en fait, j'en ai donc profiter pour vous le partager (enfin c'est surtout Dragongaze qui m'en a donné l'idée nerd ).

____________
Un soir banal sur skype a écrit:
Moi : C'était quoi ce cri ?
Choco : C'est ma saucisse qui a hurlé.
Revenir en haut Aller en bas
http://vuesubjective.org/Garywiss/
AlexRE
Admin trop trizo Lv 65
Admin trop trizo Lv 65
avatar

Nombre de messages : 29685
Age : 30

MessageSujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map   Mar 19 Aoû 2014, 21:36

Chouette !

On ne pouvait pas utiliser celui de VX pour VX Ace ? Je croyais que c'était compatible...

Partage-le sur tous les forums de making en disant que c'est une exclu E-magination et qu'il faut payer 1€ par Paypal pour pouvoir le copier coller.  Twisted Evil 

____________
Relm a écrit:
Merci pour la confirmation Gary et fuck my life.
Revenir en haut Aller en bas
http://www.alexzone.net
Dragongaze13
Maker de Légende Lv 49
Maker de Légende Lv 49
avatar

Nombre de messages : 3882
Age : 20

MessageSujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map   Mar 19 Aoû 2014, 21:54

Citation :
On ne pouvait pas utiliser celui de VX pour VX Ace ? Je croyais que c'était compatible...


Nope, VX c'est RGSS2 et VXAce c'est RGSS3. Mais ça doit être assez facile à convertir pour qui s'y connaît. La majorité du temps les scripts VX ne passent pas sous VXAce.. :/


Citation :
Partage-le sur tous les forums de making en disant que c'est une exclu E-magination et qu'il faut payer 1€ par Paypal pour pouvoir le copier coller.  

+1
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map   

Revenir en haut Aller en bas
 
[VX/VXace] Afficher les objets trouvés/reçu sur la map
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous pouvez répondre aux sujets dans ce forum
E-magination :: ~ Forums d'enrichissement ~ :: Apprentissage et partage :: RPG Maker VX & VX Ace :: Tutoriels / Scripts-
Répondre au sujetSauter vers: