Au debut, j'ai cru qu'ils en avaient profité pour faire quelque chose d'infaisable en events, mais non !!
Alors, je l'ai fait ...
Ce script permet d'afficher une petite fenetre de maniere plus ou moins automatique lors du gain d'argent , d'objet, d'arme ou d'armure.
Installation :
1) Remplacer les commandes 125 à 128 du script " Game _Interperter " ( ligne 881 et suivante ) par ceci :
#--------------------------------------------------------------------------
# * Change Gold
#--------------------------------------------------------------------------
def command_125
value = operate_value(@params[0], @params[1], @params[2])
$game_party.gain_gold(value)
if $game_map.events[@event_id].name.include?("[C]")
$argent = value
$scene = Popup_Argent.new
end
return true
end
#--------------------------------------------------------------------------
# * Change Items
#--------------------------------------------------------------------------
def command_126
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_items[@params[0]], value)
if $game_map.events[@event_id].name.include?("[C]")
$item = @params[0]
$nombre = value
$scene = Popup_Objet.new
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# * Change Weapons
#--------------------------------------------------------------------------
def command_127
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_weapons[@params[0]], value, @params[4])
if $game_map.events[@event_id].name.include?("[C]")
$arme = @params[0]
$nombre = value
$scene = Popup_Arme.new
end
return true
end
#--------------------------------------------------------------------------
# * Change Armor
#--------------------------------------------------------------------------
def command_128
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_armors[@params[0]], value, @params[4])
if $game_map.events[@event_id].name.include?("[C]")
$armure = @params[0]
$nombre = value
$scene = Popup_Armure.new
end
return true
end
#--------------------------------------------------------------------------2) Créer un nouveau script ( à l'endroit specialement prevu ) et collez y ceci :
class Window_Objet < Window_Base
def initialize(item, nombre)
super(180, 150, 250, 60)
@item = item
@nombre = nombre
refresh
end
def refresh
self.contents.clear
objet = $data_items[@item]
draw_icon(objet.icon_index, 0, 0)
self.contents.font.color = normal_color
self.contents.font.color.alpha = 255
self.contents.draw_text(24, 0, 300, 32, objet.name + " + " + @nombre.to_s)
end
end
# -------------------------------------------
class Popup_Objet
def main
@spriteset = Spriteset_Map.new
@window_objet = Window_Objet.new($item, $nombre)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@window_objet.dispose
@spriteset.dispose
end
def update
@window_objet.update
@spriteset.update
if Input.trigger?(Input::C)
Sound.play_decision
$scene = Scene_Map.new
return
end
end
end
# --------------------------------------------------
class Window_Argent < Window_Base
def initialize(argent)
super(200, 150, 200, 60)
@argent = argent
refresh
end
def refresh
self.contents.clear
bitmap = Cache.system("Iconset")
rect = Rect.new(3 * 24, 9 * 24, 24, 24)
self.contents.blt(0, 0, bitmap, rect, 255)
self.contents.draw_text(24, 0, 100, 32, " + " + @argent.to_s + " " + Vocab::gold)
end
end
# -------------------------------------------
class Popup_Argent
def main
@spriteset = Spriteset_Map.new
@window_argent = Window_Argent.new($argent)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@window_argent.dispose
@spriteset.dispose
end
def update
@window_argent.update
@spriteset.update
if Input.trigger?(Input::C)
Sound.play_decision
$scene = Scene_Map.new
return
end
end
end
# --------------------------------------------------
class Window_Arme < Window_Base
def initialize(arme, nombre)
super(180, 150, 250, 60)
@arme = arme
@nombre = nombre
refresh
end
def refresh
self.contents.clear
objet = $data_weapons[@arme]
draw_icon(objet.icon_index, 0, 0)
self.contents.font.color = normal_color
self.contents.font.color.alpha = 255
self.contents.draw_text(24, 0, 300, 32, objet.name + " + " + @nombre.to_s)
end
end
# -------------------------------------------
class Popup_Arme
def main
@spriteset = Spriteset_Map.new
@window_arme = Window_Arme.new($arme, $nombre)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@window_arme.dispose
@spriteset.dispose
end
def update
@window_arme.update
@spriteset.update
if Input.trigger?(Input::C)
Sound.play_decision
$scene = Scene_Map.new
return
end
end
end
# --------------------------------------------------
class Window_Armure < Window_Base
def initialize(armure, nombre)
super(150, 150, 280, 60)
@armure = armure
@nombre = nombre
refresh
end
def refresh
self.contents.clear
objet = $data_armors[@armure]
draw_icon(objet.icon_index, 0, 0)
self.contents.font.color = normal_color
self.contents.font.color.alpha = 255
self.contents.draw_text(24, 0, 300, 32, objet.name + " + " + @nombre.to_s)
end
end
# -------------------------------------------
class Popup_Armure
def main
@spriteset = Spriteset_Map.new
@window_armure = Window_Armure.new($armure, $nombre)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@window_armure.dispose
@spriteset.dispose
end
def update
@window_armure.update
@spriteset.update
if Input.trigger?(Input::C)
Sound.play_decision
$scene = Scene_Map.new
return
end
end
end
# --------------------------------------------------3) Il reste deux petites modifications à faire dans le script " Game_Event " :
- Rajouter ceci ligne 13 ( au dessus des autres lignes semblables ) :
attr_reader :name
- Rajouter ceci ligne 24 ( juste sous " super " ) :
@name = event.name
Utilisation :
Comme j'ai modifié l'interperter, le script se joue des que vous utilisez la commande d'event associé au gain d'argent, objet, arme ou armure.
Mais, afin de vous permettre de choisir, j'ai rajouté une condition :
Le script ne se jouera que si le nom de l'event où la commande est utilisé contient ces trois caracteres : [C]
A vous de voir !!
Avertissement :
1) Ce script est prevu pour VX et non pour XP.
La version XP arrivera avant la fin de la semaine.
2) Ce script est conçu pour le gain uniquement.
( Du moins, dans cette version ... )
3) Si vous etes du genre genereux, placez un " Attendre 5 frames " entre chaque dons pour eviter les problemes.
Ce script a été fait par moi, ce qui signifie :
- Que vous pouvez librement utiliser ce script sans avoir besoin de me mettre dans vos credits.
- Que vous pouvez librement diffuser ce script ( si vous jugé cela utile ) sans avoir à me demander d'autorisation.
ASHKA

Connexion
Inscription
Aide
Ajouter une réponse



Multi-citation