Magasin de sorts !
Dim 29 Juin 2008 - 18:05
Bonjour !
Auteur :
lb_guilherme
Screen :
Script :
Faites un appel de script comme suivant :
$scene = Scene_Magics.new
Balises corrigées
Auteur :
lb_guilherme
Screen :
Script :
- Code:
###########################################################
################### Boutique de compétences ######################
#### V 1.0.0 ##############################################
################################### Por: lb_guilherme #####
###########################################################
##########Traduit par Douk#######################################
#===============================================================
#
# rpgmakervx.1fr1.net
#
#===============================================================
#Commentaires traduits par loolou78############################
#Pour appeller la boutique de compétences créez un nouveau événement
#ensuite insérez ce script: $scene=Scene_Magics.new
###########################################################
module Refiner
Grupos_mags = []
Grupos_g = []
# ----------------------------------------------------
# Si vous voulez ajouter d'autres personnages à la boutique de sort
# suivez le modèle suivant:
#Grupos_mags[ID du héros] = [ids des compétences]
# Pour connaitre les IDs des compétences reférez-vous à l'onglet
# Aptitudes de la base de données.
# Le nombre maximal de compétences que peut avoir chaque personnage est de 15
Grupos_mags[1] = [1,2,3,4,5]
Grupos_mags[2] = [6,7,8,9,10]
Grupos_mags[3] = [11,12,13]
Grupos_mags[4] = [14,15,16,17,18,19,20,21,22,23]
# ----------------------------------------------------
# Utilisez le modèle suivant pour ajouter d'autres personnages:
# Grupos_g[ID du héros] = [Prix]
# Vous Devez suivre le meme ordre des compétences dans "Grupos_mags".
Grupos_g[1] = [5000,500,500,500,500]
Grupos_g[2] = [500,500,5000,500,500]
Grupos_g[3] = [500,500,5000]
Grupos_g[4] = [500,500,500,500,500,500,500,500,500,500]
# ---------------------------------------------------- #
# Fin de la configuration, passage au script #
# ---------------------------------------------------- #
end
class Game_Party < Game_Unit
attr_reader:actors
end
class Scene_Magics < Scene_Base
def start
super
create_menu_background
start_vars
@grupo_window = Window_Command.new(160, @pers_names)
@grupo_window.x = 5
@grupo_window.y = 5
@gold_window = Window_Gold.new(5,(@pers_names.size * 24 + 42))
@equips_window = Window_Command.new(160, [""])
@equips_window.visible = false
@equips_window.active = false
@confirm_window = Window_Confirm.new
@confirm_window.x = 5
@confirm_window.y = 331
@confirm_op_window = Window_Command.new(75, ["Oui","Non"])
@confirm_op_window.x = 90
@confirm_op_window.y = 331
@confirm_op_window.opacity = 0
@confirm_window.visible = false
@confirm_op_window.visible = false
@confirm_op_window.active = false
@confirm_op_window.index = 1
end
def start_vars
@groups_names = []
@groups_icons = []
@groups_value = []
@groups_ids = []
@pers_names = []
@pers_ids = []
for a in 0...$game_party.members.size
b = $game_party.actors[a]
@groups_names[b] = []
@groups_icons[b] = []
@groups_value[b] = []
@groups_ids[b] = []
@pers_names[a] = $data_actors[b].name
@pers_ids[a] = b
for i in 0...Refiner::Grupos_mags[b].size
id = Refiner::Grupos_mags[b][i]
@groups_names[b][i] = $data_skills[id].name
@groups_icons[b][i] = $data_skills[id].icon_index
@groups_value[b][i] = Refiner::Grupos_g[b][i]
@groups_ids[b][i] = id
end
end
end
def terminate
super
dispose_menu_background
@equips_window.dispose
@grupo_window.dispose
@confirm_op_window.dispose
@confirm_window.dispose
@gold_window.dispose
end
def update
super
update_menu_background
@equips_window.update
@grupo_window.update
@gold_window.update
@confirm_op_window.update
@confirm_window.update
if @grupo_window.active == true
grupo_update
elsif @equips_window.active == true
equips_update
elsif @confirm_window.visible == true
confirm_update
end
end
def confirm_update
if Input.trigger?(Input::B)
Sound.play_cancel
un_active
elsif Input.trigger?(Input::C)
case @confirm_op_window.index
when 0
Sound.play_decision
refinar
un_active
@icon_window.dispose
desactive_options
@confirm_op_window.index = 1
when 1
Sound.play_cancel
un_active
end
end
end
def refinar
per = @pers_ids[@grupo_window.index]
$game_party.lose_gold(@groups_value[per][@equips_window.index])
$game_actors[per].learn_skill(@groups_ids[per][@equips_window.index])
@gold_window.refresh
end
def un_active
@confirm_window.visible = false
@confirm_op_window.visible = false
@confirm_op_window.active = false
@equips_window.active = true
@confirm_window.contents.clear
@confirm_window.contents.draw_text(0, 0, 80, 24, "Confirmer ?")
end
def equips_update
if Input.trigger?(Input::B)
Sound.play_cancel
@equips_window.visible = false
@equips_window.active = false
@grupo_window.active = true
@icon_window.dispose
end
if Input.trigger?(Input::C)
Sound.play_decision
trocar
end
end
def grupo_update
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
Sound.play_decision
@equips_window.dispose
@equips_window = Window_Command2.new(369, @groups_names[@pers_ids[@grupo_window.index]])
@equips_window.x = 170
@equips_window.y = 5
@grupo_window.active = false
desactive_options
end
end
def desactive_options
@troc = []
@icon_window = Window_Icon.new
@icon_window.opacity = 0
x = 0
y = -24
id = @pers_ids[@grupo_window.index]
for a in 0...@groups_ids[id].size
v = @groups_value[id][a]
if v == nil
v = 0
end
if $game_party.gold < v
@equips_window.draw_item(a, false)
@troc[a] = false
else
@troc[a] = true
end
y = y + 24
icon = @groups_icons[id][a]
@icon_window.draw_icon(icon, x, y, @troc[a])
@icon_window.draw_currency_value(@groups_value[id][a].to_s, x + 250, y, 80, @troc[a])
end
end
def trocar
if @troc[@equips_window.index] == false
Sound.play_cancel
@confirm_window.visible = true
@equips_window.active = false
@confirm_window.contents.clear
@confirm_window.contents.draw_text(0, 0, 130, 24, "Vous n'avez pas")
@confirm_window.contents.draw_text(0, 24, 130, 24, "assez d'argent !")
else
@confirm_window.visible = true
@confirm_op_window.visible = true
@confirm_op_window.active = true
@equips_window.active = false
end
end
end
class Window_Confirm < Window_Base
def initialize
super (0, 0, 160, WLH * 2 + 32)
self.contents.draw_text(0, 0, 80, 24, "Confirmer ?")
end
end
class Window_Icon < Window_Base
def initialize
super (170, 5, 369, WLH * 14 + 32)
end
end
class Window_Command2 < Window_Selectable
attr_reader:commands
def initialize(width, commands)
super(0, 0, width, commands.size * WLH + 32, 32)
@commands = commands
@item_max = commands.size
refresh
self.index = 0
end
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
def draw_item(index, enabled = true)
rect = item_rect(index)
rect.x += 30
rect.width -= 8
self.contents.clear_rect(rect)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(rect, @commands[index])
end
end
class Window_Base < Window
def draw_currency_value(value, x, y, width, enabled = true)
cx = contents.text_size(Vocab::gold).width
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x, y, width-cx-2, WLH, value, 2)
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x, y, width, WLH, Vocab::gold, 2)
end
end
Faites un appel de script comme suivant :
$scene = Scene_Magics.new
Balises corrigées
- Namor41Membre
- Nombre de messages : 57
Age : 58
Localisation : Canada (Québec)
Distinction : aucune
Date d'inscription : 10/05/2008
Sa semble intéressant...
Dim 29 Juin 2008 - 20:44
Bonjour,
Se script semble intéressant...j'aimerais un peut plus d'explication, mais bon.
Merci
Se script semble intéressant...j'aimerais un peut plus d'explication, mais bon.
Merci
Re: Magasin de sorts !
Dim 29 Juin 2008 - 21:07
Bah par exemple tu fais un evénement qui appelle ce script.
Tu fais tout tes sorts dans ta base de données, etc ...
Et après bah tu vas voir l'événement dans le jeu, et elle te vend les sorts. Tu peux le modifier dans le script, avec le script et tout.
Si tu veux plus d'infos, dis le moi !
Tu fais tout tes sorts dans ta base de données, etc ...
Et après bah tu vas voir l'événement dans le jeu, et elle te vend les sorts. Tu peux le modifier dans le script, avec le script et tout.
Si tu veux plus d'infos, dis le moi !
- Thierry T.Membre
- Nombre de messages : 664
Age : 29
Localisation : Marseille (13).
Distinction : questionneur à répétition
Date d'inscription : 01/03/2008
Re: Magasin de sorts !
Dim 29 Juin 2008 - 21:23
JSalut !! J'aime bien,ça peut toujours servir.
Je le traduirais plus tard.^^
Je le traduirais plus tard.^^
- loolou78Membre
- Nombre de messages : 5
Distinction : aucune
Date d'inscription : 27/06/2008
Re: Magasin de sorts !
Dim 29 Juin 2008 - 21:25
j'adore ce script, il est vraiment excellent.
J'ai traduit les commentaires du script et ajouté des explications pour le configurer.
J'ai traduit les commentaires du script et ajouté des explications pour le configurer.
- Spoiler:
- ###########################################################
################### Boutique de compétences ######################
#### V 1.0.0 ##############################################
################################### Por: lb_guilherme #####
###########################################################
##########Traduit par Douk#######################################
#Commentaires traduits par loolou78############################
#Pour appeller la boutique de compétences créez un nouveau événement
#ensuite insérez ce script: $scene=Scene_Magics.new
###########################################################
module Refiner
Grupos_mags = []
Grupos_g = []
# ----------------------------------------------------
# Si vous voulez ajouter d'autres personnages à la boutique de sort
# suivez le modèle suivant:
#Grupos_mags[ID du héros] = [ids des compétences]
# Pour connaitre les IDs des compétences reférez-vous à l'onglet
# Aptitudes de la base de données.
# Le nombre maximal de compétences que peut avoir chaque personnage est de 15
Grupos_mags[1] = [1,2,3,4,5]
Grupos_mags[2] = [6,7,8,9,10]
Grupos_mags[3] = [11,12,13]
Grupos_mags[4] = [14,15,16,17,18,19,20,21,22,23]
# ----------------------------------------------------
# Utilisez le modèle suivant pour ajouter d'autres personnages:
# Grupos_g[ID du héros] = [Prix]
# Vous Devez suivre le meme ordre des compétences dans "Grupos_mags".
Grupos_g[1] = [5000,500,500,500,500]
Grupos_g[2] = [500,500,5000,500,500]
Grupos_g[3] = [500,500,5000]
Grupos_g[4] = [500,500,500,500,500,500,500,500,500,500]
# ---------------------------------------------------- #
# Fin de la configuration, passage au script #
# ---------------------------------------------------- #
end
class Game_Party < Game_Unit
attr_reader:actors
end
class Scene_Magics < Scene_Base
def start
super
create_menu_background
start_vars
@grupo_window = Window_Command.new(160, @pers_names)
@grupo_window.x = 5
@grupo_window.y = 5
@gold_window = Window_Gold.new(5,(@pers_names.size * 24 + 42))
@equips_window = Window_Command.new(160, [""])
@equips_window.visible = false
@equips_window.active = false
@confirm_window = Window_Confirm.new
@confirm_window.x = 5
@confirm_window.y = 331
@confirm_op_window = Window_Command.new(75, ["Oui","Non"])
@confirm_op_window.x = 90
@confirm_op_window.y = 331
@confirm_op_window.opacity = 0
@confirm_window.visible = false
@confirm_op_window.visible = false
@confirm_op_window.active = false
@confirm_op_window.index = 1
end
def start_vars
@groups_names = []
@groups_icons = []
@groups_value = []
@groups_ids = []
@pers_names = []
@pers_ids = []
for a in 0...$game_party.members.size
b = $game_party.actors[a]
@groups_names[b] = []
@groups_icons[b] = []
@groups_value[b] = []
@groups_ids[b] = []
@pers_names[a] = $data_actors[b].name
@pers_ids[a] = b
for i in 0...Refiner::Grupos_mags[b].size
id = Refiner::Grupos_mags[b][i]
@groups_names[b][i] = $data_skills[id].name
@groups_icons[b][i] = $data_skills[id].icon_index
@groups_value[b][i] = Refiner::Grupos_g[b][i]
@groups_ids[b][i] = id
end
end
end
def terminate
super
dispose_menu_background
@equips_window.dispose
@grupo_window.dispose
@confirm_op_window.dispose
@confirm_window.dispose
@gold_window.dispose
end
def update
super
update_menu_background
@equips_window.update
@grupo_window.update
@gold_window.update
@confirm_op_window.update
@confirm_window.update
if @grupo_window.active == true
grupo_update
elsif @equips_window.active == true
equips_update
elsif @confirm_window.visible == true
confirm_update
end
end
def confirm_update
if Input.trigger?(Input::B)
Sound.play_cancel
un_active
elsif Input.trigger?(Input::C)
case @confirm_op_window.index
when 0
Sound.play_decision
refinar
un_active
@icon_window.dispose
desactive_options
@confirm_op_window.index = 1
when 1
Sound.play_cancel
un_active
end
end
end
def refinar
per = @pers_ids[@grupo_window.index]
$game_party.lose_gold(@groups_value[per][@equips_window.index])
$game_actors[per].learn_skill(@groups_ids[per][@equips_window.index])
@gold_window.refresh
end
def un_active
@confirm_window.visible = false
@confirm_op_window.visible = false
@confirm_op_window.active = false
@equips_window.active = true
@confirm_window.contents.clear
@confirm_window.contents.draw_text(0, 0, 80, 24, "Confirmer ?")
end
def equips_update
if Input.trigger?(Input::B)
Sound.play_cancel
@equips_window.visible = false
@equips_window.active = false
@grupo_window.active = true
@icon_window.dispose
end
if Input.trigger?(Input::C)
Sound.play_decision
trocar
end
end
def grupo_update
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
Sound.play_decision
@equips_window.dispose
@equips_window = Window_Command2.new(369, @groups_names[@pers_ids[@grupo_window.index]])
@equips_window.x = 170
@equips_window.y = 5
@grupo_window.active = false
desactive_options
end
end
def desactive_options
@troc = []
@icon_window = Window_Icon.new
@icon_window.opacity = 0
x = 0
y = -24
id = @pers_ids[@grupo_window.index]
for a in 0...@groups_ids[id].size
v = @groups_value[id][a]
if v == nil
v = 0
end
if $game_party.gold < v
@equips_window.draw_item(a, false)
@troc[a] = false
else
@troc[a] = true
end
y = y + 24
icon = @groups_icons[id][a]
@icon_window.draw_icon(icon, x, y, @troc[a])
@icon_window.draw_currency_value(@groups_value[id][a].to_s, x + 250, y, 80, @troc[a])
end
end
def trocar
if @troc[@equips_window.index] == false
Sound.play_cancel
@confirm_window.visible = true
@equips_window.active = false
@confirm_window.contents.clear
@confirm_window.contents.draw_text(0, 0, 130, 24, "Vous n'avez pas")
@confirm_window.contents.draw_text(0, 24, 130, 24, "assez d'argent !")
else
@confirm_window.visible = true
@confirm_op_window.visible = true
@confirm_op_window.active = true
@equips_window.active = false
end
end
end
class Window_Confirm < Window_Base
def initialize
super (0, 0, 160, WLH * 2 + 32)
self.contents.draw_text(0, 0, 80, 24, "Confirmer ?")
end
end
class Window_Icon < Window_Base
def initialize
super (170, 5, 369, WLH * 14 + 32)
end
end
class Window_Command2 < Window_Selectable
attr_reader:commands
def initialize(width, commands)
super(0, 0, width, commands.size * WLH + 32, 32)
@commands = commands
@item_max = commands.size
refresh
self.index = 0
end
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
def draw_item(index, enabled = true)
rect = item_rect(index)
rect.x += 30
rect.width -= 8
self.contents.clear_rect(rect)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(rect, @commands[index])
end
end
class Window_Base < Window
def draw_currency_value(value, x, y, width, enabled = true)
cx = contents.text_size(Vocab::gold).width
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x, y, width-cx-2, WLH, value, 2)
self.contents.font.color = system_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x, y, width, WLH, Vocab::gold, 2)
end
end
Re: Magasin de sorts !
Dim 29 Juin 2008 - 22:04
Merci loulou !
J'édit plus tard je dois y aller.
J'édit plus tard je dois y aller.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum