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

Renomear Commands Direto Pelo Script

Iniciado por JVSodre, 13/10/2017 às 03:24

13/10/2017 às 03:24 Última edição: 13/10/2017 às 03:26 por JVSodre
Gente, Eu Aprendia a Adicionar Novas Opções no Menu do Meu Jogo, Porém ela Ficava em Branco. Até que eu Consegui Editar Ocupando o Espaço de um Command Direto no Vocab e Renomeando nos Termos logo no Banco de Dados. Tem Como Renomear Direto por Script?

Ex do que eu Substitui (Olhem o 8º Command):
#==============================================================================
# ** Vocab
#------------------------------------------------------------------------------
#  Este modulo define os termos e mensagens. Ele define algumas informação
# como variáveis constantes. Termos da base de dados são obtidos utilizando a 
# variável global $data_system.
#==============================================================================

module Vocab

  # Frases de loja
  ShopBuy         = "Comprar"
  ShopSell        = "Vender"
  ShopCancel      = "Voltar"
  Possession      = "Possui"

  # Frases de Estado
  ExpTotal        = "Experiência Total"
  ExpNext         = "Próximo %s"

  # Frases de salvar/carregar
  SaveMessage     = "Deseja salvar em qual arquivo?"
  LoadMessage     = "Deseja carregar qual arquivo?"
  File            = "Arquivo"

  # Nome do grupo de personagens
  PartyName       = "%s"

  # Mensagens iniciais de batalha
  Emerge          = "%s apareceu!"
  Preemptive      = "%s ataca primeiro!"
  Surprise        = "%s chegou de surpresa!"
  EscapeStart     = "% s fugiu!"
  EscapeFailure   = "Tentativa de fuga falhou!"

  # Mensagens finais de batalha
  Victory         = "O grupo de %s venceu a batalha!"
  Defeat          = "O grupo de %s foi derrotado!"
  ObtainExp       = "%s pontos de experiência!"
  ObtainGold      = "Você recebeu %s%s!"
  ObtainItem      = "Você adquiriu  %s!"
  LevelUp         = "%s subiu para o %s %s!"
  ObtainSkill     = "Aprendeu a habilidade %s!"

  # Mensagens de batalha
  UseItem         = "%s usou %s!"

  # Danos críticos
  CriticalToEnemy = "Dano crítico!"
  CriticalToActor = "Dano crítico!"

 # Resultados de ações (herói)
  ActorDamage     = "%s recebeu %s pontos de dano!"
  ActorRecovery   = "%s recuperou %s%s!"
  ActorGain       = "%s ganhou %s%s!"
  ActorLoss       = "%s perdeu %s%s!"
  ActorDrain      = "%s teve %s%s drenados"
  ActorNoDamage   = "%s não recebeu dano!"
  ActorNoHit      = "Errou! %s não recebeu dano!"

  # Resultados de ações (inimigo)
  EnemyDamage     = "%s recebeu %s pontos de dano!"
  EnemyRecovery   = "%s recuperou %s%s!"
  EnemyGain       = "%s ganhou %s%s!"
  EnemyLoss       = "%s perdeu %s%s!"
  EnemyDrain      = "%s  teve %s%s drenados"
  EnemyNoDamage   = "%s não recebeu dano!"
  EnemyNoHit      = "Errou! %s não recebeu dano!"

  # Reflexão / Evasão
  Evasion         = "%s evitou o ataque!"
  MagicEvasion    = "%s evitou a magia!"
  MagicReflection = "%s refletiu a magia!"
  CounterAttack   = "%s contra - atacou!"
  Substitute      = "%s transforma-se em %s!"

  # Enfraquecimento / Fortalecimento
  BuffAdd         = "%s foi encantado com %s!"
  DebuffAdd       = "%s sofeu %s!"
  BuffRemove      = "%s não está mais encantado com %s!"

  # Caso não haja efeito do item
  ActionFailure   = "%s não causou efeito!"

  # Mensagem de erro
  PlayerPosError  = "Não é possível definir a posição inicial do jogador."
  EventOverflow   = "Excedeu o máximo de chamadas de Eventos Comuns."

  # Termos Básicos
  def self.basic(basic_id)
    $data_system.terms.basic[basic_id]
  end

  # Parâmetros
  def self.param(param_id)
    $data_system.terms.params[param_id]
  end

  # Tipo de Equipamento
  def self.etype(etype_id)
    $data_system.terms.etypes[etype_id]
  end

  # Comandos
  def self.command(command_id)
    $data_system.terms.commands[command_id]
  end

  # Moeda
  def self.currency_unit
    $data_system.currency_unit
  end

  #--------------------------------------------------------------------------
  def self.level;       basic(0);     end   # Nível
  def self.level_a;     basic(1);     end   # Nível (abreviação)
  def self.hp;          basic(2);     end   # HP
  def self.hp_a;        basic(3);     end   # HP (abreviação)
  def self.mp;          basic(4);     end   # MP
  def self.mp_a;        basic(5);     end   # MP (abreviação)
  def self.tp;          basic(6);     end   # TP
  def self.tp_a;        basic(7);     end   # TP (abreviação)
  def self.fight;       command(0);   end   # Lutar
  def self.escape;      command(1);   end   # Fugir
  def self.attack;      command(2);   end   # Atacar
  def self.guard;       command(3);   end   # Defender
  def self.item;        command(4);   end   # Item
  def self.skill;       command(5);   end   # Habilidade
  def self.equip;       command(6);   end   # Equipamento
  def self.status;      command(7);   end   # Estado
  def self.folio;       command(8);   end   # Folio Magi
  def self.save;        command(9);   end   # Salvar
  def self.game_end;    command(10);  end   # Sair
  def self.weapon;      command(12);  end   # Arma
  def self.armor;       command(13);  end   # Armadura
  def self.key_item;    command(14);  end   # Item Importante
  def self.equip2;      command(15);  end   # Mudar equipamento
  def self.optimize;    command(16);  end   # Otimizar
  def self.clear;       command(17);  end   # Remover
  def self.new_game;    command(18);  end   # Novo Jogo
  def self.continue;    command(19);  end   # Continuar
  def self.shutdown;    command(20);  end   # Sair
  def self.to_title;    command(21);  end   # Tela de Título
  def self.cancel;      command(22);  end   # Cancelar
  #--------------------------------------------------------------------------
end
~Desenvolvendo Um Jogo de RPG Dentro de Hogwarts, Uma Escola de Magia e Bruxaria, Qualquer Ideia ou Ajuda Será Bem Vinda~

Como assim substituir direto no script? O Vocab é o único script no qual esses nomes podem ser alterados além, claro, dos incluídos na aba Termos do database.

Citação de: Corvo online 13/10/2017 às 07:12
Como assim substituir direto no script? O Vocab é o único script no qual esses nomes podem ser alterados além, claro, dos incluídos na aba Termos do database.
Eu Alguma Forma de Colocar o Nome Na Scene Para Mostrar no Menu, Porém A Unica Forma que eu Arrumei de Colocar o Nome Foi Substituindo pelo Comando "Formatação" (ele era assim:
"def self.formatation;    command(8);  end   # Formatação" E eu Ocupei o Espaço Assim: "def self.folio;       command(8);   end   # Folio Magi") Como eu Renomeio o "def self.folio" Sem Ocupar o Espaço da "Formatação"
~Desenvolvendo Um Jogo de RPG Dentro de Hogwarts, Uma Escola de Magia e Bruxaria, Qualquer Ideia ou Ajuda Será Bem Vinda~

13/10/2017 às 13:38 #3 Última edição: 13/10/2017 às 13:40 por Corvo
Ainda não entendi exatamente o que você está tentando fazer. Por acaso os termos que você quer renomear seriam esses?
[close]

Citação de: Corvo online 13/10/2017 às 13:38
Ainda não entendi exatamente o que você está tentando fazer. Por acaso os termos que você quer renomear seriam esses?
[close]

Sim, só que eu Adicionei Mais 1 e É logico que ele não iria Aparecer ali, a Solução que eu Achei é Substituindo pelo Formatação (Fica o Nome Formatação ali emcima, mas ele executa o que eu Quero)
~Desenvolvendo Um Jogo de RPG Dentro de Hogwarts, Uma Escola de Magia e Bruxaria, Qualquer Ideia ou Ajuda Será Bem Vinda~

Ah, sim. Então, se o comando Formação está lá, mas executa o que você criou, renomeie "Formação" pelo que você quer que apareça. Gambiarras nunca falham.

Esse aí é o Vocab, basicamente ele é o módulo que é usado pra ter algumas informações usadas nas Scenes de Menu, Load, Save...

Pra adicionar uma nova opção no Menu,só estudar como os outros comandos foram feitos e fazer seguindo a mesma lógica/ideia.

Exemplo: Vai até Scene_Menu, o método que cria a Janela de Comandos que é a do Menu que fica do lado esquerdo é create_command_window

Se você ver nele, é criado a janela do seguinte modo:
@command_window = Window_MenuCommand.new


O que seria o Window_MenuCommand?

Bem basta procurar nas Windows que você encontrará ela e bem, é assim que você vai se aprofundando e encontrando a raiz das coisas e aprendendo como as coisas são feitas XD
  

13/10/2017 às 14:31 #7 Última edição: 13/10/2017 às 14:35 por Corvo
Citação de: Corvo online 13/10/2017 às 13:58
Ah, sim. Então, se o comando Formação está lá, mas executa o que você criou, renomeie "Formação" pelo que você quer que apareça. Gambiarras nunca falham.

Sim, sim kkk. Mas eu Queria Adicionar e Não Substituir


Citação de: felipefalcon online 13/10/2017 às 14:28
Esse aí é o Vocab, basicamente ele é o módulo que é usado pra ter algumas informações usadas nas Scenes de Menu, Load, Save...

Pra adicionar uma nova opção no Menu,só estudar como os outros comandos foram feitos e fazer seguindo a mesma lógica/ideia.

Exemplo: Vai até Scene_Menu, o método que cria a Janela de Comandos que é a do Menu que fica do lado esquerdo é create_command_window

Se você ver nele, é criado a janela do seguinte modo:
@command_window = Window_MenuCommand.new


O que seria o Window_MenuCommand?

Bem basta procurar nas Windows que você encontrará ela e bem, é assim que você vai se aprofundando e encontrando a raiz das coisas e aprendendo como as coisas são feitas XD

Eu sei como Faz, mas o Nome Fica Invisivel, a Unica Maneira que eu Achei foi Substituindo Pelo lugar "Formatação", Mas executando o Que eu Quero. Eu Queria Adicionar e Não Ocupar o Espaço "Formatação"
~Desenvolvendo Um Jogo de RPG Dentro de Hogwarts, Uma Escola de Magia e Bruxaria, Qualquer Ideia ou Ajuda Será Bem Vinda~

Bem não vou me aprofundar e explicar muito, mas deixa eu dar a ideia...

Na Window_MenuCommand são feitos as opções do Janela Esquerda do Menu. No método add_main_commands dá pra ver como são feitos os comandos:
#--------------------------------------------------------------------------
  # * Adição dos comandos principais
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
    add_command(Vocab::status, :status, main_commands_enabled)
  end

Linha 46

Tá vendo o Vocab::status?
Se você for no Vocab (o código que vc tava mostrando) vai ver que lá tem o code:
def self.status;      command(7);   end   # Estado


o que seria esse command(7)?

Resumidamente se sabe um pouco de programação, é um método, mas o que esse método faz e onde tá definido?

Bem tá definido no Vocab, olha lá o que ele faz :v
def self.command(command_id)
    $data_system.terms.commands[command_id]
  end

Ele pega o que você tiver passando como command_id e retorna o "Termo" que está no database, no caso o 7 é o Status. Mas tudo que você tem que saber é que o termo é uma String, > TEXTO <.

Então no lugar do Vocab::status eu poderia trocar por uma string que iria sem problemas, tipo: "Status".
Ficando:
add_command("Status", :status, main_commands_enabled)


Pegou a ideia de como são feitos?
Se não vou deixar um exemplo de um comando que vou adicionar agora.

#--------------------------------------------------------------------------
  # * Adição dos comandos principais
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
    add_command(Vocab::status, :status, main_commands_enabled)
    add_command("Aprendeu?", :variavel_nome_pra_opcao_que_usa_na_scene, nome_do_metodo_que_irei_usar_como_condicao_se_pode_acessar_a_opcao)
  end





Desculpe por explicar isso tudo, e isso é só pra adicionar a opção na Window, tem que fazer outras coisas pra fazer ela  o que vai acontecer ao apertar nela, etc XD

  

Citação de: felipefalcon online 13/10/2017 às 14:50
Bem não vou me aprofundar e explicar muito, mas deixa eu dar a ideia...

Na Window_MenuCommand são feitos as opções do Janela Esquerda do Menu. No método add_main_commands dá pra ver como são feitos os comandos:
#--------------------------------------------------------------------------
  # * Adição dos comandos principais
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
    add_command(Vocab::status, :status, main_commands_enabled)
  end

Linha 46

Tá vendo o Vocab::status?
Se você for no Vocab (o código que vc tava mostrando) vai ver que lá tem o code:
def self.status;      command(7);   end   # Estado


o que seria esse command(7)?

Resumidamente se sabe um pouco de programação, é um método, mas o que esse método faz e onde tá definido?

Bem tá definido no Vocab, olha lá o que ele faz :v
def self.command(command_id)
    $data_system.terms.commands[command_id]
  end

Ele pega o que você tiver passando como command_id e retorna o "Termo" que está no database, no caso o 7 é o Status. Mas tudo que você tem que saber é que o termo é uma String, > TEXTO <.

Então no lugar do Vocab::status eu poderia trocar por uma string que iria sem problemas, tipo: "Status".
Ficando:
add_command("Status", :status, main_commands_enabled)


Pegou a ideia de como são feitos?
Se não vou deixar um exemplo de um comando que vou adicionar agora.

#--------------------------------------------------------------------------
  # * Adição dos comandos principais
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
    add_command(Vocab::status, :status, main_commands_enabled)
    add_command("Aprendeu?", :variavel_nome_pra_opcao_que_usa_na_scene, nome_do_metodo_que_irei_usar_como_condicao_se_pode_acessar_a_opcao)
  end





Desculpe por explicar isso tudo, e isso é só pra adicionar a opção na Window, tem que fazer outras coisas pra fazer ela  o que vai acontecer ao apertar nela, etc XD

NOSSAAA! Obrigado me Ajudou d+!!! Agradeço :3
~Desenvolvendo Um Jogo de RPG Dentro de Hogwarts, Uma Escola de Magia e Bruxaria, Qualquer Ideia ou Ajuda Será Bem Vinda~