[DUVIDA] Manipulando arquivos externos em arquivo ZIP

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Adriano Heartless em Dom 26 Jun 2011, 01:48

Ola pessoal! De volta apos um longo periodo trancafiado estudando para provas! Ainda preciso resolver algumas pendencias aqui (verificar meus tópicos antigos). Enfin estava dando uma olhada e tentando aprender alguma coisa nova aqui no fórum e pintou uma duvida.

Bom gostaria de saber se tem como usar um arquivo externo dentro de um arquivo.zip? Dentro mesmo sem extrair nada. Utilizei as dicas desse tópico aqui para tentar fazer isso no meu sistema de load:

http://gmbr.forumeiros.com/t16009-gm-ler-som-de-um-arquivo-rar

Criei uma pasta chamada diretorio somente para guardar os arquivos. Dentro dessa pasta está o executavel do meu jogo que chamarei de "jogo" e um sprite. Esse sprite eu salvei pelo proprio game maker virando assim um arquivo gmspr eu nomiei de image

image.gmspr

Ok! então, utilizando o WinZip eu zipei o arquivo image.gmspr chamando ele de data.zip e adicionei uma senha de segurança "123"

Adicionei a extenção GM LIBRARY para poder ter acesso aos comando do game maker referente a arquivos zip como por exemplo os comando zip_open, zip_close, etc.

Bom, ai é que tá. No meu sistema de load eu utilizo o comando sprite_replace_sprite que substitui um sprite dentro do executalvel para um arquivo externo. Assim

sprite_replace_sprite(spr_image,"image.gmspr");

Só que eu queria fazer isso com o arquivo image.gmspr que está dentro do arquivo data.zip. Sera que tem como????

Eu tentei fazer assim

zip_open("data.zip","123");
sprite_replace_sprite(spr_image,"data.zip/image.gmspr");

Só que não deu certo pq esse não é o caminho da imagem dentro do arquivo zip. =/

Bom queria saber se tem a possibilidade poder fazer isso pois se der certo daria para criar um sistema de load muito facil de usar e de malipular e muito mais seguro podendo até mesmo utilizar um truque de substituir uma extenção para esconder um arquivo, por exempo:

No WinZip antes de vc finalizar o processo, subistitua o nome do arquivo com a extenção que desejar. Assim o arquivo ficará com outra extenção mais ainda sera um zip exemplo

Data.pak

Assim se por acaso alguem substituir o nome .pak por .zip ele descobrirá o arquivo porem não irá conseguir entrar nele pois ainda terá uma senha de segurança onde só o executavel do jogo entrará!


Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por zzxc em Dom 26 Jun 2011, 08:49

cara nao conheço muito mas acho q vc deve usar algum dll de manipulaçao de zip

zzxc

Ranking : Nota B
Número de Mensagens : 99
Idade : 24
Data de inscrição : 11/01/2010
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Adriano Heartless em Dom 26 Jun 2011, 11:49

Sei sei, já pesquisei sobre uma dll que utilizam para usar arquivos zip mas acho que a GMLibrary faz a mesma coisa. De acordo com os tesrte que eu to fazendo aqui o game maker está realmente abrindo os arquivos zipados lol
Agora só falta utilizar eles no game #-#

Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Supersonic933 em Dom 26 Jun 2011, 12:10

Pelo que eu sei, o sprite add suporta apenas jpg e gif. Vai ter que dar um jeito de converter.

Código:
file=zip_open("data.zip","123"); //Abre o ZIP
zip_extract_name(file,"image.gif"); //Extrai o sprite
sprite=sprite_add("image.gif",0,0,0,0,0); //Adiciona o sprite na memória
sprite_replace_sprite(spr_image,sprite); //Substitui o sprite
file_delete("image.gif") //Deleta o sprite do disco rígido (não do ZIP)
zip_close(file); //Fecha o zip para não haver problemas

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Adriano Heartless em Dom 26 Jun 2011, 12:39

Ummm entendi talves seja por isso que não aparece nenhuma image. U-U
Mas no caso então não tem como utilizar a image dentro do zip teria que extrair ele então?

Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Supersonic933 em Dom 26 Jun 2011, 13:03

adriano Heartleless escreveu:Ummm entendi talves seja por isso que não aparece nenhuma image. U-U
Mas no caso então não tem como utilizar a image dentro do zip teria que extrair ele então?
Aquele código extrai do zip.

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Adriano Heartless em Dom 26 Jun 2011, 13:44

uhmm é que realmente usar arquivos externos causa muito risco pois qualquer pessoa pode abrir e editar o jogo. Utilizei o modo gmspr salvando os sprites pois pelo menos esses arquivos não seram vistos por pessoas que nunca viram o game maker então acho que é a forma mais segura.

Estava pesquisando aqui algo sobre arquivos PAK alguem já viu falar? Sera que o game maker consegue usar esse arquvio?

Pelo que entendi o arquivo PAK é usado em varios jogos profissionais como Spider-Man- Shattered Dimensions. São arquivos iguais a arquivos zip. Ou seja dentro dele tem varios arquivos que somente o jogo pode abrir e usuarios normais não tem acesso deixando o diretorio do jogo mais organizado e mais seguro. De fato até agora acho que a unica forma é usando arquivos gmspr mesmo >.<

Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Supersonic933 em Dom 26 Jun 2011, 13:48

adriano Heartleless escreveu:uhmm é que realmente usar arquivos externos causa muito risco pois qualquer pessoa pode abrir e editar o jogo. Utilizei o modo gmspr salvando os sprites pois pelo menos esses arquivos não seram vistos por pessoas que nunca viram o game maker então acho que é a forma mais segura.

Estava pesquisando aqui algo sobre arquivos PAK alguem já viu falar? Sera que o game maker consegue usar esse arquvio?

Pelo que entendi o arquivo PAK é usado em varios jogos profissionais como Spider-Man- Shattered Dimensions. São arquivos iguais a arquivos zip. Ou seja dentro dele tem varios arquivos que somente o jogo pode abrir e usuarios normais não tem acesso deixando o diretorio do jogo mais organizado e mais seguro. De fato até agora acho que a unica forma é usando arquivos gmspr mesmo >.<

Você pode usar a função file_rename. Primeiro, renomeie o ZIP para pak. Crie um objeto e coloque em todas as rooms.

Game Start:
Código:

file_rename("data.pak","data.zip")

Game End:

Código:
file_rename("data.zip","data.pak")

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por ricaun em Dom 26 Jun 2011, 14:02

Não sei se vai funcionar mas talvez ele pode abrir o arquivo .zip sem ser .zip!

Algo assim!
Código:
file=zip_open("data.pak","123"); //Abre o ZIP

Deve funcionar se o arquivo for .zip e renomeado para .pak como o Supersonic933 falou!

...

ricaun

Número de Mensagens : 169
Idade : 27
Data de inscrição : 23/09/2008
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Adriano Heartless em Dom 26 Jun 2011, 18:00

Realmente da certo ricaun o game maker reconhece que é arquivo zip lol
e também da certo fazendo o que o Supersonic933 disse eu posso renomear o arquivo . Tipo funcionou até com arquivos gmspr do game maker lol
eu renomiei na pasta para image.pak
e coloquei:

sprite_replace_sprite(spr_image,"image.pak") e funcionou o.O

É dessa forma fica um pouco mais segura lol
sobre o zip ainda estou tentando e extranho pq depois que ele extrai o arquivo não continua o de jeito nenhum eu to fazendo dessa forma:

no create do objeto controle eu coloquei
Código:

file=zip_open("data.pak","123"); //abre o arquivo o pak na verdade é um zip
zip_extract_name(file,"image.pak"); // esse pak é um arquivo gmspr
zip_close(file);
sprite_replace_sprite(spr_image,"image.pak")



ai no final do game (game end) eu coloquei pra deletar os arquivos que foram extraidos

file_delete(image.pak)



Só que travaq quando passa para room que está sendo utilizada o sprite e também algo estranho acontence quando vou dar load no arquivo gmspr aparece um erro dizendo assim "stream read erro" estranho não? o.O

Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Supersonic933 em Dom 26 Jun 2011, 18:08

adriano Heartleless escreveu:
Código:

file=zip_open("data.pak","123"); //abre o arquivo o pak na verdade é um zip
zip_extract_name(file,"image.pak"); // esse pak é um arquivo gmspr
zip_close(file);
sprite_replace_sprite(spr_image,"image.pak")
Aí está o problema. Se colocar o zip_close antes, dá erro. Outra coisa: Pra que excluir os arquivos no final do game se os arquivos já estão na memória? Deleta o game end e coloque no create do objeto para consertar os erros:

file=zip_open("data.pak","123"); //abre o arquivo o pak na verdade é um zip
zip_extract_name(file,"image.pak"); // esse pak é um arquivo gmspr
sprite_replace_sprite(spr_image,"image.pak")
file_delete(image.pak)
zip_close(file);

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [DUVIDA] Manipulando arquivos externos em arquivo ZIP

Mensagem por Conteúdo patrocinado Hoje à(s) 04:54


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum