Entrar
Últimos assuntos
» Servidor de Discord do fórum?por Super Games Sáb 18 maio 2024, 01:27
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentro
por Rukasu777 Qui 16 maio 2024, 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» 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
» 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
[Tutorial]connecção simples com 39DLL
+6
peixoto
omikakim
Anderson3d
Mr.Brum
PedroX
Jiraya
10 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial]connecção simples com 39DLL
Olá a todos!
a 39Dll é conhecida pelo seu poderoso sistema de connecção!
mas algumas pessoas reclamam, por algo ser algo difícil de usar.
eu adicionei a 39dll ao gmLIBRARY simplificando as funções.
ok vamos começar
baixe o gmLibrary e instale no seu game maker
crie um objeto e nomeie como "Controle"
deixe esse objeto como persistent
e no create event desse objeto use o seguinte
e agora no draw_event do objeto Controle use o seguinte
pronto o básico importante ja foi feito
agora vem a troca de mensagem
agora crie uma room e nomeie como "room_menu", coloque o objeto controle nessa room
então crie outra room e nomeie como "room_server"
então crie a ultima room "room_game".
deve ficar assim a ordem no seu projeto
room_menu
room_server
room_game
agora a troca de mensagens
crie um objeto e nomeie como "Comunicador".
e no draw event desse objeto use isso
coloque o objeto Comunicador na room_game
pronto, agora é só trocar as mensagens
agora vamos fazer os personagens andar no mapa
crie uma sprite que será o jogador
crie um objeto e nomeie de "Jogador"
coloque a sprite que você fez no object Jogador
crie mais um objeto e nomeie de "BOOT"
e aplica uma sprite qualquer no objeto BOOT, ele recebera as mensagens dos outros jogadores
no step event do objeto Jogador, use isso
[nota]deixa a room_game com um fps de 90
Pronto a troca de mensagem entre o jogador e servidor está completa
agora coloque o objeto Comunicador,Jogador e o objeto BOOT na room_game
e teste para ver se esta funcionando!
quem quiser baixar o exemplo
aqui esta o link
Download[.gmk]
a 39Dll é conhecida pelo seu poderoso sistema de connecção!
mas algumas pessoas reclamam, por algo ser algo difícil de usar.
eu adicionei a 39dll ao gmLIBRARY simplificando as funções.
ok vamos começar
baixe o gmLibrary e instale no seu game maker
crie um objeto e nomeie como "Controle"
deixe esse objeto como persistent
e no create event desse objeto use o seguinte
- Código:
using("39dll.h|gui.h");//isso fara o game maker usar as funçoes da 39dll e da GUI[Graphical User Interface]
global.host=false;//vai definir se o jogador é host ou server
e agora no draw_event do objeto Controle use o seguinte
- Código:
if (room==room_menu)//checa se estiver na room_menu
{
//isso cria um botão e checa se ele foi pressionado
if (gui_button("host",10,10,128,32,"entrar no jogo como server")==gui_left_pressed)
{
//vamos usar a porta 8210, você pode usar qualquer porta, que não esteja sendo usada.
global.LISTEN=tcp_listen(8210,2);//isso faz o seu computador "ouvir" esperar qualquer ip que se conecte à porta 8210
//2 sera o numero maximo de jogadores
room_goto(room_server);//ir para a room_server, que iremos criar em breve
global.host=true;//então sera o host
};
if (gui_button("jogador",10,48,128,32,"entrar no jogo como jogador")==gui_left_pressed)
{
//essa função tentara se conectar com o servidor
//o primeiro argumento é o ip do servidor
//o segundo argumento é a porta que o servidor estara escutando
global.SERVIDOR=tcp_connect(get_string("digite o ip do servidor:","127.0.0.1"),8210);
if (!global.SERVIDOR)//checa se ñ conseguiu se conectar
show_message("erro ao tentar se conectar com o servidor!");else
{//então ira para room do jogo
room_caption="Server";
room_goto(room_game);
}
};
}else
if (room==room_server)//checa se estiver na room onde o servidor ira esperar o jogador
{
draw_text(10,10,"esperando o jogador!");
jogador=tcp_accept(global.LISTEN);//prepara para aceitar o jogador
if ( jogador)//se o jogador "bater na porta" x3
{
global.JOGADOR=jogador;//guarda a id do jogador para trocar mensagens
room_caption="Jogador";
room_goto(room_game);
}
};
pronto o básico importante ja foi feito
agora vem a troca de mensagem
agora crie uma room e nomeie como "room_menu", coloque o objeto controle nessa room
então crie outra room e nomeie como "room_server"
então crie a ultima room "room_game".
deve ficar assim a ordem no seu projeto
room_menu
room_server
room_game
agora a troca de mensagens
crie um objeto e nomeie como "Comunicador".
e no draw event desse objeto use isso
- Código:
if (global.host)//checa se o jogador é o host
{
msg=receive_message(global.JOGADOR);//recebe mensagens do jogador
//você pode usar a função server_receive(); tbm, que recebe mensagens de todos os jogadores simultaneamente
if (msg)//se recebeu a mensagem
{
switch (read_id())//lê a id da mensagem
{
//aqui o servidor ira interpretar as mensagens recebidas
case 0:
BOOT.x=read_value();//aplica a posição x do outro jogador no BOOT
BOOT.y=read_value();//aplica a posição y do outro jogador no BOOT;
break;
};
};
}else//se for o jogador
{
msg=receive_message(global.SERVIDOR);
if (msg)
{
switch (read_id())//lê a id da mensagem
{
//aqui o jogador ira interpretar as mensagens recebidas do servidor
case 0:
BOOT.x=read_value();//aplica a posição x do outro jogador no BOOT
BOOT.y=read_value();//aplica a posição y do outro jogador no BOOT;
break;
}
}
};
coloque o objeto Comunicador na room_game
pronto, agora é só trocar as mensagens
agora vamos fazer os personagens andar no mapa
crie uma sprite que será o jogador
crie um objeto e nomeie de "Jogador"
coloque a sprite que você fez no object Jogador
crie mais um objeto e nomeie de "BOOT"
e aplica uma sprite qualquer no objeto BOOT, ele recebera as mensagens dos outros jogadores
no step event do objeto Jogador, use isso
- Código:
//movimento simples
if (keyboard_check(vk_right))
x+=4;else
if (keyboard_check(vk_left))
x-=4;
if (keyboard_check(vk_up))
y-=4;else
if (keyboard_check(vk_down))
y+=4;
buff_clear(0);//limpa o buff para n haver congestionamento e lentidão nas transferências de mensagens
set_id(0);//define a id da mensagem para 0
write_value(x);//escreve o valor de x na mensagem
write_value(y);//escreve o valor de y na mensagem
if (global.host)//Servidor
{
send_message(global.JOGADOR);//envia a mensagem para o jogador
//você pode usar a função server_send(); que envia a mensagem para todos os jogadores simultaneamente
}else//Jogador
{
send_message(global.SERVIDOR);//envia a mensagem para o servidor
};
[nota]deixa a room_game com um fps de 90
Pronto a troca de mensagem entre o jogador e servidor está completa
agora coloque o objeto Comunicador,Jogador e o objeto BOOT na room_game
e teste para ver se esta funcionando!
quem quiser baixar o exemplo
aqui esta o link
Download[.gmk]
Re: [Tutorial]connecção simples com 39DLL
Muito bom Jiraya. Suas engines são muito boas.
Esse tutorial é bem proveitoso. A gmlibrary é excelente.
FLW
Esse tutorial é bem proveitoso. A gmlibrary é excelente.
FLW
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:
Re: [Tutorial]connecção simples com 39DLL
Vlw !
creio que a gmLIBRARY esta num nivel capaz de andar lado a lado com o gmlSDK!
creio que a gmLIBRARY esta num nivel capaz de andar lado a lado com o gmlSDK!
Re: [Tutorial]connecção simples com 39DLL
Sim. Esta mesmo.
Você poderia juntar as duas mais para frente.
O unico problema seria a imensidão de scripts que iria ter.
Por outro lado, quanto mais funções, melhor.
FLW
Você poderia juntar as duas mais para frente.
O unico problema seria a imensidão de scripts que iria ter.
Por outro lado, quanto mais funções, melhor.
FLW
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:
Re: [Tutorial]connecção simples com 39DLL
galera... sensacional... show de bola!! voltei a me animar com o gm , depois dessa extensão!!!... +rep amanhã!
Re: [Tutorial]connecção simples com 39DLL
perfect, quando tiver todas as funções da 39dll eu farei uma estátua sua aqui em Natal igual a do Rock...
Re: [Tutorial]connecção simples com 39DLL
ira me ajudar muito isso
omikakim- Games Ranking :
Notas recebidas : E
Data de inscrição : 07/02/2011
Reputação : 0
Número de Mensagens : 95
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]connecção simples com 39DLL
Obrigado a todos
que bom que acha isso, pois ela foi uma de minhas maiores criaçoes!Pedro Henrique escreveu:Muito bom Jiraya. Suas engines são muito boas.
Esse tutorial é bem proveitoso. A gmlibrary é excelente.
FLW
ya, n estou pensando em unilas, e sim adicionar funçoes do gmlSDK melhoradas no gmLIBPedro Henrique escreveu:Sim. Esta mesmo.
Você poderia juntar as duas mais para frente.
O unico problema seria a imensidão de scripts que iria ter.
Por outro lado, quanto mais funções, melhor.
FLW
yo, fico feliz em ler isso!mrbrum22 escreveu:galera... sensacional... show de bola!! voltei a me animar com o gm , depois dessa extensão!!!... +rep amanhã!
xD, isso foi um tanto exagerado, mesmo assim obrigadoAnderson3d escreveu:perfect, quando tiver todas as funções da 39dll eu farei uma estátua sua aqui em Natal igual a do Rock...
Re: [Tutorial]connecção simples com 39DLL
Por favor, cria um help aí,explicando as funções..
Última edição por mrbrum22 em Ter 10 Jan 2012, 21:08, editado 1 vez(es)
Re: [Tutorial]connecção simples com 39DLL
Tenho uma duvida:Como fasso para ter mais de 2 jogadores numa mesma room?Quando tentei 3 jogadores, apareceu dois numa room e um numa outra room '-'
Se alguem souber ajudar me ajuda
ps:Adorei o tutorial so teu fan d++++++++++
Se alguem souber ajudar me ajuda
ps:Adorei o tutorial so teu fan d++++++++++
peixoto- Games Ranking :
Notas recebidas : D
Data de inscrição : 14/02/2010
Reputação : 3
Número de Mensagens : 911
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]connecção simples com 39DLL
peixoto escreveu:Tenho uma duvida:Como fasso para ter mais de 2 jogadores numa mesma room?Quando tentei 3 jogadores, apareceu dois numa room e um numa outra room '-'
Se alguem souber ajudar me ajuda
ps:Adorei o tutorial so teu fan d++++++++++
acho que é isso,tente mudar 2 para outro numero
global.LISTEN=tcp_listen(8210,2);//isso faz o seu computador "ouvir" esperar qualquer ip que se conecte à porta 8210
//2 sera o numero maximo de jogadores
Se alguem souber ajudar me ajuda
ps:Adorei o tutorial so teu fan d++++++++++
acho que é isso,tente mudar 2 para outro numero
global.LISTEN=tcp_listen(8210,2);//isso faz o seu computador "ouvir" esperar qualquer ip que se conecte à porta 8210
//2 sera o numero maximo de jogadores
Thyago- Games Ranking :
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: [Tutorial]connecção simples com 39DLL
Erro no evento de Draw do obj_control na linha 27:
- Código:
if (room==room_menu)//checa se estiver na room_menu
{
//isso cria um botão e checa se ele foi pressionado
if (gui_button("host",10,10,128,32,"entrar no jogo como server")==gui_left_pressed)
{
//vamos usar a porta 8210, você pode usar qualquer porta, que não esteja sendo usada.
global.LISTEN=tcp_listen(8210,2);//isso faz o seu computador "ouvir" esperar qualquer ip que se conecte à porta 8210
//2 sera o numero maximo de jogadores
room_goto(room_server);//ir para a room_server, que iremos criar em breve
global.host=true;//então sera o host
};
if (gui_button("jogador",10,48,128,32,"entrar no jogo como jogador")==gui_left_pressed)
{
//essa função tentara se conectar com o servidor
//o primeiro argumento é o ip do servidor
//o segundo argumento é a porta que o servidor estara escutando
global.SERVIDOR=tcp_connect(get_string("digite o ip do servidor:","127.0.0.1"),8210);
if (!global.SERVIDOR)//checa se ñ conseguiu se conectar
show_message("error after try connect on server");else
{//então ira para room do jogo
room_caption="Server";
room_goto(room_game);
}
};
}else<br>if (room==room_server)//checa se estiver na room onde o servidor ira esperar o jogador
{
draw_text(10,10,"esperando o jogador!");
jogador=tcp_accept(global.LISTEN);//prepara para aceitar o jogador
if ( jogador)//se o jogador "bater na porta" x3
{
global.JOGADOR=jogador;//guarda a id do jogador para trocar mensagens
room_caption="Jogador";
room_goto(room_game);
}
};
Re: [Tutorial]connecção simples com 39DLL
Que bom (que ao menos parece) que estão voltando com tutoriais que ajudem jogos MMORPG/online.
Esse tutorial poderia ser útil no meu projeto(se eu fosse mais experiente )
Muito bom tutorial !
Esse tutorial poderia ser útil no meu projeto(se eu fosse mais experiente )
Muito bom tutorial !
peixoto- Games Ranking :
Notas recebidas : D
Data de inscrição : 14/02/2010
Reputação : 3
Número de Mensagens : 911
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Bom
Gostei bem rapido e pratico
natanael3d_@hotmail.com- Data de inscrição : 21/03/2013
Reputação : 0
Número de Mensagens : 5
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» MC Tutorial Simples - Arkanoid - Pedra de prata
» [tutorial]pixel art simples
» MC Tutorial Simples - Arkanoid - Dificuldade
» [MC] Tutorial - Menu de pausa simples
» [Tutorial] IA simples de inimigo (estilo RPG)
» [tutorial]pixel art simples
» MC Tutorial Simples - Arkanoid - Dificuldade
» [MC] Tutorial - Menu de pausa simples
» [Tutorial] IA simples de inimigo (estilo RPG)
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|