Avatar do usuário
Alex FC
Administrador
Administrador
Autor
Mensagens: 460
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 558

Contato:

Tutorial - Servidor PHP Grátis + Pegando horas

Sáb Jul 14, 2018 5:00 pm


Neste tutorial rápido ensino como pegar as horas de um servidor PHP. Em outra oportunidade irei ensinar como pegar/inserir dados do banco de dados MySQLdesse mesmo servidor usando requisições http.

Bom, vamos lá! Crie um servidor gratuito aqui:

https://www.000webhost.com/free-website-sign-up

Imagem

Seu site será "NOME QUE ESCOLHEU" + .000webhostapp.com Depois clique em Gerenciar site:

Imagem

Depois clique em Gerenciador de Arquivos:

Imagem

Acesse o Gerenciador de arquivos:

Imagem

Crie um arquivo chamado horas.php:

Imagem

O gerenciador já vem com editor de códigos PHP, logo basta clicar duas vezes para abrir e editar o arquivo:

Imagem

Cole o seguinte código (Referência: PHP Date e Timezones):

<?php

date_default_timezone_set("America/Sao_Paulo");
echo date("H:i:s");

?>


Clique em SAVE e pode fechar o gerenciador. O formato será de 24 horas (Ex: 15:12:05), com horas, minutos e segundos. para personalizar só acessar os links de referência. Agora pode ser acessado pelo link abaixo (No meu caso):

https://afalexfc426.000webhostapp.com/horas.php

Agora no GameMaker: Studio basta fazer uma requisição no Create:

// Fazendo requisição HTTP
get_horas = http_get("https://afalexfc426.000webhostapp.com/horas.php");

// Vai guardar o resultado da nossa requisição
resultado = "Aguarde...";


E no evento Asyncchronous -> HTTP verificar quando o resultado vai chegar:

/// Checando se o nosso "get_horas" teve resultado
if ds_map_find_value(async_load, "id") == get_horas
{
    // Deu certo, grava as horas em 'resultado'
    if ds_map_find_value(async_load, "status") == 0
    {
       resultado = ds_map_find_value(async_load, "result");
    }
    // Vessh deu ruim! 'status' tem valor menor que 0, veja referência
    else
    {
        // HTTP tem vários códigos de resposta, procure na referência
        resultado = "Erro";
    }
}


Referências: http_get e HTTP Event

Imagem

Simples. Agora tu tem as horas salvas na variável resultado, pode fazer o que quiser com ela. Fiz um exemplo mais detalhado de uso:

Exemplo - Pegando infos do Servidor PHP
2
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Tags:
 
Avatar do usuário
None
Colaborador
Colaborador
Mensagens: 158
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 321

Re: Tutorial - Servidor PHP Grátis + Pegando horas

Sáb Jul 14, 2018 6:41 pm

Muito bom o tutorial!
2
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
Avatar do usuário
AdrianoPpaula
Membro
Membro
Mensagens: 58
Registrado em: Qui Ago 27, 2015 5:56 am
Localização: Quissamã RJ
Karma: 47

Contato:

Re: Tutorial - Servidor PHP Grátis + Pegando horas

Seg Jul 16, 2018 3:05 pm

Cara... eu nem sei como agradecer, serio mesmo...eu estava a muito tempo procurando algo a respeito disso para criar esse tipo de sistema e não achava em lugar nenhum. Eu fiz alguns teste aqui e funcionou perfeitamente agora é só montar o sistema tipo pegar a informação e colocar em uma variável e fazer a comparação com a hora do usuário. O melhor beneficio desse sistema é a questão de poder criar prêmios por login e prêmios mensais e isso ajuda muito em jogos mobile na hora de manter o jogador ativo em seu game.
2
Imagem
 
Avatar do usuário
didipimenta
Colaborador
Colaborador
Mensagens: 103
Registrado em: Ter Fev 28, 2017 10:01 pm
Localização: São Paulo
Karma: 275
Contato:

Re: Tutorial - Servidor PHP Grátis + Pegando horas

Qui Jul 19, 2018 2:24 pm

Muito bom Alex! Parabéns!
Estou pensando em criar um Projeto grande no Game Maker Studio para armazenar e retirar informações no Servidor. Com o Servidor PHP + SQL será essencial para finalizar essa minha ideia. Com esse Tutorial, você despertou novas possibilidades! Obrigado!
Abraço.
3
Aprenda passo a passo como criar jogos 2D para PC no GameMaker Studio.
Acessem meu canal no Youtube → https://www.youtube.com/playlist?list=P ... Vzgqqcd6-J
 
Avatar do usuário
Alex FC
Administrador
Administrador
Autor
Mensagens: 460
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 558

Contato:

Re: Tutorial - Servidor PHP Grátis + Pegando horas

Sáb Jul 21, 2018 10:11 pm

didipimenta escreveu:
Muito bom Alex! Parabéns!
Estou pensando em criar um Projeto grande no Game Maker Studio para armazenar e retirar informações no Servidor. Com o Servidor PHP + SQL será essencial para finalizar essa minha ideia. Com esse Tutorial, você despertou novas possibilidades! Obrigado!
Abraço.


Valeu Diogo, fico feliz em ter contribuído! Esse server me ajudou com outros trabalhos, é uma mão na roda. Porém não é tão estável, por isso o ideal é usar apenas para testes e jogos simples.

Abraços
1
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!
 
Avatar do usuário
AdrianoPpaula
Membro
Membro
Mensagens: 58
Registrado em: Qui Ago 27, 2015 5:56 am
Localização: Quissamã RJ
Karma: 47

Contato:

Re: Tutorial - Servidor PHP Grátis + Pegando horas

Sex Nov 30, 2018 9:26 pm

Olá Alex blz!
Então a alguns meses venho tentando desenvolver um sistema de horários para mobile (aquele famoso sistema de premiação...tipo o báu do Clash Royale)
esse tutorial me ajudou muito

Vamos lá a minha dúvida:
Como faço para por exemplo diminuir 2 horários diferente e mostrar na tela quantos minutos ou hora falta para ganhar a premiação.

Tipo...vou mostrar o que eu fiz até agora mas está dando erro =/


A ideia é criar um botão de premiação que a cada duas horas e meia é ativado.

então em um obj control eu criei um relogio em tempo real constante usando o seu tutorial como base

OBJ TIME SERVE CONTROL
global.se_time=http_get("ENDEREÇO DO MEU SERVIDOR");
alarm[0]=1800

ALARM[0]
global.se_time=http_get("ENDEREÇO DO MEU SERVIDOR");
alarm[0]=1800

HTTP
if ds_map_find_value(async_load, "id")  == global.se_time {
 global.se_time= ds_map_find_value(async_load, "result");
}


Tá beleza esse é um relógio que acada 1 minuto atualiza a hora do servidor colocando na variável global.se_time
Agora fiz algo similar com isso com o botão de premiação...toda vez que eu aperto o botão de premiação ele salva uma variável nos dados do usuário do mesmo jeito só que na variável  global.presente_time...o problema está na hora que o botão aparece ele faz o calculo diminuindo a hora do global.se_time com a hora do presente time adicionando mais duas horas e meia... vamos lá

OBJ BOTÃO PREMIAÇÃO
CREATE
serve_time_hor=0;
serve_time_min=0;
presente_time_hor=0;
presente_time_min=0;
hora=0;
minuto=0;
date_serve=0;
date_presente=0;
ativar_premio=false;

DRAW
draw_self();
serve_time_hor= string_copy(global.se_time,1,2);
serve_time_min= string_copy(global.se_time,4,2);

presente_time_hor= string_copy(global.presente_time,1,2);
presente_time_min= string_copy(global.presente_time,4,2);

date_serve= date_create_datetime(2018,11,30,serve_time_hor,serve_time_min,00);
date_presente= date_create_datetime(2018,11,30,presente_time_hor,presente_time_min,00);

hora =  ( ( ( date_get_hour(date_serve)*60) - ( date_get_hour(date_presente)*60+120) ) /60 )*-1;
minuto= ( ( ( date_get_minute(date_serve)*60) - (date_get_minute(date_presente)*60+1800) )/60)*-1 ;

/// VERIFICANDO PREMIO DISPONIVEL
if minuto <=0 and hora <=0 {
ativar_premio=true;
}
else {ativar_premio=false}




Então esse logica ai em cima está errada
a ideia é fazer algo assim

horario = horario_servidor - horario_ultimo_premio + 2 horas e meia = hora restante
Imagem
 
Avatar do usuário
Alex FC
Administrador
Administrador
Autor
Mensagens: 460
Registrado em: Dom Abr 24, 2016 11:50 pm
Localização: Itaporã-MS
Karma: 558

Contato:

Re: Tutorial - Servidor PHP Grátis + Pegando horas

Sex Nov 30, 2018 10:15 pm

Nunca joguei esses tipos de jogos, então perdoe se eu não entender.

O ideal é que boa parte dessa lógica esteja no servidor. Mas vamos supor que esse universo seja perfeito e resolver seu problema atual xD.

Ali depois dos 2 date_create_datetime, basta colocar assim:

diff = date_minute_span(date_serve, date_presente);

if diff >= 120
{
    ativar_premio = true;
}
else
{
    ativar_premio = false;
}


Acho que é isso.

Abraços
1
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!
 
Avatar do usuário
AdrianoPpaula
Membro
Membro
Mensagens: 58
Registrado em: Qui Ago 27, 2015 5:56 am
Localização: Quissamã RJ
Karma: 47

Contato:

Re: Tutorial - Servidor PHP Grátis + Pegando horas

Sáb Dez 01, 2018 12:14 am

Rapaz era isso mesmo eu consegui finalizar o sistema agora graças a dica que você deu do date_minute_span porem tive que adaptar para mostrar na tela o horário restante.

Uma foto pra ilustrar como seria o sistema.
Imagem


Acabou que ficou dessa maneira aqui, pesquisando mais a fundo descobri um calculo para converter todos os números certinho ficando da seguinte maneira

DRAW
serve_time_hor= string_copy(global.se_time,1,2);
serve_time_min= string_copy(global.se_time,4,2);
serve_time_sec= string_copy(global.se_time,7,2);

presente_time_hor= string_copy(global.presente_time,1,2);
presente_time_min= string_copy(global.presente_time,4,2);
presente_time_sec= string_copy(global.presente_time,7,2);

date_serve= date_create_datetime(2018,11,30,serve_time_hor,serve_time_min,serve_time_sec);
date_presente=  date_create_datetime(2018,11,30,presente_time_hor,presente_time_min,presente_time_sec);

// Tempo total convertido para segundos adicionando mais 2:30 que da 8280 segundo por ai
tempo_total_segundo = floor(date_second_span(date_serve,date_inc_second(date_presente,8280)));

hora = tempo_total_segundo div 3600;
minuto = (tempo_total_segundo mod 3600) div 60;
segundo = tempo_total_segundo mod 60;

diff = date_second_span(date_serve,date_inc_second(date_presente,8280));
if diff >= 8280 {
 ativar_premio = true;
}
else{
 ativar_premio = false;
}

/// ESCREVENDO TEXTO
if ativar_premio==true {
 draw_text(x,y,"Abrir")
} else {
draw_text(x,y,string(hora)+"h:"+string(minuto)+"min");




Basicamente converteu tudo para segundos, e removendo as frações recebidas usando o mod e div simulando assim sistema de horários perfeitamente.
Imagem

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes