quarta-feira, 14 de março de 2012

Aula 02 - Conhecendo as principais funções

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).

SendClientMsg();
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