Partagez
Aller en bas
oO-Hony-Oo
Membre

Nombre de messages : 139
Age : 22
Localisation : Sur RPGMVX =)
Distinction : aucune
Date d'inscription : 31/07/2008

Script de changement de classe

le Sam 9 Aoû 2008 - 13:14
Bonjour ! j'ai trouver ce petit script permettant de changer de classe, à placer au dessus de main :

Spoiler:
#===============================================================
#
# www.rpgmakervx-fr.com
#
#===============================================================
#==============================================================================
# ** Scene_Job
#------------------------------------------------------------------------------
# This Script was written by The Black Knight
# (aka tk_blackknight, aka Keith Brewer, aka rockstar1986)
#
# IF YOU USE THIS SCRIPT, ALL I ASK IS THAT YOU PUT MY NAME IN THE CREDITS
# It's free to use as long as you do put me in the credits.
#
#
# WHAT IT DOES:
# This script basically just gives you a graphical interface to allow
# the player to select which job to switch to for a character.
#
# This script was created upon request by Baka Artses Studios Inc.
#==============================================================================

class Scene_Job < Scene_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor_index : actor index
#--------------------------------------------------------------------------
def initialize(actor_index = 0, from_menu = false)
@actor_index = actor_index
@from_menu = from_menu
end
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
@actor = $game_party.members[@actor_index]
create_menu_background
@actor = $game_party.members[@actor_index]
@class_status_window = Window_ClassStatus.new(@actor)
@scenename_window = Window_SceneName.new(0, 0, "Job Change")
@help_window = Window_Help.new
@help_window.x = 160
@help_window.y = 0
@help_window.width = 384
create_class_list
create_option_list

@command_window.active = false
@command_window2.active = true
end
#--------------------------------------------------------------------------
# * Create Option List
#--------------------------------------------------------------------------
def create_option_list
s1 = "Change Class"
s2 = "Cancel"
@command_window2 = Window_Command.new(544, [s1, s2], 2)
@command_window2.x = 0
@command_window2.y = 56
@command_window2.height = 56
end
#--------------------------------------------------------------------------
# * Create Class List
#--------------------------------------------------------------------------
def create_class_list
s1 = $data_classes[1].name
s2 = $data_classes[2].name
s3 = $data_classes[3].name
s4 = $data_classes[4].name
s5 = $data_classes[5].name
s6 = $data_classes[6].name
s7 = $data_classes[7].name
s8 = $data_classes[8].name
@command_window = Window_Command.new(544, [s1, s2, s3, s4, s5, s6, s7, s8], 2)
@command_window.x = 0
@command_window.y = 240
@command_window.height = 176
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background

@class_status_window.dispose
@scenename_window.dispose
@command_window.dispose
@command_window2.dispose
@help_window.dispose
end
#--------------------------------------------------------------------------
# * Switch to Next Actor Screen
#--------------------------------------------------------------------------
def next_actor
@actor_index += 1
@actor_index %= $game_party.members.size
$scene = Scene_Job.new(@actor_index, @from_menu)
end
#--------------------------------------------------------------------------
# * Switch to Previous Actor Screen
#--------------------------------------------------------------------------
def prev_actor
@actor_index += $game_party.members.size - 1
@actor_index %= $game_party.members.size
$scene = Scene_Job.new(@actor_index, @from_menu)
end
#--------------------------------------------------------------------------
# * Update Class Selection Window >> This allows it to check for input
#--------------------------------------------------------------------------
def update_class_selection
if Input.trigger?(Input::B)
Sound.play_cancel
@command_window2.active = true
@command_window.active = false
elsif Input.trigger?(Input::C)
Sound.play_decision
case @command_window.index
when 0
@actor.class_id = 1
$scene = Scene_Job.new(@actor_index, @from_menu)
when 1
@actor.class_id = 2
$scene = Scene_Job.new(@actor_index, @from_menu)
when 2
@actor.class_id = 3
$scene = Scene_Job.new(@actor_index, @from_menu)
when 3
@actor.class_id = 4
$scene = Scene_Job.new(@actor_index, @from_menu)
when 4
@actor.class_id = 5
$scene = Scene_Job.new(@actor_index, @from_menu)
when 5
@actor.class_id = 6
$scene = Scene_Job.new(@actor_index, @from_menu)
when 6
@actor.class_id = 7
$scene = Scene_Job.new(@actor_index, @from_menu)
when 7
@actor.class_id = 8
$scene = Scene_Job.new(@actor_index, @from_menu)
end
end
end
#--------------------------------------------------------------------------
# * Update Class Selection Window >> This allows it to check for input
#--------------------------------------------------------------------------
def update_option_selection
if Input.trigger?(Input::B)
Sound.play_cancel
if @from_menu == false
$scene = Scene_Map.new
else
$scene = Scene_Menu.new
end
elsif Input.trigger?(Input::C)
Sound.play_decision
case @command_window2.index
when 0
Sound.play_decision
@command_window.active = true
@command_window2.active = false
when 1
Sound.play_decision
if @from_menu == false
$scene = Scene_Map.new
else
$scene = Scene_Menu.new
end
end
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
update_menu_background
if @command_window.active
#If the Command Window is active, tell the help window to say this:
@help_window.set_text("Change to which class?")
else
#Otherwise, tell it to say this:
@help_window.set_text("")
end
if @command_window2.active
update_option_selection
else
update_class_selection
end
@command_window.update
@command_window2.update
@class_status_window.update
@help_window.update
if Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
end
super
end
end
#==============================================================================
# ** Window_ClassStatus
#------------------------------------------------------------------------------
# This window displays full status specs on the Job Change screen.
#==============================================================================

class Window_ClassStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 112, 544, 128)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_actor_name(@actor, 128, 0)
draw_actor_class(@actor, 128, 24)
draw_actor_face(@actor, 0, 0)
draw_actor_graphic(@actor, 96, 96)
draw_basic_info(216, 0)
#~ draw_parameters(32, 160)
draw_exp_info(364, 0)
#~ draw_equipments(288, 160)
end
#--------------------------------------------------------------------------
# * Draw Basic Information
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_basic_info(x, y)
draw_actor_level(@actor, x, y + WLH * 0)
draw_actor_state(@actor, x, y + WLH * 1)
draw_actor_hp(@actor, x, y + WLH * 2)
draw_actor_mp(@actor, x, y + WLH * 3)
end
#--------------------------------------------------------------------------
# * Draw Parameters
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
#~ def draw_parameters(x, y)
#~ draw_actor_parameter(@actor, x, y + WLH * 0, 0)
#~ draw_actor_parameter(@actor, x, y + WLH * 1, 1)
#~ draw_actor_parameter(@actor, x, y + WLH * 2, 2)
#~ draw_actor_parameter(@actor, x, y + WLH * 3, 3)
#~ end
#--------------------------------------------------------------------------
# * Draw Experience Information
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.exp_s
s2 = @actor.next_rest_exp_s
s_next = sprintf(Vocab::ExpNext, Vocab::level)
self.contents.font.color = system_color
self.contents.draw_text(x, y + WLH * 0, 180, WLH, Vocab::ExpTotal)
self.contents.draw_text(x, y + WLH * 2, 180, WLH, s_next)
self.contents.font.color = normal_color
self.contents.draw_text(x, y + WLH * 1, 180, WLH, s1, 0)
self.contents.draw_text(x, y + WLH * 3, 180, WLH, s2, 0)
end
#--------------------------------------------------------------------------
# * Draw Equipment
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
#~ def draw_equipments(x, y)
#~ self.contents.font.color = system_color
#~ self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
#~ for i in 0..4
#~ draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
#~ end
#~ end
end
#==============================================================================
# ** Window_ClassStatus
#------------------------------------------------------------------------------
# This window displays full status specs on the Job Change screen.
#==============================================================================

class Window_ClassStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# actor : actor
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 112, 544, 128)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_actor_name(@actor, 128, 0)
draw_actor_class(@actor, 128, 24)
draw_actor_face(@actor, 0, 0)
draw_actor_graphic(@actor, 96, 96)
draw_basic_info(216, 0)
#~ draw_parameters(32, 160)
draw_exp_info(364, 0)
#~ draw_equipments(288, 160)
end
#--------------------------------------------------------------------------
# * Draw Basic Information
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_basic_info(x, y)
draw_actor_level(@actor, x, y + WLH * 0)
draw_actor_state(@actor, x, y + WLH * 1)
draw_actor_hp(@actor, x, y + WLH * 2)
draw_actor_mp(@actor, x, y + WLH * 3)
end
#--------------------------------------------------------------------------
# * Draw Parameters
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
#~ def draw_parameters(x, y)
#~ draw_actor_parameter(@actor, x, y + WLH * 0, 0)
#~ draw_actor_parameter(@actor, x, y + WLH * 1, 1)
#~ draw_actor_parameter(@actor, x, y + WLH * 2, 2)
#~ draw_actor_parameter(@actor, x, y + WLH * 3, 3)
#~ end
#--------------------------------------------------------------------------
# * Draw Experience Information
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.exp_s
s2 = @actor.next_rest_exp_s
s_next = sprintf(Vocab::ExpNext, Vocab::level)
self.contents.font.color = system_color
self.contents.draw_text(x, y + WLH * 0, 180, WLH, Vocab::ExpTotal)
self.contents.draw_text(x, y + WLH * 2, 180, WLH, s_next)
self.contents.font.color = normal_color
self.contents.draw_text(x, y + WLH * 1, 180, WLH, s1, 0)
self.contents.draw_text(x, y + WLH * 3, 180, WLH, s2, 0)
end
#--------------------------------------------------------------------------
# * Draw Equipment
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
#~ def draw_equipments(x, y)
#~ self.contents.font.color = system_color
#~ self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
#~ for i in 0..4
#~ draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
#~ end
#~ end
end
class Window_SceneName < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# x : window X coordinate
# y : window Y coordinate
#--------------------------------------------------------------------------
def initialize(x, y, text)
super(x, y, 160, 56)
@text = text
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(4, 0, 128, WLH, @text, 1)
end
end

Voici pour appeler le script à partir d'un event : $scene = Scene_Job.new

Source : http://www.rpgmakervx.net/?showtopic=3039 (ce n'est pas de la pub king )

Screen :

Spoiler:

Voila, si ça existe déjà, hé ben désolé supprimé le.

Cordialement
avatar
Zodiak
Membre

Nombre de messages : 209
Age : 23
Localisation : Entre l'Enfer et le Paradis
Distinction : Souffre douleur


Ne sert pas à grand chose
Mais on l'aime quand même
[ Zang ]
Date d'inscription : 26/05/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 13:20
C'est un bon script, même si je ne l'utiliserais pas,
je le trouve super ! Wink
avatar
Azaki
Modérateur

Nombre de messages : 1742
Age : 25
Localisation : Dans ton cul(stom), t'as vu, tarba? é_è
Distinction : Commentateur sportif
Indépendantiste Breton
Chevalier de lumière
Membre du Haruhi fan-club
Membre du Tsukasa Nishino fan-club.
[Chou n°3]
Mist' Wink

Fils caché de Francis L'Alan
[Coco' Smile]
Chevalier Noir
Ex-Empereur d'Erem Vehyx (ou pas!! x) )

Date d'inscription : 14/05/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 13:45
C'est super comme script ça! Bonne trouvaille! Wink
avatar
Higinia
Membre

Nombre de messages : 191
Age : 25
Localisation : Somme 80
Distinction : aucune
Date d'inscription : 03/08/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 13:48
C'est pas mal ouais !
Mais est ce que c'est compatible avec le Ring_Menu ?
avatar
killclankill
Membre

Nombre de messages : 7
Distinction : aucune
Date d'inscription : 22/06/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 13:51
je ne sais pas higinia Smile test quand même tu me tiendras au courant ^^
avatar
Higinia
Membre

Nombre de messages : 191
Age : 25
Localisation : Somme 80
Distinction : aucune
Date d'inscription : 03/08/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 14:01
Parfait ! Aucun probleme puisque c'est un event.
Sui-je béte !

Ps: Pour modifier "Change Class" et "Cancel"

Ligne 36 : @scenename_window = Window_SceneName.new(0, 0, "Changer de Classe")

Ligne 51: s1 = "Changer de Classe"
Ligne 52: s2 = "Partir"

Voila , Merci hony de l'avoir mis ici , mais tu aurais pu préciser le nom de l'auteur !

L'auteur est: The Black Knight

Ca donne ca une fois fini :


Dernière édition par Higinia le Sam 9 Aoû 2008 - 17:15, édité 1 fois
avatar
killclankill
Membre

Nombre de messages : 7
Distinction : aucune
Date d'inscription : 22/06/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 17:11
excusez moi ^^ j'avais mis le nom du site cependant je navais pas penser a mettre le nom de l'auteur j'suis bête =) (nan c'est pas vrai ^^")

Adrezo
Membre

Nombre de messages : 233
Age : 30
Distinction : aucune
Date d'inscription : 29/01/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 20:59
Ce script me fais poser une question :

quand on va changer de classe, on va garder ou pas les compétence de l'autre classe ? de plus, ce script ne gère pas le fait que si on est niveau 10 et que on change de classe, on aura pas les compétence du début...
je doute donc de l'efficacité de ce script...
avatar
Higinia
Membre

Nombre de messages : 191
Age : 25
Localisation : Somme 80
Distinction : aucune
Date d'inscription : 03/08/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 21:29
Oui ! non seulement on les garde mais on gagne les competences de la nouvelle classe.
Donc c'est super
Exemple , vous gagner toutes les competences d'une classe , vous changer pour gagner les competence de l'autre.

A la fin , ca doit faire un paquet de competences bounce
Adrezo
Membre

Nombre de messages : 233
Age : 30
Distinction : aucune
Date d'inscription : 29/01/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 22:39
quand on change de classe, on gagne toutes les compétence que l'on aurait eu avec une autre classe arrivée à ce même niveau ?
avatar
Mist'
Staffeux retraité

Nombre de messages : 3312
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 22:42
C'est comme ça que le script gère les choses apparement...
J'pense pas que ce soit comme ça, j'pense que c'est comme dans FFIII (très bon d'ailleurs), on a des niveau de job, et on acquiert les compétences en fonction du job...

_________________
Adrezo
Membre

Nombre de messages : 233
Age : 30
Distinction : aucune
Date d'inscription : 29/01/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 22:43
faudrait que quelqu'un test et me dise...
avatar
Higinia
Membre

Nombre de messages : 191
Age : 25
Localisation : Somme 80
Distinction : aucune
Date d'inscription : 03/08/2008

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 22:52
Non , si vous etes lvl 50 ( exemple ) et que vous avez gagner toute les competences soldat ( encore exemple )

Vous changer de classe tout en gardant les competences acquise depuis le debut de l'aventure.$

Si vous passer de soldat a archer , vous aurez encore vos competence soldat mais aucune de archers ( il faudra les gagner en gagnat des lvl )

Mais après il faut les regler les lvl ou on apprend les competences
car sinon vous allez gagner un lvl et vous retrouvez avec toutes les competences de l'archers.
avatar
Mist'
Staffeux retraité

Nombre de messages : 3312
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Re: Script de changement de classe

le Sam 9 Aoû 2008 - 23:01
En gros, c'est c'que j'ai dit, mais ce script, c'est la chiantise absolue...
Parce que, tu veux être archer, tu configure des attaques et tout, puis au lvl 45, tu passes épéiste, là, tu avais pas prévuque l'joueur allait changr de classe...
Donc, un lvl plus tard, t'as toutes les techniques de l'épéiste.

C'est triste cette histoire, pas de cohérence avec les jobs à la FFIII...

_________________
Adrezo
Membre

Nombre de messages : 233
Age : 30
Distinction : aucune
Date d'inscription : 29/01/2008

Re: Script de changement de classe

le Dim 10 Aoû 2008 - 9:25
Ouais donc pas cool.
Autant ca créer une interface au début pour que le joueur choisisse sa classe ce qui peut-être pas mal mais sinon je suis moyen convaincu.
avatar
mysterious
Membre

Nombre de messages : 400
Age : 29
Distinction : aucune
Date d'inscription : 24/07/2008

Re: Script de changement de classe

le Dim 10 Aoû 2008 - 13:48
je trouve ce script assez inutile mais bon merci quand même
avatar
Mist'
Staffeux retraité

Nombre de messages : 3312
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Re: Script de changement de classe

le Dim 10 Aoû 2008 - 15:53
Ouais, le mieux serait de faire un système en évènements communs, ça marcherait mieux.
D'ailleurs, même en Ruby, il suffirait de créer des variables pour stocker le niveau du héros puis de le changer dès qu'il change de classe, ainsi, lorsque l'on voudrait retrouver le niveau de la dernière classe, ce s'rait tout bô x)

Si Dark et ses tutos magiques pouvaient vous montrer la voix Rolling Eyes

_________________
avatar
Jojo la vache AKA la fail
Membre

Nombre de messages : 146
Age : 22
Localisation : Sur terre, A moins que...
Distinction : Nounours rose V3, le nouveau est là!
Date d'inscription : 31/07/2009

Re: Script de changement de classe

le Mer 2 Déc 2009 - 16:52
Jene peux pas accéder à la démo !
Que faire ?
avatar
ZangtherOld
Membre

Nombre de messages : 1711
Date d'inscription : 07/08/2009

Re: Script de changement de classe

le Mer 2 Déc 2009 - 17:37
Tu copie colle le script dans ton jeu ? bounce
Contenu sponsorisé

Re: Script de changement de classe

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