- YasanMembre
- Nombre de messages : 149
Age : 39
Distinction : aucune
Date d'inscription : 18/01/2011
Class System Addons
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.
Auteur : Yanfly
Version du script :1.00
Traducteur : Yasan
Ces notetags vont dans la notebox des Classes dans la BDD
Rend la classe équitable uniquement en tant que classe primaire.
Rend la classe équitable uniquement en tant que sous-classe.
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.
Auteur : Yanfly
Version du script :1.00
Traducteur : Yasan
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.
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.
+1 point de participation.
Class Specifics
Auteur : Yanfly
Version du script :1.00
Traducteur : Yasan
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
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.
- Elisa'Staffeux retraité
- Nombre de messages : 2924
Age : 26
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris
[Coco' ]
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
Re: Class System Addons
Mar 27 Déc 2011 - 18:51
Merci du partage, +1 point de participation
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum