Partagez
Aller en bas
NewMaker
NewMaker
Membre

Nombre de messages : 42
Localisation : Lunéville/Lorraine/France/Europe/Terre/Système Solaire
Distinction : aucune
Date d'inscription : 18/12/2014

[NMScript]: Skill_Mastery v1 Empty [NMScript]: Skill_Mastery v1

le Mer 31 Déc 2014 - 3:02
Coucou,

Auteur: NewMaker
Nom du script: Skill_Mastery
Version: 1.6

Description: Voilà un petit script qui permet d'avoir un niveau de maîtrise sur ses compétences.
Une fois qu'un skill est complètement maîtrisé le transforme en un autre:
Crédits:
-Joke (c'est lui le patron)
-Celestiel
-Zangther

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)
# ==============================================================================

module SkillsToUpgrade
  
  SKILL_LIST = Hash.new(0)
  SKILL_LIST = {
    26 => [[27], 2],
    27 => [[28], 2]
  }
  
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;          "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]
      if @skill_mastery[skill_id] < SKILL_LIST[skill_id][1]
        @skill_mastery[skill_id] += 1
      end
    end
  end
  # ------------------------------------------------------
  # permet d'évoluer une compétence
  # ------------------------------------------------------
  def upgrade_skill(old_skill_id, new_skills_id)
    forget_skill(old_skill_id)
    $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|
      if @skill_mastery[skill] && @skill_mastery[skill] >= upgrade[1]
        upgrade_skill(skill, upgrade[0])
      end
    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
  # ------------------------------------------------------
  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
          draw_text(rect, "#{Vocab.sm}: #{@actor.skill_mastery[skill.id]}/\
#{SKILL_LIST[skill.id][1]}", 2)
        elsif @actor.skill_mp_cost(skill) > 0
          draw_text(rect, "#{Vocab.sm}: #{@actor.skill_mastery[skill.id]}/\
#{SKILL_LIST[skill.id][1]}", 2)
        end
      else
        draw_text(rect, "#{Vocab.nsm}", 2)
      end
    else
      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
    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
    refresh
  end
  
end

Voilà, voilà; bon making.


+5 Points


Dernière édition par NewMaker le Ven 9 Jan 2015 - 18:41, édité 14 fois
Heaven
Heaven
Staffeux retraité

Nombre de messages : 2451
Age : 18
Localisation : Alpes-Maritimes VIRILITÉ OLALA
Distinction : Aucune
Date d'inscription : 18/10/2012

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Mer 31 Déc 2014 - 10:35
Merci du partage, +5 points^^



Heav'n
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Mer 31 Déc 2014 - 16:45
Comme dit dans mon sujet, c'est pas mal comme script mais il faudrait pouvoir avoir un nombre de points différent à avoir pour apprendre de nouveaux skills.

Une autre chose aussi : serait-il possible d'avoir un message en fin de combat nous informant que notre skill a été upgradé ?
NewMaker
NewMaker
Membre

Nombre de messages : 42
Localisation : Lunéville/Lorraine/France/Europe/Terre/Système Solaire
Distinction : aucune
Date d'inscription : 18/12/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Jeu 1 Jan 2015 - 0:02
Script mis à jour.

On peut maintenant définir à partir de combien de points de maîtrise on évolue la compétence.
J'ai mis le message en fin de combat. S'il y a encore des bugs merci de me prévenir.
Je compte ajouter toute une interface pour suivre l'évolution de ses compétences (activable ou non)

Bonne année les gens.
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Jeu 1 Jan 2015 - 18:53
Une petite interface serait intéressante effectivement. En tout cas, j'ai testé ton script, ça marche à merveille.

Bonne année à toi aussi ! Smile
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Sam 3 Jan 2015 - 13:36
Re, petit souci : j'ai voulu me faire en quelque sorte un arbre de skill. J'ai voulu faire en sorte qu'un skill puisse être upgradé et également débloquer un nouveau skill. En gros, une fois que mon skill 1 (Niv1) a été utilisé 20 fois, il débloque skill 1 (Niv2) et skill 2 (Niv1). Sauf que ça marche pas. Ton script ne prend en compte que la ligne la plus bas su Skill list.
NewMaker
NewMaker
Membre

Nombre de messages : 42
Localisation : Lunéville/Lorraine/France/Europe/Terre/Système Solaire
Distinction : aucune
Date d'inscription : 18/12/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Sam 3 Jan 2015 - 16:23
Non, c'est normal; étant donné que le script fait la chose suivante.
Une fois que le skill A a été maîtrisé; ça "l'enlève" et "ajoute" un autre skill à la place.
Donc quand tu met une deuxième commande ça va prendre la plus basse.
Je vais essayer d'y remédier.

Edit: Code modifié, tu peux maintenant apprendre plusieurs compétences à partir d'une
compétence maîtrisée.
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Sam 3 Jan 2015 - 20:29
J'ai testé, pour apprendre 2 ou 3 nouveaux skills, ça marche.

Encore un truc, tu vas dire que je suis chiant mais bon.^^

J'aimerai apprendre deux nouveaux skills mais à des moments différents.

Exemple : J'ai un skill A. Lorsque je l'utilise 10 fois, je débloque un nouveau skill B. Et quand le skill A a été utilisé 20 fois, je débloque un nouveau skill C (sachant que si ce dernier skill C est un upgrade du skill A, on peut supprimer le skill A).
NewMaker
NewMaker
Membre

Nombre de messages : 42
Localisation : Lunéville/Lorraine/France/Europe/Terre/Système Solaire
Distinction : aucune
Date d'inscription : 18/12/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Sam 3 Jan 2015 - 22:00
Compris, j'ajouterai ça aux options. en attendant voilà la version 1.4 qui corrige un bug.
Quand tu utilise une compétences tu augmente la maîtrise de cette dernière; mais s'il
arrivait de fuir un combat l'évolution ne se faisait pas.
Je vais essayer de voir aussi si les compétences comme soin peuvent ne pas être améliorées
depuis le menu des skills.

Edit: j'ai fait une erreur; là on peut apprendre deux compétences en même temps à partir
d'une seule mais on peut pas les apprendre à intervalle différent. Je vais voir ce que je peux faire.

Edit2: Je retire ce que j'ai dit, il y a même pas besoin de modifier le script sur ce coup là.
Exemple: Je veux que soin donne soin 2 quand c'est à 10 points de maîtrise et soin 3 quand c'est à 20 points de maîtrise.
Je copie la compétence soin dans la bdd pour en avoir deux et j'écris dans le script
SKILL_LIST = {
   26 => [[127, 27], 10],                      # quand soin sera à 10 ça va apprendre la copie de soin (127) et soin 2 (27)
   127 => [[28], 10]                             # quand la copie de soin sera à 10 ça va apprendre soin 3 (28)
 }
Me reste plus qu'à modifier le fait qu'on puisse utiliser les compétences comme soin depuis le menu.
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Dim 4 Jan 2015 - 22:04
Bien vu, je n'avais pas pensé à ça.
Brandobscure
Brandobscure
Membre

Nombre de messages : 531
Age : 23
Localisation : Belgique
Distinction : aucune
Date d'inscription : 03/01/2011

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Jeu 8 Jan 2015 - 21:05
Ah c'est intéressant ça, j'en aie un pour La Princesse Oubliée de Formar'
mais il ne prévient pas quand un skill à UP où combien de fois on l'a utilisé,
je pense peut-être prendre le tien du coup. Smile
Merci !
NewMaker
NewMaker
Membre

Nombre de messages : 42
Localisation : Lunéville/Lorraine/France/Europe/Terre/Système Solaire
Distinction : aucune
Date d'inscription : 18/12/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Jeu 8 Jan 2015 - 23:29
Coucou;

Ça y est j'ai ajouté deux trois lignes. On ne peut plus augmenter les compétences
comme soin depuis le menu par exemple.
Dans le menu des compétences il suffit d'appuyer sur shift pour afficher les points
de maîtrise. Si tu vois d'autres choses à modifier n'hésite pas.
De rien brandobscure, c'est fait pour ça.
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Ven 9 Jan 2015 - 15:19
Je viens de tester, il y a des soucis.

- J'ai essayé ta technique pour apprendre plusieurs skills à partir d'un skill (l'Edit 2 de ton message ci-dessus). Cela cause un problème au niveau de ton script (ligne 140 je crois de tête).
- Le fait que les sorts comme Soin ne soient pas améliorables via le menu n'est pas logique (après, les sorts sont bel et bien utilisés). Je n'avais pas testé ça à l'époque mais est-il possible de faire quelque chose à ce sujet ?
- Le texte qui apparaît avec les MP que coûtent les skills dans le menu Compétences est-il nécessaire ? Je préfèrerai que cela reste tel que c'était à l'origine (juste le nombre de MP) et garder ce que tu as fait pour afficher le nombre de points nécessaires pour avoir l'upgrade des skills.
Mehukatti
Mehukatti
Membre

Nombre de messages : 8
Age : 26
Localisation : Belgique
Distinction : aucune
Date d'inscription : 26/12/2012

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Ven 9 Jan 2015 - 17:29
Hellow !

J'ai un petit souci concernant le mod, j'utilise le script "MOG_Battle_Result" et lorsque j'utilise deux la compétence (Ce que j'ai préciser dans le script), ma compétence n'évoluent pas, même après plusieurs tentatives et changement dans le script.

Et je me demandais si ce n'étais pas dû à mon script de "Battle résult" que mes compétences n'évoluent pas.

Si oui, y a-t-il une solution ? Si non, d'où vient le problème ?

D'avance, merci.
NewMaker
NewMaker
Membre

Nombre de messages : 42
Localisation : Lunéville/Lorraine/France/Europe/Terre/Système Solaire
Distinction : aucune
Date d'inscription : 18/12/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Sam 10 Jan 2015 - 4:29
Salut,

J'ai vérifié et non le script n'est pas compatible. Le problème viens qu'il modifie la méthode
process_victory du module BattleManager sans utiliser d'alias alors que je m'en sers aussi
indirectement. J'appelle la méthode gain_exp qui elle même est appelée dans process_victory.
Zangther
Zangther
Membre

Nombre de messages : 913
Distinction : aucune
Date d'inscription : 06/02/2013

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Sam 10 Jan 2015 - 10:52
Hum, peut être en mettant ce script là après le script tout pourri de MOG ?
Normalement, ça devrait mieux marcher.
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Mer 14 Jan 2015 - 18:30
Je rebondis sur ce point :

@NewMaker a écrit:

Edit2: Je retire ce que j'ai dit, il y a même pas besoin de modifier le script sur ce coup là.
Exemple: Je veux que soin donne soin 2 quand c'est à 10 points de maîtrise et soin 3 quand c'est à 20 points de maîtrise.
Je copie la compétence soin dans la bdd pour en avoir deux et j'écris dans le script
SKILL_LIST = {
   26 => [[127, 27], 10],                      # quand soin sera à 10 ça va apprendre la copie de soin (127) et soin 2 (27)
   127 => [[28], 10]                             # quand la copie de soin sera à 10 ça va apprendre soin 3 (28)
 }
Me reste plus qu'à modifier le fait qu'on puisse utiliser les compétences comme soin depuis le menu.

Le problème, c'est qu'on va avoir le message comme quoi on apprend un sort qu'on a déjà (la copie du sort). C'est un peu gênant.
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Mar 20 Jan 2015 - 19:51
Up
Nérylis
Nérylis
Membre

Nombre de messages : 612
Age : 30
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Lun 26 Jan 2015 - 22:17
Script modifié par vincent26 que je remercie encore une fois.

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)
# ==============================================================================

module SkillsToUpgrade
 
 SKILL_LIST = Hash.new(0)
 SKILL_LIST = {
   53 => [[77, 2,false],[78,4,true]],
   27 => [[28, 2, true]]
 }
 
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;          "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
 # ------------------------------------------------------
 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 @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
   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
   refresh
 end
 
end

On peut à présent apprendre plusieurs skills à partir d'un seul existant.

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

Exemple :

module SkillsToUpgrade
 
 SKILL_LIST = Hash.new(0)
 SKILL_LIST = {
   26 => [[27, 10, false],[28, 30, true]]
 }
 
Soin + (ID 27) appris une fois Soin (ID 26) lancé 10 fois (ce skill est conservé)
Soin Max (ID 28) appris une fois Soin (ID 26) lancé 30 fois (ce skill sera supprimé)

A noter que le nombre de points ne se remet pas à 0 si vous avez passé la première étape. Pour reprendre l'exemple ci-dessus, une fois le skill Soin lancé 10 fois, il sera noté 10/30 pour apprendre Soin Max.

Pour les skills qu'on peut lancer depuis le menu, l'incrémentation ne se fait pas (cela n'est pas très logique mais ça évite d'avoir des skills qui montent trop rapidement).
reveurduciel
reveurduciel
Membre

Nombre de messages : 197
Date d'inscription : 18/12/2014

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Jeu 12 Fév 2015 - 0:44
Ça m'a l'air très bien ce script, je vais faire un essai Smile
Noob
Noob
Membre

Nombre de messages : 44
Age : 25
Distinction : aucune
Date d'inscription : 07/02/2015

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

le Jeu 12 Fév 2015 - 18:56
Je le conseille c'est plutôt pas mal.
Manque plus le script plus je tape plus je gagne en force
plus je fait de la magie plus je gagne de la magie
plus je perds des hp plus je gagne en hp

a la ffII quoi.


édit : je t'ai envoyé un mp pour des demandes de modifications
Contenu sponsorisé

[NMScript]: Skill_Mastery v1 Empty Re: [NMScript]: Skill_Mastery v1

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum