亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? packets.cpp

?? WYD Server 753 (Development)
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
    // Header    pGS_5h *charPacket = (pGS_5h*)buf;    charPacket->Header.packetSize = sizeof(pGS_5h);    charPacket->Header.opCode = 0x005;    charPacket->Header.clientID = pServer->Header.clientID;    charPacket->isReSend = true;    charPacket->charinfo = pServer->charinfo;    // Le todos os personagens do client    fread(charPacket->Character, sizeof(sCharacter), 4, fp);    // Envia o pacote para mandar o client para o char list    cClient::Send(sSock, charPacket, sizeof(pGS_5h));    // Retorna o valor original da cidadania    bchar->Equip[0].EFV3 = bCitizen;    fclose(fp);}// Deleta o personagemvoid cPacket::RequestDeleteChar(sSocket &sSock, pDB_6h *pServer){    // Preven?ao contra o crash    pServer->charindex &= 3;    // Verifica se existe um personagem neste slot    if((pServer->charinfo & (1 << pServer->charindex)) == 0)    { // Nao existe personagem neste slot        SendServerMessage(sSock, pServer->Header.clientID,            Server.GetMessage(ERRORDELETESLOT));        return ;    }    FILE *fp = Server.OpenFile(pServer->charname, "rb", CHARACTER);    if(fp == NULL)    { // Nao foi possivel encontrar o arquivo do personagem        SendServerMessage(sSock, pServer->Header.clientID,            Server.GetMessage(GENERALERROR), "RequestDeleteChar/Charname");        return ;    }    fread(buf, 16, 1, fp);    fclose(fp);    if(strcmp(buf, pServer->username) != 0)    { // Este personagem nao é desta conta        SendServerMessage(sSock, pServer->Header.clientID,            Server.GetMessage(GENERALERROR), "RequestDeleteChar/Username");        return ;    }    fp = Server.OpenFile(pServer->username, "r+b", ACCOUNT);    if(fp == NULL)    { // Nao foi possivel encontrar a conta do client        SendServerMessage(sSock, pServer->Header.clientID,            Server.GetMessage(ERRORCREATEACC), pServer->username);        return ;    }    // Modifica a variavel que sera escrita no arquivo    *(u32*)buf = 0;    // Vai para o offset do personagem que sera deletado    fseek(fp, sizeof(sAccount) + (sizeof(sCharacter) * pServer->charindex), SEEK_SET);    // Zera somente o inicio do nome    fwrite(buf, sizeof(u32), 1, fp);    fseek(fp, sizeof(sAccount), SEEK_SET);    // Deleta o personagem na informacao da conta    pServer->charinfo ^= (1 << pServer->charindex);    // Header    pGS_5h *charPacket = (pGS_5h*)buf;    charPacket->Header.packetSize = sizeof(pGS_5h);    charPacket->Header.opCode = 0x005;    charPacket->Header.clientID = pServer->Header.clientID;    charPacket->isReSend = true;    charPacket->charinfo = pServer->charinfo;    // Le todos os personagens do client    fread(charPacket->Character, sizeof(sCharacter), 4, fp);    fclose(fp);    // Envia o pacote para mandar o client para o char list    cClient::Send(sSock, charPacket, sizeof(pGS_5h));    if(remove(Server.GetFileDir(pServer->charname, CHARACTER)) != 0)    { // Erro ao deletar o arquivo do personagem        SendServerMessage(sSock, pServer->Header.clientID,            Server.GetMessage(ERRORDELETECHAR));        return ;    }}// Manda as informacoes do personagemvoid cPacket::RequestEnterGame(sSocket &sSock, pDB_7h *pServer){    // Preven?ao contra o crash    pServer->charindex &= 3;    // Verifica se existe um personagem neste slot    if((pServer->charinfo & (1 << pServer->charindex)) == 0)    { // Nao existe personagem neste slot        SendServerMessage(sSock, pServer->Header.clientID,            Server.GetMessage(GENERALERROR), "RequestEnterGame/CharInfo");        return ;    }    // Abre o arquivo da conta do client    FILE *fp = Server.OpenFile(pServer->username, "r+b", ACCOUNT);    if(fp == NULL)    { // Nao foi possivel encontrar a conta do client        SendServerMessage(sSock, pServer->Header.clientID,            Server.GetMessage(ERRORCREATEACC), pServer->username);        return ;    }    // Vai para o offset do personagem    fseek(fp, sizeof(sAccount) + (sizeof(sCharacter) * pServer->charindex), SEEK_SET);    // Header    pGS_6h *charPacket = (pGS_6h*)buf;    charPacket->Header.packetSize = sizeof(pGS_6h);    charPacket->Header.opCode = 0x006;    charPacket->Header.clientID = pServer->Header.clientID;    charPacket->charIndex = pServer->charindex;    // Le as informacoes do personagem    fread(&charPacket->Character, sizeof(sCharacter), 1, fp);    fclose(fp);    // Envia o pacote para mandar o client para o jogo    cClient::Send(sSock, charPacket, sizeof(pGS_6h));}
// Salva as informacoes do personagem
void cPacket::RequestSaveCharacter(sSocket &sSock, pDB_8h *pServer)
{
    // Preven?ao contra o crash
    pServer->charIndex &= 3;

    // Abre o arquivo da conta do client
    FILE *fp = Server.OpenFile(pServer->userName, "r+b", ACCOUNT);
    if(fp == NULL)
    { // Nao foi possivel encontrar a conta do client
        Log(WARN, "OpenFile failed in cPacket::RequestSaveCharacter.");
        return ;
    }

    // Vai para o offset do personagem
    fseek(fp, sizeof(sAccount) + (sizeof(sCharacter) * pServer->charIndex), SEEK_SET);

    // Escreve as informacoes do personagem
    fwrite(&pServer->Character, sizeof(sCharacter), 1, fp);
    fclose(fp);

    Log(INFO, "Save Character [%s].", pServer->Character.Name);
}

// Salva as informacoes da conta e do personagem
void cPacket::RequestSaveAccountAndCharacter(sSocket &sSock, pDB_9h *pServer)
{
    // Preven?ao contra o crash
    pServer->charindex &= 3;

    FILE *fp = Server.OpenFile(pServer->account.Username, "r+b", ACCOUNT);
    if(fp != NULL)
    { // Escreve a conta no arquivo do client
        fwrite(&pServer->account, sizeof(sAccount), 1, fp);

        // Vai para o offset do personagem
        fseek(fp, sizeof(sCharacter) * pServer->charindex, SEEK_CUR);

        // Escreve as informacoes do personagem
        fwrite(&pServer->character, sizeof(sCharacter), 1, fp);
        fclose(fp);

        // Deleta a conta dos usuarios conectados
        Server.DeleteAccount(sSock.clientID, pServer->Header.clientID);

        Log(INFO, "Save Account [%s] and Character [%s].",
            pServer->account.Username, pServer->character.Name);
    }
    else
    { // Nao foi possivel abrir o arquivo da conta
        Log(INFO, "check INVALID USERNAME: \"%s\"", pServer->account.Username);
    }
}
// Envia o log para o servidor
void cPacket::SendLogMessage(sSocket &sSock, const char *str, ...)
{    // Header
    pGS_1h *pServer = (pGS_1h*)buf2;
    pServer->Header.packetSize = sizeof(pGS_1h);
    pServer->Header.opCode = 0x001;
    pServer->Header.clientID = INVALID_ID;
    // Escreve a mensagem
    va_list pArgList;
	va_start(pArgList, str);
	vsprintf(pServer->strMessage, str, pArgList);
	va_end(pArgList);
    // Envia o pacote do log
	cClient::Send(sSock, pServer, sizeof(pGS_1h));
}

// Envia o log para o servidorvoid cPacket::SendServerMessage(sSocket &sSock, u32 clientID, const char *str, ...){    // Header    pGS_2h *pServer = (pGS_2h*)buf2;    pServer->Header.packetSize = sizeof(pGS_2h);    pServer->Header.opCode = 0x002;    pServer->Header.clientID = clientID;    // Escreve a mensagem    va_list pArgList;	va_start(pArgList, str);	vsprintf(pServer->strMessage, str, pArgList);	va_end(pArgList);    // Envia o pacote da mensagem	cClient::Send(sSock, pServer, sizeof(pGS_2h));}// Desconecta o client no servidorvoid cPacket::SendDisconnectClient(sSocket &sSock, u32 clientID){    // Header    pGS_3h *pServer = (pGS_3h*)buf2;    pServer->Header.packetSize = sizeof(pGS_3h);    pServer->Header.opCode = 0x003;    pServer->Header.clientID = clientID;    // Envia o pacote para desconectar o client	cClient::Send(sSock, pServer, sizeof(pGS_3h));}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九色porny丨国产精品| 成人av动漫在线| 欧美激情资源网| 在线成人高清不卡| av资源站一区| 九九九精品视频| 午夜久久久影院| 亚洲视频狠狠干| 国产精品婷婷午夜在线观看| 日韩午夜小视频| 欧美日韩视频在线观看一区二区三区| 成人激情免费电影网址| 老司机免费视频一区二区 | 26uuu国产日韩综合| 在线亚洲一区观看| 99久久久精品免费观看国产蜜| 久久er99精品| 日韩在线一区二区三区| 亚洲一区二区视频| |精品福利一区二区三区| 久久精品一区二区| 精品久久久久99| 日韩欧美一区二区免费| 91 com成人网| 欧美日韩激情一区二区三区| 欧美午夜在线观看| 91黄视频在线观看| 91久久精品网| 欧美曰成人黄网| 欧美美女视频在线观看| 欧美影视一区在线| 欧美日韩一区二区三区在线| 欧美午夜精品久久久久久超碰 | 91久久精品一区二区| 91网站最新地址| 97精品电影院| 97精品超碰一区二区三区| 不卡电影免费在线播放一区| 国产凹凸在线观看一区二区| 国产麻豆9l精品三级站| 国产精品12区| 波多野结衣在线一区| 成人97人人超碰人人99| 99久久精品99国产精品| 91色乱码一区二区三区| 在线精品国精品国产尤物884a| 97久久精品人人做人人爽50路| 波多野结衣视频一区| 91在线国产福利| 色婷婷av一区二区三区大白胸| 在线精品视频免费播放| 欧美年轻男男videosbes| 亚洲人成伊人成综合网小说| 国产黑丝在线一区二区三区| 国产一区二区成人久久免费影院| 国产一区二区不卡在线| 成人av在线影院| 91小视频在线观看| 欧美精品自拍偷拍| 精品99一区二区| 国产精品高清亚洲| 亚洲五码中文字幕| 久久精品国产一区二区三 | 亚州成人在线电影| 免费在线一区观看| 国产成人精品一区二区三区四区 | 蜜桃av一区二区三区| 韩国毛片一区二区三区| av欧美精品.com| 欧美日韩卡一卡二| 国产欧美日韩中文久久| 一区二区三区波多野结衣在线观看 | 欧美日韩国产成人在线91 | 亚洲欧美乱综合| 日本美女一区二区三区| 高清国产一区二区三区| 色婷婷综合久久久久中文| 3d动漫精品啪啪| 国产日韩欧美a| 午夜精品影院在线观看| 国产乱码精品一品二品| 91官网在线免费观看| 精品999在线播放| 亚洲一区二区四区蜜桃| 国内精品久久久久影院一蜜桃| 91老师片黄在线观看| 26uuu久久天堂性欧美| 亚洲韩国一区二区三区| 国产91精品在线观看| 欧美日韩电影在线播放| 国产日产欧美一区二区视频| 五月婷婷色综合| 成人高清伦理免费影院在线观看| 欧美日韩二区三区| 亚洲人成精品久久久久久| 久久国产精品一区二区| 在线欧美日韩精品| 国产精品久久久一本精品| 久久精品国产一区二区| 欧美三级一区二区| 日韩码欧中文字| 福利一区二区在线观看| 欧美大片免费久久精品三p| 亚洲精品国产视频| 成人午夜短视频| 日韩三级在线观看| 亚洲成人黄色影院| 一本到高清视频免费精品| 欧美国产亚洲另类动漫| 韩国av一区二区三区| 欧美一区二区三区人| 亚洲综合视频网| 91麻豆国产精品久久| 国产精品国产自产拍高清av| 精品亚洲国产成人av制服丝袜| 欧美日韩高清在线播放| 亚洲午夜久久久久久久久电影网| www..com久久爱| 中文字幕在线一区二区三区| 成人午夜激情视频| 国产日韩一级二级三级| 国内成人免费视频| 精品久久久久久综合日本欧美| 奇米精品一区二区三区在线观看 | av激情亚洲男人天堂| 久久久久久久综合日本| 国产资源精品在线观看| 欧美大片一区二区| 麻豆国产精品一区二区三区 | 亚洲人成伊人成综合网小说| 国产盗摄视频一区二区三区| 精品毛片乱码1区2区3区| 精一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 久久精品国产999大香线蕉| 欧美哺乳videos| 国产毛片精品视频| 中文字幕欧美日本乱码一线二线| 国产精品一级黄| 国产欧美精品区一区二区三区 | 久久99久久99精品免视看婷婷 | 91精品国产色综合久久不卡蜜臀 | 久久精品欧美一区二区三区麻豆| 国内精品久久久久影院一蜜桃| 久久久综合精品| 成人精品一区二区三区四区| 亚洲丝袜制服诱惑| 91福利视频网站| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美久久一二区| 日本va欧美va精品发布| 26uuu国产日韩综合| 国产成人在线视频播放| 国产精品免费视频观看| 色偷偷一区二区三区| 婷婷中文字幕综合| 欧美v亚洲v综合ⅴ国产v| 成人中文字幕在线| 亚洲九九爱视频| 日韩一区二区三区电影| 丁香另类激情小说| 亚洲一区视频在线观看视频| 91精品国产手机| 丰满亚洲少妇av| 亚洲国产aⅴ成人精品无吗| 日韩一区二区三区电影 | 色综合天天综合网天天狠天天| 亚洲国产精品久久久男人的天堂 | 欧美中文字幕一区二区三区亚洲| 午夜精品一区二区三区免费视频| 精品久久久网站| 99国产精品国产精品毛片| 日韩成人精品在线观看| 精品福利一二区| 色综合网站在线| 激情文学综合丁香| 一区二区三区蜜桃网| 欧美大胆人体bbbb| 色婷婷av一区二区三区之一色屋| 免费成人性网站| 亚洲精品午夜久久久| 精品精品国产高清a毛片牛牛| 91在线视频18| 久久精品国产久精国产| 亚洲女爱视频在线| 久久精品亚洲乱码伦伦中文| 欧美性xxxxxxxx| 高清shemale亚洲人妖| 丝袜亚洲另类欧美| 综合色中文字幕| 欧美mv日韩mv| 欧美在线影院一区二区| 国产不卡视频在线观看| 青青草原综合久久大伊人精品| 亚洲人成电影网站色mp4| 久久综合av免费| 91麻豆精品国产91久久久久久| 91色九色蝌蚪| 国产99久久久国产精品潘金网站| 日本欧美一区二区三区乱码|