Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Usando Packets No Mice

Ir para baixo

 Usando Packets No Mice Empty Usando Packets No Mice

Mensagem por Admin Dom Abr 27, 2014 10:37 pm

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...
Admin
Admin
Administradores
Administradores

Mensagens : 811
Pontos : 2437
Data de inscrição : 12/09/2011

https://cheatswarez.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos