Conectar-se
Quem está conectado
29 usuários online :: 4 usuários cadastrados, Nenhum Invisível e 25 Visitantes

gart30, rafaelviodres1, Thiago_o_programador, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[pergunta]abrir texto e executar como codigo

em Sex Abr 29, 2011 10:44 am
Olá, queria saber se o seguinte codigo serve para abrir um arquivo .txt e usar o que esta escrito neste arquivo como um script:

cod = get_open_filename('Abra um arquivo de texto|*.txt*.*','')
if !(cod = '') then
{
global.mp = filename_name(cod)
script_get_text(script_loader)}

Caso não seja isto gostaria que vocês me passacem o codigo correto pois estou precisando de algo assim como pedi.
avatar
Ranking : Nota A
Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Número de Mensagens : 1087
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 2
   : 1
   : 0
Ver perfil do usuáriohttp://www.mathaeuz.deviantart.com

Re: [pergunta]abrir texto e executar como codigo

em Sex Abr 29, 2011 10:57 am
Acredito que o seu não iria funcionar.
//
Existem 2 códigos que executam scripts a partir de strings:
-execute_string("vidas=3");
Executa o código dentro das aspas.
-execute_file("arquivo_com_codigo.txt");
Executa o código dentro do txt indicado.
No caso o que você quer fazer ficaria mais ou menos assim:
Código:

global.arquivo_script=get_open_filename('Abra um arquivo de texto|*.txt','');
if !(global.arquivo_script=''){ execute_file(global.arquivo_script) };
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [pergunta]abrir texto e executar como codigo

em Sex Abr 29, 2011 11:14 am
funcionou mais agora como faço para ele checar o que esta escrito no arquivo de texto e (dependendo do que estiver escrito)executar um codigo gml?
avatar
Ranking : Nota A
Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Número de Mensagens : 1087
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 2
   : 1
   : 0
Ver perfil do usuáriohttp://www.mathaeuz.deviantart.com

Re: [pergunta]abrir texto e executar como codigo

em Sex Abr 29, 2011 11:18 am
hmm.. não consegui entender a pergunta, pode explicar melhor? scratch
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [pergunta]abrir texto e executar como codigo

em Sex Abr 29, 2011 1:23 pm
Posso.O que eu queria é que por ex:

quando o codigo for aberto(por meio deste codigo)e salvo no script queria que o que tinha sido escrito dentro do arquivo txt(que foi aberto pelo codigo q vc me passou)fosse checado(para ver se estava escrito algo como:

restar,game_over,parar_game,click=true,etc)e dependendo do que estive-se escrito no arquivo txt queria que o gm executasse um codigo gml(que eu irei colocar)

entendeu agora?é tipo o sistema de abrimento de escripts do gm!
avatar
Ranking : Nota A
Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Número de Mensagens : 1087
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 2
   : 1
   : 0
Ver perfil do usuáriohttp://www.mathaeuz.deviantart.com

Re: [pergunta]abrir texto e executar como codigo

em Sex Abr 29, 2011 2:59 pm
Hm... para isso teriamos que primeiro ler as strings dentro do texto.
Poderiamos ler linha por linha, mas asseguir farei o game maker reconstruir o texto inteiro do arquivo como uma só string e depois analisar ela:
Código:
global.arquivo=get_open_filename('Abra um arquivo de texto|*.txt','');
if !(global.arquivo=''){
arquivoaberto=file_text_open_read(global.arquivo);
//abre o arquivo com o game maker
string_do_arquivo="";
while(!file_text_eof(global.arquivo)){
//isso faz o game maker repetir o processo abaixo até o fim do arquivo
string_antiga=string_do_arquivo;
nova_linha=file_text_read_string(arquivoaberto);
//Lê uma linha do arquivo até o fim
file_text_readln(arquivoaberto);
//Pula para a próxima linha
string_do_arquivo=string_antiga+nova_linha+"#";
//constroi essa linha na string
//(o "#" ali serve para pular uma linha
//é ignorado quando lido em codigo)
};
//agora temos o arquivo de texto inteiro na forma de string
//agora vamos procurar partes dele
if string_count("vidas",string_do_arquivo) {
//esse comando procura por pedaços de string dentro de uma maior
//no caso ele procura o numero de apariçoes da string "vidas"
//dentro da string_do_arquivo
//se ele for maior que 0, ele fará o código aqui dentro
fazer_o_que_o_peixoto_quer();
}};
file_text_close(arquivoaberto);
//libera o txt
Se quiser executar a string final basta usar
Código:
execute_string(string_do_arquivo)
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [pergunta]abrir texto e executar como codigo

em Sex Abr 29, 2011 3:10 pm
Cheque meu tutorial do game genérico, na assinatura.
Já testei e, pra executar um .txt como se fosse um script, uso o seguinte template:
Código:
MASK=working_directory+"\script_*.txt" //talvez você prefira tirar o "script_" da mask
SCRIPT=file_find_first(MASK, fa_readonly)

//draw_circular_electric_field(x, y, inner_radius,thickness,density,initial_angle,final_angle,color,connect)
execute_file(SCRIPT,x, y, 30,10,60,0,180,0,true)
Isso foi realmente usado no teste. O arquivo com o "script" contém o seguinte texto:

Código:
//draw_circular_electric_field(x,y,inner_radius,thickness,density,initial_angle,final_angle,color,connect)
//draws a ring section of randomly placed points connected (1 point/direction)

//first, set some variables and define their value automatically if it is possible
var cx, cy, in_rad, thick, dens, in_ang, end_ang, color, i;

cx=argument0 //center of ring - required
cy=argument1 //center of ring - required

if argument2
   in_rad=argument2  //inner radius
   else in_rad=max(sprite_width,sprite_height)*1.5

if argument3
   thick=argument3  //outer radius
   else out_rad=in_rad

dens=argument4  //spot density

in_ang=argument5 //even if it is 0 - inital angle

an_add=(argument6-in_ang)/dens //how much angle to add between spots

if argument7
   color=argument7  //even if it is 0 - color to be used
   else color=choose(c_blue, c_yellow, c_white, c_aqua)

//define the spots
for(i=0; i<dens; i+=1){
   dist=in_rad+random(thick)
   spot_x[i]=cx+lengthdir_x(dist,in_ang+i*an_add)
   spot_y[i]=cy+lengthdir_y(dist,in_ang+i*an_add)
   }

//draw the lines
for(i=1; i<dens; i+=1){
   draw_line_color(spot_x[i], spot_y[i], spot_x[i-1], spot_y[i-1], color, color)
   }
//final line
if argument8
   draw_line_color(spot_x[dens-1], spot_y[dens-1], spot_x[0], spot_y[0], color, color)
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 14/02/2010
Número de Mensagens : 911
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [pergunta]abrir texto e executar como codigo

em Sab Abr 30, 2011 9:12 am
Mathaeuz escreveu:Hm... para isso teriamos que primeiro ler as strings dentro do texto.
Poderiamos ler linha por linha, mas asseguir farei o game maker reconstruir o texto inteiro do arquivo como uma só string e depois analisar ela:
Código:
global.arquivo=get_open_filename('Abra um arquivo de texto|*.txt','');
if !(global.arquivo=''){
arquivoaberto=file_text_open_read(global.arquivo);
//abre o arquivo com o game maker
string_do_arquivo="";
while(!file_text_eof(global.arquivo)){
//isso faz o game maker repetir o processo abaixo até o fim do arquivo
string_antiga=string_do_arquivo;
nova_linha=file_text_read_string(arquivoaberto);
//Lê uma linha do arquivo até o fim
file_text_readln(arquivoaberto);
//Pula para a próxima linha
string_do_arquivo=string_antiga+nova_linha+"#";
//constroi essa linha na string
//(o "#" ali serve para pular uma linha
//é ignorado quando lido em codigo)
};
//agora temos o arquivo de texto inteiro na forma de string
//agora vamos procurar partes dele
if string_count("vidas",string_do_arquivo) {
//esse comando procura por pedaços de string dentro de uma maior
//no caso ele procura o numero de apariçoes da string "vidas"
//dentro da string_do_arquivo
//se ele for maior que 0, ele fará o código aqui dentro
fazer_o_que_o_peixoto_quer();
}};
file_text_close(arquivoaberto);
//libera o txt
Se quiser executar a string final basta usar
Código:
execute_string(string_do_arquivo)

não funcionou.na hora de ler o codigo da erro!Que será que houve?
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum