4 résultats trouvés pour --------------------------------------------------------------------------
- Aujourd'hui
- le Dim 14 Juin 2020 - 16:01
- Rechercher dans: Ace
- Sujet: Banque de Tim
- Réponses: 0
- Vues: 751
Banque de Tim
Bonjour tout le monde !!!Voici un petit script perso pour crer une banque.
Actuellement la premire version du script permet de crer une banque un compte pargne o on peut dposer et retirer de l'argent.
Le compte permet aussi d'avoir des intrts automatiquement ajouts en fonction de la dure de jeu, pas besoin d'avoir un systme de gestion du temps, le script fonctionne en autonomie de ce ct l.
Et bien entendu, j'ai rajout la possibilit d'avoir des frais bancaires lors de chaque dpt.
Je suis preneur de toutes remarques ou suggestions d'amlioration sachant que j'ai dj quelques petites ides pour crer une nouvelle version.
- script de banque:
- =begin
--------------------------------------------------------------------------------
***********
* ------- *
* BANQUE *
* ------- *
***********
AUTEUR : Tim
VERSION : 1
DATE : 13/06/2020
--------------------------------------------------------------------------------
Objectif :
Crer une banque personnalisable qui permet le dpt (avec ou sans frais bancaire), le retrait d'espces et le calcul d'intret autmotique chaque passage la banque en fonction du temps de jeu
--------------------------------------------------------------------------------
Utilisation :
_ Copier le script dans l'onglet materials
_ Initiliser les variables $banque_or_possede $banque_derniere_visite $banque_interets_totaux zro avant le premier lancement de la scne
_ Personnaliser les constantes presentes dans le module Module_Banque
_ Faites un appel de script a partir d'un evenement du jeu
SceneManager.call(Tim_Scene_Banque)
--------------------------------------------------------------------------------
Personnalisations supplementaires en modifiant le script manuellement :
_ Modifier le vocable
> Remplacer les termes a modifier dans 3)3) "Taux d'intrt horaire : ", "Frais bancaire : " et " % par dpt"
> Remplacer les termes a modifier dans 3)4) "En dpt : " et "Intrts totaux : "
> Remplacer les termes a modifier dans 3)5) "Dposer", "Retirer" et "Sortir"
--------------------------------------------------------------------------------
Restrictions :
_ resolution native 544*416
_ rendre obligatoirement persistante les variables $banque_or_possede $banque_derniere_visite et $banque_interets_totaux en les intgrant la sauvegarde du jeu
_ usage de 4 variables globales $banque_montant et $banque_or_possede $banque_derniere_visite $banque_interets_totaux
--------------------------------------------------------------------------------
Appels de script :
SceneManager.call(Tim_Scene_Banque)
--------------------------------------------------------------------------------
Descriptif des constantes personnalisables :
BANQUE_NOM == nom de la banque identique pour toutes les agences (40 caractres maximum)
BANQUE_NOM_COMPTE == nom du compte bancaire unique (20 caractres maximum)
BANQUE_TAUX == taux d'intrt fourni toutes les heures - 0 signifie aucun intrt
BANQUE_FRAIS == pourcentage des frais prlev sur chaque dpt
--------------------------------------------------------------------------------
Version 1
_ Script d'origine
--------------------------------------------------------------------------------
Squelette du script :
1) Introduction
1) Titre - Auteur - Version - Date de creation
2) Objectif
3) Utilisation
4) Personnalisations supplementaires dans le corps du script
5) Restrictions
6) Appel de script
7) Descritif des variables
Historique des versions
9) Squelette du script
2) Creation du module contenant toutes les constantes personnalisable
3) Creation des classes de fenetres
1) Classe creation fenetre pour le nom de la banque
2) Classe creation fenetre pour afficher l'or possede sur soi
3) Classe creation fenetre pour afficher le nom de compte et le taux d'interet horaire
4) Classe creation fenetre pour afficher l'or en dpt et les intrts accumuls
5) Classe creation fenetre pour dposer ou retirer de l'or et quitter
6) Classe creation fenetre pour choisir le montant
4) Creation de la scene qui gere la banque
--------------------------------------------------------------------------------
=end
#-------------------------------------------------------------------------------
#
# 2) Creation du module contenant tous les parametres personnalisables
#
#-------------------------------------------------------------------------------
module Module_Banque
BANQUE_NOM = "Nom de la banque" # 40 caracteres maximum
BANQUE_NOM_COMPTE = "Nom du compte bancaire" # 20 caracteres maximum
BANQUE_TAUX = 3 # pourcentage sans le signe %
BANQUE_FRAIS = 1 # pourcentage sans le signe % (doit tre strictement infrieur 100)
end
#-------------------------------------------------------------------------------
#
# 3) Creation des classes pour les differentes fenetres de la banque (resolution 544*416)
#
#-------------------------------------------------------------------------------
# 3) 1) Classe creation fenetre pour le nom de la banque
#-------------------------------------------------------------------------------
class Window_Banque_Nom < Window_Base
def initialize
super(0, 0, 544, 100) # x, y, largeur, hauteur
nom_banque
end
def nom_banque
contents.clear
contents.draw_text(100, 0, 374, 80, Module_Banque::BANQUE_NOM) # x, y ,largeur du texte, hauteur, texte a afficher)
end
end
#-------------------------------------------------------------------------------
# 3) 2) Classe creation fenetre pour afficher l'or possede sur soi
#-------------------------------------------------------------------------------
class Window_Banque_Gold < Window_Base
# Initialise la class
def initialize
super(272, 316, 272, 100) # x, y, largeur, hauteur
refresh
end
# Renvoi l'or detenu
def refresh
contents.clear # Supprime le contenu
draw_currency_value($game_party.gold , Vocab::currency_unit, 4, 16, contents.width - 90) # affiche l'or detenu
end
# Utilise le vocable pour les PO
def currency_unit
Vocab::currency_unit
end
end
#-------------------------------------------------------------------------------
# 3) 3) Classe creation fenetre pour afficher le nom de compte et le taux d'interet horaire
#-------------------------------------------------------------------------------
class Window_Banque_Compte_courant < Window_Base
# Initialise la class
def initialize
super(0, 100, 272, 216) # x, y, largeur, hauteur
refresh
end
#Renvoi l'affichage textuel
def refresh
contents.clear # Supprime le contenu
contents.draw_text(27, 0, 218, 72, Module_Banque::BANQUE_NOM_COMPTE) # x, y ,largeur du texte, hauteur, texte a afficher)
contents.draw_text(27, 72, 218, 72, "Taux d'intrt horaire : " + Module_Banque::BANQUE_TAUX.to_s + " %")
contents.draw_text(27, 144, 218, 72, "Frais bancaire : " + Module_Banque::BANQUE_FRAIS.to_s + " % par dpt")
end
end
#-------------------------------------------------------------------------------
# 3) 4) Classe creation fenetre pour afficher l'or en dpt et les intrts accumuls
#-------------------------------------------------------------------------------
class Window_Banque_Description_Avoirs < Window_Base
# Initialise la class
def initialize
super(272, 100, 272, 216) # x, y, largeur, hauteur
refresh
end
# Renvoi l'affichage textuel
def refresh
arrondir_affichage
contents.clear # Supprime le contenu
contents.draw_text(27, 0, 218, 108, "En dpt : " + @banque_or_possede.to_s + " " + Vocab::currency_unit) # x, y ,largeur du texte, hauteur, texte a afficher)
contents.draw_text(27, 108, 218, 108, "Intrts totaux : " + @banque_interets_totaux.to_s + " " + Vocab::currency_unit)
end
# Permet d'arrondir les valeur uniquement pour l'affichage mais maintien les valeurs relles en mmoire
def arrondir_affichage
@banque_or_possede = $banque_or_possede.round
@banque_interets_totaux = $banque_interets_totaux.round
end
end
#-------------------------------------------------------------------------------
# 3) 5) Classe creation fenetre pour dposer ou retirer de l'or et quitter
#-------------------------------------------------------------------------------
class Window_Banque_choix < Window_Command
# Initialise la classe
def initialize
super(0, 316) # (x, y)
end
# Definis la largeur de la fenetre
def window_width
return 272
end
# Definis la hauteur de la fenetre
def window_height
return 100
end
# Menu de confirmation
def make_command_list
add_command("Dposer", :banque_dpt)
add_command("Retirer", :banque_retrait)
add_command("Sortir", :banque_sortir)
end
end
#-------------------------------------------------------------------------------
# 3) 6) Classe creation fenetre pour choisir le montant
#-------------------------------------------------------------------------------
class Windows_Banque_montant < Window_Selectable
# Initialise la classe
def initialize(montant_max)
super(0, 316,272,100)
@montant_max = montant_max
$banque_montant = @montant_max / 2
$banque_montant = $banque_montant.round
refresh
end
def update
super
refresh
end
def refresh
contents.clear
contents.draw_text(50, 0, 136, 100, $banque_montant,1)
$banque_montant = $banque_montant + 1 if Input.trigger?(:UP) && $banque_montant < @montant_max
$banque_montant = $banque_montant - 1 if Input.trigger?(:DOWN) && $banque_montant > 0
$banque_montant = $banque_montant - 100 if Input.trigger?(:LEFT) && $banque_montant > 100
$banque_montant = $banque_montant + 100 if Input.trigger?(:RIGHT) && $banque_montant < (@montant_max - 99)
end
end
#-------------------------------------------------------------------------------
#
# 4) Creation de la scene qui gere la banque
#
#-------------------------------------------------------------------------------
class Tim_Scene_Banque < Scene_MenuBase
# Initialise la scene
def start
super
ajout_interet
creation_fenetre_banque
end
# Calcule et ajoute les interets
def ajout_interet
@duree_ecoulee = $game_system.playtime - $banque_derniere_visite
@interet = $banque_or_possede * @duree_ecoulee / 3600 * Module_Banque::BANQUE_TAUX / 100
$banque_or_possede += @interet
$banque_interets_totaux += @interet
$banque_derniere_visite = $game_system.playtime
end
# Cree les fenetres de la banque
def creation_fenetre_banque
@fenetre_nom_banque = Window_Banque_Nom.new
@fenetre_or_possede = Window_Banque_Gold.new
@fenetre_compte = Window_Banque_Compte_courant.new
@fenetre_avoirs = Window_Banque_Description_Avoirs.new
@fenetre_choix = Window_Banque_choix.new
@fenetre_choix.set_handler(:banque_dpt, method(:command_banque_depot))
@fenetre_choix.set_handler(:banque_retrait, method(:command_banque_retrait))
@fenetre_choix.set_handler(:banque_sortir, method(:command_banque_sortir))
end
# Permet de quitter la banque
def command_banque_sortir
return_scene
end
# Cree les actions en cas de choix de faire un dpt
def command_banque_depot
@fenetre_montant = Windows_Banque_montant.new($game_party.gold)
@fenetre_montant.viewport = @viewport
@fenetre_montant.set_handler(:ok, method(:depot))
@fenetre_montant.set_handler(:cancel, method(:return_scene))
@fenetre_montant.activate
end
# Creer les action aprs avoir valid le montant du dpot
def depot
@fenetre_montant.close
$banque_or_possede = $banque_or_possede + $banque_montant * ( 1 - Module_Banque::BANQUE_FRAIS / 100)
$game_party.lose_gold($banque_montant)
command_banque_sortir
end
# Cree les actions en cas de choix de faire un retrait
def command_banque_retrait
@fenetre_montant = Windows_Banque_montant.new($banque_or_possede)
@fenetre_montant.viewport = @viewport
@fenetre_montant.set_handler(:ok, method(:retrait))
@fenetre_montant.set_handler(:cancel, method(:return_scene))
@fenetre_montant.activate
end
# Creer les action aprs avoir valid le montant du retrait
def retrait
@fenetre_montant.close
$banque_or_possede -= $banque_montant
$game_party.gain_gold($banque_montant)
command_banque_sortir
end
end
Il vous faudra aussi un petit script pour rendre persistantes et sauvegardables certaines variables.
Je vous laisse ci-dessous un script qui permet d'ajouter des variables vos sauvegardes
- script donnes persistantes:
- module DataManager
#--------------------------------------------------------------------------
# * Create Game Objects
#--------------------------------------------------------------------------
class << self
alias create_game_objects_tablelist_base create_game_objects
end
def self.create_game_objects
create_game_objects_tablelist_base
$banque_or_possede
$banque_derniere_visite
$banque_interets_totaux
end
#--------------------------------------------------------------------------
# * Create Save Contents
#--------------------------------------------------------------------------
class << self
alias make_save_contents_tablelist_base make_save_contents
end
def self.make_save_contents
contents = make_save_contents_tablelist_base
contents[0] = $banque_or_possede
contents[1] = $banque_derniere_visite
contents[2] = $banque_interets_totaux
contents
end
#--------------------------------------------------------------------------
# * Extract Save Contents
#--------------------------------------------------------------------------
class << self
alias extract_save_contents_tablelist_base extract_save_contents
end
def self.extract_save_contents(contents)
extract_save_contents_tablelist_base(contents)
$banque_or_possede = contents[0]
$banque_derniere_visite = contents[1]
$banque_interets_totaux = contents[2]
end
end
- le Ven 11 Jan 2019 - 14:35
- Rechercher dans: Demande de ressources
- Sujet: VX ACE : Compatibilit des Scripts [Synthesis] et [Coffre Stockage]
- Réponses: 7
- Vues: 2129
VX ACE : Compatibilit des Scripts [Synthesis] et [Coffre Stockage]
Ah oui bien sr ! Le voil.- Spoiler:
[code]
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Traits Namer
# Author: Kread-EX
# Version: 1.02
# Release date: 11/03/2012
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#------------------------------------------------------------------------------
# UPDATES
#------------------------------------------------------------------------------
# # 03/02/2012. Bug fixes.
# # 24/03/2012. Added methods used by Alchemic Synthesis.
# # 23/03/2012. Version 1.0, now help window generation is included.
#------------------------------------------------------------------------------
# TERMS OF USAGE
#------------------------------------------------------------------------------
# # You are free to adapt this work to suit your needs.
# # You can use this work for commercial purposes if you like it.
# # Credit is appreciated.
# #
# # For support:
# # grimoirecastle.wordpress.com
# # rpgmakerweb.com
#------------------------------------------------------------------------------
# INTRODUCTION
#------------------------------------------------------------------------------
# # This is a core script. By itself, it doesn't do anything but it used by
# # Runic Enchantment and Alchemic Synthesis. The purpose of this script
# # is to provide an automated way to name traits: the script retrieve the traits
# # data and generates a name based on a customizable template.
#------------------------------------------------------------------------------
$imported = {} if $imported.nil?
$imported['KRX-TraitsNamer'] = true
puts 'Load: Traits Namer v1.02 by Kread-EX'
module KRX
module TraitsNamer
#===========================================================================
# ■ CONFIGURATION
#===========================================================================
X_PARAMETERS = [
'Accuracy',
'Evasion',
'Critical rate',
'Critical eva. rate',
'M. Evasion',
'Magic reflection',
'Counter rate',
'HP Regen',
'MP Regen',
'TP Regen'
]
S_PARAMETERS = [
'Aggro effect',
'Guard effect',
'Recovery rate',
'Pharmacology',
'MP cost',
'TP charge rate',
'Physical damage',
'Magical damage',
'Floor damage',
'EXP rate'
]
SPECIAL_FLAGS = [
'Autobattle',
'Guard',
'Cover',
'TP Saver'
]
PARTY_ABILITY = [
'Half Encounter',
'No Encounter',
'No surprise attacks',
'No preemptive attacks',
'Gold x2',
'Item Drops x2'
]
CODENAMES = {
11 => '%s resist: %d%%' , # Element rate
12 => '%s debuff rate: %d%%' , # Debuff rate
13 => '%s resist: %d%%' , # State rate
14 => 'Immunity: %s' , # State immunity
21 => '%s: %d%%' , # Parameter rate
22 => '%s: %d%%' , # Additional parameter rate
23 => '%s: %d%%' , # Special parameter rate
31 => 'Attack %s' , # Physical attack attribute
32 => 'Attack %s %d%%' , # Physical attack state
33 => 'Attack speed %d' , # Attack speed correction
34 => 'Attack x%d' , # Additional attacks
41 => 'Command: %s' , # Add skill type
42 => 'Seal: %s' , # Seal skill type
43 => 'Skill: %s' , # Add skill
44 => 'Skill Seal: %s' , # Seal skill
51 => 'Can equip: %s' , # Add equip type (weapon)
52 => 'Can equip: %s' , # Add equip type (armor)
53 => 'Fix equip: %s' , # Fix equip slot
54 => 'Seal equip: %s' , # Seal equip slot
55 => 'Dual Wielding' , # Dual Wield
61 => 'Bonus Actions: +%d%%' , # Bonus actions
62 => '%s' , # Special flag
63 => 'Collapse type' , # Collapse type (will never be used, I think)
64 => '%s' , # Party ability
}
CODEHELP = {
# Element rate
11 => 'Raises %s resistance by %d%%.',
# Debuff rate
12 => 'Raises %s resistance by %d%%.',
# State rate
13 => 'Raises %s resistance by %d%%.',
# State immunity
14 => 'Grants immunity to %s.',
# Parameter rate
21 => 'Raises %s by %d%%.',
# Additional parameter rate
22 => 'Raises %s by %d%%.',
# Special parameter rate
23 => 'Grants a %d% modifier to %s.',
# Physical attack attribute
31 => 'Adds %s element to normal attacks.',
# Physical attack state
32 => 'Adds %s to normal attacks (%d%% accuracy).',
# Attack speed correction (bonus)
33 => ['Raises attack speed by %d.',
# Attack speed correction (malus)
'Reduces attack speed by %d.'],
# Additional attacks
34 => 'Grants %d additional attacks.',
# Add skill type
41 => 'Enables the %s battle command.',
# Seal skill type
42 => 'Seals the %s battle command.',
# Add skill
43 => 'Allows the use of the %s skill',
# Seal skill
44 => 'Seals the %s skill.',
# Add equip type (weapon)
51 => 'Allows %s to be equipped.',
# Add equip type (armor)
52 => 'Allows %s to be equipped.',
# Fix equip slot
53 => 'Fixes the %s equipment slot.',
# Seal equip slot
54 => 'Seals the %s equipment slot.',
# Dual Wield
55 => 'Allows to use two weapons as the same time.',
# Bonus actions
61 => 'Raises the action rate by %d%%.',
# Autobattle
62 => ['The character will act on his/her own in battle.',
# Guard
'The character will permanently defend.',
# Cover
'The character will take hits for his/her wounded comrades.',
# TP Saver
'TP are kept after battles.'],
# Collapse type (no need to use it but meh)
63 => 'Alters the collapse animation.',
# Half encounter
64 => ['Halves the random encounter rate.',
# No encounter
'Disables random encounters.',
# No surprise attacks
'Disables surprise attacks.',
# No preemptive attacks
'Disables preemptive attacks.',
# Gold x2
'Doubles the money obtained after a battle.',
# Item Drops x2
'Doubles the drop rate of items.']
}
EFFECTS_CODENAMES = {
11 => 'HP Recovery' , # HP Recovery
12 => 'MP Recovery' , # MP Recovery
13 => 'TP Recovery' , # TP Gain
21 => 'Add %s' , # Add State
22 => 'Cleanse %s' , # Remove State
31 => '%s+' , # Add buff
32 => '%s-' , # Add debuff
33 => 'Dispel %s+' , # Remove buff
34 => 'Cancel %s-' , # Remove debuff
41 => 'Escape' , # Escape
42 => '%s Bonus' , # Permanent stat growth
43 => 'Learn %s' , # Permanent skill learning
44 => 'Common Event' , # Common event
}
EFFECTS_CODEHELP = {
# HP Recovery (static)
11 => ['Restores %d HP.',
# HP Recovery (dynamic)
'Restores %d%% of maximum HP.'],
# MP Recovery (static)
12 => ['Restores %d MP.',
# MP Recovery (dynamic)
'Restores %d%% of maximum MP.'],
# TP Gain
13 => 'Restores %d%% TP.',
# Add State
21 => 'Inflicts %s (%d%% chance).',
# Remove State
22 => 'Cancels %s.',
# Add buff
31 => 'Increases %s for %d turns.',
# Add debuff
32 => 'Decreases %s for %d turns.',
# Remove buff
33 => 'Cancels a previously applied %s buff.',
# Remove debuff
34 => 'Dispels an active %s debuff.',
# Escape
41 => 'Automatically escape from battle.',
# Permanent stat growth
42 => 'Boosts %d by %d permanently.',
# Permanent skill learning
43 => 'Teaches the %s skill permanently.',
# Common Event
44 => 'Calls a common event.'
}
#===========================================================================
# ■ CUSTOM TRAITS/EFFECTS CONFIGURATION
#===========================================================================
# INSTRUCTIONS
# Here you can define custom traits names and descriptions.
#
# Syntax:
# [type, code, data_id, value 1, value2] => [name, description]
#
# type: 0 (for equipment), 1 (for usables)
#
# code: the code number. Refer to default naming to know what is what.
#
# data_id: the number of the option you've choosen in the trait droplist.
#
# value1: what you typed in the first field where you can write numbers.
# For equipment this is the only one.
#
# value2: usable items only. What you typed in the second field.
#
# description: If you want to also use a custom description. If you only
# want the custom name, set this to nil.
CUSTOM_TRAITS = {
[0, 32, 2, 50] => ['Poisonous', nil],
[0, 32, 2, 100] => ['Venomous', nil],
[1, 11, 0, 0, 10] => ['HP Recovery XS', nil],
[1, 11, 0, 0, 25] => ['HP Recovery S', nil],
[1, 11, 0, 0, 50] => ['HP Recovery M', nil],
[1, 11, 0, 0, 75] => ['HP Recovery L', nil],
[1, 11, 0, 0, 100] => ['HP Recovery XL', 'Restores all HP!'],
[1, 12, 0, 0, 10] => ['MP Recovery XS', nil],
[1, 12, 0, 0, 25] => ['MP Recovery S', nil],
[1, 12, 0, 0, 50] => ['MP Recovery M', nil],
[1, 12, 0, 0, 75] => ['MP Recovery L', nil],
[1, 12, 0, 0, 100] => ['MP Recovery XL', 'Restores all MP!'],
[1, 13, 0, 2, 0] => ['TP Recovery XS', nil],
[1, 13, 0, 5, 0] => ['TP Recovery S', nil],
[1, 13, 0, 10, 0] => ['TP Recovery M', nil],
[1, 13, 0, 16, 0] => ['TP Recovery L', nil],
[1, 13, 0, 20, 0] => ['TP Recovery XL', nil],
}
#===========================================================================
# CONFIGURATION ENDS HERE
#===========================================================================
#--------------------------------------------------------------------------
# Generates traits name
#--------------------------------------------------------------------------
def self.feature_name(code, data_id, value)
custom = CUSTOM_TRAITS[[0, code, data_id, self.convert_value(code, value)]]
return custom[0] unless custom.nil? || custom[0].nil?
base_name = CODENAMES[code]
data_name = case code
when 11, 31
$data_system.elements[data_id]
when 12, 21
Vocab.param(data_id)
when 13, 14, 32
$data_states[data_id].name
when 22
X_PARAMETERS[data_id]
when 23
S_PARAMETERS[data_id]
when 41, 42
$data_system.skill_types[data_id]
when 43, 44
$data_skills[data_id].name
when 51
$data_system.weapon_types[data_id]
when 52
$data_system.armor_types[data_id]
when 53, 54
Vocab.etype(data_id)
when 62
SPECIAL_FLAGS[data_id]
when 64
PARTY_ABILITY[data_id]
end
final_value = case code
when 11, 13
100 - (value * 100)
when 33, 34
value
else
value * 100
end
if data_name.nil?
name = sprintf(base_name, final_value)
else
name = sprintf(base_name, data_name, final_value)
end
name
end
#--------------------------------------------------------------------------
# Generates traits description
#--------------------------------------------------------------------------
def self.feature_description(code, data_id, value)
custom = CUSTOM_TRAITS[[0, code, data_id, self.convert_value(code, value)]]
return custom[1] unless custom.nil? || custom[1].nil?
if CODEHELP[code].is_a?(Array)
base_help = CODEHELP[code][data_id]
else
base_help = CODEHELP[code]
end
data_name = case code
when 11, 31
$data_system.elements[data_id]
when 12, 21
Vocab.param(data_id)
when 13, 14, 32
$data_states[data_id].name
when 22
X_PARAMETERS[data_id]
when 23
S_PARAMETERS[data_id]
when 41, 42
$data_system.skill_types[data_id]
when 43, 44
$data_skills[data_id].name
when 51
$data_system.weapon_types[data_id]
when 52
$data_system.armor_types[data_id]
when 53, 54
Vocab.etype(data_id)
when 62
SPECIAL_FLAGS[data_id]
when 64
PARTY_ABILITY[data_id]
end
final_value = case code
when 11, 13
100 - (value * 100)
when 33, 34
value
else
value * 100
end
if data_name.nil?
name = sprintf(base_help, final_value)
else
name = sprintf(base_help, data_name, final_value)
end
name
end
#--------------------------------------------------------------------------
# Generates effects name
#--------------------------------------------------------------------------
def self.effect_name(code, data_id, value1, value2)
custom = CUSTOM_TRAITS[[1, code, data_id,
self.convert_value(code, value1, false),
self.convert_value(code, value2, false)]]
return custom[0] unless custom.nil? || custom[0].nil?
base_name = EFFECTS_CODENAMES[code]
data_name = case code
when 21, 22
$data_states[data_id].name
when 31, 32, 33, 34, 42
Vocab.param(data_id)
when 43
$data_skills[data_id]
end
if data_name.nil?
name = sprintf(base_name, value1, value2)
else
name = sprintf(base_name, data_name, value1, value2)
end
name
end
#--------------------------------------------------------------------------
# Generates effects description
#--------------------------------------------------------------------------
def self.effect_description(code, data_id, value1, value2)
custom = CUSTOM_TRAITS[[1, code, data_id,
self.convert_value(code, value1, false),
self.convert_value(code, value2, false)]]
return custom[1] unless custom.nil? || custom[1].nil?
if EFFECTS_CODEHELP[code].is_a?(Array)
base_help = value2 > 0 ? EFFECTS_CODEHELP[code][0] :
EFFECTS_CODEHELP[code][1]
else
base_help = EFFECTS_CODEHELP[code]
end
data_name = case code
when 21, 22
$data_states[data_id].name
when 31, 32, 33, 34, 42
Vocab.param(data_id)
when 43
$data_skills[data_id]
end
value1 = self.convert_value(code, value1, false)
value2 = self.convert_value(code, value2, false)
value1 = value2 if value1 == 0
if data_name.nil?
name = sprintf(base_help, value1, value2)
else
name = sprintf(base_help, data_name, value1, value2)
end
name
end
#--------------------------------------------------------------------------
# Converts the real value to the one entered in the editor
#--------------------------------------------------------------------------
def self.convert_value(code, value, feature = true)
if feature && [33, 34].include?(code)
return value.to_i
elsif feature && [21].include?(code)
return (value.to_f / 100)
elsif [11, 12].include?(code) && value <= 1
return (value.to_i * 100).to_i
else
value.to_i
end
end
#--------------------------------------------------------------------------
# Points towards either feature name or effect name
#--------------------------------------------------------------------------
def self.trait_name(trait)
if trait.is_a?(RPG::BaseItem::Feature)
return self.feature_name(trait.code, trait.data_id, trait.value)
end
self.effect_name(trait.code, trait.data_id, trait.value1, trait.value2)
end
#--------------------------------------------------------------------------
# Points towards either feature description or effect description
#--------------------------------------------------------------------------
def self.trait_description(trait)
if trait.is_a?(RPG::BaseItem::Feature)
return self.feature_description(trait.code, trait.data_id, trait.value)
end
self.effect_description(trait.code, trait.data_id, trait.value1,
trait.value2)
end
end
end
[/code]
- le Jeu 17 Juil 2014 - 19:25
- Rechercher dans: Event et BDD
- Sujet: Invocation en event / script
- Réponses: 3
- Vues: 911
Invocation en event / script
Mon systme est simple, une comptence permet de faire apparatre une entit sur le terrain qui combat avec vous jusqu' la mort de celle-ci ou jusqu' la fin du combat.pour commencer crer dans la section hro un personnage ainsi qu'une classe votre invocation :
- Spoiler:
l'avantage qu'il y a crer un hro et une classe pour chaque invocation est que votre invocation gagnera des niveaux et des capacits aux mme titre que vos hros.
Ensuite crer un vnement commun que vous appellerez par le nom de l'invocation ( pour plus de lisibilit), puis suivez l'ordre :
- Spoiler:
( la condition n'est utile que si vous voulez ne pouvoir faire qu'une invocation par combat )
ensuite crer un deuxime vnement commun que vous monterez de cette faon-ci :
- Spoiler:
(la dsactivation de l'interupteur ne sers que si vous voulez ne pouvoir faire qu'une invocation par combat)
cela fait crer une comptence du nom de l'invocation qui appelle le 1er vnement commun :
- Spoiler:
le plus dur est fait, maintenant il va nous falloir un script pour pouvoir appel notre deuxime evenement commun chaque fin de combat et pour cela j'ai utiliser le script de Yanfly d'aprs combat;
insrez ce script au dessus de main :
- Spoiler:
- #==============================================================================
#
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Yanfly Engine Ace - Victoire AprsCombat v1.00
# -- Traduit par UltimaSasuke pour rpgmakervx-fr.com
# -- Drnire Mise Jour: 2011.12.16
# -- Niveaux: Easy, Normal, Hard
# -- Require : n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YEA-VictoryAftermath"] = true
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Mise Jour
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.16 - Dbut et fin du script.
#
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# A la fin de chaque combat, RPG Maker VX Ace, par dfaut, affiche du texte
# pour chaque fin de combat en disant l'EXP gagn et les objets obtenue.
# Ce script sert rendre cette fin de combat plus visuel pour vos joueur.
# Vous pourrais voir tout ce que la fin de combat de base vous prsente mais
# en plus comprhensible et design. (Cf. Screens rpgmakervx-fr.com).
#
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pour installer ce script insr le en ouvrant l'diteur de script (F11)
# en dessous de Matrial et au dessus de Main.
#
# -----------------------------------------------------------------------------
# Instruction pour la citation de Acteurs - Ces Mots Cl vont dans les notes
# des acteurs dans la base de donnes.
# -----------------------------------------------------------------------------
#
# Corp
# Corp
#
# Dfinie la citation de l'acteur quand il gagne. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez \n pour faire
# un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour la citation
# Utilisez [New Quote] entre les deux balises pour dmmarer une nouvelle citation.
#
# // EXEMPLE :
#
# "Je suis le meilleur!"
# [new quote]
# "Ils ne font pas le poid.\n Je resterais le meilleur!"
#
# FIN DE L'EXEMPLE \\
#
#
# Corp
# Corp
#
# Dfinie la citation de l'acteur quand il gagne des niveaux. Le corp du code
#est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Je suis plus puissant!"
# [new quote]
# "Dj que les combat sont simple, \n Maintenant sa va tre de la tarte!"
#
# FIN DE L'EXEMPLE \\
#
#
# Corp
# Corp
#
# Dfinie la citation de l'acteur quand il gagne des objets. Le corp du code
#est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Intrssant ce qu'il y a!"
# [new quote]
# "Tout a rien que pour moi. \n Je vais vite devenir riche!!"
#
# FIN DE L'EXEMPLE \\
#
# -----------------------------------------------------------------------------
# Instruction pour la citation des classes - Ces Mots Cl vont dans les notes
# des classes dans la base de donnes.
# -----------------------------------------------------------------------------
#
# corp
# corp
#
# Dfinie la citation de la classe quand elle gagne. Le corp du code
# est continue, vous pouvez utiliser les codes de texte. Utilisez \n pour faire
# un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour la citation
# Utilisez [New Quote] entre les deux balises pour dmmarer une nouvelle citation.
#
# // EXEMPLE :
#
# "Les Chevaliers sont les meilleurs!"
# [new quote]
# "Ils ne font pas le poid.\n Les Chevaliers en font des confties!"
#
# FIN DE L'EXEMPLE \\
#
#
# corp
# corp
#
# Dfinie la citation de la classe quand elle gagne des niveaux. Le corp du code
#est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Les chevaliers deviennent plus puissant!"
# [new quote]
# "Dj que les combat sont simple, \n Maintenant sa va tre de la tarte!"
#
# FIN DE L'EXEMPLE \\
#
#
# corp
# corp
#
# Dfinie la citation de la classe quand elle gagne des objets. Le corp du code
#est continue, vous pouvez utiliser les codes de texte. Utilisez
# \n pour faire un saut de ligne. Tapez ce que vous voulez que l'acteur dise pour
# la citation. Utilisez [New Quote] entre les deux balises pour dmmarer une
# nouvelle citation.
#
# //EXEMPLE :
#
# "Intrssant ce qu'il y a!"
# [new quote]
# "Tout a rien que pour nous. \n Nous allons vite devenir riche!!"
#
# FIN DE L'EXEMPLE \\
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ce script est fait pour RPG Maker VX Ace et il est peut probable qu'il
# fonction sous RPG Maker VX sans ajustement.
#
#==============================================================================
module YEA
module VICTORY_AFTERMATH
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Paramétre Général -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Ce sont des paramétre différent utilisé par le script, modifiez les
# comme bon vous sembles.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
VICTORY_BGM = RPG::BGM.new("Field1", 100, 100) # Effet de Victoire (BGM)
VICTORY_TICK = RPG::SE.new("Decision1", 100, 150) # Effet d'EXP (SE)
LEVEL_SOUND = RPG::SE.new("Up4", 80, 150) # Effet de niveaux (SE)
SKILLS_TEXT = "Nouvelle compétence!" # Nouvelles compétences
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Paramétre important -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Ce sont des paramétres important, configurez les correctement. Il y a
# un intérupteur qui permet de sauté la phase de script après le combat.
# (pour ne plus voir la phase de résumé de victoire) et vous permet
# d'appeller un évenement commun après chaque combat. Si vous ne souhaitez
# pas faire appelle à ces fonctionalité, les mettre à 0. L'événement se
# déroulera indépendamment de gagner ou s'échapper.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
SKIP_AFTERMATH_SWITCH = 0 # Si l'intérupteur est activé, cela sautera la
# phase de résumé de victoire après le combat. Mettre à 0 pour
# désactiver cette fonctionalité.
AFTERMATH_COMMON_EVENT = 6 # Appelle un évenement commun après le combat.
# Mettre à 0 pour désactiver cette fonctionalité.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Paramétre du texte du haut -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Ici, vous pouvez ajuster les différents textes qui s'affiche dans la
# fenêtre qui apparaît en haut de l'écran.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TOP_TEAM = "Equipe de %s" # Nom de l'équipe utilisé.
TOP_VICTORY_TEXT = "%s sort victorieuse!" # Texte de victoire.
TOP_LEVEL_UP = "%s a monté de niveau!" # Text de niveau gagné.
TOP_SPOILS = "Butin gagné!" # Texte pour le butins.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Paramétre de la jauge d'EXP -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Ajustez la façon que la Jauge d'EXP apparaît pour le script. Ca comprend
# l'affichage du texte, la taille de la police, la couleur des jauges, et
# plus encore. Réglez tout ça ici.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
VICTORY_EXP = "+%sEXP" # Texte affiché pour l'EXP
EXP_PERCENT = "%1.2f%%" # L'EXP en % affiché.
LEVELUP_TEXT = "Niveau Gagné!" # Texte qui remplace le % d'EXP quand le
# le niveau monte.
MAX_LVL_TEXT = "Niveau Maximum Atteint!" # Texte pour dire que le niveau
# max est atteint
FONTSIZE_EXP = 20 # Taille de la police pour l'EXP
EXP_TICKS = 15 # Ticks to full EXP
EXP_GAUGE1 = 12 # "Fenêtre" Couleur de la texture du text
# pour la jauge.
EXP_GAUGE2 = 4 # "Fenêtre" Couleur de la texture du text
# pour la jauge.
LEVEL_GAUGE1 = 13 # "Fenêtre" Couleur de la texture du text
# pour le gain de niveau.
LEVEL_GAUGE2 = 5 # "Fenêtre" Couleur de la texture du text
# pour le gain de niveau.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Messages de victoire -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Dans ce script, les acteurs peuvent avoir des citations unique. Ceci est
# "bassin" de citation utilisé par les acteurs qui n'ont pas de citations
# personel (voir instruction sur les citations d'acteurs). Sachez que les
# citations personalisé au acteurs est prioritaire sur les citations de
# classe qui elle sont prioritaire sur les citations par défaut
# (ci-dessous). Utilisez \n pour un saut de ligne dans les citations.
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
HEADER_TEXT = "\e>\eC[6]%s\eC[0]\e<\n" # Toujours au début des messages.
FOOTER_TEXT = "" # Toujours à la fin des messages.
# Les citations par défauts, ce que les acteurs disent quand ils gagnent.
VICTORY_QUOTES ={
# :type => Citations
#------------------------------------------------------------------------
:win => [ # Survient au dbut de la citation de victoire.
'"Nous avons gagn! C\'tait un beau combat."',
'"Je ne suis mme pas fatigu."',
'"Ce n\'tait pas si difficile."',
'"Allons chercher plus fort!"',
],# Ne pas enlever a.
#------------------------------------------------------------------------
:level => [ # Survient au dbut de la citation de victoire.
'"Oui! Niveau gagn!"',
'"Je deviens plus fort!"',
'"Essayez de me suivre!"',
'"Je deviens encore plus fort!"',
],# Ne pas enlever a.
#------------------------------------------------------------------------
:drops => [ # Survient au dbut de la citation de victoire.
'"Je vais prendre a."',
'"Il y a le butin pour le vainqueur."',
'"Les ennemies ont fait tomber quelque chose!"',
'"Hey! C\'est quoi a?!"',
],# Ne pas enlever a.
#------------------------------------------------------------------------
} # Ne pas enlever a.
end # VICTORY_AFTERMATH
end # YEA
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Ne pas ditez ce qu'il y a plus bas, sinon vous pourrez rentre dans le coma
# et/ou mourrir. (Petite touche d'humour du scripteur).
#==============================================================================
module YEA
module REGEXP
module BASEITEM
NEW_QUOTE = /\[(?:NEW_QUOTE|new quote)\]/i
WIN_QUOTE_ON = /<(?:WIN_QUOTES|win quote)>/i
WIN_QUOTE_OFF = /<\/(?:WIN_QUOTES|win quote)>/i
LEVEL_QUOTE_ON = /<(?:LEVEL_QUOTES|level quote)>/i
LEVEL_QUOTE_OFF = /<\/(?:LEVEL_QUOTES|level quote)>/i
DROPS_QUOTE_ON = /<(?:DROPS_QUOTES|drops quote)>/i
DROPS_QUOTE_OFF = /<\/(?:DROPS_QUOTES|drops quote)>/i
end # BASEITEM
end # REGEXP
end # YEA
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Switch
#==============================================================================
module Switch
#--------------------------------------------------------------------------
# self.skip_aftermath
#--------------------------------------------------------------------------
def self.skip_aftermath
return false if YEA::VICTORY_AFTERMATH::SKIP_AFTERMATH_SWITCH <= 0
return $game_switches[YEA::VICTORY_AFTERMATH::SKIP_AFTERMATH_SWITCH]
end
end # Switch
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Numeric
#==============================================================================
class Numeric
#--------------------------------------------------------------------------
# new method: group_digits
#--------------------------------------------------------------------------
unless $imported["YEA-CoreEngine"]
def group; return self.to_s; end
end # $imported["YEA-CoreEngine"]
end # Numeric
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> DataManager
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <alias load_database_va load_database; end
def self.load_database
load_database_va
load_notetags_va
end
#--------------------------------------------------------------------------
# new method: load_notetags_va
#--------------------------------------------------------------------------
def self.load_notetags_va
groups = [$data_actors, $data_classes]
for group in groups
for obj in group
next if obj.nil?
obj.load_notetags_va
end
end
end
end # DataManager
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> RPG::BaseItem
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :win_quotes
attr_accessor :level_quotes
attr_accessor :drops_quotes
#--------------------------------------------------------------------------
# common cache: load_notetags_va
#--------------------------------------------------------------------------
def load_notetags_va
@win_quotes = [""]
@level_quotes = [""]
@drops_quotes = [""]
@victory_quote_type = nil
#---
self.note.split(/[\r\n]+/).each { |line|
case line
#---
when YEA::REGEXP::BASEITEM::WIN_QUOTE_ON
@victory_quote_type = :win_quote
when YEA::REGEXP::BASEITEM::WIN_QUOTE_OFF
@victory_quote_type = nil
when YEA::REGEXP::BASEITEM::LEVEL_QUOTE_ON
@victory_quote_type = :level_quote
when YEA::REGEXP::BASEITEM::LEVEL_QUOTE_OFF
@victory_quote_type = nil
when YEA::REGEXP::BASEITEM::DROPS_QUOTE_ON
@victory_quote_type = :drops_quote
when YEA::REGEXP::BASEITEM::DROPS_QUOTE_OFF
@victory_quote_type = nil
#---
when YEA::REGEXP::BASEITEM::NEW_QUOTE
case @victory_quote_type
when nil; next
when :win_quote; @win_quotes.push("")
when :level_quote; @level_quotes.push("")
when :drops_quote; @drops_quotes.push("")
end
#---
else
case @victory_quote_type
when nil; next
when :win_quote; @win_quotes[@win_quotes.size-1] += line.to_s
when :level_quote; @level_quotes[@level_quotes.size-1] += line.to_s
when :drops_quote; @drops_quotes[@drops_quotes.size-1] += line.to_s
end
end
} # self.note.split
#---
return unless self.is_a?(RPG::Class)
quotes = YEA::VICTORY_AFTERMATH::VICTORY_QUOTES
@win_quotes = quotes[:win].clone if @win_quotes == [""]
@level_quotes = quotes[:level].clone if @level_quotes == [""]
@drops_quotes = quotes[:drops].clone if @drops_quotes == [""]
end
end # RPG::BaseItem
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> BattleManager
#==============================================================================
module BattleManager
#--------------------------------------------------------------------------
# overwrite method: self.process_victory
#--------------------------------------------------------------------------
def self.process_victory
if Switch.skip_aftermath
skip_aftermath
return
end
play_battle_end_me
display_exp
gain_exp
gain_gold
gain_drop_items
close_windows
SceneManager.return
replay_bgm_and_bgs
battle_end(0)
return true
end
#--------------------------------------------------------------------------
# new method: self.skip_aftermath
#--------------------------------------------------------------------------
def self.skip_aftermath
$game_party.all_members.each do |actor|
actor.gain_exp($game_troop.exp_total)
end
$game_party.gain_gold($game_troop.gold_total)
$game_troop.make_drop_items.each do |item|
$game_party.gain_item(item, 1)
end
close_windows
SceneManager.return
replay_bgm_and_bgs
battle_end(0)
end
#--------------------------------------------------------------------------
# overwrite method: self.play_battle_end_me
#--------------------------------------------------------------------------
def self.play_battle_end_me
$game_system.battle_end_me.play
YEA::VICTORY_AFTERMATH::VICTORY_BGM.play
end
#--------------------------------------------------------------------------
# new method: self.set_victory_text
#--------------------------------------------------------------------------
def self.set_victory_text(actor, type)
text = "" + sprintf(YEA::VICTORY_AFTERMATH::HEADER_TEXT, actor.name)
text += actor.victory_quotes(type)[rand(actor.victory_quotes(type).size)]
text += YEA::VICTORY_AFTERMATH::FOOTER_TEXT
$game_message.face_name = actor.face_name
$game_message.face_index = actor.face_index
$game_message.add(text)
wait_for_message
end
#--------------------------------------------------------------------------
# overwrite method: self.display_exp
#--------------------------------------------------------------------------
def self.display_exp
SceneManager.scene.show_victory_display_exp
actor = $game_party.random_target
@victory_actor = actor
set_victory_text(@victory_actor, :win)
end
#--------------------------------------------------------------------------
# overwrite method: self.gain_exp
#--------------------------------------------------------------------------
def self.gain_exp
$game_party.all_members.each do |actor|
temp_actor = Marshal.load(Marshal.dump(actor))
actor.gain_exp($game_troop.exp_total)
next if actor.level == temp_actor.level
SceneManager.scene.show_victory_level_up(actor, temp_actor)
set_victory_text(actor, :level)
wait_for_message
end
end
#--------------------------------------------------------------------------
# overwrite method: self.gain_gold
#--------------------------------------------------------------------------
def self.gain_gold
$game_party.gain_gold($game_troop.gold_total)
end
#--------------------------------------------------------------------------
# overwrite method: self.gain_drop_items
#--------------------------------------------------------------------------
def self.gain_drop_items
drops = []
$game_troop.make_drop_items.each do |item|
$game_party.gain_item(item, 1)
drops.push(item)
end
SceneManager.scene.show_victory_spoils($game_troop.gold_total, drops)
set_victory_text(@victory_actor, :drops)
wait_for_message
end
#--------------------------------------------------------------------------
# new method: self.close_windows
#--------------------------------------------------------------------------
def self.close_windows
SceneManager.scene.close_victory_windows
end
#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <alias battle_end_va battle_end; end
def self.battle_end(result)
battle_end_va(result)
return if result == 2
return if YEA::VICTORY_AFTERMATH::AFTERMATH_COMMON_EVENT <= 0
event_id = YEA::VICTORY_AFTERMATH::AFTERMATH_COMMON_EVENT
$game_temp.reserve_common_event(event_id)
end
end # BattleManager
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# overwrite method: gain_exp
#--------------------------------------------------------------------------
def gain_exp(exp)
enabled = !SceneManager.scene_is?(Scene_Battle)
change_exp(self.exp + (exp * final_exp_rate).to_i, enabled)
end
#--------------------------------------------------------------------------
# new method: victory_quotes
#--------------------------------------------------------------------------
def victory_quotes(type)
case type
when :win
return self.actor.win_quotes if self.actor.win_quotes != [""]
return self.class.win_quotes
when :level
return self.actor.level_quotes if self.actor.level_quotes != [""]
return self.class.level_quotes
when :drops
return self.actor.drops_quotes if self.actor.drops_quotes != [""]
return self.class.drops_quotes
else
return ["NOTEXT"]
end
end
end # Game_Actor
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Window_VictoryTitle
#==============================================================================
class Window_VictoryTitle < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, Graphics.width, fitting_height(1))
self.z = 200
self.openness = 0
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(message = "")
contents.clear
draw_text(0, 0, contents.width, line_height, message, 1)
end
end # Window_VictoryTitle
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Window_VictoryEXP_Back
#==============================================================================
class Window_VictoryEXP_Back < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, fitting_height(1), Graphics.width, window_height)
self.z = 200
self.openness = 0
end
#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height
return Graphics.height - fitting_height(4) - fitting_height(1)
end
#--------------------------------------------------------------------------
# col_max
#--------------------------------------------------------------------------
def col_max; return item_max; end
#--------------------------------------------------------------------------
# spacing
#--------------------------------------------------------------------------
def spacing; return 8; end
#--------------------------------------------------------------------------
# item_max
#--------------------------------------------------------------------------
def item_max; return $game_party.battle_members.size; end
#--------------------------------------------------------------------------
# open
#--------------------------------------------------------------------------
def open
@exp_total = $game_troop.exp_total
super
end
#--------------------------------------------------------------------------
# item_rect
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new
rect.width = item_width
rect.height = contents.height
rect.x = index % col_max * (item_width + spacing)
rect.y = index / col_max * item_height
return rect
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
actor = $game_party.battle_members[index]
return if actor.nil?
rect = item_rect(index)
reset_font_settings
draw_actor_name(actor, rect)
draw_exp_gain(actor, rect)
draw_actor_face(actor, rect)
end
#--------------------------------------------------------------------------
# draw_actor_name
#--------------------------------------------------------------------------
def draw_actor_name(actor, rect)
name = actor.name
draw_text(rect.x, rect.y+line_height, rect.width, line_height, name, 1)
end
#--------------------------------------------------------------------------
# draw_actor_face
#--------------------------------------------------------------------------
def draw_actor_face(actor, rect)
face_name = actor.face_name
face_index = actor.face_index
bitmap = Cache.face(face_name)
rw = [rect.width, 96].min
face_rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, rw, 96)
rx = (rect.width - rw) / 2 + rect.x
contents.blt(rx, rect.y + line_height * 2, bitmap, face_rect, 255)
end
#--------------------------------------------------------------------------
# draw_exp_gain
#--------------------------------------------------------------------------
def draw_exp_gain(actor, rect)
dw = rect.width - (rect.width - [rect.width, 96].min) / 2
dy = rect.y + line_height * 3 + 96
fmt = YEA::VICTORY_AFTERMATH::VICTORY_EXP
text = sprintf(fmt, actor_exp_gain(actor).group)
contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP
change_color(power_up_color)
draw_text(rect.x, dy, dw, line_height, text, 2)
end
#--------------------------------------------------------------------------
# actor_exp_gain
#--------------------------------------------------------------------------
def actor_exp_gain(actor)
n = @exp_total * actor.final_exp_rate
return n.to_i
end
end # Window_VictoryEXP_Back
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Window_VictoryEXP_Front
#==============================================================================
class Window_VictoryEXP_Front < Window_VictoryEXP_Back
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super
self.back_opacity = 0
@ticks = 0
@counter = 30
contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP
end
#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
update_tick
end
#--------------------------------------------------------------------------
# update_tick
#--------------------------------------------------------------------------
def update_tick
return unless self.openness >= 255
return if complete_ticks?
@counter -= 1
return unless @counter <= 0
return if @ticks >= YEA::VICTORY_AFTERMATH::EXP_TICKS
YEA::VICTORY_AFTERMATH::VICTORY_TICK.play
@counter = 4
@ticks += 1
refresh
end
#--------------------------------------------------------------------------
# complete_ticks?
#--------------------------------------------------------------------------
def complete_ticks?
for actor in $game_party.battle_members
total_ticks = YEA::VICTORY_AFTERMATH::EXP_TICKS
bonus_exp = actor_exp_gain(actor) * @ticks / total_ticks
now_exp = actor.exp - actor.current_level_exp + bonus_exp
next_exp = actor.next_level_exp - actor.current_level_exp
rate = now_exp * 1.0 / next_exp
return false if rate < 1.0
end
return true
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
actor = $game_party.battle_members[index]
return if actor.nil?
rect = item_rect(index)
draw_actor_exp(actor, rect)
end
#--------------------------------------------------------------------------
# exp_gauge1
#--------------------------------------------------------------------------
def exp_gauge1; return text_color(YEA::VICTORY_AFTERMATH::EXP_GAUGE1); end
#--------------------------------------------------------------------------
# exp_gauge2
#--------------------------------------------------------------------------
def exp_gauge2; return text_color(YEA::VICTORY_AFTERMATH::EXP_GAUGE2); end
#--------------------------------------------------------------------------
# lvl_gauge1
#--------------------------------------------------------------------------
def lvl_gauge1; return text_color(YEA::VICTORY_AFTERMATH::LEVEL_GAUGE1); end
#--------------------------------------------------------------------------
# lvl_gauge2
#--------------------------------------------------------------------------
def lvl_gauge2; return text_color(YEA::VICTORY_AFTERMATH::LEVEL_GAUGE2); end
#--------------------------------------------------------------------------
# draw_actor_exp
#--------------------------------------------------------------------------
def draw_actor_exp(actor, rect)
if actor.max_level?
draw_exp_gauge(actor, rect, 1.0)
return
end
total_ticks = YEA::VICTORY_AFTERMATH::EXP_TICKS
bonus_exp = actor_exp_gain(actor) * @ticks / total_ticks
now_exp = actor.exp - actor.current_level_exp + bonus_exp
next_exp = actor.next_level_exp - actor.current_level_exp
rate = now_exp * 1.0 / next_exp
draw_exp_gauge(actor, rect, rate)
end
#--------------------------------------------------------------------------
# draw_exp_gauge
#--------------------------------------------------------------------------
def draw_exp_gauge(actor, rect, rate)
dx = (rect.width - [rect.width, 96].min) / 2 + rect.x
dy = rect.y + line_height * 2 + 96
dw = [rect.width, 96].min
colour1 = rate >= 1.0 ? lvl_gauge1 : exp_gauge1
colour2 = rate >= 1.0 ? lvl_gauge2 : exp_gauge2
draw_gauge(dx, dy, dw, rate, colour1, colour2)
fmt = YEA::VICTORY_AFTERMATH::EXP_PERCENT
text = sprintf(fmt, [rate * 100, 100.00].min)
if [rate * 100, 100.00].min == 100.00
text = YEA::VICTORY_AFTERMATH::LEVELUP_TEXT
text = YEA::VICTORY_AFTERMATH::MAX_LVL_TEXT if actor.max_level?
end
draw_text(dx, dy, dw, line_height, text, 1)
end
end # Window_VictoryEXP_Front
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Window_VictoryLevelUp
#==============================================================================
class Window_VictoryLevelUp < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, fitting_height(1), Graphics.width, window_height)
self.z = 200
hide
end
#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height
return Graphics.height - fitting_height(4) - fitting_height(1)
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(actor, temp_actor)
contents.clear
reset_font_settings
YEA::VICTORY_AFTERMATH::LEVEL_SOUND.play
draw_actor_changes(actor, temp_actor)
end
#--------------------------------------------------------------------------
# draw_actor_changes
#--------------------------------------------------------------------------
def draw_actor_changes(actor, temp_actor)
dx = contents.width / 16
draw_actor_image(actor, temp_actor, dx)
draw_param_names(actor, dx)
draw_former_stats(temp_actor)
draw_arrows
draw_newer_stats(actor, temp_actor)
draw_new_skills(actor, temp_actor)
end
#--------------------------------------------------------------------------
# draw_actor_image
#--------------------------------------------------------------------------
def draw_actor_image(actor, temp_actor, dx)
draw_text(dx, line_height, 96, line_height, actor.name, 1)
draw_actor_face(actor, dx, line_height * 2)
exp = actor.exp - temp_actor.exp
text = sprintf(YEA::VICTORY_AFTERMATH::VICTORY_EXP, exp.group)
change_color(power_up_color)
contents.font.size = YEA::VICTORY_AFTERMATH::FONTSIZE_EXP
draw_text(0, line_height * 2 + 96, dx + 96, line_height, text, 2)
reset_font_settings
end
#--------------------------------------------------------------------------
# draw_param_names
#--------------------------------------------------------------------------
def draw_param_names(actor, dx)
dx += 108
change_color(system_color)
text = Vocab.level
draw_text(dx, 0, contents.width - dx, line_height, text)
dy = 0
for i in 0...8
dy += line_height
text = Vocab.param(i)
draw_text(dx, dy, contents.width - dx, line_height, text)
end
end
#--------------------------------------------------------------------------
# draw_former_stats
#--------------------------------------------------------------------------
def draw_former_stats(actor)
dw = contents.width / 2 - 12
dy = 0
change_color(normal_color)
draw_text(0, dy, dw, line_height, actor.level.group, 2)
for i in 0...8
dy += line_height
draw_text(0, dy, dw, line_height, actor.param(i).group, 2)
end
end
#--------------------------------------------------------------------------
# draw_arrows
#--------------------------------------------------------------------------
def draw_arrows
dx = contents.width / 2 - 12
dy = 0
change_color(system_color)
for i in 0..8
draw_text(dx, dy, 24, line_height, ".1621448769014E+21;pan style="color:#aa0000" class="coloradmin">", 1)
dy += line_height
end
end
#--------------------------------------------------------------------------
# draw_newer_stats
#--------------------------------------------------------------------------
def draw_newer_stats(actor, temp_actor)
dx = contents.width / 2 + 12
dw = contents.width - dx
dy = 0
change_color(param_change_color(actor.level - temp_actor.level))
draw_text(dx, dy, dw, line_height, actor.level.group, 0)
for i in 0...8
dy += line_height
change_color(param_change_color(actor.param(i) - temp_actor.param(i)))
draw_text(dx, dy, dw, line_height, actor.param(i).group, 0)
end
end
#--------------------------------------------------------------------------
# draw_new_skills
#--------------------------------------------------------------------------
def draw_new_skills(actor, temp_actor)
return if temp_actor.skills.size == actor.skills.size
dw = 172 + 24
dx = contents.width - dw
change_color(system_color)
text = YEA::VICTORY_AFTERMATH::SKILLS_TEXT
draw_text(dx, 0, dw, line_height, text, 0)
end
end # Window_VictoryLevelUp
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Window_VictorySkills
#==============================================================================
class Window_VictorySkills < Window_Selectable
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
dy = fitting_height(1) + 24
dw = 172 + 24 + 24
dh = Graphics.height - fitting_height(4) - fitting_height(1) - 24
super(Graphics.width - dw, dy, dw, dh)
self.opacity = 0
self.z = 200
hide
end
#--------------------------------------------------------------------------
# item_max
#--------------------------------------------------------------------------
def item_max; return @data.nil? ? 0 : @data.size; end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def refresh(actor, temp_actor)
contents.clear
if actor.skills.size == temp_actor.skills.size
unselect
@data = []
create_contents
return
end
@data = actor.skills - temp_actor.skills
if @data.size > 8
select(0)
activate
else
unselect
deactivate
end
create_contents
draw_all_items
end
#--------------------------------------------------------------------------
# refresh
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
skill = @data[index]
return if skill.nil?
rect.width -= 4
draw_item_name(skill, rect.x, rect.y, true)
end
end # Window_VictorySkills
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Window_VictorySpoils
#==============================================================================
class Window_VictorySpoils < Window_ItemList
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, fitting_height(1), Graphics.width, window_height)
self.z = 200
hide
end
#--------------------------------------------------------------------------
# window_height
#--------------------------------------------------------------------------
def window_height
return Graphics.height - fitting_height(4) - fitting_height(1)
end
#--------------------------------------------------------------------------
# spacing
#--------------------------------------------------------------------------
def spacing; return 32; end
#--------------------------------------------------------------------------
# make
#--------------------------------------------------------------------------
def make(gold, drops)
@gold = gold
@drops = drops
refresh
select(0)
activate
end
#--------------------------------------------------------------------------
# make_item_list
#--------------------------------------------------------------------------
def make_item_list
@data = [nil]
items = {}
weapons = {}
armours = {}
@goods = {}
for item in @drops
case item
when RPG::Item
items[item] = 0 if items[item].nil?
items[item] += 1
when RPG::Weapon
weapons[item] = 0 if weapons[item].nil?
weapons[item] += 1
when RPG::Armor
armours[item] = 0 if armours[item].nil?
armours[item] += 1
end
end
items = items.sort { |a,b| a[0].id <=> b[0].id }
weapons = weapons.sort { |a,b| a[0].id <=> b[0].id }
armours = armours.sort { |a,b| a[0].id <=> b[0].id }
for key in items; @goods[key[0]] = key[1]; @data.push(key[0]); end
for key in weapons; @goods[key[0]] = key[1]; @data.push(key[0]); end
for key in armours; @goods[key[0]] = key[1]; @data.push(key[0]); end
end
#--------------------------------------------------------------------------
# draw_item
#--------------------------------------------------------------------------
def draw_item(index)
item = @data[index]
rect = item_rect(index)
reset_font_settings
if item.nil?
draw_gold(rect)
return
end
rect.width -= 4
draw_item_name(item, rect.x, rect.y, true, rect.width - 24)
draw_item_number(rect, item)
end
#--------------------------------------------------------------------------
# draw_gold
#--------------------------------------------------------------------------
def draw_gold(rect)
text = Vocab.currency_unit
draw_currency_value(@gold, text, rect.x, rect.y, rect.width)
end
#--------------------------------------------------------------------------
# draw_item_number
#--------------------------------------------------------------------------
def draw_item_number(rect, item)
number = @goods[item].group
if $imported["YEA-AdjustLimits"]
contents.font.size = YEA::LIMIT::ITEM_FONT
text = sprintf(YEA::LIMIT::ITEM_PREFIX, number)
draw_text(rect, text, 2)
else
draw_text(rect, sprintf(":%s", number), 2)
end
end
end # Window_VictorySpoils
#==============================================================================
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# alias method: create_all_windows
#--------------------------------------------------------------------------
alias scene_battle_create_all_windows_va create_all_windows
def create_all_windows
scene_battle_create_all_windows_va
create_victory_aftermath_windows
end
#--------------------------------------------------------------------------
# new method: create_victory_aftermath_windows
#--------------------------------------------------------------------------
def create_victory_aftermath_windows
@victory_title_window = Window_VictoryTitle.new
@victory_exp_window_back = Window_VictoryEXP_Back.new
@victory_exp_window_front = Window_VictoryEXP_Front.new
@victory_level_window = Window_VictoryLevelUp.new
@victory_level_skills = Window_VictorySkills.new
@victory_spoils_window = Window_VictorySpoils.new
end
#--------------------------------------------------------------------------
# new method: show_victory_display_exp
#--------------------------------------------------------------------------
def show_victory_display_exp
@victory_title_window.open
name = $game_party.battle_members[0].name
fmt = YEA::VICTORY_AFTERMATH::TOP_TEAM
name = sprintf(fmt, name) if $game_party.battle_members.size > 1
fmt = YEA::VICTORY_AFTERMATH::TOP_VICTORY_TEXT
text = sprintf(fmt, name)
@victory_title_window.refresh(text)
#---
@victory_exp_window_back.open
@victory_exp_window_back.refresh
@victory_exp_window_front.open
@victory_exp_window_front.refresh
end
#--------------------------------------------------------------------------
# new method: show_victory_level_up
#--------------------------------------------------------------------------
def show_victory_level_up(actor, temp_actor)
@victory_exp_window_back.hide
@victory_exp_window_front.hide
#---
fmt = YEA::VICTORY_AFTERMATH::TOP_LEVEL_UP
text = sprintf(fmt, actor.name)
@victory_title_window.refresh(text)
#---
@victory_level_window.show
@victory_level_window.refresh(actor, temp_actor)
@victory_level_skills.show
@victory_level_skills.refresh(actor, temp_actor)
end
#--------------------------------------------------------------------------
# new method: show_victory_spoils
#--------------------------------------------------------------------------
def show_victory_spoils(gold, drops)
@victory_exp_window_back.hide
@victory_exp_window_front.hide
@victory_level_window.hide
@victory_level_skills.hide
#---
text = YEA::VICTORY_AFTERMATH::TOP_SPOILS
@victory_title_window.refresh(text)
#---
@victory_spoils_window.show
@victory_spoils_window.make(gold, drops)
end
#--------------------------------------------------------------------------
# new method: close_victory_windows
#--------------------------------------------------------------------------
def close_victory_windows
@victory_title_window.close
@victory_exp_window_back.close
@victory_exp_window_front.close
@victory_level_window.close
@victory_level_skills.close
@victory_spoils_window.close
wait(16)
end
end # Scene_Battle
#==============================================================================
#
# .1621448769014E+21;pan style="color:#aa0000" class="coloradmin"> Fin du script
#
#==============================================================================
aller la ligne 183 du script et remplacer le 0 de la ligne
"AFTERMATH_COMMON_EVENT = 0 # Appelle un venement commun aprs le combat." par le numro de votre deuxime event commun et voil le tour est jou votre premire invocation est prte a l'emploi ! il ne vous reste plus qu' faire les mme manipulation pour chaque invocation ;)
- le Ven 22 Nov 2013 - 11:00
- Rechercher dans: Event et BDD
- Sujet: Crer des livres ( la Skyrim)
- Réponses: 7
- Vues: 1168
Crer des livres ( la Skyrim)
Bonjour,
Voici le tutoriel portant sur la cration et la gestion de livre dite la Skyrim.
1)Insrer ce script au-dessous de Materials : Livres
noter que vous aurez besoin du Core script (peut prsenter une incompatibilit avec le Core Script de Victor ou de Yanfly (mais ils sont optionnels, donc pas si grave en fait).
2) Paramtrer ce script :
#--------------------------------------------------------------------------#
# * Settings
#--------------------------------------------------------------------------#
# FONT:
# FONT = [name, size, color, bold, shadow]
FONT = [["Augusta", "Verdana"], 16, Color.new(255,255,255), true, true] ==> La police utilisée. Si impossible, utilise la suivante.
# Setup the books.
# :title => [page1, page2, page3...]
# In the array for pages you can use the following to output a string:
# %{Some text}, "Some text" etc.
# The title will be converted, capitalized and any underlines will
# be removed.
#--------------------------------------------------------------------------#
Explications :
:histoire_d_eridia est le nom du livre en haut au milieu (crit en majuscule).
[%{INTRODUCTION est le nom de la premire page du livre
Ensuite, remplissez comme vous voulez en faisant les retours de ligne manuellement
afin que le texte se lise correctement. Une page se termine avec ceci : },
Puis, vous pouvez faire autant de pages que vous le souhaitez en rptant cette opration. C'est--dire :
[%{PAGE 1
Blablabla
},
[%{PAGE 2
Blablabla
},
etc.
3) Configurer les options supplémentaires du script, maintenant que les livres sont crées.
# Change page text.
# PAGE_TEXT = string
PAGE_TEXT = "Changez de page avec Gauche/Droite." => Texte à écrire pour indiquer le changement de page.
# Single page text.
# SINGLE_TEXT = string => Si votre livre n'a qu'une page par exemple, un texte spécial
SINGLE_TEXT = ""
# Use default background. (snapshot of the map) => Utilise par défaut la map actuelle comme fond
# BACK = true/false
BACK = true
# Custom background.
# CUST_BACK = [filename, hide_window]
# Optional to use, set filename to "" to disable. => Si vous souhaitez une image particulière (autre que la map).
CUST_BACK = ["", false]
# SKIN:
# The windowskin to use for the windows. => Si vous souhaitez utiliser un windowskin pour la fentre des livres.
# Set to nil to disable.
# SKIN = string
SKIN = nil
4) Crer un vnement commun contenant la commande suivante : SceneManager.call_ext(Scene_HistBook, :symbol) o :symbole est le nom de scne de votre livre.
Exemple : SceneManager.call_ext(Scene_HistBook, :histoire_d_eridia) pour notre livre.
5) Crer un objet livre et choisissez un nom pour cet objet. Appeler l'événement commun crée au point précédent. Exemple : :histoire_d_eridia => Histoire d'Eridia ou Eridia (vous choisissez ce que vous voulez, c'est juste le nom de l'objet en fait).
Ne faites pas attention la note : "category: Livres", car il s'agit d'une fonction du menu custom (Yanfly).
Screenshot de la scne :
Voil, la prochaine pour un nouveau tutoriel.
Viper
Voici le tutoriel portant sur la cration et la gestion de livre dite la Skyrim.
1)Insrer ce script au-dessous de Materials : Livres
noter que vous aurez besoin du Core script (peut prsenter une incompatibilit avec le Core Script de Victor ou de Yanfly (mais ils sont optionnels, donc pas si grave en fait).
2) Paramtrer ce script :
#--------------------------------------------------------------------------#
# * Settings
#--------------------------------------------------------------------------#
# FONT:
# FONT = [name, size, color, bold, shadow]
FONT = [["Augusta", "Verdana"], 16, Color.new(255,255,255), true, true] ==> La police utilisée. Si impossible, utilise la suivante.
# Setup the books.
# :title => [page1, page2, page3...]
# In the array for pages you can use the following to output a string:
# %{Some text}, "Some text" etc.
# The title will be converted, capitalized and any underlines will
# be removed.
#--------------------------------------------------------------------------#
- Exemple de livre:
- BOOKS = {
# EXAMPLE 1
:histoire_d_eridia => [%{INTRODUCTION
Par la Guilde des Moines de Tanaria,
Cet ouvrage retrace au mieux la longue et passionnante histoire de notre beau
continent, Eridia. Notre Guilde transmet aux lecteurs le fruit de son labeur
et lui introduit les notions fondamentales savoir sur ce dernier. Cet ouvrage
et dont les multiples copies crites par nos moines ont jusqu' mme travers
le Grand Ocan, proviennent tous de la Bibliothque Nationale de Tanaria.
L'criture a t ralis par nos meilleurs moines, qui, travers leurs voyages
et leur instruction acadmique, ont appris et dcouverts bien des cultures,
jusqu'ici inconnues. De plus, de nombreux parchemins et notes ont t retrouvs
et assembls - afin de retranscrire le plus fidlement possible - les faits
historiques.},
%{CHAPITRE I - LA NAISSANCE
Tout commena lorsque le monde tait jeune et vigoureux, que les arbres les
plus robustes n'taient alors que timides bourgeons, que les mers et les lacs
n'taient que petits plan d'eau et que les tres vivants ne l'taient pas
encore. Survint alors la Grande Tempte, mieux connue sous le nom de Tempte
Fondactrice, car c'est elle qui instaura la vie sur Eridia. Elle attira de
ses vents un jeune homme et une jeune femme de l'espace mme, et ils se
reproduisirent alors, lorsque les vents se furent calms.
Les trois enfants, dont les leurs, ns de l'inceste obligatoire afin de
commencer toute civilisation, ne vcurent pas trs longtemps. Ils taient
alors chtifs et malades. Bien des annes plus tard, lorsque le peuple tait
alors un bon millier, il dcida de se donner un nom, afin que leurs
successeurs puissent s'en souvenir, et chanter leur mrites.},
%{Chapitre II - Les Civilisations
Parmi toutes les Civilisations qu'Eridia ait connue, il ne fait aujourd'hui
aucun doute que les Merkhats soient les plus puissantes. Ils ne furent
pas seulement la premire civilisation, mais possdait plus de
mille ans d'avance technologiqes, d'instruction militaire, d'arts comme
la littrature, la peinture, la musique. Ils construisirent la majorit
des merveilles du monde, dont les Montagnes Immortelles, dont on raconte
qu'ils taillrent mme la roche pour en faonner leurs Dieux.
Puis se sont forms les guildes, car l'appellation de peuple ne convenait
plus. La plus ancienne est la ntre, des Moines, car nous nous transmettons
notre savoir depuis des centaines de gnrations, et connaissons des
secrets dans l'art mme de la magie.},
%{Chapitre III - Les Moeurs}],
Explications :
:histoire_d_eridia est le nom du livre en haut au milieu (crit en majuscule).
[%{INTRODUCTION est le nom de la premire page du livre
Ensuite, remplissez comme vous voulez en faisant les retours de ligne manuellement
afin que le texte se lise correctement. Une page se termine avec ceci : },
Puis, vous pouvez faire autant de pages que vous le souhaitez en rptant cette opration. C'est--dire :
[%{PAGE 1
Blablabla
},
[%{PAGE 2
Blablabla
},
etc.
3) Configurer les options supplémentaires du script, maintenant que les livres sont crées.
# Change page text.
# PAGE_TEXT = string
PAGE_TEXT = "Changez de page avec Gauche/Droite." => Texte à écrire pour indiquer le changement de page.
# Single page text.
# SINGLE_TEXT = string => Si votre livre n'a qu'une page par exemple, un texte spécial
SINGLE_TEXT = ""
# Use default background. (snapshot of the map) => Utilise par défaut la map actuelle comme fond
# BACK = true/false
BACK = true
# Custom background.
# CUST_BACK = [filename, hide_window]
# Optional to use, set filename to "" to disable. => Si vous souhaitez une image particulière (autre que la map).
CUST_BACK = ["", false]
# SKIN:
# The windowskin to use for the windows. => Si vous souhaitez utiliser un windowskin pour la fentre des livres.
# Set to nil to disable.
# SKIN = string
SKIN = nil
4) Crer un vnement commun contenant la commande suivante : SceneManager.call_ext(Scene_HistBook, :symbol) o :symbole est le nom de scne de votre livre.
Exemple : SceneManager.call_ext(Scene_HistBook, :histoire_d_eridia) pour notre livre.
- vnement commun:
5) Crer un objet livre et choisissez un nom pour cet objet. Appeler l'événement commun crée au point précédent. Exemple : :histoire_d_eridia => Histoire d'Eridia ou Eridia (vous choisissez ce que vous voulez, c'est juste le nom de l'objet en fait).
- Objet livre:
Ne faites pas attention la note : "category: Livres", car il s'agit d'une fonction du menu custom (Yanfly).
Screenshot de la scne :
- Livre 1, page 1:
- Livre 1, page 4:
- Livre 2, page 1:
Voil, la prochaine pour un nouveau tutoriel.
Viper