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

Armazenando um Texto nas Variáveis

Iniciado por Fpr, 16/06/2013 às 20:55

16/06/2013 às 20:55 Última edição: 30/06/2013 às 00:52 por Fpr
:linha2:
Armazenando um Texto nas Variáveis
:linha2:

:linha3:
[box class=titlebg]
Começando:
[/box]
[box class=roundframe]


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:
$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).

[/box]

:linha3:
[box class=titlebg]
Exemplos de Uso:
[/box]
[box class=roundframe]




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):
$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
[hs width=320 height=240]http://i.imgur.com/0H7Bgcl.png[/hs]
[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:
$game_variables[1] = 'Vale Encantado'


Na janela de Mensagens:
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

[hs width=320 height=240]http://i.imgur.com/aJlwaJH.png[/hs]
[close]

Faça isso:
Exemplo 2B

[hs width=320 height=240]http://i.imgur.com/eOclrF6.png[/hs]
[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:
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:
$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:
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
[hs width=320 height=240]http://i.imgur.com/9R0BEIH.png[/hs]
[close]
Resultado

[close]


Nesse caso não pude colocar direto no "Chamar Script" o código:
$game_variables[1] = $data_items[a].description


Porque o ACE pula linhas automaticamente e daria errado, então tive que por assim:
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:
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:
$game_variables[1] = 'Envenenado'
popup_var(10, 100)


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


[/box]

:linha3:
[box class=titlebg]
Finalizando:
[/box]
[box class=roundframe]

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.

[/box]
-

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.

Citação de: Raizen online 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.

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á:
-

Citação de: Fpr online 16/06/2013 às 22:18
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!

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
.

20/06/2013 às 18:17 #5 Última edição: 20/06/2013 às 18:20 por cristianoforce
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 *-*

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.

$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:

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.

$game_variables[1] = 'Vale Encantado'


To colocando esse codigo e recebo esse erro






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

12/01/2018 às 08:45 #10 Última edição: 12/01/2018 às 08:47 por Corvo
Nem há necessidade de se usar um comando por script. Se preferir também pode usar o menu padrão das variáveis:
[close]

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]