Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


 
AccueilSiteDernières imagesRechercherS'enregistrerConnexion
Le deal à ne pas rater :
Jeux, jouets et Lego : le deuxième à -50% (large sélection)
Voir le deal

 

 Apprentissage Skills via Equipements (FF9)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Auteur Message
Sh4k4
Chevalier d'or
Chevalier d'or
Sh4k4

Masculin Nombre de messages : 2836
Age : 36
Point(s) Fort(s) : Scripteur, Event-Maker, Aide
Point(s) Faible(s) : Athéna
Niveau RPG Maker : Elevé
Logiciel préféré : RMXP
Date d'inscription : 06/01/2007

Apprentissage Skills via Equipements (FF9) Vide
MessageSujet: Apprentissage Skills via Equipements (FF9)   Apprentissage Skills via Equipements (FF9) Icon_minitimeMer 25 Juin 2008 - 2:15

09/08 New: version 3, un bug corrigé. Reprenez le script.

Apprentissage des Skills par les equipements (FF9-like)




Auteur : Sh4k4


Description

Version 1
Permet d'attribuer aux equipements des compétences qui sont ainsi utilisables pour le héros equipé de l'equipement. Si l'equipement est retiré, le héros ne peut alors plus utiliser la compétence. Chaque compétence peut cependant être définitivement apprise, en effet chaque compétence dispose d'une jauge qui se rempli après les combats quand l'equipement correspondant est actuellement equipé. Ainsi, une fois la compétence définitivement apprise on ne perd plus la compétence lorsque on retire l'équipement. La jauge ne retombe pas à 0 si on retire l'equipement avant la fin, elle est sauvegardée et sera reprise au même niveau.

Ajouts version 2
Les compétences apprises par les niveaux et par les commandes evenement sont définitivement apprises et ne sont pas soumises aux points d'apprentissage.
Possibilité de définir dans les groupes de monstre le nombre de points que l'on gagne après le combat.

Interdiction de diffusion ailleurs sans mon accord, merci.

En cas de problèmes ou bugs, merci de me contacter directement par MP.

Sommaire

1. Scripts
1.2 Partie 1
1.3 Partie 2

2. Explications
3. Screenshots


Dernière édition par Sh4k4 le Mar 4 Nov 2008 - 1:56, édité 6 fois
Revenir en haut Aller en bas
Sh4k4
Chevalier d'or
Chevalier d'or
Sh4k4

Masculin Nombre de messages : 2836
Age : 36
Point(s) Fort(s) : Scripteur, Event-Maker, Aide
Point(s) Faible(s) : Athéna
Niveau RPG Maker : Elevé
Logiciel préféré : RMXP
Date d'inscription : 06/01/2007

Apprentissage Skills via Equipements (FF9) Vide
MessageSujet: Re: Apprentissage Skills via Equipements (FF9)   Apprentissage Skills via Equipements (FF9) Icon_minitimeMer 25 Juin 2008 - 2:18

1.Scripts

Ce script n'en requiert aucun autre, il est indépendant.

Risque d'incompatibilités: Risques de conflits visuels avec les scripts qui modifient les menus Compétences et Equipements.

Pour le moment non-compatible avec l'affichage MogHunter, je ferais peut-être une deuxième version spéciale destinée aux menus MogHunter.

Information: J'ai fais ce script assez rapidement pour un ami et il m'a autorisé à le publier, donc je le fais. Si vous trouvez des bugs contactez moi.

Nécessite de commencer une nouvelle partie.


Dernière édition par Sh4k4 le Mer 25 Juin 2008 - 2:59, édité 2 fois
Revenir en haut Aller en bas
Sh4k4
Chevalier d'or
Chevalier d'or
Sh4k4

Masculin Nombre de messages : 2836
Age : 36
Point(s) Fort(s) : Scripteur, Event-Maker, Aide
Point(s) Faible(s) : Athéna
Niveau RPG Maker : Elevé
Logiciel préféré : RMXP
Date d'inscription : 06/01/2007

Apprentissage Skills via Equipements (FF9) Vide
MessageSujet: Re: Apprentissage Skills via Equipements (FF9)   Apprentissage Skills via Equipements (FF9) Icon_minitimeMer 25 Juin 2008 - 2:18

Script à placer au dessus de Main :

PARTIE 1

Code:

# Nombre de points attribués par défaut aux compétences qui ont été attribuées à des equipements
# si elles n'ont pas de points spécifiés, les compétences non-attribuées à des equipements
# n'auront pas de points AP à gagner pour être apprises.
DEFAULT_AP = 20

# Mode d'augmentation des points
#  0 = Augmentation de X points à toute les compétences en apprentissage après chaque combat.
#  1 = Augmentation de X points à une compétence à chaque fois que celle-ci est utilisée.
MODE = 0

# On gère ici le nombre de points gagnés, le moment où on les gagne dépend du MODE.
# Pour le Mode 0, on peut aussi définir les Points dans les groupes de monstres.
POINTS_GAGNES = 2

# Affichage des jauges de points dans les onglets compétences
#  true : les jauges et les points apparaissent à coté des noms des compétences, dans tous les menu
#  false : les jauges de points n'apparaissent que dans le menu Equipement (comme dans FF9)
WINDOW_SKILL = true



#===============================================================================
# ■ Apprentissage des Skills par les equipements (FF9-like)
#-------------------------------------------------------------------------------
# Auteur  : Sh4k4
# Version : 3
# Logiciel : RMXP
# Date    : 25/06/2008
#-------------------------------------------------------------------------------
# Permet d'attribuer aux equipements des compétences qui sont ainsi utilisables pour le héros
# equipé de l'equipement. Si l'equipement est retiré, le héros ne peut alors plus utiliser la com-
# pétence. Chaque compétence peut cependant être définitivement apprise, en effet chaque
# compétence dispose d'une jauge qui se rempli après les combats quand l'equipement
# correspondant est actuellement equipé. Ainsi, une fois la compétence définitivement apprise
# on ne perd plus la compétence lorsque on retire l'équipement. La jauge ne retombe pas à 0
# si on retire l'equipement avant la fin, elle est sauvegardée et sera reprise au même niveau.
#
# ¤INSTALLATION
# Il suffit de copier coller ce script au dessus de Main.
#
#
# ¤UTILISATION
#
# -Comment attribuer des compétences à un équipement ?
#    C'est très simple, il suffit de modifier son nom dans la base de données. On place entre
#    crochets les ID des compétences que l'equipement octroie, séparées par des virgules.
# Exemple: Epée de Bronze[1,15,3]
#  Ainsi, l'Epée de Bronze permettra l'utilisation et l'apprentissage des compétences d'ID
#  n°1, 15, et 3.
#
# -Comment définir le nombre de points nécessaire à l'apprentissage de chaque compétence.
#    C'est très simple, il suffit de modifier son nom dans la base de données. On place un point
#    directement après le nom de la compétence et on place juste après le nombre de points
#    que l'on veut lui attribuer.
# Exemple: Soin mineur.15
#  Ainsi, l'apprentissage de Soin mineur se fera en 15 points.
#
# Ne pas oublier de sélection le MODE d'augmentation des points et le nombre de points
# gagnés dans les variables, au tout début du script (en haut).
#
# En MODE 0, on peut choisir le nombre de points AP gagné pour chaque groupe de monstre.
# Les groupes où aucuns points ne sont spécifiés, feront gagner le nombre de points gagnés
# par défaut, modifiable au début du script.
# Pour attribuer un nombre de points gagnés à un groupe de combat, on procède comme pour
# les points des compétences, on ajoute simplement .X (point puis nombre) après le nom du groupe.
# Exemple : Fantômes*2 .4
# Ce groupe de monstre fera ainsi gagner 4 points après le combat.
#===============================================================================


#=============================================================================
# Modification des fenêtres Compétences et Equipement.
#=============================================================================
class Window_Skill

  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 150, 32, skill.name, 0)
    self.contents.draw_text(x + 232, y, 48, 32, skill.sp_cost.to_s, 2)
    if WINDOW_SKILL == true
    if $data_skills[skill.id].ap != nil and @actor.skill_ap[skill.id] != nil and @actor.skill_ap[skill.id] < $data_skills[skill.id].ap
      width = 50
      height = 5
      w = width * @actor.skill_ap[skill.id] / $data_skills[skill.id].ap
      rect = Rect.new(x+175+3, y+13, w, height)
      rect_back = Rect.new(x+174+3, y+12, width+2, height+2)
      rect_edge = Rect.new(x+173+3, y+11, width+4, height+4)
      self.contents.fill_rect(rect_edge, Color.new(220, 220, 220, 255))
      self.contents.fill_rect(rect_back, Color.new(90, 90, 90, 255))
      self.contents.fill_rect(rect, Color.new(230, 200, 0, 255))
      self.contents.font.size = 10
      self.contents.draw_text(x + 180, y +8, 48, 32, @actor.skill_ap[skill.id].to_s + " / " + skill.ap.to_s, 2)
      self.contents.font.size = $fontsize
      end
    end
    end

end



class Scene_Equip
 
  def main
    @actor = $game_party.actors[@actor_index]
    @help_window = Window_Help.new
    @left_window = Window_EquipLeft.new(@actor)
    @right_window = Window_EquipRight.new(@actor)
    @item_window1 = Window_EquipItem.new(@actor, 0)
    @item_window2 = Window_EquipItem.new(@actor, 1)
    @item_window3 = Window_EquipItem.new(@actor, 2)
    @item_window4 = Window_EquipItem.new(@actor, 3)
    @item_window5 = Window_EquipItem.new(@actor, 4)
    @right_window.help_window = @help_window
    @item_window1.help_window = @help_window
    @item_window2.help_window = @help_window
    @item_window3.help_window = @help_window
    @item_window4.help_window = @help_window
    @item_window5.help_window = @help_window
    @right_window.index = @equip_index
    @window_ap = Window_Ap.new
    @window_ap.z = 9999
    @window_ap.x = 640-265
    @window_ap.y = 480-224
    refresh
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @help_window.dispose
    @left_window.dispose
    @right_window.dispose
    @item_window1.dispose
    @item_window2.dispose
    @item_window3.dispose
    @item_window4.dispose
    @item_window5.dispose
    @window_ap.dispose
  end
 
  def update
    @left_window.update
    @right_window.update
    @item_window.update
    refresh
    @window_ap.visible = false
    if @right_window.active
      update_right
      @window_ap.visible = true
      @window_ap.set_text_equip(@actor.id, @right_window.index)
      return
    end
    if @item_window.active
      update_item
      @window_ap.visible = true
      item = @item_window.item
      @window_ap.set_text_bag(@actor.id, item.id, @right_window.index)
      return
    end
  end
 
end



class Window_EquipItem < Window_Selectable

  def initialize(actor, equip_type)
    super(0, 256, 375, 224)
    @actor = actor
    @equip_type = equip_type
    @column_max = 1
    refresh
    self.active = false
    self.index = -1
  end
 
  def draw_item(index)
    item = @data[index]
    x = 4
    y = index * 32
    case item
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    bitmap = RPG::Cache.icon(item.icon_name)
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end
 
end



class Window_Ap < Window_Base

  def initialize
    super(0, 0, 265, 224)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
  end

  def set_text_equip(actor,equip)
      @actor = $game_actors[actor]
      self.contents.clear
      self.contents.font.color = system_color
      self.contents.font.italic = true
      self.contents.draw_text(50, -8, 150, 32, "Compétences")
      self.contents.font.italic = false
      self.contents.font.color = normal_color
      case equip
      when 0
        @type = $weapon_skills
        i = $game_actors[actor].weapon_id
      when 1
        @type = $armor_skills
        i = $game_actors[actor].armor1_id
      when 2
        @type = $armor_skills
        i = $game_actors[actor].armor2_id
      when 3
        @type = $armor_skills
        i = $game_actors[actor].armor3_id
      when 4
        @type = $armor_skills
        i = $game_actors[actor].armor4_id
      end
    l = 0
  if @type[i] != nil
    for skills in @type[i]
    l += 32
    skill = $data_skills[skills]
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = 255
    x = 0
    y = -10
    self.contents.blt(x, y+l, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y+l, 150, 32, skill.name, 0)
    self.contents.draw_text(x + 232, y+l, 48, 32, skill.sp_cost.to_s, 2)
    width = 50
    height = 5
    w = width * @actor.skill_ap[skill.id] / $data_skills[skill.id].ap
    rect = Rect.new(x+175+3, y+13+l, w, height)
    rect_back = Rect.new(x+174+3, y+12+l, width+2, height+2)
    rect_edge = Rect.new(x+173+3, y+11+l, width+4, height+4)
    self.contents.fill_rect(rect_edge, Color.new(220, 220, 220, 255))
    self.contents.fill_rect(rect_back, Color.new(90, 90, 90, 255))
    self.contents.fill_rect(rect, Color.new(230, 200, 0, 255))
    self.contents.font.size = 10
    self.contents.draw_text(x + 180, y +8+l, 48, 32, @actor.skill_ap[skill.id].to_s + " / " + skill.ap.to_s, 2)
    self.contents.font.size = $fontsize
    end
  end   
  self.visible = true
  end

  def set_text_bag(actor,equip,type)
      @actor = $game_actors[actor]
      self.contents.clear
      self.contents.font.color = system_color
      self.contents.font.italic = true
      self.contents.draw_text(50, -8, 150, 32, "Compétences")
      self.contents.font.italic = false
      self.contents.font.color = normal_color
      case type
      when 0
        @type = $weapon_skills
        when 1
        @type = $armor_skills
      when 2
        @type = $armor_skills
      when 3
        @type = $armor_skills
      when 4
        @type = $armor_skills
      end
    l = 0
  if @type[equip] != nil
    for skills in @type[equip]
    l += 32
    skill = $data_skills[skills]
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = 255
    x = 0
    y = -10
    self.contents.blt(x, y+l, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y+l, 150, 32, skill.name, 0)
    self.contents.draw_text(x + 232, y+l, 48, 32, skill.sp_cost.to_s, 2)
    width = 50
    height = 5
    w = width * @actor.skill_ap[skill.id] / $data_skills[skill.id].ap
    rect = Rect.new(x+175+3, y+13+l, w, height)
    rect_back = Rect.new(x+174+3, y+12+l, width+2, height+2)
    rect_edge = Rect.new(x+173+3, y+11+l, width+4, height+4)
    self.contents.fill_rect(rect_edge, Color.new(220, 220, 220, 255))
    self.contents.fill_rect(rect_back, Color.new(90, 90, 90, 255))
    self.contents.fill_rect(rect, Color.new(230, 200, 0, 255))
    self.contents.font.size = 10
    self.contents.draw_text(x + 180, y +8+l, 48, 32, @actor.skill_ap[skill.id].to_s + " / " + skill.ap.to_s, 2)
    self.contents.font.size = $fontsize
    end
  end   
  self.visible = true
  end

end



#=============================================================================
# Modifications des modules Skill et Weapon
#=============================================================================
module RPG
  class Skill
    attr_accessor:ap
  end
end

module RPG
  class Weapon
    attr_reader:skills
    def skills
      @skills = [] if @skills == nil
      return @skills
    end
  end
end


Dernière édition par Sh4k4 le Mar 4 Nov 2008 - 1:57, édité 3 fois
Revenir en haut Aller en bas
Sh4k4
Chevalier d'or
Chevalier d'or
Sh4k4

Masculin Nombre de messages : 2836
Age : 36
Point(s) Fort(s) : Scripteur, Event-Maker, Aide
Point(s) Faible(s) : Athéna
Niveau RPG Maker : Elevé
Logiciel préféré : RMXP
Date d'inscription : 06/01/2007

Apprentissage Skills via Equipements (FF9) Vide
MessageSujet: Re: Apprentissage Skills via Equipements (FF9)   Apprentissage Skills via Equipements (FF9) Icon_minitimeMer 25 Juin 2008 - 2:19

PARTIE 2

A mettre à la suite

Code:

#=============================================================================
# Récupération des valeurs dans la Base de données pour définir les points et les compétences.
#=============================================================================
class Scene_Title

  alias init main
  def main
    init
    for skill in $data_skills
      $data_skills[skill.id].ap = nil
      $data_skills[skill.id].ap = $data_skills[skill.id].name.split(".")[1].to_i if $data_skills[skill.id].name.include?(".")   
      $data_skills[skill.id].name  =  $data_skills[skill.id].name.split(".")[0] if $data_skills[skill.id].name.include?(".")
    end
    $weapon_skills = []
    for weapon in $data_weapons
      $weapon_skills[weapon.id] = []
      if $data_weapons[weapon.id].name.include?("[")
        @bdd = $data_weapons[weapon.id].name.split("[")[1]
        @bdd = @bdd.split("]")[0]
        @bdd = @bdd.split(",")
        $data_weapons[weapon.id].name = $data_weapons[weapon.id].name.split("[")[0]
        for skill in @bdd
          $weapon_skills[weapon.id].push(skill.to_i)
          $data_skills[skill.to_i].ap = DEFAULT_AP if $data_skills[skill.to_i].ap == nil
        end
      end 
    end
    $armor_skills = []
    for armor in $data_armors
      $armor_skills[armor.id] = []
      if $data_armors[armor.id].name.include?("[")
        @bdd = $data_armors[armor.id].name.split("[")[1]
        @bdd = @bdd.split("]")[0]
        @bdd = @bdd.split(",")
        $data_armors[armor.id].name = $data_armors[armor.id].name.split("[")[0]
        for skill in @bdd
          $armor_skills[armor.id].push(skill.to_i)
          $data_skills[skill.to_i].ap = DEFAULT_AP if $data_skills[skill.to_i].ap == nil
        end
    end 
  end
end

 alias btest battle_test
  def battle_test
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes      = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items        = load_data("Data/Items.rxdata")
    $data_weapons      = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    for skill in $data_skills
      $data_skills[skill.id].ap = nil
      $data_skills[skill.id].ap = $data_skills[skill.id].name.split(".")[1].to_i if $data_skills[skill.id].name.include?(".")   
      $data_skills[skill.id].name  =  $data_skills[skill.id].name.split(".")[0] if $data_skills[skill.id].name.include?(".")
    end
    $weapon_skills = []
    for weapon in $data_weapons
      $weapon_skills[weapon.id] = []
      if $data_weapons[weapon.id].name.include?("[")
        @bdd = $data_weapons[weapon.id].name.split("[")[1]
        @bdd = @bdd.split("]")[0]
        @bdd = @bdd.split(",")
        $data_weapons[weapon.id].name = $data_weapons[weapon.id].name.split("[")[0]
        for skill in @bdd
          $weapon_skills[weapon.id].push(skill.to_i)
          $data_skills[skill.to_i].ap = DEFAULT_AP if $data_skills[skill.to_i].ap == nil
        end
      end 
    end
    $armor_skills = []
    for armor in $data_armors
      $armor_skills[armor.id] = []
      if $data_armors[armor.id].name.include?("[")
        @bdd = $data_armors[armor.id].name.split("[")[1]
        @bdd = @bdd.split("]")[0]
        @bdd = @bdd.split(",")
        $data_armors[armor.id].name = $data_armors[armor.id].name.split("[")[0]
        for skill in @bdd
          $armor_skills[armor.id].push(skill.to_i)
          $data_skills[skill.to_i].ap = DEFAULT_AP if $data_skills[skill.to_i].ap == nil
        end
    end 
  end
  btest
  end
end



#=============================================================================
# Sert a conférer les compétences des equipements par défaut à leur porteur.
#=============================================================================
class Scene_Map
 
 alias main2 main
 def main
  if @done == nil
  for i in 1...$data_actors.size   
    actor = $game_actors[i]
    if actor.name != nil
      if actor.weapon_id != 0
        for skill in $weapon_skills[actor.weapon_id]
        actor.equip_learn_skill(skill)
        end 
    end
    if actor.armor1_id != 0
      for skill in $armor_skills[actor.armor1_id]
        actor.equip_learn_skill(skill)
      end 
    end
    if actor.armor2_id != 0
      for skill in $armor_skills[actor.armor2_id]
        actor.equip_learn_skill(skill)
      end 
    end
    if actor.armor3_id != 0
      for skill in $armor_skills[actor.armor3_id]
        actor.equip_learn_skill(skill)
      end 
    end
    if actor.armor4_id != 0
      for skill in $armor_skills[actor.armor4_id]
        actor.equip_learn_skill(skill)
      end 
    end
    end
  end
  end
  @done = true
  main2
 end
 
end



#=============================================================================
# Gestion des compétences conferées/retirées lors de l'ajout/retrait d'un equipement.
#=============================================================================
class Game_Actor < Game_Battler
 attr_reader:skill_ap
 
 alias setup2 setup
  def setup(actor_id)
    @skill_ap = []
    $data_skills = load_data("Data/Skills.rxdata") if $data_skills == nil
    for skill in $data_skills
      @skill_ap[skill.id] = 0
    end
    setup2(actor_id)
  end
 
  def equip_learn_skill(skill_id)
    if skill_id > 0 #and not skill_learn?(skill_id)
      @skills.push(skill_id)
      @skills.uniq!
      @skills.sort!
    end
  end
 
  def learn_skill(skill_id)
    if skill_id > 0
      $data_skills[skill_id].ap = $data_skills[skill_id].name.split(".")[1].to_i if $data_skills[skill_id].name.include?(".") and $data_skills[skill_id].ap == nil
      @skill_ap[skill_id] = $data_skills[skill_id].ap
      @skills.push(skill_id)
      @skills.uniq!
      @skills.sort!     
    end
  end
 
  def equip(equip_type, id)
    case equip_type
    when 0  # 武器
      if id == 0 or $game_party.weapon_number(id) > 0
        if @weapon_id != 0
          for skill in $weapon_skills[@weapon_id]
            unless $data_skills[skill].ap == nil
            forget_skill(skill) unless @skill_ap[skill] >= $data_skills[skill].ap
            end
          end 
        end
        $game_party.gain_weapon(@weapon_id, 1)
        @weapon_id = id
        $game_party.lose_weapon(id, 1)
        if @weapon_id != 0
          for skill in $weapon_skills[@weapon_id]
          equip_learn_skill(skill)
          end
        end 
      end
    when 1  # 盾
      if id == 0 or $game_party.armor_number(id) > 0
        if @armor1_id != 0
          for skill in $armor_skills[@armor1_id]
            forget_skill(skill) unless @skill_ap[skill] >= $data_skills[skill].ap
          end 
        end
        update_auto_state($data_armors[@armor1_id], $data_armors[id])
        $game_party.gain_armor(@armor1_id, 1)
        @armor1_id = id
        $game_party.lose_armor(id, 1)
        if @armor1_id != 0
          for skill in $armor_skills[@armor1_id]
            equip_learn_skill(skill)
          end
        end 
      end
    when 2  # 頭
      if id == 0 or $game_party.armor_number(id) > 0
        if @armor2_id != 0     
          for skill in $armor_skills[@armor2_id]
            forget_skill(skill) unless @skill_ap[skill] >= $data_skills[skill].ap
          end
        end 
        update_auto_state($data_armors[@armor2_id], $data_armors[id])
        $game_party.gain_armor(@armor2_id, 1)
        @armor2_id = id
        $game_party.lose_armor(id, 1)
        if @armor2_id != 0     
          for skill in $armor_skills[@armor2_id]
            equip_learn_skill(skill)
          end 
        end
      end
    when 3  # 身体
      if id == 0 or $game_party.armor_number(id) > 0
        if @armor3_id != 0     
          for skill in $armor_skills[@armor3_id]
            forget_skill(skill) unless @skill_ap[skill] >= $data_skills[skill].ap
          end 
        end
        update_auto_state($data_armors[@armor3_id], $data_armors[id])
        $game_party.gain_armor(@armor3_id, 1)
        @armor3_id = id
        $game_party.lose_armor(id, 1)
        if @armor3_id != 0           
          for skill in $armor_skills[@armor3_id]
            equip_learn_skill(skill)
          end 
        end
      end
    when 4  # 装飾品
      if id == 0 or $game_party.armor_number(id) > 0
        if @armor4_id != 0     
          for skill in $armor_skills[@armor4_id]
            forget_skill(skill) unless @skill_ap[skill] >= $data_skills[skill].ap
          end
        end 
        update_auto_state($data_armors[@armor4_id], $data_armors[id])
        $game_party.gain_armor(@armor4_id, 1)
        @armor4_id = id
        $game_party.lose_armor(id, 1)
        if @armor4_id != 0       
          for skill in $armor_skills[@armor4_id]
            equip_learn_skill(skill)
          end
        end 
      end
    end
  end
 
end



#=============================================================================
# Gestion de l'augmentation des points après chaque utilisation (MODE 1).
#=============================================================================
class Game_Battler
  alias skill_eff skill_effect 
  def skill_effect(user, skill)
    skill_eff(user, skill)
    if MODE == 1
      $game_actors[user.id].skill_ap[skill.id] += POINTS_GAGNES unless $game_actors[user.id].skill_ap[skill.id] == $data_skills[skill.id].ap
    end
  end
end



#=============================================================================
# Gestion de l'augmentation des points à la fin du combat (MODE 0).
#=============================================================================
class Scene_Battle
 
  alias phase start_phase5
  def start_phase5
    phase
    if MODE == 0
      @points = POINTS_GAGNES
      if $data_troops[@troop_id].name.include?(".")
        @bdd = $data_troops[@troop_id].name.split(".")[1]
        @points = @bdd.to_i
      end
    for actor in $game_party.actors
      if actor.weapon_id != 0
      for skill in $weapon_skills[actor.weapon_id]
        actor.skill_ap[skill] += @points unless actor.skill_ap[skill] == $data_skills[skill].ap 
      end
      end
      if actor.armor1_id != 0
      for skill in $armor_skills[actor.armor1_id]
        actor.skill_ap[skill] += @points unless actor.skill_ap[skill] == $data_skills[skill].ap 
      end
      end
      if actor.armor2_id != 0
      for skill in $armor_skills[actor.armor2_id]
        actor.skill_ap[skill] += @points unless actor.skill_ap[skill] == $data_skills[skill].ap 
      end
      end
      if actor.armor3_id != 0
      for skill in $armor_skills[actor.armor3_id]
        actor.skill_ap[skill] += @points unless actor.skill_ap[skill] == $data_skills[skill].ap 
      end
      end
      if actor.armor4_id != 0
      for skill in $armor_skills[actor.armor4_id]
        actor.skill_ap[skill] += @points unless actor.skill_ap[skill] == $data_skills[skill].ap 
      end
      end
    end
  end
  end 
end



#=============================================================================
# Sauvegarde des points lors des chargements/sauvegardes
#=============================================================================
class Scene_Save < Scene_File
  alias save write_save_data
  def write_save_data(file)
    save(file)
    Marshal.dump($weapon_skills, file)
    Marshal.dump($armor_skills, file)
  end
end

class Scene_Load < Scene_File
  alias read read_save_data 
  def read_save_data(file)
    read(file)
    $weapon_skills  = Marshal.load(file)
    $armor_skills      = Marshal.load(file)
  end
end
 


Dernière édition par Sh4k4 le Lun 20 Oct 2008 - 11:50, édité 9 fois
Revenir en haut Aller en bas
Sh4k4
Chevalier d'or
Chevalier d'or
Sh4k4

Masculin Nombre de messages : 2836
Age : 36
Point(s) Fort(s) : Scripteur, Event-Maker, Aide
Point(s) Faible(s) : Athéna
Niveau RPG Maker : Elevé
Logiciel préféré : RMXP
Date d'inscription : 06/01/2007

Apprentissage Skills via Equipements (FF9) Vide
MessageSujet: Re: Apprentissage Skills via Equipements (FF9)   Apprentissage Skills via Equipements (FF9) Icon_minitimeMer 25 Juin 2008 - 2:24

2.Explications

¤INSTALLATION
Il suffit de copier coller ce script au dessus de Main.


¤UTILISATION

-Comment attribuer des compétences à un équipement ?
C'est très simple, il suffit de modifier son nom dans la base de données. On place entre crochets les ID des compétences que l'equipement octroie, séparées par des virgules.
Exemple: Epée de Bronze[1,15,3]
Ainsi, l'Epée de Bronze permettra l'utilisation et l'apprentissage des compétences d'ID n°1, 15, et 3.
Apprentissage Skills via Equipements (FF9) Aide2
NOMBRE MAXIMUM DE COMPETENCES PAR EQUIPEMENT : 5


-Comment définir le nombre de points nécessaire à l'apprentissage de chaque compétence.
C'est très simple, il suffit de modifier son nom dans la base de données. On place un point directement après le nom de la compétence et on place juste après le nombre de points que l'on veut lui attribuer.
Exemple: Soin mineur.15
Ainsi, l'apprentissage de Soin mineur se fera en 15 points.
Apprentissage Skills via Equipements (FF9) Aide


Ne pas oublier de sélectionner le MODE d'augmentation des points et le nombre de points gagnés dans les variables, et le mode d'affichage, au tout début du script (en haut).

En MODE 0, on peut choisir le nombre de points AP gagné pour chaque groupe de monstre.
Les groupes où aucuns points ne sont spécifiés, feront gagner le nombre de points gagnés
par défaut, modifiable au début du script.
Pour attribuer un nombre de points gagnés à un groupe de combat, on procède comme pour
les points des compétences, on ajoute simplement .X (point puis nombre) après le nom du groupe.
Exemple : Fantômes*2 .4
Ce groupe de monstre fera ainsi gagner 4 points après le combat.


Dernière édition par Sh4k4 le Lun 11 Aoû 2008 - 19:38, édité 4 fois
Revenir en haut Aller en bas
Sh4k4
Chevalier d'or
Chevalier d'or
Sh4k4

Masculin Nombre de messages : 2836
Age : 36
Point(s) Fort(s) : Scripteur, Event-Maker, Aide
Point(s) Faible(s) : Athéna
Niveau RPG Maker : Elevé
Logiciel préféré : RMXP
Date d'inscription : 06/01/2007

Apprentissage Skills via Equipements (FF9) Vide
MessageSujet: Re: Apprentissage Skills via Equipements (FF9)   Apprentissage Skills via Equipements (FF9) Icon_minitimeMer 25 Juin 2008 - 2:25

3.Screenshots

Apprentissage Skills via Equipements (FF9) Comp2



Apprentissage Skills via Equipements (FF9) Comp1



Apprentissage Skills via Equipements (FF9) Comp3
Revenir en haut Aller en bas
Contenu sponsorisé




Apprentissage Skills via Equipements (FF9) Vide
MessageSujet: Re: Apprentissage Skills via Equipements (FF9)   Apprentissage Skills via Equipements (FF9) Icon_minitime

Revenir en haut Aller en bas
 

Apprentissage Skills via Equipements (FF9)

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum: Vous ne pouvez pas répondre aux sujets dans ce forum
 :: Partage de scripts :: Systèmes -
|
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit