Aula 02 - Principais funções
O WYD é composto por diversas funções. Algumas são inevitáveis seu uso e outras são usadas poucas vezes. As funções aqui apresentadas são já da TMSRV. O que a DLL faz é dar um "push" (assembly) na função interna da TMSRV que já está pronta. Para você dar o "push" em uma função que já está pronta, você deve utilizar o Func.cpp utilizando assembly juntamente com o arquivo "TMSRV.map". Isso não vem ao caso agora.
Observação importante
No decorrer das aulas, você verá muito o clientid. "Clientid" nada mais é que o id do personagem no jogo. Eles vão de 1~127 (limite interno da TMSRV). Para obter o clientid do personagem, basta pegar no packet utilizado (byte 6, caso mais avançado, nas aulas futuras eles já vão vir, e em outras você terá que pegar).
Provavelmente a função que todo mundo conhece. Quem não conhece ela certamente nunca viu uma source de WYD.
Seu nome explica tudo. Tem como função mandar uma mensagem para o player indicado (clientid).
Seus argumentos são:
SendClientMsg(int clientid, char *msg);
Teleportar();
Esse comando tem seu nome como explicação. O que ele faz é teleportar um player para a posição indicada.
Você já deve ter estudado na escola o que é "Plano Cartesiano". Plano cartesiano é um esquema para especificar pontos num determinado espaço. No caso do WYD, os limites máximos são: (4096;4096). Caso você ultrapasse os limites, acarretará no erro: Critical Data Error In Client que é quando não há nada nas coordenadas citadas.
E se você não sabe o que são o "x" e "y" observe a imagem:
Eixo X (eixo das abscissas): horizontal
Eixo Y (eixo das ordenadas): vertical
Com os valores dos dois eixos, obtemos um ponto. No caso da imagem ao lado:
(1;4) (1;5) (2;4) (2;5) (3;4) (3;5)
Se você pesquisar na internet sobre isso, encontrará valores negativos tanto pra X quanto para Y (quadrantes dois, três e quatro). Isso não acontece no WYD. Você por um acaso já viu a posição (-2100;-2100)? Seria a Armia Infernal?
Seus argumentos são:
Teleportar(int clientid, int posx, int posy);
SendSay();
Tem basicamente a mesma função do "SendClientMsg();" porém, ao invés de mandar mensagem para o client, ele manda através do chat. Seria como se você, ou um NPC, digitasse uma mensagem e mandasse pelo chat. Seus argumentos são:
SendSay(int id, char *msg);
SendAll();
Função é atualizar várias informações do personagem. Só tem um argumento.
PS: Sempre que utilizar, o inventário será aberto automaticamente.
Seus argumentos são:
SendAll(int clientid);
SendNotice();
Manda uma mensagem para todos do servidor. Não precisa de clientid. Não tem muito o que explicar.
SendNotice(char *msg);
SendCharList();
Manda o personagem para a tela de personagem.
SendCharList(clientid);
Finalizando
Esses são os comandos mais utilizados dentro da programação do WYD. Caso você ache que um deve ser adicione aqui, entre em contato.
Atenciosamente, Shepher.
Nenhum comentário:
Postar um comentário