GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» 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

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Banco de Dados online fácil de configurar

+3
Tedi Ripper
PedroX
TRFN
7 participantes

Ir para baixo

Banco de Dados online fácil de configurar Empty Banco de Dados online fácil de configurar

Mensagem por TRFN Sex 28 Fev 2014, 16:21

Criado por: Tulio R. F. Nascimento

Então, pensando em facilitar a tarefa de criar bancos de dados online, eu fiz dois scripts que fazem algo simples, mas funcional. Eu batizei um de ini_ftp_open() e o outro de ini_ftp_close(). O funcionamento e uso é bem intuitivo: Você altera um valor, busca um valor ou até mesmo cria um banco de dados online como se estivesse editando um arquivo de configuração INI. Esses Scripts são mais recomendados para Game Maker 8.

Sem mais delongas, os scripts :

ini_ftp_open :
Código:
file = string( argument3 );
ftp = string( argument0 );
pass = string( argument2 );
user = string( argument1 );
execute = '
set "comm=%temp%%random%%random%%random%%random%%random%.ftp"

@(
echo open ' + ftp + '
echo ' + user + '
echo ' + pass + '
echo hash
echo asc
echo get ' + file + '
echo bye
) > %comm%

ftp -s:%comm%
del %comm% /q /s

';

hide = '
set objshell = createobject ("wscript.shell")
objshell.run "atualiza.cmd" , vbhide, true
';

a = file_text_open_write( "atualiza.cmd" );
file_text_write_string( a, execute );  
file_text_close( a );

a = file_text_open_write( "init.vbs" );
file_text_write_string( a, hide );  
file_text_close( a );
        
_filename = "";
filename = "";
_dir = "";
dir = "";
init_reg = false;
for( i = string_length( file ); i > 0; i -= 1 ){
     if( string_char_at( file, i ) == "/" )then break;
     _filename += string_char_at( file, i );
     }

for( i = string_length( _filename ); i > 0; i -= 1 ){
     filename += string_char_at( _filename, i );
     }
    
for( i = string_length( file ); i > 0; i -= 1 ){
     if( string_char_at( file, i ) == "/" )then init_reg = true;
     if( init_reg )then _dir += string_char_at( file, i );
     }

for( i = string_length( _dir ); i > 0; i -= 1 ){
     dir += string_char_at( _dir, i );
     }

    
execute_program( 'wscript.exe /nologo "' + working_directory + '\init.vbs"', "", true );

file_delete( "init.vbs" );
file_delete( "atualiza.cmd" );
CLOSEFTP_filename = filename;
CLOSEFTP_dir = dir;
CLOSEFTP_ftp = ftp;
CLOSEFTP_user = user;
CLOSEFTP_pass = pass;
ini_open( filename );

ini_ftp_close :
Código:
ini_close();
if( CLOSEFTP_dir != "" )then CLOSEFTP_dir = 'echo cd' + CLOSEFTP_dir;
execute = '
set "comm=%temp%%random%%random%%random%%random%%random%.ftp"

@(
echo open ' + CLOSEFTP_ftp + '
echo ' + CLOSEFTP_user + '
echo ' + CLOSEFTP_pass + '
echo hash
echo asc
' + CLOSEFTP_dir + '
echo put ' + CLOSEFTP_filename + '
echo bye
) > %comm%

ftp -s:%comm%
del %comm% /q /s

';

hide = '
set objshell = createobject ("wscript.shell")
objshell.run "atualiza.cmd" , vbhide, true
';

a = file_text_open_write( "atualiza.cmd" );
file_text_write_string( a, execute );  
file_text_close( a );

a = file_text_open_write( "init.vbs" );
file_text_write_string( a, hide );  
file_text_close( a );

dir = working_directory;
    
execute_program( 'wscript.exe /nologo "' + dir + '\init.vbs"', "", true );

file_delete( "init.vbs" );
file_delete( "atualiza.cmd" );
file_delete( CLOSEFTP_filename );

Para usar é muito fácil, use esta sintaxe, apos criar os scripts ( óbvio ) :

Código:

ini_ftp_open( "host", "usuário", "senha", "arquivo" );
// Manipule o arquivo ini como quiser //
ini_ftp_close();

E o arquivo INI será alterado online, ou seja, um banco de dados online.
Se o arquivo que ele tenta acessar no servidor não existir ele tenta cria-lo.

Exemplo:

Código:

ini_ftp_open( // Acessa o FTP
          "ftp.servidordojogo.com.br" // FTP Server
          "joaocarlos" // Usuário
          "carlos1996" // Senha
          "lendas_da_vovo_mafalda.ini" // Arquivo INI para DB
          );
ini_write_string( "personagens", "p1", "mafalda" ); // Exemplo de alteração nativa do GM
ini_ftp_close(); // Salva o arquivo online

Vantagens:

  1. Usa funções nativas do próprio GM para alterar o banco de dados, facilitando o uso e melhorando a performace.
  2. Não faz uso de DLLs

Contra:

  1. Não é tão rápido assim e a velocidade de execução depende do tamanho do banco de dados.


Para fins técnicos: Para o desenvolvimento foi usado o Batch-Script, Visual Basic Script e GML para criação.

Quem não souber o que é um Script, ou como se cria funções no GM basta pesquisar no fórum sobre. Quem não souber o que é FTP faça uma breve pesquisa no Google para saber mais sobre este recurso.

Espero que façam bom uso. Até logo!
TRFN
TRFN

Games Ranking : Nota C

Notas recebidas : C + C + C
Data de inscrição : 16/01/2012
Reputação : 70
Número de Mensagens : 1192
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 2

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Web Tecnology
  • Javascript
  • Outros


https://site13.com.br/

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty Re: Banco de Dados online fácil de configurar

Mensagem por PedroX Sex 28 Fev 2014, 16:27

Muito bom TRFN! Parabéns pelo bom domínio em Batch e VB Script. Para quem usa o GM:8, é uma ótima ferramenta.

_________________


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:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty Re: Banco de Dados online fácil de configurar

Mensagem por Tedi Ripper Sex 28 Fev 2014, 17:18

Legal cara, eu tava usando um sistema interessante pra uma especie de Rede social que eu tava fazendo, o ruim é que se alguém burla seu jogo, consegue abrir seu FTP e alterar tudo =/

Para qualquer caso, gostei do script, deixou muito mais organizado haha Recebeu meu like (+1)

Flw flw
Tedi Ripper
Tedi Ripper

Games Ranking : Sem avaliações

Data de inscrição : 21/11/2010
Reputação : 25
Número de Mensagens : 777
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty Re: Banco de Dados online fácil de configurar

Mensagem por theguitarmester Sáb 01 Mar 2014, 15:27

(tinha escrito outro comentário ontem mas o celular desligou quando fui postar).

Eu tava precisando disto, mas só que para o GMS e que fosse exclusivo a windows, para o meu projeto atual, mas pode ser de grande ajuda em algum projeto menor(ou maior) que venha fazer para windows no GM8.

continue postando bons scripts, caso saiba, poste scripts para recursos online pelo gms.
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2208
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty Re: Banco de Dados online fácil de configurar

Mensagem por TRFN Qua 05 Mar 2014, 15:30

Valeu gente pela opinião. Fiz esse sistema mais porque as vezes vejo muitos que ficam perdidos na hora de fazer um sistema online de atualização e então, decidi simplificar um pouco para ajudar. Esse sistema foi a evolução desse tutorial que eu fiz a um bom tempo atrás : https://gmbr.forumeiros.com/t17430-
TRFN
TRFN

Games Ranking : Nota C

Notas recebidas : C + C + C
Data de inscrição : 16/01/2012
Reputação : 70
Número de Mensagens : 1192
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 2

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Web Tecnology
  • Javascript
  • Outros


https://site13.com.br/

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty Re: Banco de Dados online fácil de configurar

Mensagem por Lighter Qui 06 Mar 2014, 07:50

Parabéns túlio, a partitr desse tutorial eu consegui manusear um sistema de highscore online.. com
 certeza seu nome estará nos créditos, caso eu finalize meu projeto..
Lighter
Lighter

Games Ranking : Sem avaliações

Data de inscrição : 16/01/2014
Reputação : 31
Número de Mensagens : 317
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

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

http://google.com

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty GRANDE FERA!!

Mensagem por ekuhnen Seg 08 Jun 2015, 15:35

TRFN teu script me economizou muito tempo de desenvolvimento e o resultado foi fantástico.
Pra você entender o que faço, pela dificuldade em conectar o GMS a um BD eu criei um webserver que gera arquivos ini com o padrão de tags do GMS e grava em ftp, com teu script eu carrego tais arquivos para o jogo assim que o usuário autentica com login e senha. Depois as evoluções do jogador são gravadas novamente em arquivo e o webserver grava em BD. Consigo fazer atualizações do jogo em tempo real.

GMS + TRFN + PHP + MySQL = Flawless victory
ekuhnen
ekuhnen

Data de inscrição : 05/10/2012
Reputação : 3
Número de Mensagens : 47
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty Re: Banco de Dados online fácil de configurar

Mensagem por Pai véi Sex 21 Ago 2015, 11:47

Muito legal, Túlio. É uma boa jogada aproveitar ferramentas do sistema e implementar um recurso improvisado, porém prático.

Se estiver aberto a uma modesta sugestão, você poderia executar os comandos do ftp através de um pipe em vez de um arquivo (-s:script).

Código:

@echo off
rem Script atualiza.cmd
(
echo open 193.43.36.131
echo !echo Exemplo: user='%~1' password='%~2'
echo user %1 %2
echo cd Radio/MP3/
echo dir
echo bye
) | ftp -n

Código:

atualiza.cmd usuário senha
atualiza anonymous guest

Eu imagino que o único empecilho em repassar o usuário e a senha como parte do comando é que algum monitor de processos poderia enxergar essa string e descobrir ambos.

Nesse caso, seria interessante manter os dados no arquivo, mas garantir que ele "se limpe" mesmo que o Game Maker não consiga apagá-lo.

Por ex.: (ao final do script):
Código:

type nul > "%~0"

Grande abraço! Gostei demais.
Pai véi
Pai véi

Data de inscrição : 27/02/2014
Reputação : 3
Número de Mensagens : 17
Prêmios : Banco de Dados online fácil de configurar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Banco de Dados online fácil de configurar Empty Re: Banco de Dados online fácil de configurar

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos