⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 packets.h

📁 WYD Server 753 (Development)
💻 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 + -