📄 packets.h
字号:
/* by My Destiny Team */
#ifndef __GAMESERVER_PACKETS_H__
#define __GAMESERVER_PACKETS_H__
#include <base.h>
#include "client.h"
#include "sockets.h"
#define pak buf#define len *(u16*)buf#define ptr(x) (char*)&pServer[x]#define ptr_buf(x) (char*)&buf[x]#define SetByte(val,offset) *(u8*)&buf[offset] = (u8)val#define SetShort(val,offset) *(u16*)&buf[offset] = (u16)val#define SetInt(val,offset) *(u32*)&buf[offset] = (u32)val#define SetString(var,offset) strcpy((char*)&buf[offset], (char*)var)#define SetBytes(val,offset,size) memcpy(&buf[offset], val, size)#define GetByte(offset) *(u8*)&pServer[offset]#define GetShort(offset) *(u16*)&pServer[offset]#define GetInt(offset) *(u32*)&pServer[offset]// Tipos de spawn#define NORMAL_SPAWN 0#define TELEPORT_SPAWN 2// Buffer para escrita dos pacotesextern char buf[8192];
class cPacket
{
public:
cPacket();
~cPacket();
// Verifica e executa o pacote enviado pelo client
void ClientControl(sSocket &sSock, pHeader *pServer);
// Verifica e executa o pacote enviado pela database void DBControl(sSocket &sSock, pHeader *pServer);
// Pacotes recebidos do client
void RequestLogin(cClient *Client, sSocket &sSock, pCL_20Dh *pServer); void RequestCreateChar(cClient *Client, sSocket &sSock, u8 *pServer); void RequestDeleteChar(cClient *Client, sSocket &sSock, u8 *pServer); void RequestEnterGame(cClient *Client, sSocket &sSock, u8 *pServer); void RequestReturnCharList(cClient *Client, sSocket &sSock, u8 *pServer);
// Pacotes enviados para o client
void SendServerMessage(sSocket &sSock, const char *str, ...); void SendCharList(cClient *Client, sCharacter *Character, bool isReSend); void SendCharacter(cClient *Client); void SendSpawn(sCharacter *ptrchar, sPoint &pos, const char *tab, sSocket &sSock, u32 typeOfSpawn);
void SendSkill(sCharacter *ptrchar, sSocket &sSock);
private: // Pacotes recebidos da database void RequestLog(sSocket &sSock, pGS_1h *pServer); void RequestMessage(sSocket &sSock, cClient *Client, pGS_2h *pServer); void RequestDisconnectClient(sSocket &sSock, pGS_3h *pServer); void RequestAccount(sSocket &sSock, cClient *Client, pGS_4h *pServer); void RequestCharList(sSocket &sSock, cClient *Client, pGS_5h *pServer); void RequestCharacter(sSocket &sSock, cClient *Client, pGS_6h *pServer);
};
// Funcoes para o tratamento dos pacotes
extern cPacket Packet;
#endif // __GAMESERVER_PACKETS_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -