Partagez
Aller en bas
Yasan
Yasan
Membre

Nombre de messages : 149
Age : 33
Distinction : aucune
Date d'inscription : 18/01/2011

Class System Addons Empty Class System Addons

le Mar 27 Déc 2011 - 18:12
Ces deux addons ne peuvent fonctionner QUE si le script Class System de Yanfly est installé et doivent obligatoirement se placer en dessous de celui-ci.

Class Specifics


Auteur : Yanfly

Version du script :1.00

Traducteur : Yasan

Class System Addons Csp10

Ce script permet à une certaine classes de n'être que primaire ou sous-classe. De plus, les sous-classes peuvent requérir une certaine classe primaire pour être disponibles

Ces notetags vont dans la notebox des Classes dans la BDD

Code:
<primary only>

Rend la classe équitable uniquement en tant que classe primaire.

Code:
<subclass only>

Rend la classe équitable uniquement en tant que sous-classe.

Code:
<subclass to: x>
<subclass to: x, x>

Ceci fait en sorte que la sous-classe ne peut être équipée que si les classes dont les ID sont indiquées sont choisies en tant que classe primaire.

Spoiler:
Code:
#==============================================================================
#
# ▼ Yanfly Engine Ace - Class Specifics v1.00
# -- Denière update: 2011.12.23
# -- Niveau : Normal
# -- Requiert: YEA - Class System v1.03+
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-ClassSpecifics"] = true

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.23 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ce script permet à une certaine classes de n'être que primaire ou sous-classe.
# De plus, les sous-classes peuvent requérir  une certaine classe primaire
# pour être disponibles.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pour installer ce script, ouvrez votre éditeur de script et copiez/coller
# ce script dans un emplacement disponible ▼ Materials/素材 mais au dessus de
# ▼ Main. Souvenez vous de sauvegarder.
# -----------------------------------------------------------------------------
# Class Notetags - Ces notetags vont dans la notebox des Classes dans la BDD.
# -----------------------------------------------------------------------------
# <primary only>
# Rend la classe équitable uniquement en tant que classe primaire.
#
# <subclass only>
# Rend la classe équitable uniquement en tant que sous-classe.
#
# <subclass to: x>
# <subclass to: x, x>
# Ceci fait en sorte que la sous-classe ne peut être équipée que si les classes
# dont les ID sont indiquées sont choisies en tant que classe primaire.
#==============================================================================
# ▼ Compatibilité
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ce script est compatible uniquement avec Rpg Maker VX Ace. Il est hautement
# improbable qu'il puisse fonctionner sur VX sans ajustements.
#
# Ce script requiert Yanfly Engine Ace - Class System v1.03+.
#
#==============================================================================
# ▼ Editer quoique ce soit à partir de ce point peut potentiellement causer des
# dommages à votre ordinateur, incontinence, explosion de votre tête, coma, mort
# et/ou mauvaise haleine donc n'éditez qu'à vos risques et périls.
#==============================================================================

if $imported["YEA-ClassSystem"]

module YEA
  module REGEXP
  module CLASS
   
    PRIMARY_ONLY  = /<(?:PRIMARY_ONLY|primary only)>/i
    SUBCLASS_ONLY = /<(?:SUBCLASS_ONLY|subclass only)>/i
    SUBCLASS_TO = /<(?:SUBCLASS_TO|subclass to):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
   
  end # CLASS
  end # REGEXP
end # YEA

#==============================================================================
# ■ DataManager
#==============================================================================

module DataManager
 
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias load_database_csp load_database; end
  def self.load_database
    load_database_csp
    load_notetags_csp
  end
 
  #--------------------------------------------------------------------------
  # new method: load_notetags_csp
  #--------------------------------------------------------------------------
  def self.load_notetags_csp
    for obj in $data_classes
      next if obj.nil?
      obj.load_notetags_csp
    end
  end
 
end # DataManager

#==============================================================================
# ■ RPG::Class
#==============================================================================

class RPG::Class < RPG::BaseItem
 
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :primary_only
  attr_accessor :subclass_only
  attr_accessor :subclass_to
 
  #--------------------------------------------------------------------------
  # common cache: load_notetags_csp
  #--------------------------------------------------------------------------
  def load_notetags_csp
    @primary_only = false
    @subclass_only = false
    @subclass_to = []
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::CLASS::PRIMARY_ONLY
        @primary_only = true
        @subclass_only = false
        @subclass_to = []
      when YEA::REGEXP::CLASS::SUBCLASS_ONLY
        @primary_only = false
        @subclass_only = true
      when YEA::REGEXP::CLASS::SUBCLASS_TO
        @primary_only = false
        @subclass_only = true
        $1.scan(/\d+/).each { |num|
        @subclass_to.push(num.to_i) if num.to_i > 0 }
      end
    } # self.note.split
    #---
  end
 
end # RPG::Class

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
 
  #--------------------------------------------------------------------------
  # alias method: change_class
  #--------------------------------------------------------------------------
  alias game_actor_change_class_csp change_class
  def change_class(class_id, keep_exp = false)
    return if $data_classes[class_id].subclass_only
    game_actor_change_class_csp(class_id, keep_exp)
    correct_subclass
  end
 
  #--------------------------------------------------------------------------
  # alias method: change_subclass
  #--------------------------------------------------------------------------
  alias game_actor_change_subclass_csp change_subclass
  def change_subclass(class_id)
    return unless subclass_requirements_met?(class_id)
    game_actor_change_subclass_csp(class_id)
  end
 
  #--------------------------------------------------------------------------
  # new method: subclass_requirements_met?
  #--------------------------------------------------------------------------
  def subclass_requirements_met?(class_id)
    subclass = $data_classes[class_id]
    return false if subclass.primary_only
    return subclass_to?(class_id) if subclass.subclass_to != []
    return true
  end
 
  #--------------------------------------------------------------------------
  # new method: subclass_to?
  #--------------------------------------------------------------------------
  def subclass_to?(class_id)
    return true if class_id == 0
    subclass = $data_classes[class_id]
    return false if subclass.nil?
    for class_id in subclass.subclass_to
      return true if class_id == self.class.id
    end
    return false
  end
 
  #--------------------------------------------------------------------------
  # new method: correct_subclass
  #--------------------------------------------------------------------------
  def correct_subclass
    return if @subclass_id == 0
    subclass = $data_classes[@subclass_id]
    return if subclass.nil?
    return if subclass.subclass_to == []
    @subclass_id = 0 if !subclass_to?(@subclass_id)
  end
 
end # Game_Actor

#==============================================================================
# ■ Window_ClassList
#==============================================================================

class Window_ClassList < Window_Selectable
 
  #--------------------------------------------------------------------------
  # alias method: enable?
  #--------------------------------------------------------------------------
  alias window_classlist_enable_csp enable?
  def enable?(item)
    case @command_window.current_symbol
    when :primary
      return false if item.subclass_only
    when :subclass
      return false if item.primary_only
      return @actor.subclass_to?(item.id) if item.subclass_to != []
    end
    return window_classlist_enable_csp(item)
  end
 
end # Window_ClassList

end # $imported["YEA-ClassSystem"]

#==============================================================================
#
# ▼ End of File
#
#==============================================================================

Class Unlock Level


Auteur : Yanfly

Version du script :1.00

Traducteur : Yasan

Class System Addons Cul10

Ce script permet aux classes d'être débloquées après qu'une classe ait atteint un certain niveau. Ce script ne peut fonctionner que si MAINTAIN_LEVELS est réglé sur False. Il est possible de faire en sorte que plusieurs classes aient atteint un certain niveau pour débloquer.

Ces notetags s'insèrent dans la notebox de la classe concernée.

Code:
<level unlock requirements>
   class x: level y
   class x: level y
</level unlock requirements>

Définissez les prérequis pour débloquer la classe en question. Le déblocage de la classe requiert que la classe X soit au level Y. Insérez autant de condition de niveau que vous voudrez entre les deux balises.

Spoiler:
Code:
#==============================================================================
#
# ▼ Yanfly Engine Ace - Class System Add-On: Class Unlock Level v1.00
# -- Dernière update : 2011.12.20
# -- Niveau: Normal
# -- Requires: YEA - Class System v1.01+
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-ClassUnlockLevel"] = true

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.20 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ce script permet aux classes d'être débloquées après qu'une classe ait atteint
# un certain niveau. Ce script ne peut fonctionner que si MAINTAIN_LEVELS est
# réglé sur False. Il est possible de faire en sorte que plusieurs classes aient
# atteint un certain niveau pour débloquer.
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pour installer ce script, ouvrez votre éditeur de script et copiez/coller
# ce script dans un emplacement disponible ▼ Materials/素材 mais au dessus de
# ▼ Main. Souvenez vous de sauvegarder.
# -----------------------------------------------------------------------------
# Class Notetags - Ces notetags vont dans la notebox des Classes dans la BDD.
# -----------------------------------------------------------------------------
# <level unlock requirements>
#  class x: level y
#  class x: level y
# </level unlock requirements>
#
# Définissez les prérequis pour débloquer la classe en question. Le déblocage de
# la classe requiert que la classe X soit au level Y. Insérez autant de
# conditions de niveau que vous voudrez entre les deux balises.
#
#==============================================================================
# ▼ Compatibilité
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ce script est compatible uniquement avec Rpg Maker VX Ace. Il est hautement
# improbable qu'il puisse fonctionner sur VX sans ajustements.
#
# Ce script requiert Yanfly Engine Ace - Class System v1.03+.
#
#==============================================================================
# ▼ Editer quoique ce soit à partir de ce point peut potentiellement causer des
# dommages à votre ordinateur, incontinence, explosion de votre tête, coma, mort
# et/ou mauvaise haleine donc n'éditez qu'à vos risques et périls.
#==============================================================================

if $imported["YEA-ClassSystem"] && !YEA::CLASS_SYSTEM::MAINTAIN_LEVELS

module YEA
  module REGEXP
  module CLASS
   
    LV_UNLOCK_ON =
      /<(?:LEVEL_UNLOCK_REQUIREMENTS|level unlock requirements)>/i
    LV_UNLOCK_OFF =
      /<\/(?:LEVEL_UNLOCK_REQUIREMENTS|level unlock requirements)>/i
    LV_UNLOCK_STR = /CLASS[ ](\d+): LEVEL[ ](\d+)/i
   
  end # CLASS
  end # REGEXP
end # YEA

#==============================================================================
# ■ DataManager
#==============================================================================

module DataManager
 
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias load_database_cul load_database; end
  def self.load_database
    load_database_cul
    load_notetags_cul
  end
 
  #--------------------------------------------------------------------------
  # new method: load_notetags_cul
  #--------------------------------------------------------------------------
  def self.load_notetags_cul
    for obj in $data_classes
      next if obj.nil?
      obj.load_notetags_cul
    end
  end
 
end # DataManager

#==============================================================================
# ■ RPG::Class
#==============================================================================

class RPG::Class < RPG::BaseItem
 
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :level_unlock
 
  #--------------------------------------------------------------------------
  # common cache: load_notetags_cul
  #--------------------------------------------------------------------------
  def load_notetags_cul
    @level_unlock = {}
    @level_unlock_on = false
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::CLASS::LV_UNLOCK_ON
        @level_unlock_on = true
      when YEA::REGEXP::CLASS::LV_UNLOCK_OFF
        @level_unlock_on = false
      when YEA::REGEXP::CLASS::LV_UNLOCK_STR
        next unless @level_unlock_on
        @level_unlock[$1.to_i] = $2.to_i
      end
    } # self.note.split
    #---
  end
 
end # RPG::Class

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
 
  #--------------------------------------------------------------------------
  # check_level_unlocked_classes
  #--------------------------------------------------------------------------
  def check_level_unlocked_classes
    for item in $data_classes
      next if item.nil?
      next if unlocked_classes.include?(item.id)
      next if item.level_unlock == {}
      next unless class_unlock_level_requirements_met?(item)
      unlock_class(item.id)
    end
  end
 
  #--------------------------------------------------------------------------
  # class_unlock_level_requirements_met?
  #--------------------------------------------------------------------------
  def class_unlock_level_requirements_met?(item)
    for key in item.level_unlock
      class_id = key[0]
      level_req = key[1]
      return false if class_level(class_id) < level_req
    end
    return true
  end
 
end # Game_Actor

#==============================================================================
# ■ Window_ClassList
#==============================================================================

class Window_ClassList < Window_Selectable
 
  #--------------------------------------------------------------------------
  # alias method: actor=
  #--------------------------------------------------------------------------
  alias window_classlist_actor_equals_cul actor=
  def actor=(actor)
    return if @actor == actor
    actor.check_level_unlocked_classes
    window_classlist_actor_equals_cul(actor)
  end
 
end # Window_ClassList

end # $imported["YEA-ClassSystem"] && !YEA::CLASS_SYSTEM::MAINTAIN_LEVELS

#==============================================================================
#
# ▼ End of File
#
#==============================================================================

+1 point de participation.



Dernière édition par Yasan le Mer 28 Déc 2011 - 11:01, édité 1 fois
Elisa'
Elisa'
Staffeux retraité

Nombre de messages : 2924
Age : 21
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris Class System Addons 344805Class System Addons 344805
[Coco' Smile]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]

Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009

Class System Addons Empty Re: Class System Addons

le Mar 27 Déc 2011 - 18:51
Merci du partage, +1 point de participation Smile

_________________


Cliquez ici pour voter pour la commu'
Class System Addons Banner
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum