[Autor=João Neto ]
Começo esta terceira Parte com uma boa notícia. Encontrei uma versão de patch estável para o Game Maker 7. Com isso, poderei dar continuidade ao curso online usando ele, para aqueles que o tem, com certeza será maravilhoso, para aqueles que usam o 6, não se desanimem, pois a programação será a mesma para os dois.
Na lição passada, fizemos uma tela de login, usando scripts e uma validação se os campos foram preenchidos.
Hoje, faremos a parte mais interessante e com certeza a mais esperada por todos.
Usando a GMSQL, conectaremos na base MySQL, ensinada como configurar e criar a tabela de login na primeira parte desta quinta aula, Validaremos a existência do Login e senha.
De início, baixe a DLL e o pacote de scripts Aqui.
Vamos aproveitar o exemplo feito na aula passada. Se você não o construiu, pare, volte na aula e o faça, pois ele será necessário aqui.
1 º passo importe o script GMSQL.gml para o projeto. Eu aconselho a criar uma pasta para os mesmos(no GM7 esse passo da pasta é automático). Depois, Copie as 3 Dlls que o acompanham para o mesmo diretório do projeto. Segue como ficará dentro do seu projeto e na pasta dele:
O que faremos agora será executar os seguintes passos:
Vamos começar. Crie um script de nome scr_login. Nele, adicione o seguinte Código:
Lembra-se da 1º parte desta Aula, onde fizemos uma query diretamente no SQL Yog? Nela fizemos uma query simples, usando * que indica ALL, todos os campos da tabela.
Agora, nossa query possui duas peculiaridades:
No script de conexão, passamos IP:Porta, usuário,Senha,Base. Se este também retornar true, passamos para o script de Query, onde passamos como parâmetro nosso SQL montado lá em cima.
Este por sua vez, deve retornar 1. Retornando, validamos se houve retorno de dados. Se sim, devolvemos true na função, caso contrário devolvemos false.
Agora, iremos aplicar o script. Abra o objButton, construído na lição passada. Se você se lembra bem, ele possui o seguinte script no evento Draw:
Uma outra peculiaridade são os parâmetros na função gmsql_connect. Observe que passamos para ele Localhost:3306. Esta configuração de IP:Porta pode levar qualquer endereço e qualquer porta, fazendo com que seu banco MySQL esteja em qualquer lugar, e mesmo assim você terá acesso a ele, seja diretamente como fizemos aqui, ou através do Server do jogo.
Se tudo estiver OK na sua máquina (MySQL Instalado, Configurações feitas, Tabela Criada, Registro Inserido) Basta executar o jogo e tentar logar.
Se você digitar corretamente os dados( Lembrando que nome, Nome e NOME dá na mesma para o banco) deverá mostrar a mensagem de sucesso e, caso digitar errado, mostrar a mensagem de falha.
Para quem achou que seria algo completamente impossível, aí está. Um Login que valida se digitou, conecta-se a uma base MySQL e valida se o login existe na base.
Eu tenho certeza que você está pensando: “ E agora??”
Bem, agora tudo começa. Veja o que já estudamos: O uso da SOC, a criação de Clients de movimento, o uso da GMSQL, uma criação de Login. Veja como se encaixarmos as peças, estamos indo em direção a um game Online.
Na Próxima lição: Começaremos a construir nosso Próprio Server e aprenderemos mais sobre o uso da GMSQL.
Até lá.
Começo esta terceira Parte com uma boa notícia. Encontrei uma versão de patch estável para o Game Maker 7. Com isso, poderei dar continuidade ao curso online usando ele, para aqueles que o tem, com certeza será maravilhoso, para aqueles que usam o 6, não se desanimem, pois a programação será a mesma para os dois.
Na lição passada, fizemos uma tela de login, usando scripts e uma validação se os campos foram preenchidos.
Hoje, faremos a parte mais interessante e com certeza a mais esperada por todos.
Usando a GMSQL, conectaremos na base MySQL, ensinada como configurar e criar a tabela de login na primeira parte desta quinta aula, Validaremos a existência do Login e senha.
De início, baixe a DLL e o pacote de scripts Aqui.
Vamos aproveitar o exemplo feito na aula passada. Se você não o construiu, pare, volte na aula e o faça, pois ele será necessário aqui.
1 º passo importe o script GMSQL.gml para o projeto. Eu aconselho a criar uma pasta para os mesmos(no GM7 esse passo da pasta é automático). Depois, Copie as 3 Dlls que o acompanham para o mesmo diretório do projeto. Segue como ficará dentro do seu projeto e na pasta dele:
O que faremos agora será executar os seguintes passos:
- Ao Clicar no botão de login validar se Login e senha foram preenchidos
- Se sim, Instaciaremos a GMSQL.
- Faremos conexão com a mesma.
- Passaremos a Query(Linha SQL) para o banco executaremos.
- Se o retorno for verdadeiro
- Daremos uma mensagem de seja bem vindo ao usuário
- Se o retorno for falso
- Daremos uma mensagem de Login ou senha inválidos
- Se não, Daremos uma mensagem de Falha de Conexão.
Vamos começar. Crie um script de nome scr_login. Nele, adicione o seguinte Código:
- Código:
//capturamos os valores passados
login = argument0;
senha = argument1;
//montamos a Query
Query = "SELECT cod_user FROM tb_user WHERE nom_user = '"+login+"' AND cod_nivel = "+senha;
//Tentamos instanciar a DLL
if gmsql_init(){
//Efetuamos a Conexão com o Banco de dados
if gmsql_connect('Localhost:3306','root','root','db_game'){
//Validamos se a Query foi executada
if gmsql_query(Query)=1{
//Guardamos o resultado
gmsql_storeresult();
//Validamos se houve retorno do valor pedido
if (gmsql_getvaluexy(0,0)) != ""{
//Fechamos a Conexão e Desinstanciamos a DLL.
gmsql_close();
return true;
}
gmsql_close();
return false;
}
gmsql_close();
return false;
}
}
Lembra-se da 1º parte desta Aula, onde fizemos uma query diretamente no SQL Yog? Nela fizemos uma query simples, usando * que indica ALL, todos os campos da tabela.
Agora, nossa query possui duas peculiaridades:
- Pedimos no Select apenas o campo Cod_user
- Passamos como parâmetro(Clausula WHERE) o nome de usuário e a senha. Estaremos usando o Cod_nivel para isso, mas nada impede a criação de um campo senha que seja alfa-numérico.
No script de conexão, passamos IP:Porta, usuário,Senha,Base. Se este também retornar true, passamos para o script de Query, onde passamos como parâmetro nosso SQL montado lá em cima.
Este por sua vez, deve retornar 1. Retornando, validamos se houve retorno de dados. Se sim, devolvemos true na função, caso contrário devolvemos false.
Agora, iremos aplicar o script. Abra o objButton, construído na lição passada. Se você se lembra bem, ele possui o seguinte script no evento Draw:
- Código:
if(button(x,y,"Login")){
if global.login == "" {
show_message("Preencha seu Login.")
exit;
}
if global.senha == "" {
show_message("Preencha sua Senha.")
exit;
}
}
- Código:
if(button(x,y,"Login")){
if global.login == "" {
show_message("Preencha seu Login.")
exit;
}
if global.senha == "" {
show_message("Preencha sua Senha.")
exit;
}
if scr_login(global.login,global.senha){
show_message("Seja bem vindo.")
}
else{
show_message("Usuário ou senha inválidos.")
}
}
Uma outra peculiaridade são os parâmetros na função gmsql_connect. Observe que passamos para ele Localhost:3306. Esta configuração de IP:Porta pode levar qualquer endereço e qualquer porta, fazendo com que seu banco MySQL esteja em qualquer lugar, e mesmo assim você terá acesso a ele, seja diretamente como fizemos aqui, ou através do Server do jogo.
Se tudo estiver OK na sua máquina (MySQL Instalado, Configurações feitas, Tabela Criada, Registro Inserido) Basta executar o jogo e tentar logar.
Se você digitar corretamente os dados( Lembrando que nome, Nome e NOME dá na mesma para o banco) deverá mostrar a mensagem de sucesso e, caso digitar errado, mostrar a mensagem de falha.
Para quem achou que seria algo completamente impossível, aí está. Um Login que valida se digitou, conecta-se a uma base MySQL e valida se o login existe na base.
Eu tenho certeza que você está pensando: “ E agora??”
Bem, agora tudo começa. Veja o que já estudamos: O uso da SOC, a criação de Clients de movimento, o uso da GMSQL, uma criação de Login. Veja como se encaixarmos as peças, estamos indo em direção a um game Online.
Na Próxima lição: Começaremos a construir nosso Próprio Server e aprenderemos mais sobre o uso da GMSQL.
Até lá.