Mudar descrição do Ator durante o jogo?

5 Respostas   267 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Yulermi

  • *
  • Posts: 56
  • Ouros: 7
  • Elin Master race, sem mais...
Tópico criado em: 19/07/2016 às 20:54 - Última modificação por Yulermi em 20/07/2016 às 00:16

Olá pessoal, existe alguma forma de criar algum tipo de evento para mudar a descrição de um ator durante o jogo? Existe forma de se fazer isso através de algum script?

Eu tenho um personagem no inicio do jogo que estou criando em que conforme a progressão da história acontece, mais vai se descobrindo sobre esse personagem e cada vez mais a sua descrição muda durante o jogo.

Eu li em alguns fóruns que a variável do script da descrição é uma constante então não é possível fazer essa alteração durante o jogo, isso é verídico?

Por favor alguem pode me ajudar?

Grato.

felipefalcon

Resposta 1: 19/07/2016 às 21:59

Quantos personagens vai ter seu jogo?

Dependendo você pode fazer um script simples pra fazer uma verificação no Scene_Map.

No caso por eventos dá pra usar isso aqui:
Código: [Selecionar]
$data_actors[1].description
Se você printar isso aí aparece a descrição. Também dá pra igualar pra mudar a descrição tipo
 $data_actors[1].description = "Nova descrição"

O problema é que se você usar isso em evento a descrição inclusive muda no menu, mas não continua ao por exemplo dar load no jogo. (Voltando a do database)

Agora voltando a pergunta lá em cima, quantos personagens vai ter no seu jogo?
 (Porque aí só fazer $data_actors[1].description = $descrição_nova no Map e aí você pode modificar durante o jogo todo)
  

miguel8884

Resposta 2: 19/07/2016 às 22:01 - Última modificação por miguel8884 em 19/07/2016 às 22:05

Eu fiz alguns testes aqui, acho que dá pra mudar sim, vou fazer um script bem simples aqui pra você e ver se da certo  :ok:

edit: ops, o felipe já respondeu, mas vou fazer assim mesmo, aí você decide o que usar... mas é aquilo que ele disse, após dar load no game ele vai voltar ao normal, vou dar uma olhada ver se consigo corrigir isso

Yulermi

  • *
  • Posts: 56
  • Ouros: 7
  • Elin Master race, sem mais...
Resposta 3: 19/07/2016 às 22:08

Ta certo então, agradeço ambos, ainda n sei ao certo quantos personagens vai ter no jogo, parte do enredo ainda ta sendo desenvolvida então é difícil de dizer.

miguel8884

Resposta 4: 19/07/2016 às 23:02

Isso deve corrigir o erro ao dar o load, aqui está, é bem simples utilizar, no script estão as instruções básicas e pronto, caso algo dê errado me avise:

Código: [Selecionar]
# Utilize no chamar script quando quiser alterar a descrição do player o
# determinado comando:
# change_actor_description(id,new_description)
# substitua id pelo id do herói no banco de dados e new_description pela
# nova descrição entre aspas
# Exemplo
# change_actor_description(1,"Eu adoro jogar RPG")
class Game_Interpreter
  def change_actor_description(id,new_description)
    $data_actors[id].description = new_description
  end
end

class << DataManager
  alias :gst_1394213_esc :extract_save_contents
  def make_save_contents
    contents = {}
    contents[:system]        = $game_system
    contents[:timer]         = $game_timer
    contents[:message]       = $game_message
    contents[:switches]      = $game_switches
    contents[:variables]     = $game_variables
    contents[:self_switches] = $game_self_switches
    contents[:actors]        = $game_actors
    contents[:party]         = $game_party
    contents[:troop]         = $game_troop
    contents[:map]           = $game_map
    contents[:player]        = $game_player
    contents[:player_des]    = $data_actors
    contents
  end
  def extract_save_contents(contents)
    gst_1394213_esc(contents)
    for i in 1..$data_actors.size - 1
      $game_actors[i].actor.description = contents[:player_des][i].description
    end
  end
end

Yulermi

  • *
  • Posts: 56
  • Ouros: 7
  • Elin Master race, sem mais...
Resposta 5: 20/07/2016 às 00:11 - Última modificação por Yulermi em 20/07/2016 às 00:14

Perfeito, matou essa numa tacado só! Excelente eu realmente agradeço muito.

A gente se ve por aí, tópico encerrado o/