Armazenando um Texto nas Variáveis

11 Respostas   3084 Visualizações

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

Fpr

Tópico criado em: 16/06/2013 às 20:55 - Última modificação por Fpr em 30/06/2013 às 00:52

:linha2:
Armazenando um Texto nas Variáveis
:linha2:

:linha3:
Começando:

Neste Tutorial mostrarei como trabalhar com as Variáveis de forma diferente, o primeiro conceito que se tem sobre elas, é que sua função é apenas armazenar informações numéricas. A princípio sim, mas também é possível armazenar uma palavra em uma variável, da mesma maneira que atribuímos valores numéricos nela.

Para aproveitar tal funcionalidade, será necessário "Declarar" as variáveis através do comando "Chamar Script". Comando encontrado na 3° Aba de Eventos, última opção.

Comando: Chamar Script
[close]

Ao selecionar esse Comando, será aberta uma janela, nela deverá ser inserido os códigos que usaremos a seguir. Por hora, o código primário da variável "$game_variables[n]", onde n é o numero da variável. No chamar Script deverá ficar desse modo:
Código: [Selecionar]
$game_variables[1] = # Informação a ser armazenada
No código acima, estaremos chamando a variável de ID 1 e posteriormente armazenaremos nela uma informação, que geralmente pode ser qualquer coisa(Inclusive uma Palavra).
 

:linha3:
Exemplos de Uso:


Exemplo 1: Uma única Informação em várias mensagens

Antes de começar, esse é o comando para armazenar um texto digitado em uma variável(Necessita ficar entre aspas):
Código: [Selecionar]
$game_variables[n] = '# Digite o texto aqui'
A partir dele podemos mostrar uma mesma informação contida em diversas mensagens, suponhamos que você precisará usar um texto frequente em suas mensagens, ao invés de ficar digitando a mesma coisa várias vezes, você pode armazená-la em uma variável e mostrar através do \V[n] na mensagem, criando uma espécie de atalho.

Ficando algo assim:
Exemplo 1
[close]
Resultado
[close]

No exemplo dado acima, armazenei o texto "Vale Encantado" na variável de número 1, e mostrei na mensagem através do comando \V[1].

Na janela do Chamar Script:
Código: [Selecionar]
$game_variables[1] = 'Vale Encantado'
Na janela de Mensagens:
Código: [Selecionar]
Se um dia encontrar o \V[1], por favor me
avise gostaria muito de visitar o \V[1].


Exemplo 2: Uma única Mensagem com informações diferentes

É possível também armazenar o nome de uma arma, item, herói, mapa, dentre outros, o que pode se tornar muito útil. No próximo exemplo, usaremos uma mesma mensagem que pode conter informações diferentes. Imagine o seguinte caso, o jogador ganhará um item aleatório do NPC, que depois falará o item que ele deu para o Herói.

Ao invés de fazer algo como isso:
Exemplo 2A
[close]

Faça isso:
Exemplo 2B
[close]

Explicando os comandos acima, primeiro sorteamos um valor aleatório entre 1 e 4, esse valor servirá de ID para o comando que aumentará um item:
Código: [Selecionar]
a = $game_variables[2]
$game_party.gain_item($data_items[a], 1)

Ou seja "a" equivale a variável aleatória de 1 à 4, e a ID do item adicionado equivale a "a".
Mas isso não vem ao caso, o mais importante é o seguinte comando:
Código: [Selecionar]
$game_variables[1] = $data_items[a].name
Seguindo a mesma lógica do que foi dito acima, o "a" servirá como id para o item que terá o nome armazenado na variável, o mais importante foi o trabalho economizado que o segundo modo trouxe, ele evitou de ter que escrever uma mensagem contendo o nome do item ganho, já que o mesmo já estava armazenado na variável e mudava automaticamente. O comando final ficou assim:
Código: [Selecionar]
a = $game_variables[2]
$game_party.gain_item($data_items[a], 1)
$game_variables[1] = $data_items[a].name

Agora ao invés do nome, armazenaremos a descrição do item. O exemplo de agora será esse, um NPC falará a descrição de um item para o herói. Nesse caso usaremos o comando "Seleção de Item" para o jogador escolher um item que terá sua descrição dita.

O evento Ficará assim:
Exemplo 2C
[close]
Resultado
[close]


Nesse caso não pude colocar direto no "Chamar Script" o código:
Código: [Selecionar]
$game_variables[1] = $data_items[a].description
Porque o ACE pula linhas automaticamente e daria errado, então tive que por assim:
Código: [Selecionar]
a = $game_variables[2]
b = $data_items[a].description
$game_variables[1] = b

O código está armazenando a descrição do item, cuja ID está sendo atribuída a Variável 2 pelo comando "Seleção de Item", note que tive que colocar uma condição do item ser diferente de zero, senão chamaria a descrição do item de ID 0, que não existe. O principal motivo desse exemplo, foi mostrar mais uma forma de mostrar uma mesma mensagem com informações diferentes, dessa vez ao invés de mostrar apenas o nome, mostrou uma informação mais complexa como uma descrição, o mais importante é a praticidade que usar tal recurso proporciona, me poupou de ter que criar várias condições para verificar qual item foi selecionado, e digitar uma mensagem para cada item com sua descrição, sem contar que se acaso eu desejar mudar a descrição, basta apenas mudar no Database, pois ela é chamada diretamente dele.


Exemplo 3: Trabalhando com outros Scripts

Um exemplo agora que não envolva mensagens, dessa vez mostrarei como pode ser funcional para outras coisas, como Scripts. Par quem não conhece o Pop-up de variável, tem a função de criar um pop-up de uma variável. Por ser uma variável ele é útil para armazenar informações numéricas como o Dano, mas também pode ser útil pois uma variável armazena textos da mesma maneira que números.

Para usar o Script chame:
Código: [Selecionar]
popup_var(event_id, time)
Onde "event_id" ID do evento que será mostrado o pop-up e "time" tempo em frames.

Vimos que podemos usar para mostrar informações como o "Dano", agora veremos um informação escrita. Imagine que um Evento de ID 10 será afetado com o "Status Veneno", chame da seguinte forma:
Código: [Selecionar]
$game_variables[1] = 'Envenenado'
popup_var(10, 100)

Pronto, dessa forma, assim como é o display do Dano, será o display do "Envenenado"
Resultado
[close]



:linha3:
Finalizando:
Ao tocar no assunto variáveis, a única coisa que vem em mente são os valores numéricos, mas informações escritas também podem ser bem exploradas com o trabalho das Variáveis, sendo bem prático tal função devido ao trabalho que ela pode nos poupar.

-

Raizen

  • Administrador
  • *
  • Posts: 3224
  • Ouros: 3192
  • Medalhas Vencedor do Protótipo Premiado Participante notável do evento "A Estação das Luzes do Norte" Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!
Resposta 1: 16/06/2013 às 22:12

Uia, isso é bem interessante, isso é misturar códigos de ruby com eventos, se um eventer souber dosar isso, dá para sair vários sistemas interessantes xD.

Agora tenho uma coisa a dizer, que você pode até futuramente adicionar, e eu acho bem interessante.

Você pode usar condições também, por exemplo, usar Condição, ai vai na 4ª aba, scripts e colocar.

$game_variables[1] =='Vale Encantado'

Ai acontece algo.


Isso é expandir o uso de textos em variáveis :), de qualquer modo muito bom mesmo.

Fpr

Resposta 2: 16/06/2013 às 22:18

Uia, isso é bem interessante, isso é misturar códigos de ruby com eventos, se um eventer souber dosar isso, dá para sair vários sistemas interessantes xD.

Agora tenho uma coisa a dizer, que você pode até futuramente adicionar, e eu acho bem interessante.

Você pode usar condições também, por exemplo, usar Condição, ai vai na 4ª aba, scripts e colocar.

$game_variables[1] =='Vale Encantado'

Ai acontece algo.


Isso é expandir o uso de textos em variáveis :), de qualquer modo muito bom mesmo.

Talvez, mas não consigo imaginar um exemplo de uso para condições com textos, talvez por não ter pensado nisso antes, quem sabe de para fazer coisas legais com esse tipo de condição, a primeira coisa que me veio em mente foi nome de mapas(deve ser por causa do 'Vale Encantado' EX mais non-sense).

Se me vier a mente algo interessante para trabalhar com condição textual, por que não.  :será:
-

Avenger_B7

  • *
  • Posts: 841
  • Ouros: 396
  • A persistência é o caminho do êxito. - C. Chaplin
  • Equipamentos "Escudos não são só para defender. Este por exemplo é excelente para ataques noturnos. Em mãos hábeis se torna invisível, é o que dizem por aí." "Todo guerreiro jura dar a própria vida para defender seu reino, e esta arma é o símbolo disto. Quer dizer, a engrenagem nela que é."
Resposta 3: 16/06/2013 às 22:42

Talvez, mas não consigo imaginar um exemplo de uso para condições com textos, talvez por não ter pensado nisso antes, quem sabe de para fazer coisas legais com esse tipo de condição, a primeira coisa que me veio em mente foi nome de mapas(deve ser por causa do 'Vale Encantado' EX mais non-sense).

Se me vier a mente algo interessante para trabalhar com condição textual, por que não.  :será:

Veja se é possível fazer o nome de um herói criado receber essa variável. Aí você compara nas condições. O problema é o limite de caracteres mas isso, talvez, possa ser mudado com scripts.

Parabéns!
Unique Destiny | um novo conceito de RPG Maker 2000!

Shephiroth

Resposta 4: 17/06/2013 às 09:02

Um exemplo claro de uso de condições para textos, é se for alguma senha ou alguma coisa na qual o personagem deve responder, e se acertar passa de uma parte... Enfim, o tutorial está magnifico! Realmente muito interessante e com muitas informações ;D

Mesclar Scripts com Eventos libera uma infinidade de sistemas *-*
Muito obrigado por dispor ;D

cristianoforce

Resposta 5: 20/06/2013 às 18:17 - Última modificação por cristianoforce em 20/06/2013 às 18:20

Não creio que nunca pensei em testar isto  :'0':, não sabia que funcionava  :*-*:

Isso pode ser útil em diversas situações, belíssimo tutorial \o\
Resta eu testar aqui agora se funciona da mesma maneira com o RMXP.

+gold+++++

EDIT: funfa *-*

Sly

  • *
  • Posts: 31
  • Ouros: 20
  • Para uma mente ampla, nada é pequeno.
Resposta 6: 05/04/2014 às 14:20

Essa informação é de uma utilidade tremenda, obrigado Fpr.  :clap:

Olhando as possibilidades de uso encontrei uma solução pra a questão da quebra de linha caso alguém queira armazenar um texto muito longo direto do código (como atualizando um objetivo ou a descrição de algo que muda durante o jogo.)

Basta sempre antes da quebra de linha do "Chamar Script" adicionar um + e continuar na linha de baixo e pulando linhas (Enter) quando achar que o texto atingiu o limite da caixa de mensagens.

Exemplo.

Código: [Selecionar]
$game_variables[1] =
'Parte 1 ' +
'Parte 2 terminando com a quebra de linha
' +
'Parte 3'

Não sei se é a melhor forma de fazer nem se é novidade pra alguém, mas foi como consegui quando precisei. ^^
_______________________________________
Gosta de RPG? Visite-nos:

Username

  • *
  • Posts: 44
  • Ouros: 7
Resposta 7: 24/12/2017 às 21:00

Muito obrigado pelo tutorial.

Testei e consegui fazer muita coisa aqui.

E aprendi um pouco mais sobre o Editor de Scripts e como adicionar e remover itens via código no RMXP.

Muito obrigado.

SoyeR

Resposta 8: 12/01/2018 às 08:39

Código: [Selecionar]
$game_variables[1] = 'Vale Encantado'
To colocando esse codigo e recebo esse erro





Syureri

Resposta 9: 12/01/2018 às 08:42

SoyeR, lembre-se que no MV usamos Javascript. O código para isso seria:
Código: [Selecionar]
$gameVariables[1] = 'Vale Encantado';

Corvo

Resposta 10: 12/01/2018 às 08:45 - Última modificação por Corvo em 12/01/2018 às 08:47

Nem há necessidade de se usar um comando por script. Se preferir também pode usar o menu padrão das variáveis:
[close]

SoyeR

Resposta 11: 12/01/2018 às 09:00

Alisson mesmo assim não funcionou atravês desse metodo será que fiz algo errado?



Corvo tentei do seu jeito e deu certo muito obrigado.
Spoiler
[close]