[Tutorial] 39dll Tutorial - Part II(Final)

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

[Tutorial] 39dll Tutorial - Part II(Final)

Mensagem por !!Game Play!! em Sab 16 Mar 2013, 23:25

39dll Tutorial Part II(Final)

Luke Escude




Descrição : Eu achei este tutorial sobre a 39dll no site da gmc (forum de game maker da yoyogames) , então resolvi traduzi-la e postar aqui no fórum pra ver se ajudam os usuários a entender melhor sobre esta dll , eu ainda não testei , mas pelos comentários , parece ser bom !

Part II(Final) do tutorial sobre 39dll traduzido feito pelo Luke Escude que disponibilizou este tutorial para todos!

Obs:Tutorial traduzido ,comentários das engines traduzidas , menos as imagem , voçes mesmo terão que traduzi-las

Nível de dificuldade: Avançado

Game Maker : GM7 GM8 (Não testado em outros game maker's pelo o que eu sei)

Tutorial Original: http://www.lukeescude.com/online-tutorial/






6. Gravar, e leitura de uma mensagem


Um bom conjunto de comandos existe para gravar dados, como bytes, strings, etc, para uma mensagem, e depois de ler os dados da mensagem. Se você enviar uma mensagem sobre o cliente, você pode usar os comandos de gravação para gravar dados a ele, em seguida, enviá-lo. Em seguida, o servidor lê-lo usando os comandos de leitura.

Spoiler:
Escrever Comandos
WriteByte (número, de 0 a 255)
WriteString (A seqüência de caracteres entre "aspas")
writeInt (um inteiro)
writeDouble (número com decimal, muito preciso)
A diferença entre um Double e float, é Double são mais precisos,
writeFloat (número com decimal, regular) eles têm números muito mais à direita do decimal

Ler Comandos
ReadByte () - Retorna um inteiro
ReadString () - Retorna uma string
readInt () - Retorna um inteiro
readDouble () - Retorna um float
readfloat () - Retorna um float


Estes são apenas os típicos de leitura / gravação comandos. Há vários outros, como longs e ushorts, mas aqueles que não são necessários para você memorizar. Apenas estas as mais básicas até aqui. Usando os comandos de gravação, você pode escrever seus dados para uma mensagem, em seguida, enviá-lo para o lado de recepção. Ambos os comandos de gravação e os comandos de ler o trabalho, tanto o cliente e o servidor.


7. Enviando a mensagem



O envio da mensagem é bastante simples, uma vez que você tem todos os seus dados gravados. Lembra da ID da TCP de cada objeto jogador no servidor? Esse ID representa o cliente específico ligado a ele. Isso é para o servidor.
Por outro lado, no cliente, uma vez que estabelece uma ligação com o servidor, ele armazena a ID de TCP em uma variável, global.tcp.
Isto significa que, se você é o servidor, e você quiser enviar uma mensagem para o cliente, você usa sendmessage (tcp), enquanto no cliente, para enviar uma mensagem para o servidor, você pode usar SendMessage (global.tcp). Mais detalhadamente abaixo.

Spoiler:
clearbuffer ()
WriteByte (0)
sendmessage (global.tcp)
-ou-sendmessage (tcp)

O comando clearbuffer () deve ser chamado quando você está a escrevendo dados de uma mensagem. clearbuffer () limpa a leitura / gravação de buffer. Você não quer que os dados antigos que vão em sua mensagem, não é?

Após o comando clearbuffer () é chamado, em seguida, usar os comandos de gravação para gravar todos os dados que você deseja. Neste caso, a mensagem tem somente um byte, que é o valor é 0.

O comando SendMessage () envia a mensagem para a conexão especificada. No cliente, só pode haver uma ligação, certo? A conexão para o servidor. Então você usa global.tcp (ou qualquer outro nome variável) ... No servidor, uma vez que o ID TCP deve ser local, e não global, você acabou de usar tcp.

NOTA: Eu sei que nós não falamos sobre o cliente ainda, mas estamos chegando lá. Você está quase pronto!


8. O Client


Aqui é onde o jogo atua. O cliente é o que está aberta no computador do usuário. Ele faz apenas uma ligação, para o servidor. Eu tenho uma base de clientes para você que eu criei, é o esqueleto de um cliente, mas é bom trabalhar com uma vez que tem todos os scripts necessários, e objetos.

ClientBase.GMK

Tudo bem, o cliente terá dois objetos usados para a conexão. online_connect, que faz a conexão inicial, e online_receive que vai fazer todos os dados que recebem do servidor. Tem o mesmo switch () da árvore do servidor, porque como para colocar um byte no início da mensagem.

Aqui está o código para o evento de criação do objeto online_connect:

Spoiler:
dllinit(0,true,true); //Necessário init () DLL
global.tcp=tcpconnect("127.0.0.1",5123,1); //Conectar ao endereço IP 127.0.0.1, na porta 5123, não o modo bloqueio on
if global.tcp>0 //Se a ligação for feita ...
{
//conexão bem-sucedida
room_goto_next()
}
else
{
show_message("Não foi possível conectar ao servidor!")
game_end()
}

No código acima, o dllinit () é o mesmo que o servidor. Aqui é a nossa variável global.tcp. Ele está a ser atribuído a ID TCP retornado pelo tcpconnect () função. O primeiro parâmetro para tcpconnect () é o endereço IP do servidor, que é uma cadeia. NOTA: 127.0.0.1 é o mesmo que "localhost". O segundo parâmetro é o número da porta. Isso está definido para 5123, mas deve ser alterado para qualquer porta que o servidor opera. O terceiro parâmetro define o bloqueio para OFF.

Spoiler:
while (1)
{
msize = receiveMessage (global.tcp);
if msize = 0
{
/ / Para fazer quando o servidor desconecta aleatoriamente
show_message ("servidor terminou inesperadamente.")
game_end ()
}
if (msize <= 0) break;
mid = ReadByte ();
switch (mid)
{
case 0:
break;

case 1:
break;
}
/ / Nada abaixo daqui
}


Observe como intimamente relacionado o código Step do cliente é o código do STEP do objeto jogador. Além disso, observe, o comando receiveMessage () tem "global.tcp", em que, em vez do objeto jogador "tcp" nele.
Tudo o resto é fácil de entender se você entendeu o objeto jogador no servidor.


9. Juntando tudo


Você já sabe como configurar um servidor, conectar a ele com um cliente, ler / escrever uma mensagem e enviar a mensagem. Agora, é hora de você colocar tudo junto. Comece simples, não sobrecarregar-se. Esse tipo de coisa leva tempo.

Eu criei uma amostra de bate-papo , servidor e client para que você olhe. Basta iniciar o servidor, minimizá-lo, e lançar dois clientes. Cada cliente representa um usuário, então o que você digita em um cliente é enviada ao servidor, e o servidor repete para todos os clientes. É uma sala de chat.

ChatRoom.RAR




Emfim o tutorial acaba por aqui , espero que tenha ajudado muitos aqui no fórum , é o que eu espero
As vezes arranjo um tempo pra ''fuçar'' o site da Gmc , e qualquer dia desse traduzo mais alguns tutoriais que eu achar interessante ,porque o fórum da gmc tem um conhecimento mais amplo sobre o game maker

então , abrç , ate a próxima pessoal!



39dll Tutorial Online, Lucas Escude, 2010

!!Game Play!!

Número de Mensagens : 159
Idade : 19
Data de inscrição : 24/12/2011
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.blackcubestudio.tkk/

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