- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
Nouveau Menu Compétence
Lun 31 Aoû 2009 - 2:10
Voilà je vais partager ici, le menu de compétence de mon jeu:
Un petit screen:
Le premier script à placer au dessus de main (appelez le comme vous voulez):
Un petit screen:
Le premier script à placer au dessus de main (appelez le comme vous voulez):
- Spoiler:
- Code:
#==============================================================================
# ** Window_Selectable
#------------------------------------------------------------------------------
# This window contains cursor movement and scroll functions.
#==============================================================================
class Window_Selectable < Window_Base
#--------------------------------------------------------------------------
# * Selection
#--------------------------------------------------------------------------
def selection
return @commands[self.index]
end
end
#==============================================================================
# ** Window_Skill
#------------------------------------------------------------------------------
# This window displays a list of usable skills on the skill screen, etc.
#==============================================================================
class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
# x : window x-coordinate
# y : window y-coordinate
# width : window width
# height : window height
# actor : actor
#--------------------------------------------------------------------------
def initialize(x, y, width, height, actor, column_max = 2)
super(x, y, width, height)
@actor = actor
@column_max = column_max
self.index = 0
refresh
end
end
#==============================================================================
# ** Window_SkillStatus
#------------------------------------------------------------------------------
# This window displays the skill user's status on the skill screen.
#==============================================================================
class Window_SkillStatus < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# x : window X coordinate
# y : window Y corrdinate
# actor : actor
#--------------------------------------------------------------------------
def initialize(x, y, actor)
super(x, y, 416, 56)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_actor_level(@actor, 10, 0)
draw_actor_hp(@actor, 100, 0)
draw_actor_mp(@actor, 242, 0)
end
end
#==============================================================================
# ** Window_SkillStatus2
#------------------------------------------------------------------------------
# This window displays the skill user's status on the skill screen.
#==============================================================================
class Window_SkillStatus2 < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# x : window X coordinate
# y : window Y corrdinate
# actor : actor
#--------------------------------------------------------------------------
def initialize(x, y, actor)
super(x, y, 128, 360)
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_actor_name(@actor, 5, 0)
draw_actor_graphic(@actor, 45, 320)
draw_actor_face(@actor, 0, 40)
draw_parameters(10, 160)
end
#--------------------------------------------------------------------------
# * Draw Parameters
# x : Draw spot X coordinate
# y : Draw spot Y coordinate
#--------------------------------------------------------------------------
def draw_parameters(x, y)
draw_parameter(@actor, x, y + WLH * 0, 0)
draw_parameter(@actor, x, y + WLH * 1, 1)
draw_parameter(@actor, x, y + WLH * 2, 2)
draw_parameter(@actor, x, y + WLH * 3, 3)
end
#--------------------------------------------------------------------------
# * Draw Parameters
# actor : actor
# x : draw spot x-coordinate
# y : draw spot y-coordinate
# type : Type of parameters (0-3)
#--------------------------------------------------------------------------
def draw_parameter(actor, x, y, type)
case type
when 0
parameter_name = "ATK:"
parameter_value = actor.atk
when 1
parameter_name = "DEF:"
parameter_value = actor.def
when 2
parameter_name = "ESP:"
parameter_value = actor.spi
when 3
parameter_name = "AGI:"
parameter_value = actor.agi
end
self.contents.font.color = system_color
self.contents.draw_text(x, y, 120, WLH, parameter_name)
self.contents.font.color = normal_color
self.contents.draw_text(x + 30, y, 36, WLH, parameter_value, 2)
end
end
- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
Re: Nouveau Menu Compétence
Lun 31 Aoû 2009 - 2:11
Le deuxieme script à placer au dessus de main (pareil, appelez le comme vous voulez):
Voilà laissez vos commentaires.
- Spoiler:
- Code:
module MenuSkill
#------------------------------------------------------------------------
# * Help Text
#------------------------------------------------------------------------
# Attak description
ATK = "Inflige des dégats à l'adversaire."
# Skill description
SKILL = "Compétences du héros"
# Guard description
GUARD = "Permet de se défendre lors d'un combat."
# Item description
ITEM = "Permet d'accéder aux objets."
end
#==============================================================================
# ** Scene_Skill
#------------------------------------------------------------------------------
# This class performs the skill screen processing.
#==============================================================================
class Scene_Skill < Scene_Base
include MenuSkill
#--------------------------------------------------------------------------
# * Object Initialization
# actor_index : actor index
#--------------------------------------------------------------------------
def initialize(actor_index = 0, equip_index = 0)
@actor_index = actor_index
end
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
@actor = $game_party.members[@actor_index]
@viewport = Viewport.new(0, 0, 544, 416)
@help_window = Window_Help.new
@help_window.viewport = @viewport
@help_window.y = 360
@status_window = Window_SkillStatus.new(128, 0, @actor)
@status_window.viewport = @viewport
@status2_window = Window_SkillStatus2.new(0, 0, @actor)
@status2_window.viewport = @viewport
@window_command = Window_ActorCommand.new
@window_command.setup(@actor)
@commands = @window_command.commands
@window_command.dispose
@actor_command_window = Window_Command.new(150, @commands)
@actor_command_window.refresh
@actor_command_window.viewport = @viewport
@actor_command_window.x = 394
@actor_command_window.y = 56
#@actor_command_window.height = 32 + (24*@actor_command_window.commands.size)
@target_window = Window_MenuStatus.new(0, 0)
hide_target_window_enter
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@help_window.dispose
@status_window.dispose
@status2_window.dispose
@actor_command_window.dispose
@target_window.dispose
end
#--------------------------------------------------------------------------
# * Return to Original Screen
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new(1)
end
#--------------------------------------------------------------------------
# * Switch to Next Actor Screen
#--------------------------------------------------------------------------
def next_actor
@actor_index += 1
@actor_index %= $game_party.members.size
$scene = Scene_Skill.new(@actor_index)
end
#--------------------------------------------------------------------------
# * Switch to Previous Actor Screen
#--------------------------------------------------------------------------
def prev_actor
@actor_index += $game_party.members.size - 1
@actor_index %= $game_party.members.size
$scene = Scene_Skill.new(@actor_index)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
update_menu_background
@status_window.update
@status2_window.update
@help_window.update
@target_window.update
@actor_command_window.update
if @actor_command_window.active
update_help_window
update_actor_command_selection
elsif @skill_window.active
@skill_window.update
update_skill_selection
elsif @target_window.active
update_target_selection
end
end
#--------------------------------------------------------------------------
# * Update Help Window
#--------------------------------------------------------------------------
def update_help_window
case @actor_command_window.selection
when Vocab::attack
@help_window.set_text(ATK, 1)
when Vocab::skill
@help_window.set_text(SKILL, 1)
when Vocab::guard
@help_window.set_text(GUARD, 1)
when Vocab::item
@help_window.set_text(ITEM, 1)
end
end
#--------------------------------------------------------------------------
# * Update Actor Command Selection
#--------------------------------------------------------------------------
def update_actor_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
elsif Input.trigger?(Input::C)
case @actor_command_window.selection
when Vocab::attack # Attack
Sound.play_buzzer
when Vocab::skill, @actor.class.skill_name
Sound.play_decision
start_skill_selection
when Vocab::guard # Guard
Sound.play_buzzer
when Vocab::item # Item
Sound.play_decision
$scene = Scene_Item.new
end
end
end
#--------------------------------------------------------------------------
# * Start Skill Selection
#--------------------------------------------------------------------------
def start_skill_selection
@skill_window = Window_Skill.new(128, 56, 266, 304, @actor, 1)
@skill_window.viewport = @viewport
@skill_window.help_window = @help_window
@actor_command_window.active = false
@skill_window.active = true
@skill_window.index = 0
end
#--------------------------------------------------------------------------
# * End Skill Selection
#--------------------------------------------------------------------------
def end_skill_selection
@actor_command_window.active = true
@skill_window.dispose
end
#--------------------------------------------------------------------------
# * Update Skill Selection
#--------------------------------------------------------------------------
def update_skill_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_skill_selection
elsif Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
elsif Input.trigger?(Input::C)
@skill = @skill_window.skill
if @skill != nil
@actor.last_skill_id = @skill.id
end
if @actor.skill_can_use?(@skill)
Sound.play_decision
determine_skill
else
Sound.play_buzzer
end
end
end
#--------------------------------------------------------------------------
# * Confirm Skill
#--------------------------------------------------------------------------
def determine_skill
if @skill.for_friend?
show_target_window(@skill_window.index % 2 == 0)
if @skill.for_all?
@target_window.index = 99
elsif @skill.for_user?
@target_window.index = @actor_index + 100
else
if $game_party.last_target_index < @target_window.item_max
@target_window.index = $game_party.last_target_index
else
@target_window.index = 0
end
end
else
use_skill_nontarget
end
end
#--------------------------------------------------------------------------
# * Update Target Selection
#--------------------------------------------------------------------------
def update_target_selection
if Input.trigger?(Input::B)
Sound.play_cancel
hide_target_window_select
elsif Input.trigger?(Input::C)
if not @actor.skill_can_use?(@skill)
Sound.play_buzzer
else
determine_target
end
end
end
#--------------------------------------------------------------------------
# * Confirm Target
# If there is no effect (such as using a potion on an incapacitated
# character), play a buzzer SE.
#--------------------------------------------------------------------------
def determine_target
used = false
if @skill.for_all?
for target in $game_party.members
target.skill_effect(@actor, @skill)
used = true unless target.skipped
end
elsif @skill.for_user?
target = $game_party.members[@target_window.index - 100]
target.skill_effect(@actor, @skill)
used = true unless target.skipped
else
$game_party.last_target_index = @target_window.index
target = $game_party.members[@target_window.index]
target.skill_effect(@actor, @skill)
used = true unless target.skipped
end
if used
use_skill_nontarget
else
Sound.play_buzzer
end
end
#--------------------------------------------------------------------------
# * Show Target Window
# right : Right justification flag (if false, left justification)
#--------------------------------------------------------------------------
def show_target_window(right)
@skill_window.active = false
width_remain = 544 - @target_window.width
@target_window.x = right ? width_remain : 0
@target_window.visible = true
@target_window.active = true
if right
@viewport.rect.set(0, 0, width_remain, 416)
@viewport.ox = 0
else
@viewport.rect.set(@target_window.width, 0, width_remain, 416)
@viewport.ox = @target_window.width
end
end
#--------------------------------------------------------------------------
# * Hide Target Window Enter
#--------------------------------------------------------------------------
def hide_target_window_enter
@actor_command_window.active = true
@target_window.visible = false
@target_window.active = false
@viewport.rect.set(0, 0, 544, 416)
@viewport.ox = 0
end
#--------------------------------------------------------------------------
# * Hide Target Window Select
#--------------------------------------------------------------------------
def hide_target_window_select
@actor_command_window.active = false
@skill_window.active = true
@target_window.visible = false
@target_window.active = false
@viewport.rect.set(0, 0, 544, 416)
@viewport.ox = 0
end
#--------------------------------------------------------------------------
# * Use Skill (apply effects to non-ally targets)
#--------------------------------------------------------------------------
def use_skill_nontarget
Sound.play_use_skill
@actor.mp -= @actor.calc_mp_cost(@skill)
@status_window.refresh
@status2_window.refresh
@skill_window.refresh
@target_window.refresh
if $game_party.all_dead?
$scene = Scene_Gameover.new
elsif @skill.common_event_id > 0
$game_temp.common_event_id = @skill.common_event_id
$scene = Scene_Map.new
end
end
end
Voilà laissez vos commentaires.
- AzakiModérateur
- Nombre de messages : 1742
Age : 31
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'
Fils caché de Francis L'Alan
[Coco' ]
Chevalier Noir
Ex-Empereur d'Erem Vehyx (ou pas!! x) )
Date d'inscription : 14/05/2008
Re: Nouveau Menu Compétence
Lun 31 Aoû 2009 - 2:40
Il est sympa! Je trouve qu'il fait old-school ^o^
Par contre, pourquoi tes commentaires dans le script sont en anglais?
Par contre, pourquoi tes commentaires dans le script sont en anglais?
- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
Re: Nouveau Menu Compétence
Lun 31 Aoû 2009 - 2:43
Pourquoi? parce que ce sont les commentaires de base, que j'ai la flemme de les modifiés et l'Anglais est une très belle langue. J'aime l'anglais
De toute façon pour ce script les commentaires ne sont vraiment pas nécessaire.
Edit: Ah j'oubliais, le 3/4 des mots et des phrase sont plus courtes en anglais.
De toute façon pour ce script les commentaires ne sont vraiment pas nécessaire.
Edit: Ah j'oubliais, le 3/4 des mots et des phrase sont plus courtes en anglais.
- Coco'Staffeux retraité
- Nombre de messages : 6578
Age : 31
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance
Grand gourou suppléant de la secte des MAGIKARP
Leader charismatique des 2beStaffieux
N°1 du forum
Président, vice-présidents et membres honoraires de la cour suprême du forum
Président de l'association des grosses distinctions CMB
Date d'inscription : 02/07/2008
Re: Nouveau Menu Compétence
Lun 31 Aoû 2009 - 2:48
Il est sympa ton script, mais bon, t'aurais pu mettre un peu plus de toi dedans, car tout ce que je vois, c'est un copier/coller avec une positions des fenêtres persos (avec un rajout du nom/vie je pense ).
Si tu es un débutant, c'est du bon, bravo
Si tu es un débutant, c'est du bon, bravo
- SkilloStaffeux retraité
- Nombre de messages : 526
Age : 35
Localisation : Rennes
Distinction : J'aime ce gars
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' ]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008
Re: Nouveau Menu Compétence
Lun 31 Aoû 2009 - 2:55
Bah déja il y a la fenêtre des commandes dans laquelle tu peux te baladé avec information dans la window_help en temps réel de plus la window_skill n'apparait qu'un fois avoir valider le curseur sur compétence. Je le partage juste avant qu'il ne soit utilisable par personne à part moi.
Mais attention ne vous méprenez pas!!! Cette version est comme qui dirait "grand publique". Pour mon jeu ça sera tout autre chose.
Avec tri des competences.
Overdrives.
Fond de menu, etc..
Ps: je veux pas me vanter mais j'ai plus grand chose d'un débutant. Je make depuis que RPG Maker 200 est sorti et j'ai commencer à apprendre à bidouillé le rgss depuis la sorti de Xp.
Mais attention ne vous méprenez pas!!! Cette version est comme qui dirait "grand publique". Pour mon jeu ça sera tout autre chose.
Avec tri des competences.
Overdrives.
Fond de menu, etc..
Ps: je veux pas me vanter mais j'ai plus grand chose d'un débutant. Je make depuis que RPG Maker 200 est sorti et j'ai commencer à apprendre à bidouillé le rgss depuis la sorti de Xp.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum