PortalPortal  InícioInício  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  Conectar-se  

Compartilhe|

ChangePartyPosition

Ver o tópico anterior Ver o tópico seguinte Ir em baixo
AutorMensagem
zecomeia
avatar
RPG Maker
RPG Maker

Masculino Postagens : 51
Data de inscrição : 20/08/2009


Ver perfil do usuário http://colmeia-do-ze.blogspot.com/
MensagemAssunto: ChangePartyPosition Dom Ago 23, 2009 1:41 pm

ChangePartyPosition
por zecomeia

Introdução

Com este script o jogador pode trocar a ordem dos personagens do grupo.

Características

  • trocar ordem dos personagens
Screen Shot



Como Usar

  • Cole acima de main
  • Para chamar o script vá em "chamar script" em um evento e coloque:
Código:
$scene = Scene_Ordem.new

Demo

Download(Clique Aqui).

Script

Código:
#---------------------------------------------------------------
#- ChangePartyPosition(Menu de Ordem) --------------------------
#- por: zecomeia ------------------------------
#- 18/02/2009 --------------------------------------------------
# Descrição: Essa opção faz com que o jogador tenha a liberdade
#de trocar a posição dos Heróis no grupo. ----------------------
#---------------------------------------------------------------

class Scene_Ordem
 
  def main
    @status_window = Window_MenuStatus.new
    @status_window.x = 72
    @status_window.y = 0
    @stlock_window = Window_MenuStatus.new
    @stlock_window.x = 72
    @stlock_window.y = 0
    @status_window.active = true
    @status_window.index = 0
    @stlock_window.active = true
    @stlock_window.index = 0
    # Criar chaves de controle para escolha dos personagem na troca
    @lock_firstchoice = nil
    @next_choice = nil
    # Executar transição
    Graphics.transition
    # Loop principal
    loop do
      # Atualizar a tela de jogo
      Graphics.update
      # Atualizar a entrada de informações
      Input.update
      # Atualizar Frame
      update
      # Abortar loop se a tela for alterada
      if $scene != self
        break
      end
    end
    # Preparar para transiçõa
    Graphics.freeze
    # Exibição das janelas
    @status_window.dispose
    @stlock_window.dispose
  end
 
  def update
    @status_window.update
    @stlock_window.update
    # Se a janela de Status estiver ativa e: call update_status
    if @status_window.active and @next_choice != true
      update_status
      return
    end
    # Se a segunda escolha da troca de personagens estiver ativa: call comand_ordem
    if @next_choice == true 
      comand_ordem
      return
    end
  end
 
  #-------------------------------------------------------------
  #-- comand_ordem (segunda escolha da troca de posição) -------
  #-------------------------------------------------------------
 
  def comand_ordem
    # Se o botão B for pressionado (Cancel)
    if Input.trigger?(Input::B)
      # Reproduzir SE de cancelamento
      $game_system.se_play($data_system.cancel_se)
      # Voltar para escolha do primeiro Herói da troca
      @stlock_window.active = true
      @stlock_window.index = -1
      @next_choice = false
      @lock_firstchoice = false
      return
    end
    # Se o botão C for pressionado (OK)
    if Input.trigger?(Input::C)
      # Reproduzir SE de OK
      $game_system.se_play($data_system.decision_se)
      # Segunda escolha da troca de Heróis
      if @status_window.index == 0 #Se for o primeiro do grupo
        # Trocar posições dos personagens escolhidos
        @second_choice = $game_party.actors[0]
        $game_party.actors[0] = $game_party.actors[@first_choice]
        $game_party.actors[@first_choice] = @second_choice
        # Manter posição do cursor de escolha
        @indice_position = 0
        # Renovar gráficos
        update_ordem
      elsif @status_window.index == 1 #Se for o segundo do grupo
        # Trocar posições dos personagens escolhidos
        @second_choice = $game_party.actors[1]
        $game_party.actors[1] = $game_party.actors[@first_choice]
        $game_party.actors[@first_choice] = @second_choice
        # Manter posição do cursor de escolha
        @indice_position = 1
        # Renovar gráficos
        update_ordem
      elsif @status_window.index == 2 #Se for o terceiro do grupo
        # Trocar posições dos personagens escolhidos
        @second_choice = $game_party.actors[2]
        $game_party.actors[2] = $game_party.actors[@first_choice]
        $game_party.actors[@first_choice] = @second_choice
        # Manter posição do cursor de escolha
        @indice_position = 2 
        # Renovar gráficos
        update_ordem
      elsif @status_window.index == 3 #Se for o quarto do grupo
        # Trocar posições dos personagens escolhidos
        @second_choice = $game_party.actors[3]
        $game_party.actors[3] = $game_party.actors[@first_choice]
        $game_party.actors[@first_choice] = @second_choice
        # Manter posição do cursor de escolha
        @indice_position = 3
        # Renovar gráficos
        update_ordem
      end       
    end
  end
 
  #-----------------------------------------------------------------------------
  #-- update_ordem (renova os gráficos da janela de status e do lider do grupo -
  #-----------------------------------------------------------------------------
 
  def update_ordem
        $game_player.refresh
        @status_window.dispose
        @stlock_window.dispose
        @status_window = Window_MenuStatus.new
        @stlock_window = Window_MenuStatus.new
        @status_window.x = 72
        @status_window.y = 0
        @stlock_window.x = 72
        @stlock_window.y = 0
        @stlock_window.active = true
        @stlock_window.index = -1
        @status_window.active = true
        @status_window.index = @indice_position
        @next_choice = false
        @lock_firstchoice = false
        return
  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)
      $scene = Scene_Map.new
      return
    end
    # Se o botão C for pressionado
    if Input.trigger?(Input::C)
        # Reproduzir SE de OK
        $game_system.se_play($data_system.decision_se)
        # Escolha do primeiro personagem da troca
        if @status_window.index == 0 and @lock_firstchoice != true
        @first_choice = 0
        # Travar um cursor de indicação da primeira escolha
        @stlock_window.index = 0
        @lock_firstchoice = true 
        elsif @status_window.index == 1 and @lock_firstchoice != true
        @first_choice = 1
        # Travar um cursor de indicação da primeira escolha
        @stlock_window.index = 1
        @lock_firstchoice = true
        elsif @status_window.index == 2 and @lock_firstchoice != true
        @first_choice = 2
        # Travar um cursor de indicação da primeira escolha
        @stlock_window.index = 2
        @lock_firstchoice = true
        elsif @status_window.index == 3 and @lock_firstchoice != true
        @first_choice = 3
        # Travar um cursor de indicação da primeira escolha
        @stlock_window.index = 3
        @lock_firstchoice = true 
        end       
        # Trava do cursor da primeira escolha
        if @lock_firstchoice == true
        @stlock_window.active = false
        # Iniciar escolha do segundo personagem na troca
        @next_choice = true
        end
      end
      return
    end
  end

Créditos e Agradecimentos
zecomeia



Scripts RGSS, Resources, Tutorials and Translations by zecomeia is licensed under a
Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
Permissions beyond the scope of this license may be available at Santuário RPG Maker
Voltar ao Topo Ir em baixo

ChangePartyPosition

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
The World of EverGrand :: Programação em Linguagens :: Ruby Game Scripting System :: Scripts :: RPG Maker XP-