Partagez
Aller en bas
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(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' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Custum Battle Commands Empty Custum Battle Commands

le Jeu 18 Juin 2009 - 2:35
Je sais qu'il y en a qui l'attendent comme le messie (je sais j'exagère) Very Happy
Le voilà, il est beau, il est simple mais peut devenir extrêmement compliqué à gérer selon ce que vous voulez en faire
Et surtout il est lifté pour ne contenir que les commandes de combats,
voici le Custum Commands 1.7 de Dargor:

Spoiler:
Code:

#==============================================================================
# ** Custom Commands
#------------------------------------------------------------------------------
©️ Dargor, 2008
#  13/06/08
#  Version 1.7
#  Lifté par Skillo
#------------------------------------------------------------------------------
#  INSTRUCTIONS:
#    1) Place this script above all custom scripts and below all
#        default scripts
#    2) To change an actor's battle commands, use:
#          - $game_actors[id].commands = [string1, string2...]
#              or
#          - $game_actors[id].add_command(index, command)
#              or
#          - $game_actors[id].remove_command(command)
#------------------------------------------------------------------------------
#  NOTES:
#    1) When using the following methods:
#            > $game_actors[id].add_command(index, command)
#            > $game_actors[id].remove_command(command)
#      'command' can be a String or an Array
#    2) This script overides the following methods:
#              > Window_ActorCommand
#              <> initialize
#              <> setup
#            > Scene_Battle
#              <> update_actor_command_selection
#        This script will be incompatible with any other scripts
#        modifying these methodsunless they are based on the
#        Custom Commands script methods.
#==============================================================================
       
#==============================================================================
# ** RPG::Class
#------------------------------------------------------------------------------
#  This class handles actors classes.
#==============================================================================

class RPG::Class
  #--------------------------------------------------------------------------
  # * Command Name
  # Returns a substitute to command_name.
  # Returns the original command name if no substitues are found.
  #    command_name : command name
  #--------------------------------------------------------------------------
  def command_name(command)
    # Commands Substitution Array
    @commands = []
    # SYNTAX: @commands[class_ID] = { original_command => substitute }
    @commands[1] = {
                    Vocab::attack => 'Strike',    # Pour redéfinir la commande d'attaque
                    Vocab::skill    => 'Magie',    # Pour redéfinir la commande des compétences
                    Vocab::guard => 'Protect',  # Pour redéfinir la commande de défense
                    Vocab::item  => 'Things',    # Pour redéfinir la commande des objets
                 
                  }
    @commands[2] = {
                    Vocab::guard => 'Protect',
                    Vocab::item  => 'Stuff'
                  }
    # Get command substitute
    if @commands[@id].nil? or @commands[@id][command].nil?
      return command
    end
    return @commands[@id][command]
  end
end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor  :commands                  # battle commands
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  alias dargor_vx_battle_commands_actor_setup setup
  #--------------------------------------------------------------------------
  # * Setup
  #    actor_id : actor ID
  #--------------------------------------------------------------------------
  def setup(actor_id)
    dargor_vx_battle_commands_actor_setup(actor_id)
    actor = $data_actors[actor_id]
    s1 = self.class.command_name(Vocab::attack)
    s2 = self.class.command_name(Vocab::skill)
    s3 = self.class.command_name(Vocab::guard)
    s4 = self.class.command_name(Vocab::item)
    if self.class.skill_name_valid    # Skill command name is valid?
      s2 = self.class.skill_name      # Replace command name
    end
    @commands = [s1, s2, s3, s4]
  end
  #--------------------------------------------------------------------------
  # * Add Command
  #--------------------------------------------------------------------------
  def add_command(index, command)
    return if @commands.include?(command)
    if command.is_a?(String)
      @commands.insert(index, command)
    elsif command.is_a?(Array)
      for i in 0...command.size
        @commands.insert(index+i, command[i])
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Remove Command
  #--------------------------------------------------------------------------
  def remove_command(command)
    if command.is_a?(String)
      @commands.delete(command)
    elsif command.is_a?(Array)
      for i in command
        @commands.delete(i)
      end
    end
  end
end

#==============================================================================
# ** 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_Command
#------------------------------------------------------------------------------
#  This window deals with general command choices.
#==============================================================================

class Window_Command < Window_Selectable
  alias dargor_vx_cmc_window_command_draw_item draw_item
  #--------------------------------------------------------------------------
  # * Draw Item
  #    index  : item number
  #    enabled : enabled flag. When false, draw semi-transparently.
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    return if index.nil?
    dargor_vx_cmc_window_command_draw_item(index, enabled)
  end
end

#==============================================================================
# ** Window_ActorCommand
#------------------------------------------------------------------------------
#  This window is used to select actor commands, such as "Attack" or "Skill".
#==============================================================================

class Window_ActorCommand < Window_Command
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(128, [], 1, 4)
    self.active = false
  end
  #--------------------------------------------------------------------------
  # * Setup
  #    actor : actor
  #--------------------------------------------------------------------------
  def setup(actor)
    @commands = actor.commands
    @item_max = @commands.size
    height = @item_max * 24
    self.contents = Bitmap.new(width - 32, height)
    refresh
    self.index = 0
  end
end



#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle < Scene_Base
 
  #--------------------------------------------------------------------------
  # * Update Actor Command Selection
  #--------------------------------------------------------------------------
  def update_actor_command_selection
    skill = Vocab::skill
    if @active_battler.class.skill_name_valid
      skill = @active_battler.class.skill_name
    end
    if Input.trigger?(Input::B)
      Sound.play_cancel
      prior_actor
    elsif Input.trigger?(Input::C)
      case @actor_command_window.selection
      when @active_battler.class.command_name(Vocab::attack)  # Attack
        Sound.play_decision
        @active_battler.action.set_attack
        start_target_enemy_selection
      when skill # Skill
        Sound.play_decision
        start_skill_selection
      when @active_battler.class.command_name(Vocab::guard)  # Guard
        Sound.play_decision
        @active_battler.action.set_guard
        next_actor
      when @active_battler.class.command_name(Vocab::item)  # Item
        Sound.play_decision
        start_item_selection
      end
    end
  end
end


Voilà sur ce je vous laisse!





Vous y avez cru, hein? Avouez!!!
Non je ne vous laisserai pas lâchement tomber, ce script à droit à une explication digne de ce nom.

#==================================================================
1) Mais à quoi sert ce script?
Hé bien, ce script permet de modifier le nom des commandes de combats de chaque personnage de façon simple.

2) Mais alors pourquoi tu dis qu'il peut être compliqué?
Attendez aussi, vous me laissez pas finir, ce script permet aussi de créer ses propres commandes de combats personnaliser. En quoi c'est compliqué? bah c'est juste que vous devrez définir vous même les effets de vos commandes et pour quelqu'un qui ne connait pas un minimum le Scene_battle ça risque en effet d'être assez compliqué.

De plus sachez que tel qu'il est là ce script est incompatible avec l'ATB et oui je sais c'est triste Crying or Very sad
Mais du nerf que diable ne vous apitoyez pas si vite, je vais faire un tuto complet (si un modo pouvait me dire ou poster car je voudrais que cela soit un minimum interactif étant donné que chacun à ses préférence et que je ne suis pas sur que dans les tutos ce soit le bon endroit) sur la manière d'utiliser ce script avec tout le potentiel qu'il mérite (tri des compétences en fonctions de la commande, etc ...)

Pour l'ATB il sufffit de remplacer le Scene_Battle qui se trouve à la fin de ce script par celui là:

Spoiler:
Code:

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle < Scene_Base
 
  #--------------------------------------------------------------------------
  # * Update Actor Command Selection
  #--------------------------------------------------------------------------
  def update_actor_command_selection
    skill = Vocab::skill
    if @commander.class.skill_name_valid
      skill = @commander.class.skill_name
    end
    return reset_command unless commanding?
    if Input.trigger?(Input::B)
        Input.update
        Sound.play_decision
        start_party_command
    elsif Input.trigger?(Input::C)
        Input.update
        case @actor_command_window.selection
        when @commander.class.command_name(Vocab::attack)  # Attack
          Sound.play_decision
          @commander.action.set_attack
          start_target_enemy_selection
        when skill # Skill
          Sound.play_decision
          $in_select = true
          start_skill_selection
        when @commander.class.command_name(Vocab::guard)  # Guard
          Sound.play_decision
          @commander.action.set_guard
          end_command
        when @commander.class.command_name(Vocab::item)  # Item
          Sound.play_decision
          $in_select = true
          start_item_selection
        end
      elsif Input.trigger?(Input::RIGHT)
        next_commander
      elsif Input.trigger?(Input::LEFT)
        back_commander
      end
    end
  end


#==================================================================

Dans ce topic je vais vous expliquer comment changer les commandes de bases, c'est tout bête, au début du script vous avez:

Code:

#==============================================================================
# ** RPG::Class
#------------------------------------------------------------------------------
#  This class handles actors classes.
#==============================================================================

class RPG::Class
  #--------------------------------------------------------------------------
  # * Command Name
  # Returns a substitute to command_name.
  # Returns the original command name if no substitues are found.
  #    command_name : command name
  #--------------------------------------------------------------------------
  def command_name(command)
    # Commands Substitution Array
    @commands = []
    # SYNTAX: @commands[class_ID] = { original_command => substitute }
    @commands[1] = {
                    Vocab::attack => 'Strike',
                    Vocab::item  => 'Things',
                    Vocab::skill    => 'Magie',
                    Vocab::guard => 'Protect',
                  }
    @commands[2] = {
                    Vocab::guard => 'Protect',
                    Vocab::item  => 'Stuff',
                  }
    # Get command substitute
    if @commands[@id].nil? or @commands[@id][command].nil?
      return command
    end
    return @commands[@id][command]
  end
end

Tout ce joue là, en effet, la ligne
Code:
 @commands[1] = {
Dit que nous allons redéfinir les commandes du héros d'id 1 (c'est à dire le premier tongue )

Ensuite en dessous
Code:

Vocab::attack => 'Strike',    # Pour redéfinir la commande d'attaque
Vocab::skill    => 'Magie',    # Pour redéfinir la commande des compétences
Vocab::guard => 'Protect',  # Pour redéfinir la commande de défense
Vocab::item  => 'Things',    # Pour redéfinir la commande des objets
Il vous suffit de changer ce qu'il y a entre les '' pour changer le nom de la commande du héros, je tient à préciser que si vous avez défini un nom de commande de compétence personnalisé dans l'onglet classes de la database, c'est celle ci qui apparaîtra dans les combats même si vous en avez défini un autre dans le script.

Un screens? Dure à représenter avec une seule image, je vais plutot mettre une video de ce que ce script peut donner si on l'exploite, bavez bien devant le tuto devrait arrivé vite.



Voilà!! Et j'espere que ma joute verbal ne vous a pas trop dégouté.
brasegajames
brasegajames
Membre

Nombre de messages : 100
Age : 25
Localisation : Devant mon ordi!!!
Distinction : aucune
Date d'inscription : 19/12/2008

Custum Battle Commands Empty Re: Custum Battle Commands

le Dim 5 Juil 2009 - 0:09
Alors là je suis étonné qu'il ny ait personne qui réponde, car ce script est magnifique, tout simplement magnifique, qui servira à plus d'un et bah voila quoi génial continue comme ça.
Euh désolé du nécropost, mais je reviens de voyage te quand je vois cette chose magnifique je suis obligé me m'exclamer.
Link312
Link312
Membre

Nombre de messages : 9
Age : 24
Localisation : Devant mon ordi =)
Distinction : aucune
Date d'inscription : 08/03/2008

Custum Battle Commands Empty Re: Custum Battle Commands

le Dim 5 Juil 2009 - 9:53
Ce script va devenir une ré-vo-lu-TION !!!Adieu les combats de base en iso ou le combat de Base de VX !!!
Les makers vont etre ravis, mais malheureusement, il n'y a pas beaucoup de monde qui répond :/
Bref, merci du partage !!!
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

Custum Battle Commands Empty Re: Custum Battle Commands

le Dim 5 Juil 2009 - 13:13
Effectivement, c'est pas mal, mais il faut compter qu'il y a du code à faire derrière pour avoir de "vraies" commandes customisées ='/

M'enfin, couplé au script de création de fenêtre de Berka en l'utilisant bien et en modifiant et codant par la suite deux ou trois choses, il serait possible de faire des systèmes customisés.

Bref, merci de ton partage ='D
Darky Face
Darky Face
Membre

Nombre de messages : 741
Age : 23
Localisation : Dans un tigre.
Distinction : Champion mondial paralympique au 100 m. roulettes
Grosse CMB (Grosse Contusion des Membres, Ballot)
Adepte de Chatroulette.
Adjuvant-chef du club masochiste de la commu'.
Date d'inscription : 22/07/2008

Custum Battle Commands Empty Re: Custum Battle Commands

le Dim 5 Juil 2009 - 15:35
Ça semble intéressant et vaste comme script, mais comme je suis une bouse en programmation... Ça sera pour une prochaine fois! Merci du partage!
Anonymous
Invité
Invité

Custum Battle Commands Empty Re: Custum Battle Commands

le Dim 19 Juil 2009 - 15:17
Bonjour à tous =D
Bon, ben, je sais que je suis nul pour placer correctement un script, mais moi, sa bug à la ligne 157.
Spoiler:
ligne 157 ----> return if index.nil?
Voici le Scene_Battle complet :
Spoiler:
#==============================================================================
# ** Custom Commands
#------------------------------------------------------------------------------
# ©️ Dargor, 2008
# 13/06/08
# Version 1.7
# Lifté par Skillo
#------------------------------------------------------------------------------
# INSTRUCTIONS:
# 1) Place this script above all custom scripts and below all
# default scripts
# 2) To change an actor's battle commands, use:
# - $game_actors[id].commands = [string1, string2...]
# or
# - $game_actors[id].add_command(index, command)
# or
# - $game_actors[id].remove_command(command)
#------------------------------------------------------------------------------
# NOTES:
# 1) When using the following methods:
# > $game_actors[id].add_command(index, command)
# > $game_actors[id].remove_command(command)
# 'command' can be a String or an Array
# 2) This script overides the following methods:
# > Window_ActorCommand
# <> initialize
# <> setup
# > Scene_Battle
# <> update_actor_command_selection
# This script will be incompatible with any other scripts
# modifying these methodsunless they are based on the
# Custom Commands script methods.
#==============================================================================

#==============================================================================
# ** RPG::Class
#------------------------------------------------------------------------------
# This class handles actors classes.
#==============================================================================

class RPG::Class
#--------------------------------------------------------------------------
# * Command Name
# Returns a substitute to command_name.
# Returns the original command name if no substitues are found.
# command_name : command name
#--------------------------------------------------------------------------
def command_name(command)
# Commands Substitution Array
@commands = []
# SYNTAX: @commands[class_ID] = { original_command => substitute }
@commands[1] = {
Vocab::attack => 'Strike',
Vocab::item => 'Things',
Vocab::skill => 'Magie',
Vocab::guard => 'Protect',
}
@commands[2] = {
Vocab::guard => 'Protect',
Vocab::item => 'Stuff',
}
# Get command substitute
if @commands[@id].nil? or @commands[@id][command].nil?
return command
end
return @commands[@id][command]
end
end
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :commands # battle commands
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
alias dargor_vx_battle_commands_actor_setup setup
#--------------------------------------------------------------------------
# * Setup
# actor_id : actor ID
#--------------------------------------------------------------------------
def setup(actor_id)
dargor_vx_battle_commands_actor_setup(actor_id)
actor = $data_actors[actor_id]
s1 = self.class.command_name(Vocab::attack)
s2 = self.class.command_name(Vocab::skill)
s3 = self.class.command_name(Vocab::guard)
s4 = self.class.command_name(Vocab::item)
if self.class.skill_name_valid # Skill command name is valid?
s2 = self.class.skill_name # Replace command name
end
@commands = [s1, s2, s3, s4]
end
#--------------------------------------------------------------------------
# * Add Command
#--------------------------------------------------------------------------
def add_command(index, command)
return if @commands.include?(command)
if command.is_a?(String)
@commands.insert(index, command)
elsif command.is_a?(Array)
for i in 0...command.size
@commands.insert(index+i, command[i])
end
end
end
#--------------------------------------------------------------------------
# * Remove Command
#--------------------------------------------------------------------------
def remove_command(command)
if command.is_a?(String)
@commands.delete(command)
elsif command.is_a?(Array)
for i in command
@commands.delete(i)
end
end
end
end

#==============================================================================
# ** 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_Command
#------------------------------------------------------------------------------
# This window deals with general command choices.
#==============================================================================

class Window_Command < Window_Selectable
alias dargor_vx_cmc_window_command_draw_item draw_item
#--------------------------------------------------------------------------
# * Draw Item
# index : item number
# enabled : enabled flag. When false, draw semi-transparently.
#--------------------------------------------------------------------------
def draw_item(index, enabled = true)
return if index.nil?
dargor_vx_cmc_window_command_draw_item(index, enabled)
end
end

#==============================================================================
# ** Window_ActorCommand
#------------------------------------------------------------------------------
# This window is used to select actor commands, such as "Attack" or "Skill".
#==============================================================================

class Window_ActorCommand < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(128, [], 1, 4)
self.active = false
end
#--------------------------------------------------------------------------
# * Setup
# actor : actor
#--------------------------------------------------------------------------
def setup(actor)
@commands = actor.commands
@item_max = @commands.size
height = @item_max * 24
self.contents = Bitmap.new(width - 32, height)
refresh
self.index = 0
end
end



#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# This class performs battle screen processing.
#==============================================================================

class Scene_Battle < Scene_Base

#--------------------------------------------------------------------------
# * Update Actor Command Selection
#--------------------------------------------------------------------------
def update_actor_command_selection
skill = Vocab::skill
if @commander.class.skill_name_valid
skill = @commander.class.skill_name
end
return reset_command unless commanding?
if Input.trigger?(Input::B)
Input.update
Sound.play_decision
start_party_command
elsif Input.trigger?(Input::C)
Input.update
case @actor_command_window.selection
when @commander.class.command_name(Vocab::attack) # Attack
Sound.play_decision
@commander.action.set_attack
start_target_enemy_selection
when skill # Skill
Sound.play_decision
$in_select = true
start_skill_selection
when @commander.class.command_name(Vocab::guard) # Guard
Sound.play_decision
@commander.action.set_guard
end_command
when @commander.class.command_name(Vocab::item) # Item
Sound.play_decision
$in_select = true
start_item_selection
end
elsif Input.trigger?(Input::RIGHT)
next_commander
elsif Input.trigger?(Input::LEFT)
back_commander
end
end
end
Si quelqu'un aurait une façon pour insérer ce script plus facilement, je suis partant =)

Merci d'avance


Rotsak
Meowth77
Meowth77
Membre

Nombre de messages : 119
Localisation : Chez moi
Distinction : aucune
Date d'inscription : 30/06/2009
http://leschroniquesdepokeworld.e-monsite.com/

Custum Battle Commands Empty Re: Custum Battle Commands

le Dim 19 Juil 2009 - 18:28
WAH ! C'est la classe !
Ashikata
Ashikata
Membre

Nombre de messages : 95
Age : 25
Localisation : France
Distinction : aucune
Date d'inscription : 02/05/2009

Custum Battle Commands Empty Re: Custum Battle Commands

le Lun 20 Juil 2009 - 13:00
Waah trop bien comme script dommage que je sache pas très bien comment modifier ce script.
Skillo tu pourrais pas mettre les trucs à entrer par exemple pour avancer vers le monstre ou faire faire un saut périlleux à notre bonhomme?
Nekaru
Nekaru
Membre

Nombre de messages : 433
Age : 27
Localisation : 35 rue des orfèvres, Ankh-Morpork, Plaines de Sto, Disque-monde, Univers.
Distinction : Saucisson Sec ='3
Membre du club masochiste de la Commu'.

[Mist' Smile]
Date d'inscription : 24/03/2008

Custum Battle Commands Empty Re: Custum Battle Commands

le Lun 20 Juil 2009 - 15:06
Pour ca t'as SBS takenaï et ton cerveau.

Sinon sympa comme scropt mais achement dur a mettre en place pour vraiment avoir un bon rendu
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(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' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Custum Battle Commands Empty Re: Custum Battle Commands

le Sam 25 Juil 2009 - 16:36
Vous inquiétez pas j'ai dis que je ferai un tuto je vais le faire c'est juste un peu long à faire mais il va venir et vous verrz que vous pourrez faire pas mal de truck avec.
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum