Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[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:
Tópicos semelhantes
» [Resolvido] Substituir Background original pelo do usuário
» [Resolvido] Tocar musica o tempo todo?
» [Resolvido] Apertou "P" pausou o jogo e deixou um sombreado preto no jogo inteiro...
» [RESOLVIDO] Por que todo GMK que eu faço tá ficando com um cadiado?
» Todo jogo compilado no GM8 dá unexpected error!
» [Resolvido] Tocar musica o tempo todo?
» [Resolvido] Apertou "P" pausou o jogo e deixou um sombreado preto no jogo inteiro...
» [RESOLVIDO] Por que todo GMK que eu faço tá ficando com um cadiado?
» Todo jogo compilado no GM8 dá unexpected error!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos