- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Besoin d'une toute petite amélioration sur un script
Sam 2 Jan 2016 - 21:53
Re coucou, j'aurais besoin d'avoir une petite modification de script pour améliorer un message en fin de combat. J'utilise le Skill mastery de NewMaker pour faire évoluer mes skills et en apprendre de nouveaux. Au bout d'une certaine quantité de points acquis à force d'utiliser ces sorts, j'apprends de nouveaux skills et un message en fin de combat s'affiche. Actuellement, ça me met juste "Sort appris". Je souhaiterai que le message devienne "Sort appris par le personnage en question". Mais je ne sais pas comment m'y prendre. Quelqu'un peut-il m'aider ?
Le script est ici :
Le script est ici :
- Code:
# ==============================================================================
# Skill_Mastery
#
# Auteur: NewMaker
# Version: 1.6
# Description: Permet d'ajouter un attribut aux compétence (le niveau de
# maîtrise de la compétence).
#
# Crédits:
# - Joke (qui a énormément aidé)
# - Celestiel (pour quelques infos utiles)
# - Zangther (pour quelques infos utiles)
# - Vincent26 (pour la mise à jour du script)
# ==============================================================================
# Fonctionnement de la configuration :
# XX => [[YY, ZZ, true or false]],
# XX = ID du skill à améliorer
# YY = ID du skill à obtenir à partir du skill XX
# ZZ = Nombre de fois que le skill XX doit être utilisé avant de débloquer
# le skill YY
# true or false = true : le skill XX sera supprimé une fois le skill YY obtenu
# false : le skill XX sera conservé une fois le skill YY obtenu
module SkillsToUpgrade
SKILL_LIST = Hash.new(0)
SKILL_LIST = {
25 => [[26, 30, false]],
26 => [[27, 80, false]],
27 => [[28, 100, false]],
29 => [[30, 30, false]],
33 => [[34, 30, false]],
51 => [[53, 50, false],[52, 80, false]],
52 => [[54, 100, false]],
55 => [[57, 50, false],[56, 80, false]],
56 => [[58, 100, false]],
59 => [[61, 50, false],[60, 80, false]],
60 => [[62, 100, false]],
63 => [[64, 100, false]],
65 => [[66, 100, false]],
67 => [[68, 100, false]],
69 => [[70, 75, false]],
71 => [[72, 75, false]],
73 => [[74, 25, false],[75, 50, false]],
75 => [[79, 100, false]]
}
end
# ------------------------------------------------------
# Ne rien mettre entre les guillemets de nsm, si vous voulez que
# rien ne s'affiche quand une compétence ne demande pas de points de maîtrise.
# ------------------------------------------------------
module Vocab
def self.sm; ""; end
def self.nsm; "-/-"; end
end
module BattleManager
class << self
# ------------------------------------------------------
# alias
# ------------------------------------------------------
alias :old_gain_exp :gain_exp
alias :old_process_abort :process_abort
# ------------------------------------------------------
# appel d'update_skills après la victoire
# ------------------------------------------------------
def gain_exp
update_skills
old_gain_exp
end
# ------------------------------------------------------
# appel d'update_skills après la fuite
# ------------------------------------------------------
def process_abort
update_skills
old_process_abort
end
# ------------------------------------------------------
# méthode update_skills pour tous les membres de l'équipe
# ------------------------------------------------------
def update_skills
$game_party.all_members.each do |actor|
actor.upgrade_skills
end
wait_for_message
end
end
end
class Game_Actor
include SkillsToUpgrade
# ------------------------------------------------------
# Alias et accesseurs
# ------------------------------------------------------
attr_accessor :skill_mastery
alias :old_init_skills :init_skills
alias :old_learn_skill :learn_skill
alias :old_forget_skill :forget_skill
# ------------------------------------------------------
# méthode pour l'utilisation d'une compétence
# ------------------------------------------------------
def use_item(item)
super
if item.is_a?(RPG::Skill)
upgrade_skill_mastery(item.id) if SceneManager.scene_is?(Scene_Battle)
end
end
# ------------------------------------------------------
# initialisation du Hash
# ------------------------------------------------------
def init_skills
@skill_mastery = Hash.new(0)
old_init_skills
end
# ------------------------------------------------------
# la nouvelle compétence prend 0 en niveau de maitrise
# ------------------------------------------------------
def learn_skill(skill_id)
unless skill_learn?($data_skills[skill_id])
@skill_mastery[skill_id] = 0
end
old_learn_skill(skill_id)
end
# ------------------------------------------------------
# suppresion de la clé de l'ancienne compétence
# ------------------------------------------------------
def forget_skill(skill_id)
@skill_mastery.delete(skill_id)
old_forget_skill(skill_id)
end
# ------------------------------------------------------
# permet d'augmenter de 1 la maitrise d'une compétence
# ------------------------------------------------------
def upgrade_skill_mastery(skill_id)
if SKILL_LIST[skill_id]
value = 0
for up in SKILL_LIST[skill_id]
value = up[1] if up[1] > value
end
if @skill_mastery[skill_id] < value
@skill_mastery[skill_id] += 1
end
end
end
# ------------------------------------------------------
# permet d'évoluer une compétence
# ------------------------------------------------------
def upgrade_skill(old_skill_id, new_skills_id,forget)
forget_skill(old_skill_id) if forget
$game_message.new_page
new_skills_id.each do |skill_id|
learn_skill(skill_id)
$game_message.add(sprintf(Vocab::ObtainSkill,
$data_skills[skill_id].name))
end
end
# ------------------------------------------------------
# évolue les compétences
# ------------------------------------------------------
def upgrade_skills
SKILL_LIST.each do |skill, upgrade|
ok = false
result = []
for up in upgrade
if @skill_mastery[skill] && @skill_mastery[skill] >= up[1] && !skill_learn?($data_skills[up[0]])
result.push(up[0])
ok = true if up[2]
end
end
upgrade_skill(skill, result,ok) if result != []
end
end
end
class Window_SkillList
include SkillsToUpgrade
alias :old_initialize :initialize
def initialize(x, y, width, height)
@mastery_or_cost = false
old_initialize(x, y, width, height)
end
# ------------------------------------------------------
# affichage des stats
# ------------------------------------------------------
alias nerylis_draw_skill_cost draw_skill_cost
def draw_skill_cost(rect, skill)
if @mastery_or_cost
change_color(crisis_color, enable?(skill))
if SKILL_LIST[skill.id]
if @actor.skill_tp_cost(skill) > 0
value = @actor.skill_mastery[skill.id]
for up in SKILL_LIST[skill.id]
if value < up[1]
value = up[1]
break
end
end
draw_text(rect, "#{Vocab.sm} #{@actor.skill_mastery[skill.id]}/\
#{value}", 2)
elsif @actor.skill_mp_cost(skill) > 0
value = @actor.skill_mastery[skill.id]
for up in SKILL_LIST[skill.id]
if value < up[1]
value = up[1]
break
end
end
draw_text(rect, "#{Vocab.sm} #{@actor.skill_mastery[skill.id]}/\
#{value}", 2)
end
else
draw_text(rect, "#{Vocab.nsm}", 2)
end
else
if !$imported["YEA-SkillCostManager"]
if @actor.skill_tp_cost(skill) > 0
change_color(tp_cost_color, enable?(skill))
draw_text(rect, "#{@actor.skill_tp_cost(skill)}", 2)
elsif @actor.skill_mp_cost(skill) > 0
change_color(mp_cost_color, enable?(skill))
draw_text(rect, "#{@actor.skill_mp_cost(skill)}", 2)
end
else
nerylis_draw_skill_cost(rect, skill)
end
end
end
# ------------------------------------------------------
# changement de l'affichage si la touche majuscule est pressée
# ------------------------------------------------------
def process_handling
super
return process_costormastery if Input.trigger?(:SHIFT) && self.visible
end
# ------------------------------------------------------
# change l'affichage points de maitrise ou cout en mana
# ------------------------------------------------------
def process_costormastery
Sound.play_cursor; Input.update
@mastery_or_cost ? @mastery_or_cost = false : @mastery_or_cost = true
create_contents
draw_all_items
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Besoin d'une toute petite amélioration sur un script
Lun 11 Jan 2016 - 20:12
Petit up
Re: Besoin d'une toute petite amélioration sur un script
Lun 11 Jan 2016 - 21:04
Alors, j'ai pas VxAce sous le coude, mais essaye cette modification :
- Code:
# ==============================================================================
# Skill_Mastery
#
# Auteur: NewMaker
# Version: 1.6
# Description: Permet d'ajouter un attribut aux compétence (le niveau de
# maîtrise de la compétence).
#
# Crédits:
# - Joke (qui a énormément aidé)
# - Celestiel (pour quelques infos utiles)
# - Zangther (pour quelques infos utiles)
# - Vincent26 (pour la mise à jour du script)
# ==============================================================================
# Fonctionnement de la configuration :
# XX => [[YY, ZZ, true or false]],
# XX = ID du skill à améliorer
# YY = ID du skill à obtenir à partir du skill XX
# ZZ = Nombre de fois que le skill XX doit être utilisé avant de débloquer
# le skill YY
# true or false = true : le skill XX sera supprimé une fois le skill YY obtenu
# false : le skill XX sera conservé une fois le skill YY obtenu
module SkillsToUpgrade
SKILL_LIST = Hash.new(0)
SKILL_LIST = {
25 => [[26, 30, false]],
26 => [[27, 80, false]],
27 => [[28, 100, false]],
29 => [[30, 30, false]],
33 => [[34, 30, false]],
51 => [[53, 50, false],[52, 80, false]],
52 => [[54, 100, false]],
55 => [[57, 50, false],[56, 80, false]],
56 => [[58, 100, false]],
59 => [[61, 50, false],[60, 80, false]],
60 => [[62, 100, false]],
63 => [[64, 100, false]],
65 => [[66, 100, false]],
67 => [[68, 100, false]],
69 => [[70, 75, false]],
71 => [[72, 75, false]],
73 => [[74, 25, false],[75, 50, false]],
75 => [[79, 100, false]]
}
end
# ------------------------------------------------------
# Ne rien mettre entre les guillemets de nsm, si vous voulez que
# rien ne s'affiche quand une compétence ne demande pas de points de maîtrise.
# ------------------------------------------------------
module Vocab
def self.sm; ""; end
def self.nsm; "-/-"; end
end
module BattleManager
class << self
# ------------------------------------------------------
# alias
# ------------------------------------------------------
alias :old_gain_exp :gain_exp
alias :old_process_abort :process_abort
# ------------------------------------------------------
# appel d'update_skills après la victoire
# ------------------------------------------------------
def gain_exp
update_skills
old_gain_exp
end
# ------------------------------------------------------
# appel d'update_skills après la fuite
# ------------------------------------------------------
def process_abort
update_skills
old_process_abort
end
# ------------------------------------------------------
# méthode update_skills pour tous les membres de l'équipe
# ------------------------------------------------------
def update_skills
$game_party.all_members.each do |actor|
actor.upgrade_skills
end
wait_for_message
end
end
end
class Game_Actor
include SkillsToUpgrade
# ------------------------------------------------------
# Alias et accesseurs
# ------------------------------------------------------
attr_accessor :skill_mastery
alias :old_init_skills :init_skills
alias :old_learn_skill :learn_skill
alias :old_forget_skill :forget_skill
# ------------------------------------------------------
# méthode pour l'utilisation d'une compétence
# ------------------------------------------------------
def use_item(item)
super
if item.is_a?(RPG::Skill)
upgrade_skill_mastery(item.id) if SceneManager.scene_is?(Scene_Battle)
end
end
# ------------------------------------------------------
# initialisation du Hash
# ------------------------------------------------------
def init_skills
@skill_mastery = Hash.new(0)
old_init_skills
end
# ------------------------------------------------------
# la nouvelle compétence prend 0 en niveau de maitrise
# ------------------------------------------------------
def learn_skill(skill_id)
unless skill_learn?($data_skills[skill_id])
@skill_mastery[skill_id] = 0
end
old_learn_skill(skill_id)
end
# ------------------------------------------------------
# suppresion de la clé de l'ancienne compétence
# ------------------------------------------------------
def forget_skill(skill_id)
@skill_mastery.delete(skill_id)
old_forget_skill(skill_id)
end
# ------------------------------------------------------
# permet d'augmenter de 1 la maitrise d'une compétence
# ------------------------------------------------------
def upgrade_skill_mastery(skill_id)
if SKILL_LIST[skill_id]
value = 0
for up in SKILL_LIST[skill_id]
value = up[1] if up[1] > value
end
if @skill_mastery[skill_id] < value
@skill_mastery[skill_id] += 1
end
end
end
# ------------------------------------------------------
# permet d'évoluer une compétence
# ------------------------------------------------------
def upgrade_skill(old_skill_id, new_skills_id,forget)
forget_skill(old_skill_id) if forget
$game_message.new_page
new_skills_id.each do |skill_id|
learn_skill(skill_id)
$game_message.add(sprintf(@name + " : " + Vocab::ObtainSkill,
$data_skills[skill_id].name))
end
end
# ------------------------------------------------------
# évolue les compétences
# ------------------------------------------------------
def upgrade_skills
SKILL_LIST.each do |skill, upgrade|
ok = false
result = []
for up in upgrade
if @skill_mastery[skill] && @skill_mastery[skill] >= up[1] && !skill_learn?($data_skills[up[0]])
result.push(up[0])
ok = true if up[2]
end
end
upgrade_skill(skill, result,ok) if result != []
end
end
end
class Window_SkillList
include SkillsToUpgrade
alias :old_initialize :initialize
def initialize(x, y, width, height)
@mastery_or_cost = false
old_initialize(x, y, width, height)
end
# ------------------------------------------------------
# affichage des stats
# ------------------------------------------------------
alias nerylis_draw_skill_cost draw_skill_cost
def draw_skill_cost(rect, skill)
if @mastery_or_cost
change_color(crisis_color, enable?(skill))
if SKILL_LIST[skill.id]
if @actor.skill_tp_cost(skill) > 0
value = @actor.skill_mastery[skill.id]
for up in SKILL_LIST[skill.id]
if value < up[1]
value = up[1]
break
end
end
draw_text(rect, "#{Vocab.sm} #{@actor.skill_mastery[skill.id]}/\
#{value}", 2)
elsif @actor.skill_mp_cost(skill) > 0
value = @actor.skill_mastery[skill.id]
for up in SKILL_LIST[skill.id]
if value < up[1]
value = up[1]
break
end
end
draw_text(rect, "#{Vocab.sm} #{@actor.skill_mastery[skill.id]}/\
#{value}", 2)
end
else
draw_text(rect, "#{Vocab.nsm}", 2)
end
else
if !$imported["YEA-SkillCostManager"]
if @actor.skill_tp_cost(skill) > 0
change_color(tp_cost_color, enable?(skill))
draw_text(rect, "#{@actor.skill_tp_cost(skill)}", 2)
elsif @actor.skill_mp_cost(skill) > 0
change_color(mp_cost_color, enable?(skill))
draw_text(rect, "#{@actor.skill_mp_cost(skill)}", 2)
end
else
nerylis_draw_skill_cost(rect, skill)
end
end
end
# ------------------------------------------------------
# changement de l'affichage si la touche majuscule est pressée
# ------------------------------------------------------
def process_handling
super
return process_costormastery if Input.trigger?(:SHIFT) && self.visible
end
# ------------------------------------------------------
# change l'affichage points de maitrise ou cout en mana
# ------------------------------------------------------
def process_costormastery
Sound.play_cursor; Input.update
@mastery_or_cost ? @mastery_or_cost = false : @mastery_or_cost = true
create_contents
draw_all_items
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Besoin d'une toute petite amélioration sur un script
Mar 12 Jan 2016 - 17:59
C'est presque ça. Là actuellement, ça donne "Perso : Sort appris." J'ai voulu modifier l'ordre des termes pour obtenir "Sort appris par Perso" mais je ne comprends pas où est géré le terme "appris". Tu peux m'orienter s'il te plaît ?
Edit : C'est bon, j'ai trouvé. J'ai enlevé le lien vers le module Vocab et mis à jour le message en fin de combat lorsque j'apprends un nouveau skill. Merci pour ton aide.
Edit : C'est bon, j'ai trouvé. J'ai enlevé le lien vers le module Vocab et mis à jour le message en fin de combat lorsque j'apprends un nouveau skill. Merci pour ton aide.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|