|
| [Résolu] XP - Modifiaction d'un script d'équipement | |
| Auteur | Message |
---|
Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: [Résolu] XP - Modifiaction d'un script d'équipement Sam 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 |
| | | Ti-Max Membre V.I.P.
Messages postés : 2260 Date d'inscription : 11/07/2012 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 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. |
| | | Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 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 |
| | | Invité Invité
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 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.
|
| | | Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 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. ~Seri
Dernière édition par Seri le Sam 10 Aoû 2013 - 23:35, édité 1 fois |
| | | Invité Invité
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 10 Aoû 2013 - 4:33 | |
| Ouais du coup ça a l'air d'être plus compliqué que ça. [/flemme] |
| | | Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 10 Aoû 2013 - 16:51 | |
| Soit fort Zeus, j'ai besoin de ce script ! ~Seri |
| | | Mack Chevalier (niveau 5)
Messages postés : 126 Date d'inscription : 26/06/2013 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 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. |
| | | Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Sam 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 |
| | | Mack Chevalier (niveau 5)
Messages postés : 126 Date d'inscription : 26/06/2013 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Dim 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 ) |
| | | Seri Mage (niveau 3)
Messages postés : 303 Date d'inscription : 04/12/2012 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Dim 11 Aoû 2013 - 13:20 | |
| Ok, je vois. Oui ça marche dans le Scene_Equip ^^ Merci encore
~Seri |
| | | City Hunter Administrateur
Messages postés : 6524 Date d'inscription : 25/05/2011 Jauge LPC :
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement Dim 11 Aoû 2013 - 18:41 | |
| Merci à tous. Je classe le sujet et ajoute les points. |
| | | Contenu sponsorisé
| Sujet: Re: [Résolu] XP - Modifiaction d'un script d'équipement | |
| |
| | | |
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |