Entrar
Últimos assuntos
» Preciso de ajudapor AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
[Resolvido]Substituir palavras de todo o jogo
4 participantes
Página 1 de 1
[Resolvido]Substituir palavras de todo o jogo
Estou fazendo um sistema de escolha de idiomas, mas
não queria fazer pelo jeito difícil que é:
e sim pelo string_replace()
más não funciona...
por exemplo desse jeito funciona:
Mais queria substituir palavras do jogo inteiro e não deu um só trecho.
FLWS
não queria fazer pelo jeito difícil que é:
- Código:
if idioma=1
show_message("Maker")
else
show_message("製造商")
e sim pelo string_replace()
más não funciona...
por exemplo desse jeito funciona:
- Código:
texto="Isso é um teste"
texto=string_replace(texto,"Isso","Aquilo")
show_message(texto)
Mais queria substituir palavras do jogo inteiro e não deu um só trecho.
FLWS
Última edição por Lucas 5293 em Dom 11 Dez 2011, 10:35, editado 1 vez(es)
Re: [Resolvido]Substituir palavras de todo o jogo
Use string_replace_all para substituir todos os trechos escolhidos de uma string.
Para fazer no jogo todo, você precisaria criar um arquivo ini, assim você vai conseguir.
Vou procurar um tutorial. Posto aqui quando achar.
Até mais!
Para fazer no jogo todo, você precisaria criar um arquivo ini, assim você vai conseguir.
Vou procurar um tutorial. Posto aqui quando achar.
Até mais!
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: [Resolvido]Substituir palavras de todo o jogo
Sim usei o string_replace_all mais não funcionouPedrø escreveu:Use string_replace_all para substituir todos os trechos escolhidos de uma string.
Para fazer no jogo todo, você precisaria criar um arquivo ini, assim você vai conseguir.
Vou procurar um tutorial. Posto aqui quando achar.
Até mais!
FLWS
Re: [Resolvido]Substituir palavras de todo o jogo
Eu puxo todas as strings de um arquivo .ini. Quer dizer, o arquivo É .ini, mas eu trato ele como um arquivo de texto pra poder armazená-lo em outra pasta que não a do próprio executável. Daí, eu crio a pasta "idiomas" e coloca o arquivo "protugues.ini", "english.ini", "espanol.ini", "1337.ini", etc.
Puxo as strings com algumas rotinas simples (mas um pouco longa), assim:
- language é uma variável que armazena o nome do arquivo
- o valor de SECTION tem que ser conhecido (seria a seção do arquivo .ini onde as strings estariam armazenada)
- as strings estarão armazenadas na array global "text"
- o índice da última+1 string da array "text" é "last". Isso quer dizer que, ao usar um loop pra mostrar todas as strings, você deverá usar for(i=0; i<last;i+=1) e não for(i=0; i<=last;i+=1)
- no arquivo, as strings estão armazenadas numa estrutura como:
Puxo as strings com algumas rotinas simples (mas um pouco longa), assim:
- Código:
globalvar text, last;
var FILE, SECTION, i, varstring;
FILE=file_text_open_read(working_directory+"\idiomas\"+language+".ini");
SECTION="[first stage texts]"
while(file_text_read_string(FILE)!=SECTION){
file_text_readln(FILE);
}
file_text_readln(FILE);
i=0;
while(1){
varstring=file_text_read_string(FILE);
if (string_copy(varstring, 0, 4)=="line"){
text[i]=string_copy(varstring, 6+string_length(string(i)), string_length(varstring)); //7characters=>"line"+number
file_text_readln(FILE);
i+=1;
}
else{
break;
}
}
file_text_close(FILE);
last=i;
- language é uma variável que armazena o nome do arquivo
- o valor de SECTION tem que ser conhecido (seria a seção do arquivo .ini onde as strings estariam armazenada)
- as strings estarão armazenadas na array global "text"
- o índice da última+1 string da array "text" é "last". Isso quer dizer que, ao usar um loop pra mostrar todas as strings, você deverá usar for(i=0; i<last;i+=1) e não for(i=0; i<=last;i+=1)
- no arquivo, as strings estão armazenadas numa estrutura como:
Assim, sem aspas, sem espaços antes nem depois do "=", tal, PODENDO usar o caractere especial "#".line0=Primeira Linha
line1=Segunda linha
...
Última edição por saim em Sex 09 Dez 2011, 17:02, editado 2 vez(es)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido]Substituir palavras de todo o jogo
Não funciona!
Fiz uma adaptação no seu código
mais não substitui
Aqui:
No arquivo de texto ficou assim:
Existe alguma variavel que represente todas as strings do jogo para que eu consiga substituir
FLWS
Fiz uma adaptação no seu código
mais não substitui
Aqui:
- Código:
globalvar text, last;
var FILE, SECTION, i, varstring;
FILE=file_text_open_read(working_directory+"\Xopen\Languages\"+string(global.language)+".dat");
SECTION="[language]"
while(file_text_read_string(FILE)!=SECTION){
file_text_readln(FILE);
}
file_text_readln(FILE);
i=0;
while(1){
varstring=file_text_read_string(FILE);
if (string_copy(varstring, 0, 4)=="line"){
text[i]=string_copy(varstring, 6+string_length(string(i)), string_length(varstring)); //7characters=>"line"+number
numb=string_copy(text[i],0,2);
text2[i]=string_copy(varstring, 9+string_length(string(i))+real(numb)+1, string_length(string(varstring)));
text1[i]=string_copy(varstring, 9+string_length(string(i)),real(numb));
string_replace_all(FILE,text1[i],text2[i]);
file_text_readln(FILE);
i+=1;
}
else{
break;
}
}
file_text_close(FILE);
last=i;
No arquivo de texto ficou assim:
PS: o "-03" serve para dizer quantos caracteres tem a palavra[language]
line0-03=cat,gato
Existe alguma variavel que represente todas as strings do jogo para que eu consiga substituir
FLWS
Re: [Resolvido]Substituir palavras de todo o jogo
Você entendeu que o objetivo do script é importar o texto todo, e não substituir um texto existente, né?Lucas 5293 escreveu:mais não substitui
E eu acho que você fez um samba-do-crioulo-doido com o string_replace_all. Essa função substitui todas as ocorrências de uma substring por outra substring numa string maior. Não serve pra substituir coisas de um arquivo inteiro. FILE, no caso, é um arquivo, não uma string.
Esse é um script que ainda está em teste, mas até agora tem funcionado bem. Mas funcionado bem pra importar textos, não pra alterar textos existentes.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido]Substituir palavras de todo o jogo
Cara eu já tinha feito um script para importar todas as strings de meu "jogo".
Daí o problema é substituir as strings
É isso que eu quero fazer.
Como uso o string_replace_all, entaõ?
Daí o problema é substituir as strings
É isso que eu quero fazer.
Como uso o string_replace_all, entaõ?
Re: [Resolvido]Substituir palavras de todo o jogo
Ué... Não entendi seu objetivo, então.
string_replace_all substitui, numa string, todas as ocorrências de uma sub-string por outra sub-string. Não existe uma função que substitua todas as strings do jogo.
Agora, já que você está fazendo uma escolha de idiomas, porque simplesmente não importa todas as strings de um arquivo diferente, dependendo da escolha do jogador?
string_replace_all substitui, numa string, todas as ocorrências de uma sub-string por outra sub-string. Não existe uma função que substitua todas as strings do jogo.
Agora, já que você está fazendo uma escolha de idiomas, porque simplesmente não importa todas as strings de um arquivo diferente, dependendo da escolha do jogador?
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido]Substituir palavras de todo o jogo
Então não existe nenhuma função que substitua todas as strings do jogo?
Então vou ter que fazer pelo jeito difícil:
Más nem com uma .dll eu consigo substituir todas as strings do jogo?
Então vou ter que fazer pelo jeito difícil:
- Código:
if global.idioma=1
draw_text("bláblábla"´,x,y)
if global.idioma=2
draw_text("lálála"´,x,y)
Más nem com uma .dll eu consigo substituir todas as strings do jogo?
Re: [Resolvido]Substituir palavras de todo o jogo
Com uma .dll, talvez. Eu não conheço nenhuma.
Mas não é difícil, o jeito mais difícil. Você importa todas as strings de um arquivo, logo no começo do jogo, grava elas em variáveis globais e, na hora de mostrar, coloque draw_text(x, y, nomeDaVariável). Só na hora de importar tem um pouco de complicação, mas o script que te mandei resolve isso.
Mas não é difícil, o jeito mais difícil. Você importa todas as strings de um arquivo, logo no começo do jogo, grava elas em variáveis globais e, na hora de mostrar, coloque draw_text(x, y, nomeDaVariável). Só na hora de importar tem um pouco de complicação, mas o script que te mandei resolve isso.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido]Substituir palavras de todo o jogo
Grande ideia.saim escreveu:Com uma .dll, talvez. Eu não conheço nenhuma.
Mas não é difícil, o jeito mais difícil. Você importa todas as strings de um arquivo, logo no começo do jogo, grava elas em variáveis globais e, na hora de mostrar, coloque draw_text(x, y, nomeDaVariável). Só na hora de importar tem um pouco de complicação, mas o script que te mandei resolve isso.
Mais não vai ficar o jogo lento, pois, vai haver um grande numero de variaveis?
Re: [Resolvido]Substituir palavras de todo o jogo
Não. Embora globais sejam mais lentas que as locais, a diferença não é significativa, se você não usa um número imenso de variáveis ao mesmo tempo ("imenso" é na casa de dezenas de milhares).
E variáveis que não estão sendo usadas deixam o jogo GRANDE, não lento. Ainda assim, precisa de MUITAS variáveis pra fazer alguma diferença.
E variáveis que não estão sendo usadas deixam o jogo GRANDE, não lento. Ainda assim, precisa de MUITAS variáveis pra fazer alguma diferença.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido]Substituir palavras de todo o jogo
Saim valew resolvi o problemasaim escreveu:Não. Embora globais sejam mais lentas que as locais, a diferença não é significativa, se você não usa um número imenso de variáveis ao mesmo tempo ("imenso" é na casa de dezenas de milhares).
E variáveis que não estão sendo usadas deixam o jogo GRANDE, não lento. Ainda assim, precisa de MUITAS variáveis pra fazer alguma diferença.
Re: [Resolvido]Substituir palavras de todo o jogo
Teste isso antes de dizer que está resolvido... se já estiver testado, poste de novo que eu tranco o tópico.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido]Substituir palavras de todo o jogo
Não olha o jeito que eu fiz:saim escreveu:Teste isso antes de dizer que está resolvido... se já estiver testado, poste de novo que eu tranco o tópico.
*Primeiro armazeno todas as strings em uma variavel global
*Depois em cada room eu procuro as strings da room(com a função find_string() da gmlibrary):
- Código:
str=find_string("")
- Código:
str=string_replace()
Re: [Resolvido]Substituir palavras de todo o jogo
sei que ta resolvido, mas se quiser:
faz um script com todas as frases do jogo numeradas assim:
frase1="texto em portugues"
frase1[2]="text in English"
...
depois, pra rodas a frase, coloca:
if idioma="pt" {show_message(string(frase1))}
ah, algo assim, nao tem erro ;D
flw
faz um script com todas as frases do jogo numeradas assim:
frase1="texto em portugues"
frase1[2]="text in English"
...
depois, pra rodas a frase, coloca:
if idioma="pt" {show_message(string(frase1))}
ah, algo assim, nao tem erro ;D
flw
Tedi Ripper- Games Ranking :
Data de inscrição : 21/11/2010
Reputação : 25
Número de Mensagens : 777
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Substituir palavras de todo o jogo
Foi bem assim que eu fiz , mais não com arrays e sim com vars globais
Re: [Resolvido]Substituir palavras de todo o jogo
Se quiser que o tópico seja destrancado, mande uma mp para mim ou para um dos moderadores.
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|