Usando Packets No Mice
:: FLASH ZONE :: Tutoriais
Página 1 de 1
Usando Packets No Mice
Tutorial - Ensinando a usar a packets no Transformice - Parte 1.
Lembrando que:
Packet é a mesma coisa que data.
C é a mesma coisa que eventToken1.
CC é a mesma coisa que eventToken2.
Antes de tudo, iremos usar uma função chamada struct que é importada no começo da source.
Bom então vamos lá. Vamos supor que eu achei um packet que eu gostei no site [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] e queira usa-lo no Lua do Transformice.
Vamos supor que o packet seja esse:
Iremos fazer para esse packet acima, que faz aparecer no chat que uma pessoa subiu de nível, funcione..
1 Tokens (C, CC)
Nesse caso, as tokens são 24 (eventToken1) e 2 (eventToken2), mais isso significa que eu posso usar simplesmente self.sendData("\x24\x02", [], True) ? Não.
Quando um número da tabela C ou CC é acima de 10 Não usamos mais \x01, \x05, \x09, etc... Para saber qual token devo usar, é recomendado usar a função print com repr echr.
Como posso fazer isso? Simples... Coloque isso no Lua: print repr(chr('24')) Lembrando que 24 é o número que está no kikoo.formice.com. No caso desse packet que iremos fazer é 24 mesmo.
O resultado vai sair em um print no python, no caso, o resultado foi \x18.
Para quem não quer fazer isso, irei deixar uma tabela no final desse post.
Bom, no caso já temos as tokens, que são \x18\x02 agora iremos ir pro passo 2.
2 Data.
A data é o formato do packet que vai ser enviado ao client, ou seja, precisamos formar uma data de acordo com o que está no kikoo.formice.com. Como iremos fazer isso ?
Veja que o formato recebido é name (string) e level (byte) então iremos fazer um formato usando isso, vale lembrar que:
String é um texto.
Byte é um número (integer) usado com struct.pack.
Vamos começar a montar a data.
Bom, vamos supor que o meu nome no jogo seja Weeslleey. Então como vou fazer para formar a data ? Bom, sempre quando uma data recebe string antes é necessário um len do nome.
Mais como assim ?
iremos usar a função len(self.username) para começar a formar a data.
No começo de tudo, coloque data = "" no começo do seu Lua
depois teremos que dar pack com short ou seja h no tamanho do nome do usuário, ou seja, len(self.username) e adicionar a data. Nosso código vai ficar assim:
data = ""
data = data + struct.pack("!h", len(self.username))
depois vem a string que é o nome de usuário, quando for uma string, ela é adicionada do jeito que tá a data, ao contrario dos números. Ou seja, nosso código vai ficar assim:
data = ""
data = data + struct.pack("!h", len(self.username))
data = data + self.username
depois vem o byte ou seja b que é o nível que o usuário se encontra no momento, vamos supor que ele seja nível 29, então nossa data fica assim:
data = ""
data = data + struct.pack("!h", len(self.username))
data = data + self.username
data = data + struct.pack("!b", 28)
se dermos um repr na data, iremos notar que ela fica assim: \x00\tWeeslleey\x1c
Bom, agora já temos as Tokens e a Data agora iremos fazer para enviar ao client. Mais como ? Iremos usar self.sendData(Tokens + Data, [], True) ou seja self.sendData("\x18\x02" + data, [], True)
Nosso código do Lua final vai ser:
data = ""
data = data + struct.pack("!h", len(self.username))
data = data + self.username
data = data + struct.pack("!b", 28)
self.sendData("\x18\x02" + data, [], True)
Resultado:
Bom, isso é tudo por essa parte. Na parte 2 irei ensinar alguns outros packets do kikoo.formice.com diferentes, e na 3 irei ensinar a usar struct.unpack e também irei colocar a tabela que eu falei logo acima...
Lembrando que:
Packet é a mesma coisa que data.
C é a mesma coisa que eventToken1.
CC é a mesma coisa que eventToken2.
Antes de tudo, iremos usar uma função chamada struct que é importada no começo da source.
Bom então vamos lá. Vamos supor que eu achei um packet que eu gostei no site [Tens de ter uma conta e sessão iniciada para poderes visualizar este link] e queira usa-lo no Lua do Transformice.
Vamos supor que o packet seja esse:
Iremos fazer para esse packet acima, que faz aparecer no chat que uma pessoa subiu de nível, funcione..
1 Tokens (C, CC)
Nesse caso, as tokens são 24 (eventToken1) e 2 (eventToken2), mais isso significa que eu posso usar simplesmente self.sendData("\x24\x02", [], True) ? Não.
Quando um número da tabela C ou CC é acima de 10 Não usamos mais \x01, \x05, \x09, etc... Para saber qual token devo usar, é recomendado usar a função print com repr echr.
Como posso fazer isso? Simples... Coloque isso no Lua: print repr(chr('24')) Lembrando que 24 é o número que está no kikoo.formice.com. No caso desse packet que iremos fazer é 24 mesmo.
O resultado vai sair em um print no python, no caso, o resultado foi \x18.
Para quem não quer fazer isso, irei deixar uma tabela no final desse post.
Bom, no caso já temos as tokens, que são \x18\x02 agora iremos ir pro passo 2.
2 Data.
A data é o formato do packet que vai ser enviado ao client, ou seja, precisamos formar uma data de acordo com o que está no kikoo.formice.com. Como iremos fazer isso ?
Veja que o formato recebido é name (string) e level (byte) então iremos fazer um formato usando isso, vale lembrar que:
String é um texto.
Byte é um número (integer) usado com struct.pack.
Vamos começar a montar a data.
Bom, vamos supor que o meu nome no jogo seja Weeslleey. Então como vou fazer para formar a data ? Bom, sempre quando uma data recebe string antes é necessário um len do nome.
Mais como assim ?
iremos usar a função len(self.username) para começar a formar a data.
No começo de tudo, coloque data = "" no começo do seu Lua
depois teremos que dar pack com short ou seja h no tamanho do nome do usuário, ou seja, len(self.username) e adicionar a data. Nosso código vai ficar assim:
data = ""
data = data + struct.pack("!h", len(self.username))
depois vem a string que é o nome de usuário, quando for uma string, ela é adicionada do jeito que tá a data, ao contrario dos números. Ou seja, nosso código vai ficar assim:
data = ""
data = data + struct.pack("!h", len(self.username))
data = data + self.username
depois vem o byte ou seja b que é o nível que o usuário se encontra no momento, vamos supor que ele seja nível 29, então nossa data fica assim:
data = ""
data = data + struct.pack("!h", len(self.username))
data = data + self.username
data = data + struct.pack("!b", 28)
se dermos um repr na data, iremos notar que ela fica assim: \x00\tWeeslleey\x1c
Bom, agora já temos as Tokens e a Data agora iremos fazer para enviar ao client. Mais como ? Iremos usar self.sendData(Tokens + Data, [], True) ou seja self.sendData("\x18\x02" + data, [], True)
Nosso código do Lua final vai ser:
data = ""
data = data + struct.pack("!h", len(self.username))
data = data + self.username
data = data + struct.pack("!b", 28)
self.sendData("\x18\x02" + data, [], True)
Resultado:
Bom, isso é tudo por essa parte. Na parte 2 irei ensinar alguns outros packets do kikoo.formice.com diferentes, e na 3 irei ensinar a usar struct.unpack e também irei colocar a tabela que eu falei logo acima...
:: FLASH ZONE :: Tutoriais
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos