garywiss6 Rétrograde Lv 54
Nombre de messages : 5302 Age : 29
| Sujet: [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 | |
|
Choco-sama Fan traître de harusame lvl 69
Nombre de messages : 13810 Age : 37
| Sujet: 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 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 2019/2020: Metamorph/ Charbi | |
|
Floya Show-yan fan Lv 51
Nombre de messages : 6675 Age : 27
| Sujet: 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. | |
|
Daragonis Maker de Légende Lv 52
Nombre de messages : 4582 Age : 27
| Sujet: Re: [VX/VXace] Afficher les objets trouvés/reçu sur la map Mar 19 Aoû 2014, 20:07 | |
| Joli travail ! Tu comptes l'utiliser dans un jeu de ta création ? | |
|
garywiss6 Rétrograde Lv 54
Nombre de messages : 5302 Age : 29
| Sujet: 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 ). ____________ - Un soir banal sur skype a écrit:
- Moi : C'était quoi ce cri ?
Choco : C'est ma saucisse qui a hurlé.
| |
|
AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934 Age : 37
| Sujet: 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. ____________ - Relm a écrit:
- Merci pour la confirmation Gary et fuck my life.
| |
|
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: 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
| |
|