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

📄 server.h

📁 WYD Server 753 (Development)
💻 H
字号:
/* by My Destiny Team */

#ifndef __GAMESERVER_SERVER_H__
#define __GAMESERVER_SERVER_H__

#include <base.h>#include <vector>

#include "sockets.h"
#include "Main.h"#include "client.h"
// Lista dos nomes dos personagens basesextern const char *nameBase[MAX_CHARBASE];#define ACCOUNT 1#define CHARACTER 2struct sAccountList {    char name[16];    u16 gsIndex;    u16 clientID;};// Def Language#define MAX_LANGUAGE 26#define ACCOUNT_NOTFOUND 0#define MAXCLIENTLIST 1#define IPNOTFOUND 2#define CLIENTCONNECTED 3#define CLIENTDISCONNECTED 4#define LOADEDFILE 5#define ERRORLOADED 6#define INITSERVER 7#define CLOSINGCLIENTTIME 8#define SENDFAILED 9#define BADPACKET 10#define DBNOTCONNECTED 11#define DBCONNECTED 12#define LOADING 13#define ERRORINIT 14#define PASSWORDWRONG 15#define PASS3TIMES 16#define ACCOUNTBANNED 17#define BANNED2LOGIN 18#define ERRORCREATESLOT 19#define ERRORCREATECHAR 20#define ERRORCREATEACC 21#define ERRORCREATEFILE 22#define ERRORDELETESLOT 23#define ERRORDELETECHAR 24#define GENERALERROR 25using namespace std;
class cServer : public cSocket
{
public:
    cServer();
    ~cServer();

    // Inicia o servidor    //    // Retorna false se ocorreu um erro    // Retorna true se o servidor foi iniciado
    bool Init();
    // Le o arquivo de configuração do personagem ou npc    void ReadCharacter(const char *file, sCharacter *ptrchar);
    // Recebe o primeiro pacote do client
    //
    // Retorna false se o client nao enviou o hello packet
    // Retorna true se o client foi logado com sucesso
    virtual bool Login(sSocket &sSock);

    // Trata o pacote recebido    //    // Retorna false se o pacote eh invalido    // Retorna true se o pacote eh valido
    void ReceivedPacket(sSocket &sSock, pHeader *pServer);    // Deleta o socket da lista    void DeleteSocket(s32 id);
    // Deleta o socket da lista
    virtual void DeleteSocket(sSocket &sSock);
    // Le o arquivo de idiomas    //    // Retorna false se ocorreu um erro    // Retorna true se leu com sucesso    bool ReadLanguage();    // Abre o arquivo da conta ou do personagem    //    // Retorna NULL se nao foi possivel abrir o arquivo    // Retorna o ponteiro do arquivo se abriu com sucesso    FILE* OpenFile(char *name, const char *s, u32 x);    // Retorna o diretorio completo da conta/personagem    const char* GetFileDir(char *name, u32 x);    // Adiciona um novo client na lista de conectados    void AddAccount(sAccountList *_acc);    // Verifica se o client esta na lista    sAccountList* ContainsAccount(const char *name);    // Procura e deleta o client da lista    void DeleteAccount(u16 gsindex, s16 clientid);    // Retorna a mensagem    const char *GetMessage(u32 id) const;    // Server Configuration    u32 srvIndex;    u16 currUser;    char srvList[10][16];    char adminList[10][16];
private:
    // Init Functions
    bool ReadConfig();    bool ReadServerList();    bool ReadAdminList();
    // Functions    s32 GetServerIndex(const char *ip);    s32 GetAdminIndex(const char *ip);    // Server Data    u32 accListSize;    sAccountList *accList[10][FD_SETSIZE];    char *language[MAX_LANGUAGE];
    // Buffer
    char buf[1024];    char cmd[16], val[16];
};
// Informacoes do servidor
extern cServer Server;
#endif // __GAMESERVER_SERVER_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -