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

Cambalinho, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 04/11/2009
Número de Mensagens : 51
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Como importando e exportando e editando scripts

em Dom 27 Maio 2012, 01:11
Ei galera alguem sabe como Importar um script e executar todas as suas funções e edita-los e salvando em arquivo?
avatar
Ranking : Sem avaliações
Data de inscrição : 23/05/2012
Número de Mensagens : 515
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.wibix.webs.com

Re: Como importando e exportando e editando scripts

em Dom 27 Maio 2012, 09:28
Ei galera alguem sabe como Importar um script e executar todas as suas funções e edita-los e salvando em arquivo?

Cria um script depois clica na pasta do lado do V' selecione o script salvo em txt é ele abrirar Happy"

EDIT: ! nossa que erro, quando você falou script estava pensando em outro Happy"


Última edição por Witen em Dom 27 Maio 2012, 12:03, editado 1 vez(es)
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

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

Re: Como importando e exportando e editando scripts

em Dom 27 Maio 2012, 11:44

Ei galera alguem sabe como Importar um script e executar todas as suas funções e edita-los e salvando em arquivo?

Pra executar um arquivo como se fosse um script, você usa a função:
Código:
execute_file("arquivo", argumento1, argumento2, argumento3, ...)

Daí é só usar os scripts como arquivos, é mais fácil pra editar em tempo de execução do jogo. Se você quiser exportar todos os teus scripts pra arquivos separados (não é aquela opção "export scripts"), usa isso no evento de criação de algum objeto:

Código:

var A, Text, ScriptFile, Directory;

Directory := get_directory('');

for (A := 0; A < 1000; A += 1)
begin
    if script_exists(A)
    begin
        Text = script_get_text(A);
        ScriptFile = file_text_open_write(Directory + '\' + script_get_name(A) + '.gml');
        file_text_write_string(ScriptFile, Text);
        file_text_close(ScriptFile);
    end;
end;

avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 30/07/2011
Número de Mensagens : 928
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://luizpontes.tk/

Re: Como importando e exportando e editando scripts

em Dom 27 Maio 2012, 13:45
Ninja8086 escreveu:
Código:

var A, Text, ScriptFile, Directory;

Directory := get_directory('');

for (A := 0; A < 1000; A += 1)
begin
    if script_exists(A)
    begin
        Text = script_get_text(A);
        ScriptFile = file_text_open_write(Directory + '\' + script_get_name(A) + '.gml');
        file_text_write_string(ScriptFile, Text);
        file_text_close(ScriptFile);
    end;
end;
Uma dica Ninja, já que vai repetir isso 1000 vezes, pode dar um lag bem grande. Mas você poderia colocar um break depois que o script não existir:
Código:

var A, Text, ScriptFile, Directory;

Directory := get_directory('');

for (A := 0; A < 1000; A += 1)
begin
    if script_exists(A)
    {
        Text = script_get_text(A);
        ScriptFile = file_text_open_write(Directory + '\' + script_get_name(A) + '.gml');
        file_text_write_string(ScriptFile, Text);
        file_text_close(ScriptFile);
    }
    else
    {
        break;
    }
end;
O break para um loop for, while, with (sim, é um loop, pois quando você coloca um objeto, ele vai repetir pra todas as instancias), repeat e switch. Aí quando não existirem mais scripts, ele já para.
* Eu coloque { e } pra poder usar o else, pois acho que com begin e end, não dá pra usar else.

Até mais!
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

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

Re: Como importando e exportando e editando scripts

em Seg 28 Maio 2012, 01:20

@luiz_eldorado escreveu:Uma dica Ninja, já que vai repetir isso 1000 vezes, pode dar um lag bem grande. Mas você poderia colocar um break depois que o script não existir:

O 1000 foi proposital. Em alguns casos não dá pra colocar o break porque quando você exclui um recurso, o "id" dele fica inutilizado, mas os que foram criados depois dele naturalmente ainda valem.

Por exemplo. Digamos que você tenha os recursos com ids 1, 2 e 3. Se você excluir o que tem id 2, o seu script vai parar nele e não vai exportar o que tem id 3.
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: Como importando e exportando e editando scripts

em Seg 28 Maio 2012, 10:03
Cara, meu jogo genérico é exatamente isso, a execução de vários e vários arquivos .txt (na verdade, é só um arquivo .txt, os demais são executados porque ESSE UM contém um código que manda executá-los).
Lembre-se que as funções "execute_file" e "execute_string" são meio lentas, portanto você só vai querer usá-las de vez em quando. Entretanto, se usar uma função dessas pra criar objetos e adicionar eventos, só vai precisar delas uma vez no jogo.

Pra importar um script em .txt pra dentro do arquivo .gmk, você altera a extensão dele para .gml e escreve, na primeira linha,
#define nomeDoScript
substituindo apenas "nomeDoScript" pelo nome que você quiser que o script seja importado.
Quando você for na opção de importar scripts, ele aparecerá entre as opções e poderá ser importado. Não me lembro muito bem como é isso, mas acho que é só escolher o arquivo e pronto, o script aparece na pasta correta.

Você pode armazenar vários scripts no mesmo arquivo. A cada linha "#define", o programa entenderá que se trata de um script diferente. Não sei se existe a opção de importar apenas alguns scripts do arquivo.
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