O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Alguma forma de travar a posição de um personagem na party?

Iniciado por uhuLiNKBR, 06/06/2020 às 18:06

06/06/2020 às 18:06 Última edição: 06/06/2020 às 19:10 por uhuLiNKBR
Olá! Novamente eu aqui, tirando dúvidas no meu site favorito da comunidade do RPG Maker. :P

Eu estou com uma dúvida há uns dias. Como eu faço pra travar a posição de um personagem em um slot da minha Party? Mais precisamente o Protagonista, no primeiro slot.

Eu tava pensando nisso pois, eu fiz uns testes e percebi que, caso o jogador tenha trocado o protagonista de posição, os eventos que movem o jogador irão ocorrer com o personagem que está no primeiro slot, e não o protagonista, como eu quero que ocorra. E isso faz as cenas ficarem sem o mínimo sentido!

Exemplo:
Em uma cutscene, o protagonista olha para trás e percebe que há alguém preparado pra atacá-lo. Logo, ele salta pro lado, se distanciando.

Caso o jogador tenha colocado outro personagem no primeiro slot da party, será esse personagem que irá saltar pro lado e se distanciar, o que eu não quero.

Espero que tenham entendido.

E, uma outra dúvida, pra complementar essa, seria uma dúvida de como fazer pra movimentar os outros membros da party? Por exemplo, usar eventos pra fazer eles andarem para algum lado durante a cutscene e algo assim, como se fossem NPCs criados por eventos mesmo.

Obrigado a todos pela atenção! Boa sorte em seus projetos!

Projeto: Project Crimson (Será mudado)
Gênero: RPG clássico, estilo Chrono Trigger e Final Fantasy VI
Engine: RPG Maker VX Ace
Versão: Alpha 1.4
Criador: Cristian Thel (Eu)
Projeto: Project Crimson (Será mudado)
Gênero: RPG clássico, estilo Chrono Trigger e Final Fantasy VI
Engine: RPG Maker VX Ace
Versão: Alpha 1.4
Criador:uhuLiNKBR-Cristian Thel (Eu)

Para o primeiro problema esse código resolve:
# Lock First Actor Position
class Window_MenuStatus < Window_Selectable
  
  alias lock_first_actor_pos ok_enabled?
  def ok_enabled?
    lock_first_actor_pos if @index != 0
  end
  
end

Só colocar no seu projeto.

Para o segundo acho que esse script pode servir. Testa aí, é bem simples de usá-lo. Qualquer outra dúvida é só mandar.


Citação de: Gabriel online 06/06/2020 às 18:41
Para o primeiro problema esse código resolve:
# Lock First Actor Position
class Window_MenuStatus < Window_Selectable
  
  alias lock_first_actor_pos ok_enabled?
  def ok_enabled?
    lock_first_actor_pos if @index != 0
  end
  
end

Só colocar no seu projeto.

Para o segundo acho que esse script pode servir. Testa aí, é bem simples de usá-lo. Qualquer outra dúvida é só mandar.
Valeu! Realmente me ajudou com as duas questões, ainda de quebra consegui um script de mais opções pros seguidores além dos outros dois. Obrigado mesmo!
Projeto: Project Crimson (Será mudado)
Gênero: RPG clássico, estilo Chrono Trigger e Final Fantasy VI
Engine: RPG Maker VX Ace
Versão: Alpha 1.4
Criador:uhuLiNKBR-Cristian Thel (Eu)

Por algum motivo, quando arrumei o código pra você meu cérebro ignorou completamente os outros comandos do menu. Do jeito que está é impossível acessar qualquer informação do primeiro personagem da party  (skills, equip, status). Arrumei o código pra você, só substituir o antigo por esse:
# Lock First Actor Position
class Window_MenuStatus < Window_Selectable
  
  attr_accessor :in_formation
  alias lfap_wms_init initialize
  alias lfap_wms_ok_enbld? ok_enabled?
  
  def initialize(x, y)
    lfap_wms_init(x, y)
    @in_formation = false
  end
  
  def ok_enabled?
    @in_formation ? @index != 0 : lfap_wms_ok_enbld?
  end
  
end # Window_MenuStatus
class Scene_Menu < Scene_MenuBase
  
  alias lfap_sm_cmd_frmtn command_formation
  alias lfap_sm_on_frmtn_cncl on_formation_cancel
  
  def command_formation
    @status_window.in_formation = true
    lfap_sm_cmd_frmtn
  end
  
  def on_formation_cancel
    @status_window.in_formation = false if @status_window.pending_index == -1
    lfap_sm_on_frmtn_cncl
  end

end # Scene_Menu


Agora tá tudo certinho. Qualquer outra coisa só avisar. o)


Citação de: Gabriel online 07/06/2020 às 06:55
Por algum motivo, quando arrumei o código pra você meu cérebro ignorou completamente os outros comandos do menu. Do jeito que está é impossível acessar qualquer informação do primeiro personagem da party  (skills, equip, status). Arrumei o código pra você, só substituir o antigo por esse:
# Lock First Actor Position
class Window_MenuStatus < Window_Selectable
  
  attr_accessor :in_formation
  alias lfap_wms_init initialize
  alias lfap_wms_ok_enbld? ok_enabled?
  
  def initialize(x, y)
    lfap_wms_init(x, y)
    @in_formation = false
  end
  
  def ok_enabled?
    @in_formation ? @index != 0 : lfap_wms_ok_enbld?
  end
  
end # Window_MenuStatus
class Scene_Menu < Scene_MenuBase
  
  alias lfap_sm_cmd_frmtn command_formation
  alias lfap_sm_on_frmtn_cncl on_formation_cancel
  
  def command_formation
    @status_window.in_formation = true
    lfap_sm_cmd_frmtn
  end
  
  def on_formation_cancel
    @status_window.in_formation = false if @status_window.pending_index == -1
    lfap_sm_on_frmtn_cncl
  end

end # Scene_Menu


Agora tá tudo certinho. Qualquer outra coisa só avisar. o)
KKK, valeu mesmo. Eu só percebi o problema hoje, pois havia dado uma longa pausa do computador pra focar em algumas questões pessoais. Daí, quando venho perguntar sobre, já está resolvido! Valeu!
Projeto: Project Crimson (Será mudado)
Gênero: RPG clássico, estilo Chrono Trigger e Final Fantasy VI
Engine: RPG Maker VX Ace
Versão: Alpha 1.4
Criador:uhuLiNKBR-Cristian Thel (Eu)