Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



Le Deal du moment : -16%
Friteuse sans huile NINJA Foodi Dual Zone 7,6 L 2400W ...
Voir le deal
135.01 €

Partagez
 

 [Résolu] XP - Modifiaction d'un script d'équipement

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Seri
Mage (niveau 3)
Mage (niveau 3)
Seri

Masculin
Messages postés : 303
Date d'inscription : 04/12/2012
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140025 / 10025 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 2:34

Bonjour/soir à tous,

J'ai besoin de votre science en script pour quelque chose que ça fait bien 3 semaines que j'essaye de modifier sans réussite. J'ai ce script d'inventaire multiple :

Code:
################################################################################
################################################################################
#################### Cold Inventory By Actor ###################################
################################################################################
################################################################################
#===============================================================================
# Criado por Cold Strong
#===============================================================================
# Script de inventário por ator
#===============================================================================
# O script deixa o inventário por ator, para que um ator ganhe um item
# antes de mudar os itens sempre lembre de colocar antes em chamar
# script e digite:
#                  $actor_index = posição do ator
# Ela começa no 0 e vai até 3, que no caso o máximo é 4 heróis em party.
# Lembre-se sempre de usar este código antes de mduar itens.
#===============================================================================

module Options
 
  #--------------------------------------------------------------------------
  # - Tipo de exibição da tela de item:
  #
  #    Coloque 0 para padrão e 1 para customizado
  #--------------------------------------------------------------------------
 
  SCENE_ITEMTYPE = 1
 
  #--------------------------------------------------------------------------
  # - Texto de ajuda para indentificar o herói
  #
  #   Use a tag [actor] nde quer que apareça o nome dele,
  #   Caso quiser que apareça uma janela como a do scene skill use
  #   apenas [actor] no texto.
  #--------------------------------------------------------------------------
 
  SCENE_ITEMTEXT = "[actor]"
 
  #--------------------------------------------------------------------------
  # - Alinhamento do texto de ajuda da tela do item.
  #
  #   0: esquerda, 1: centralizado, 2: direita
  #--------------------------------------------------------------------------
 
  SCENE_ITEMALIGN = 0
 
  ITEM_GO_ACTOR = 0
 
  $actor_index = 0 # Index de actor inicial é 0
end

#==============================================================================
# Game_Actor
#------------------------------------------------------------------------------
# Esta é a classe que trata dos Heróis na Batalha.
#==============================================================================

class Game_Actor < Game_Battler
 
 
  attr_reader   (:items, :weapons, :armors)
 
  #--------------------------------------------------------------------------
  # - Opções
  #
  #     actor_id : ID do Herói
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_setup setup
  def setup(actor_id)
    ivent_by_actor_setup(actor_id)
    @items = {}
    @weapons = {}
    @armors = {}
  end
end

#==============================================================================
# Game_Party
#------------------------------------------------------------------------------
# Esta classe engloba o Grupo de Heróis. Isto inclui informações sobre a
# quantidade de dinheiro e Itens. Se refere a $game_party para as instâncias
# nesta classe.
#==============================================================================

class Game_Party
 
  #--------------------------------------------------------------------------
  # - Selecionar o Número de Itens Possuídos
  #
  #     item_id : ID do Item
  #     index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def item_number(item_id, index=nil)
    index ||= $actor_index
    # Se a quantidade estiver separada, se não, voltar a 0
    return $game_party.actors[index].items.include?(item_id) ? $game_party.actors[index].items[item_id] : 0
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar o Número de Armas Possuídas
  #
  #     weapon_id : ID da Arma
  #     index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def weapon_number(weapon_id, index=nil)
    index ||= $actor_index
    # Se a quantidade estiver separada, se não, voltar a 0
    return $game_party.actors[index].weapons.include?(weapon_id) ? $game_party.actors[index].weapons[weapon_id] : 0
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar o Número de Armaduras Possuídas
  #
  #     armor_id : ID da Armadura
  #     index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def armor_number(armor_id, index=nil)
    index ||= $actor_index
    # Se a quantidade estiver separada, se não, voltar a 0
    return $game_party.actors[index].armors.include?(armor_id) ? $game_party.actors[index].armors[armor_id] : 0
  end
 
  #--------------------------------------------------------------------------
  # - Ganhou ou Perder Itens
  #
  #     item_id : iD do Item
  #     n       : quantidade
  #     index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def gain_item(item_id, n, index=nil)
    index ||= $actor_index
    # Atualizar a quantidade nesta divisão
    if item_id > 0
      $game_party.actors[index].items[item_id] = [[item_number(item_id, index) + n, 0].max, 99].min
    end
  end
 
  #--------------------------------------------------------------------------
  # - Ganhar ou Perder Armas
  #
  #     weapon_id : ID da Arma
  #     n         : quantidade]
  #     index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def gain_weapon(weapon_id, n, index=nil)
    index ||= $actor_index
    # Atualizar a quantidade nesta divisão
    if weapon_id > 0
      $game_party.actors[index].weapons[weapon_id] = [[weapon_number(weapon_id, index) + n, 0].max, 99].min
    end
  end
 
  #--------------------------------------------------------------------------
  # - Ganhar ou Perder Armaduras
  #
  #     armor_id : ID da Armadura
  #     n        : quantidade
  #     index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def gain_armor(armor_id, n, index=nil)
    index ||= $actor_index
    # Atualizar a quantidade nesta divisão
    if armor_id > 0
      $game_party.actors[index].armors[armor_id] = [[armor_number(armor_id, index) + n, 0].max, 99].min
    end
  end
end

#==============================================================================
# Scene_Battle
#------------------------------------------------------------------------------
# Esta classe processa a tela de Batalha.
#==============================================================================

class Scene_Battle
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_update update
  def update
    $actor_index = @actor_index
    unless @active_battler.nil?
      $actor_index = @active_battler.index
    end
    ivent_by_actor_update
  end
 
  #--------------------------------------------------------------------------
  # - Fim da Batalha
  #
  #     result : resultado (0=vitória, 1=derrota e 2=fuga)
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_battle_end battle_end
  def battle_end(result)
    $actor_index = Options::ITEM_GO_ACTOR
    ivent_by_actor_battle_end(result)
  end
end

#==============================================================================
# Scene_Menu
#------------------------------------------------------------------------------
# Esta classe processa a Tela de Menu
#==============================================================================

class Scene_Menu
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame (Quando a janela de Comandos estiver Ativa)
  #--------------------------------------------------------------------------
 
  def update_command
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Alternar para a tela do mapa
      $scene = Scene_Map.new
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # Se o comando for outro senão Salvar, Fim de Jogo e o número de Heróis no
      # Grupo for 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Reproduzir SE de erro
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Ramificação por posição do cursor na janela de comandos
      case @command_window.index
      when 0  # Itens
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 1  # Habilidades
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # Equipamentos
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # Status
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # Salvar
        # Se Salvar for proibido
        if $game_system.save_disabled
          # Reproduzir SE de erro
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de save
        $scene = Scene_Save.new
      when 5  # Fim de Jogo
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Fim de Jogo
        $scene = Scene_End.new
      end
      return
    end
  end
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame (Quando o status da Janela estiver Ativo)
  #--------------------------------------------------------------------------
 
  def update_status
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Torna a janela de comandos ativa
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # Ramificação por posição do cursor na janela de comandos
      case @command_window.index
      when 0 # Item
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        $actor_index = @status_window.index
        # Alternar para a tela de Itens
        $scene = Scene_Item.new
      when 1 # Habilidades
        # Se o limite de ação deste Herói for de 2 ou mais
        if $game_party.actors[@status_window.index].restriction >= 2
          # Reproduzir SE de erro
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Habilidades
        $actor_index = @status_window.index
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # Equipamento
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Equipamento
        $actor_index = @status_window.index
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # Status
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Status
        $actor_index = @status_window.index
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end

#==============================================================================
# Scene_Item
#------------------------------------------------------------------------------
# Esta classe processa a tela de Itens
#==============================================================================

class Scene_Item
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame (Quando a janela de Itens estiver Ativa)
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_update_item update_item
  def update_item
    ivent_by_actor_update_item
    # Se o botão R for pressionado
    if Input.trigger?(Input::R)
      # Reproduzir SE de cursor
      $game_system.se_play($data_system.cursor_se)
      # O comando leva ao próximo Herói
      $actor_index += 1
      $actor_index %= $game_party.actors.size
      # Alternar para uma tela de Habilidades diferente
      @item_window.refresh
      return
    end
    # Se o botão L for pressionado
    if Input.trigger?(Input::L)
      # Reproduzir SE de cursor
      $game_system.se_play($data_system.cursor_se)
      # O comando leva ao próximo Herói
      $actor_index += $game_party.actors.size - 1
      $actor_index %= $game_party.actors.size
      # Alternar para uma tela de Habilidades diferente
      @item_window.refresh
      return
    end
  end
end

#==============================================================================
# Scene_Equip
#------------------------------------------------------------------------------
# Esta classe processa a tela de Equipamento
#==============================================================================

class Scene_Equip
 
  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #
  #     actor_index : Índice de Heróis
  #     equip_index : Índice de Equipamentos
  #--------------------------------------------------------------------------
 
  def initialize(actor_index = 0, equip_index = 0)
    $actor_index = @actor_index = actor_index
    @equip_index = equip_index
  end
end

if Options::SCENE_ITEMTYPE == 1
 
#==============================================================================
# Window_Item
#------------------------------------------------------------------------------
# Esta janela exibe os Itens possuídos na tela de Itens
#==============================================================================

class Window_Item < Window_Selectable
 
  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_init initialize
  def initialize
    @help_item = Window_Help.new
    @help_item.y = 64
    ivent_by_actor_init
    self.y += 64
    self.height -= 64
  end
 
  #--------------------------------------------------------------------------
  # - Atualização
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_refresh refresh
  def refresh
    text = Options::SCENE_ITEMTEXT.clone
    if text == "[actor]"
      @help_item.set_actor($game_party.actors[$actor_index])
    else
      text.gsub!("[actor]", $game_party.actors[$actor_index].name)
      @help_item.set_text(text, Options::SCENE_ITEMALIGN)
    end
    ivent_by_actor_refresh
  end
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
 
  def update
    super
    @help_item.update
  end
 
  #--------------------------------------------------------------------------
  # - Exibição
  #--------------------------------------------------------------------------
 
  def dispose
    super
    @help_item.dispose
  end
end

end
Le problème que j'ai c'est que l'appel fonctionne en faisant $actor_index = x, où x est entre 0 et 3, suivant la position du perso dans l'équipe(0=leader etc...).
J'aimerais que cette façon change et que x représente l'ID du perso dans la database (et pas dans l'équipe) ce qui permettra aussi de dealer avec des équipes multiples-

Merci de votre aide,

~Seri


Dernière édition par Seri le Dim 11 Aoû 2013 - 13:20, édité 1 fois
Revenir en haut Aller en bas
Ti-Max
Membre V.I.P.
Membre V.I.P.
Ti-Max

Masculin
Messages postés : 2260
Date d'inscription : 11/07/2012
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140080 / 10080 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400

[Résolu] XP - Modifiaction d'un script d'équipement Membre10
[Résolu] XP - Modifiaction d'un script d'équipement Membre15
[Résolu] XP - Modifiaction d'un script d'équipement Padago10
[Résolu] XP - Modifiaction d'un script d'équipement Altrui10
[Résolu] XP - Modifiaction d'un script d'équipement Event-10
[Résolu] XP - Modifiaction d'un script d'équipement Partag10
[Résolu] XP - Modifiaction d'un script d'équipement Promot10
[Résolu] XP - Modifiaction d'un script d'équipement Riche_10
[Résolu] XP - Modifiaction d'un script d'équipement Collec10
[Résolu] XP - Modifiaction d'un script d'équipement Collec11
[Résolu] XP - Modifiaction d'un script d'équipement Collec12
[Résolu] XP - Modifiaction d'un script d'équipement Mister10
[Résolu] XP - Modifiaction d'un script d'équipement Projet15
[Résolu] XP - Modifiaction d'un script d'équipement Projet10


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 2:47

Le code pour déterminé le héros depuis la base des données est ceci:

Code:
actor.id
id remplacer pas le chiffre de la BDD.
Revenir en haut Aller en bas
Seri
Mage (niveau 3)
Mage (niveau 3)
Seri

Masculin
Messages postés : 303
Date d'inscription : 04/12/2012
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140025 / 10025 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 2:57

J'y avais déjà pensé, ce fut d'ailleurs la première chose que j'ai tentée, mais le script demande plus de modifications que cet "actor.id" :/

~Seri
Revenir en haut Aller en bas
Invité
Invité
Anonymous


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 3:09

Normalement suffit de remplacer tous les $game_party.actors par $game_actors
Par contre après faut pas mettre le $actor_index à 0 sinon boom.
Revenir en haut Aller en bas
Seri
Mage (niveau 3)
Mage (niveau 3)
Seri

Masculin
Messages postés : 303
Date d'inscription : 04/12/2012
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140025 / 10025 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 3:43

J'obtiens cette erreur (et j'ai mis les $actor_index à 1 pour pas que ça fasse boom). J'avais déjà tester en fait mais j'avais toujours une erreur quelque part.

[Résolu] XP - Modifiaction d'un script d'équipement Screen10

~Seri


Dernière édition par Seri le Sam 10 Aoû 2013 - 23:35, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité
Anonymous


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 4:33

Ouais du coup ça a l'air d'être plus compliqué que ça. [/flemme]
Revenir en haut Aller en bas
Seri
Mage (niveau 3)
Mage (niveau 3)
Seri

Masculin
Messages postés : 303
Date d'inscription : 04/12/2012
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140025 / 10025 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 16:51

Soit fort Zeus, j'ai besoin de ce script ! Embarassed 

~Seri
Revenir en haut Aller en bas
Mack
Chevalier (niveau 5)
Chevalier (niveau 5)
Mack

Messages postés : 126
Date d'inscription : 26/06/2013
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140077 / 10077 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 23:17

Essaie ça :
Code:
################################################################################
################################################################################
#################### Cold Inventory By Actor ###################################
################################################################################
################################################################################
#===============================================================================
# Criado por Cold Strong
#===============================================================================
# Script de inventário por ator
#===============================================================================
# O script deixa o inventário por ator, para que um ator ganhe um item
# antes de mudar os itens sempre lembre de colocar antes em chamar
# script e digite:
#                  $actor_index = posição do ator
# Ela começa no 0 e vai até 3, que no caso o máximo é 4 heróis em party.
# Lembre-se sempre de usar este código antes de mduar itens.
#===============================================================================

module Options
 
  #--------------------------------------------------------------------------
  # - Tipo de exibição da tela de item:
  #
  #    Coloque 0 para padrão e 1 para customizado
  #--------------------------------------------------------------------------
 
  SCENE_ITEMTYPE = 1
 
  #--------------------------------------------------------------------------
  # - Texto de ajuda para indentificar o herói
  #
  #  Use a tag [actor] nde quer que apareça o nome dele,
  #  Caso quiser que apareça uma janela como a do scene skill use
  #  apenas [actor] no texto.
  #--------------------------------------------------------------------------
 
  SCENE_ITEMTEXT = "[actor]"
 
  #--------------------------------------------------------------------------
  # - Alinhamento do texto de ajuda da tela do item.
  #
  #  0: esquerda, 1: centralizado, 2: direita
  #--------------------------------------------------------------------------
 
  SCENE_ITEMALIGN = 0
 
  ITEM_GO_ACTOR = 0
 
  $actor_index = 0 # Index de actor inicial é 0
end


#==============================================================================
# Game_Actor
#------------------------------------------------------------------------------
# Esta é a classe que trata dos Heróis na Batalha.
#==============================================================================

class Game_Actor < Game_Battler
 
 
  attr_reader  (:items, :weapons, :armors)
 
  #--------------------------------------------------------------------------
  # - Opções
  #
  #    actor_id : ID do Herói
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_setup setup
  def setup(actor_id)
    ivent_by_actor_setup(actor_id)
    @items = {}
    @weapons = {}
    @armors = {}
  end
end

#==============================================================================
# Game_Party
#------------------------------------------------------------------------------
# Esta classe engloba o Grupo de Heróis. Isto inclui informações sobre a
# quantidade de dinheiro e Itens. Se refere a $game_party para as instâncias
# nesta classe.
#==============================================================================

class Game_Party
 
  #--------------------------------------------------------------------------
  # - Selecionar o Número de Itens Possuídos
  #
  #    item_id : ID do Item
  #    index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def item_number(item_id, index=nil)
    index ||= $actor_index
    # Se a quantidade estiver separada, se não, voltar a 0
    return $game_actors[index].items.include?(item_id) ? $game_actors[index].items[item_id] : 0
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar o Número de Armas Possuídas
  #
  #    weapon_id : ID da Arma
  #    index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def weapon_number(weapon_id, index=nil)
    index ||= $actor_index
    # Se a quantidade estiver separada, se não, voltar a 0
    return $game_actors[index].weapons.include?(weapon_id) ? $game_actors[index].weapons[weapon_id] : 0
  end
 
  #--------------------------------------------------------------------------
  # - Selecionar o Número de Armaduras Possuídas
  #
  #    armor_id : ID da Armadura
  #    index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def armor_number(armor_id, index=nil)
    index ||= $actor_index
    # Se a quantidade estiver separada, se não, voltar a 0
    return $game_actors[index].armors.include?(armor_id) ? $game_actors[index].armors[armor_id] : 0
  end
 
  #--------------------------------------------------------------------------
  # - Ganhou ou Perder Itens
  #
  #    item_id : iD do Item
  #    n      : quantidade
  #    index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def gain_item(item_id, n, index=nil)
    index ||= $actor_index
    p $actor_index
    # Atualizar a quantidade nesta divisão
    if item_id > 0
      $game_actors[index].items[item_id] = [[item_number(item_id, index) + n, 0].max, 99].min
    end
  end
 
  #--------------------------------------------------------------------------
  # - Ganhar ou Perder Armas
  #
  #    weapon_id : ID da Arma
  #    n        : quantidade]
  #    index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def gain_weapon(weapon_id, n, index=nil)
    index ||= $actor_index
    # Atualizar a quantidade nesta divisão
    if weapon_id > 0
      $game_actors[index].weapons[weapon_id] = [[weapon_number(weapon_id, index) + n, 0].max, 99].min
    end
  end
 
  #--------------------------------------------------------------------------
  # - Ganhar ou Perder Armaduras
  #
  #    armor_id : ID da Armadura
  #    n        : quantidade
  #    index    : index do ator a ganhar o item (0..4)
  #--------------------------------------------------------------------------
 
  def gain_armor(armor_id, n, index=nil)
    index ||= $actor_index
    # Atualizar a quantidade nesta divisão
    if armor_id > 0
      $game_actors[index].armors[armor_id] = [[armor_number(armor_id, index) + n, 0].max, 99].min
    end
  end
end

#==============================================================================
# Scene_Battle
#------------------------------------------------------------------------------
# Esta classe processa a tela de Batalha.
#==============================================================================

class Scene_Battle
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_update update
  def update
    $actor_index = @actor_index
    unless @active_battler.nil?
      $actor_index = @active_battler.index
    end
    ivent_by_actor_update
  end
 
  #--------------------------------------------------------------------------
  # - Fim da Batalha
  #
  #    result : resultado (0=vitória, 1=derrota e 2=fuga)
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_battle_end battle_end
  def battle_end(result)
    $actor_index = Options::ITEM_GO_ACTOR
    ivent_by_actor_battle_end(result)
  end
end

#==============================================================================
# Scene_Menu
#------------------------------------------------------------------------------
# Esta classe processa a Tela de Menu
#==============================================================================

class Scene_Menu
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame (Quando a janela de Comandos estiver Ativa)
  #--------------------------------------------------------------------------
 
  def update_command
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Alternar para a tela do mapa
      $scene = Scene_Map.new
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # Se o comando for outro senão Salvar, Fim de Jogo e o número de Heróis no
      # Grupo for 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Reproduzir SE de erro
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Ramificação por posição do cursor na janela de comandos
      case @command_window.index
      when 0  # Itens
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 1  # Habilidades
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2  # Equipamentos
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3  # Status
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Ativar o status da janela
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4  # Salvar
        # Se Salvar for proibido
        if $game_system.save_disabled
          # Reproduzir SE de erro
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de save
        $scene = Scene_Save.new
      when 5  # Fim de Jogo
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Fim de Jogo
        $scene = Scene_End.new
      end
      return
    end
  end
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame (Quando o status da Janela estiver Ativo)
  #--------------------------------------------------------------------------
 
  def update_status
    # Se o botão B for pressionado
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Torna a janela de comandos ativa
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
      # Ramificação por posição do cursor na janela de comandos
      case @command_window.index
      when 0 # Item
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        $actor_index = $game_party.actors[@status_window.index].id
        # Alternar para a tela de Itens
        $scene = Scene_Item.new(@status_window.index)
      when 1 # Habilidades
        # Se o limite de ação deste Herói for de 2 ou mais
        if $game_party.actors[@status_window.index].restriction >= 2
          # Reproduzir SE de erro
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Habilidades
        $actor_index = $game_party.actors[@status_window.index].id
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # Equipamento
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Equipamento
        $actor_index = $game_party.actors[@status_window.index].id
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # Status
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Alternar para a tela de Status
        $actor_index = $game_party.actors[@status_window.index].id
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end

#==============================================================================
# Scene_Item
#------------------------------------------------------------------------------
# Esta classe processa a tela de Itens
#==============================================================================

class Scene_Item
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame (Quando a janela de Itens estiver Ativa)
  #--------------------------------------------------------------------------
  def initialize(i)
    @actor_index = i
  end
 
 
  alias ivent_by_actor_update_item update_item
  def update_item
    ivent_by_actor_update_item
    # Se o botão R for pressionado
    if Input.trigger?(Input::R)
      # Reproduzir SE de cursor
      $game_system.se_play($data_system.cursor_se)
      # O comando leva ao próximo Herói
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      $actor_index = $game_party.actors[@actor_index].id
      p $actor_index
      # Alternar para uma tela de Habilidades diferente
      @item_window.refresh
      return
    end
    # Se o botão L for pressionado
    if Input.trigger?(Input::L)
      # Reproduzir SE de cursor
      $game_system.se_play($data_system.cursor_se)
      # O comando leva ao próximo Herói
      @actor_index -= 1
      @actor_index %= $game_party.actors.size
      $actor_index = $game_party.actors[@actor_index].id
      # Alternar para uma tela de Habilidades diferente
      @item_window.refresh
      return
    end
  end
end

#==============================================================================
# Scene_Equip
#------------------------------------------------------------------------------
# Esta classe processa a tela de Equipamento
#==============================================================================

class Scene_Equip
 
  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #
  #    actor_index : Índice de Heróis
  #    equip_index : Índice de Equipamentos
  #--------------------------------------------------------------------------
 
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index=actor_index
    @equip_index = equip_index
  end
end

if Options::SCENE_ITEMTYPE == 1
 
#==============================================================================
# Window_Item
#------------------------------------------------------------------------------
# Esta janela exibe os Itens possuídos na tela de Itens
#==============================================================================

class Window_Item < Window_Selectable
 
  #--------------------------------------------------------------------------
  # - Inicialização dos Objetos
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_init initialize
  def initialize
    @help_item = Window_Help.new
    @help_item.y = 64
    ivent_by_actor_init
    self.y += 64
    self.height -= 64
  end
 
  #--------------------------------------------------------------------------
  # - Atualização
  #--------------------------------------------------------------------------
 
  alias ivent_by_actor_refresh refresh
  def refresh
    text = Options::SCENE_ITEMTEXT.clone
    if text == "[actor]"
      @help_item.set_actor($game_actors[$actor_index])
    else
      text.gsub!("[actor]", $game_actors[$actor_index].name)
      @help_item.set_text(text, Options::SCENE_ITEMALIGN)
    end
    ivent_by_actor_refresh
  end
 
  #--------------------------------------------------------------------------
  # - Atualização do Frame
  #--------------------------------------------------------------------------
 
  def update
    super
    @help_item.update
  end
 
  #--------------------------------------------------------------------------
  # - Exibição
  #--------------------------------------------------------------------------
 
  def dispose
    super
    @help_item.dispose
  end
end

end

J'ai vaguement tester, et ça à l'air de marcher sans bug.
Revenir en haut Aller en bas
Seri
Mage (niveau 3)
Mage (niveau 3)
Seri

Masculin
Messages postés : 303
Date d'inscription : 04/12/2012
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140025 / 10025 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptySam 10 Aoû 2013 - 23:31

Merci beaucoup Mack, ça marche impeccablement ! <3

Pour savoir sans avoir à trifouiller le script, où se situait le problème ?
J'ai vu que tu avais changé les game_party.actors en game_actors comme Zeus l'a dit, notamment, mais c'est l'une des choses que j'avais essayé avant et ça n'avait pas marché.

~Seri
Revenir en haut Aller en bas
Mack
Chevalier (niveau 5)
Chevalier (niveau 5)
Mack

Messages postés : 126
Date d'inscription : 26/06/2013
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140077 / 10077 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptyDim 11 Aoû 2013 - 9:40

Zeus81 a écrit:
Par contre après faut pas mettre le $actor_index à 0 sinon boom.
En faite, si tu veux, de base quand on essaie d'acceder à $game_party.actors[i], i est compris entre 0 et 3.
Du coups, dans le script Scene_Menu, dans la partie qui nous redirige vers les menu d'objet, il a fallut que je modifie comme ça :
Code:
$actor_index = $game_party.actors[@status_window.index].id
Qui me permet de récupérer l'id dans la BDD du héros à la place X. X étant définie par la position du curseur dans le menu.

Après, là où j'ai eu le plus de mal, ça a était pour les boutons L/R dans la Scene_Item.
( D'ailleurs faudrait voir si ça marche dans la Scene_Equip, j'ai pas vérifier )
Revenir en haut Aller en bas
Seri
Mage (niveau 3)
Mage (niveau 3)
Seri

Masculin
Messages postés : 303
Date d'inscription : 04/12/2012
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140025 / 10025 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptyDim 11 Aoû 2013 - 13:20

Ok, je vois. Oui ça marche dans le Scene_Equip ^^
Merci encore

~Seri
Revenir en haut Aller en bas
City Hunter
Administrateur
Administrateur
City Hunter

Masculin
Messages postés : 6524
Date d'inscription : 25/05/2011
Jauge LPC :
[Résolu] XP - Modifiaction d'un script d'équipement 891527140040 / 10040 / 100[Résolu] XP - Modifiaction d'un script d'équipement 8915271400

[Résolu] XP - Modifiaction d'un script d'équipement Staffe10
[Résolu] XP - Modifiaction d'un script d'équipement Mappeu10
[Résolu] XP - Modifiaction d'un script d'équipement Membre15
[Résolu] XP - Modifiaction d'un script d'équipement Testeu10
[Résolu] XP - Modifiaction d'un script d'équipement Promot10
[Résolu] XP - Modifiaction d'un script d'équipement Projet10
[Résolu] XP - Modifiaction d'un script d'équipement Projet16
[Résolu] XP - Modifiaction d'un script d'équipement Riche_10
[Résolu] XP - Modifiaction d'un script d'équipement Travai10
[Résolu] XP - Modifiaction d'un script d'équipement Collec10
[Résolu] XP - Modifiaction d'un script d'équipement Collec11
[Résolu] XP - Modifiaction d'un script d'équipement Collec12
[Résolu] XP - Modifiaction d'un script d'équipement Collec13
[Résolu] XP - Modifiaction d'un script d'équipement Pandac10
[Résolu] XP - Modifiaction d'un script d'équipement 10000011


[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement EmptyDim 11 Aoû 2013 - 18:41

Merci à tous. Je classe le sujet et ajoute les points.
Revenir en haut Aller en bas
Contenu sponsorisé




[Résolu] XP - Modifiaction d'un script d'équipement Empty
MessageSujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement   [Résolu] XP - Modifiaction d'un script d'équipement Empty

Revenir en haut Aller en bas
 
[Résolu] XP - Modifiaction d'un script d'équipement
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Ace Script de combat [Résolu]
» [Résolu] Script armes
» [résolu]Conversion de script.
» [Résolu][VX Ace] Script title
» Propriété d'une image en script (Résolu)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ APPRENTISSAGE ~ :: Entraide :: Problèmes résolus-
Sauter vers: