RPG-Forum: [SCRIPT] - [RMVX] - RPG-Forum

Aller au contenu

Page 1 sur 1

[SCRIPT] - [RMVX] Popup pour gain Argent, objet, arme, armure !!

#1 L'utilisateur est hors-ligne   ASHKA Icône

  • Ecuyer
  • PipPipPip
  • Groupe : Membres +
  • Messages : 136
  • Inscrit(e) : 12-novembre 07
  • Gender:Male
  • Location:Je suis le " LOGOS " donc je suis partout !!

Posté 12 mars 2008 - 15:08

En testant ce VX, je me suis rendu compte que l'on pouvait créer des coffres tres rapidement.
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
FIGHT THE POWER !!
0

Page 1 sur 1


Réponse rapide

  

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)