void DBSockMng::Connect() { if (this->wsCDBS[0].GetSocket() == INVALID_SOCKET ) { int State; this->wsCDBS[0].CreateSocket(ghWnd); this->wsCDBS[0].SetProtocolCore(DataServerProtocolCore); State=this->wsCDBS[0].Connect(DataServerIP, DataServerPort, WM_GM_DATA1_CLIENT_MSG_PROC); if (State == 0) { LogAdd(lMsg.Get(MSGGET(1, 147)), DataServerIP, DataServerPort); this->wsCDBS[0].Close(); } else { LogAdd(lMsg.Get(MSGGET(1, 146)), DataServerIP, DataServerPort); this->m_ActiveServer=DS_0; DataServerLogin(DS_0); } } if (this->wsCDBS[1].GetSocket() == INVALID_SOCKET) { int State; this->wsCDBS[1].CreateSocket(ghWnd); this->wsCDBS[1].SetProtocolCore(DataServerProtocolCore); State=this->wsCDBS[1].Connect(DataServerIP2, DataServerPort2, WM_GM_DATA2_CLIENT_MSG_PROC);// Two ports more than the used1 if (State==0) { LogAdd(lMsg.Get(MSGGET(1, 147)), DataServerIP2, DataServerPort2); this->wsCDBS[1].Close(); } else { LogAdd(lMsg.Get(MSGGET(1, 146)), DataServerIP2, DataServerPort2); if (this->m_ActiveServer==-1) { this->m_ActiveServer=DS_1; } DataServerLogin(DS_1); // Second DataServer } } if ( wsExDbCli.GetSocket() == INVALID_SOCKET) { //LogAddC(2, "ExDB Server Check.."); wsExDbCli.CreateSocket(ghWnd); ExDataServerConnect(ExDBServerIP, WM_GM_EXDATA_CLIENT_MSG_PROC); } else { if ( wsExDbCli.GetConnect() == 0 ) { //LogAddC(2, "ExDB Server Check.."); ExDataServerConnect(ExDBServerIP, WM_GM_EXDATA_CLIENT_MSG_PROC); } } }
void DSProtocolCore(int aIndex, DWORD headcode, LPBYTE aRecv, int Len) { // g_ServerInfoDisplayer.SetState(TRUE,gSObj[aIndex].SType); switch( headcode ) { case 0x00: DataServerLogin((LPSDHP_SERVERINFO)aRecv,aIndex); break; case 0x01: JGPGetCharList((LPSDHP_GETCHARLIST)aRecv,aIndex); break; case 0x04: JGCharacterCreateRequest((LPSDHP_CREATECHAR)aRecv,aIndex); break; case 0x05: JGCharDelRequest((LPSDHP_CHARDELETE)aRecv,aIndex); break; case 0x06: JGGetCharacterInfo((LPSDHP_DBCHARINFOREQUEST)aRecv,aIndex); break; case 0x07: GJSetCharacterInfo((LPSDHP_DBCHAR_INFOSAVE)aRecv,aIndex); break; case 0x08: DGGetWarehouseList((LPSDHP_GETWAREHOUSEDB)aRecv,aIndex); break; case 0x09: GDSetWarehouseList((LPSDHP_GETWAREHOUSEDB_SAVE)aRecv,aIndex); break; case 0x11: GDUserItemSave((LPSDHP_DBCHAR_ITEMSAVE)aRecv,aIndex); break; case 0x13: DGGetMonsterKillInfo((LPMSG_REQ_QUESTMONSTERKILLINFO)aRecv,aIndex); break; case 0x14: DGSaveMonsterKillInfo((LPMSG_SAVE_MONSTERKILLINFO)aRecv,aIndex); break; case 0x15: DGSaveQuestExInfo((PMSG_REQ_QUESTEXINFO_SAVE*)aRecv,aIndex); break; case 0x16: DGReqQuestExInfo((PMSG_REQ_QUESTEXINFO*)aRecv,aIndex); break; case 0x40: { PBMSG_HEAD2 * lpDef = (PBMSG_HEAD2 *)aRecv; switch( lpDef->subcode ) { case 0x00: DGRequestServerInfo((PMSG_REQ_GENS_SERVERINFO*)aRecv,aIndex); break; case 0x01: DGRequestGensInfo((PMSG_REQ_GENS_INFO*)aRecv,aIndex); break; case 0x02: DGRequestJoinGens((PMSG_REQ_GENS_JOINREQUEST*)aRecv,aIndex); break; case 0x03: DGSaveGens((PMSG_GENS_INFOSAVE*)aRecv); break; case 0x04: DGRequestLeaveGens((PMSG_REQ_LEAVE_GENS*)aRecv,aIndex); break; } } break; case 0x30: JGGetMasterInfo((LPSDHP_DBMASTERINFOREQUEST)aRecv,aIndex); break; case 0x31: DGSaveMasterInfo((LPMSG_SAVE_MASTERINFO)aRecv,aIndex); break; case 0x52: ItemSerialCreateRecv((LPSDHP_ITEMCREATE)aRecv,aIndex); break; case 0x55: PetItemSerialCreateRecv((LPSDHP_ITEMCREATE)aRecv,aIndex); break; case 0x56: DGRecvPetItemInfo((LPSDHP_REQUEST_PETITEM_INFO)aRecv,aIndex); break; case 0x57: GDSavePetItemInfo((LPSDHP_SAVE_PETITEM_INFO)aRecv,aIndex); break; case 0x60: DGOptionDataRecv((LPSDHP_SKILLKEYDATA)aRecv,aIndex); break; case 0x61: DGMuBotOptionRecv((LPMUBOT_SETTINGS_REQ_SAVE)aRecv,aIndex); break; case 0x80: { PBMSG_HEAD2 * lpDef1 = (PBMSG_HEAD2 *)aRecv; switch(lpDef1->subcode) { case 0x01: DGAnsOwnerGuildMaster((LPCSP_REQ_OWNERGUILDMASTER)aRecv,aIndex); break; case 0x03: DGAnsCastleNpcBuy((LPCSP_REQ_NPCBUY)aRecv,aIndex); break; case 0x04: DGAnsCastleNpcRepair((LPCSP_REQ_NPCREPAIR)aRecv,aIndex); break; case 0x05: DGAnsCastleNpcUpgrade((LPCSP_REQ_NPCUPGRADE)aRecv,aIndex); break; case 0x06: DGAnsTaxInfo((LPCSP_REQ_TAXINFO)aRecv,aIndex); break; case 0x07: DGAnsTaxRateChange((LPCSP_REQ_TAXRATECHANGE)aRecv,aIndex); break; case 0x08: DGAnsCastleMoneyChange((LPCSP_REQ_MONEYCHANGE)aRecv,aIndex); break; case 0x09: DGAnsSiegeDateChange((LPCSP_REQ_SDEDCHANGE)aRecv,aIndex); break; case 0x0A: DGAnsGuildMarkRegInfo((LPCSP_REQ_GUILDREGINFO)aRecv,aIndex); break; case 0x0B: DGAnsSiegeEndedChange((LPCSP_REQ_SIEGEENDCHANGE)aRecv,aIndex); break; case 0x0C: DGAnsCastleOwnerChange((LPCSP_REQ_CASTLEOWNERCHANGE)aRecv,aIndex); break; case 0x0D: DGAnsRegAttackGuild((LPCSP_REQ_REGATTACKGUILD)aRecv,aIndex); break; case 0x0E: DGAnsRestartCastleState((LPCSP_REQ_CASTLESIEGEEND)aRecv,aIndex); break; case 0x0F: DGAnsMapSvrMsgMultiCast((LPCSP_REQ_MAPSVRMULTICAST)aRecv,aIndex); break; case 0x10: DGAnsRegGuildMark((LPCSP_REQ_GUILDREGMARK)aRecv,aIndex); break; case 0x11: DGAnsGuildMarkReset((LPCSP_REQ_GUILDRESETMARK)aRecv,aIndex); break; case 0x12: DGAnsGuildSetGiveUp((LPCSP_REQ_GUILDSETGIVEUP)aRecv,aIndex); break; case 0x16: DGAnsNpcRemove((LPCSP_REQ_NPCREMOVE)aRecv,aIndex); break; case 0x17: DGAnsCastleStateSync((LPCSP_REQ_CASTLESTATESYNC)aRecv,aIndex); break; case 0x18: DGAnsCastleTributeMoney((LPCSP_REQ_CASTLETRIBUTEMONEY)aRecv,aIndex); break; case 0x19: DGAnsResetCastleTaxInfo((LPCSP_REQ_RESETCASTLETAXINFO)aRecv,aIndex); break; case 0x1A: DGAnsResetSiegeGuildInfo((LPCSP_REQ_RESETSIEGEGUILDINFO)aRecv,aIndex); break; case 0x1B: DGAnsResetRegSiegeInfo((LPCSP_REQ_RESETREGSIEGEINFO)aRecv,aIndex); break; } } break; case 0x81: DGAnsCastleInitData((LPCSP_REQ_CSINITDATA)aRecv,aIndex); break; case 0x83: DGAnsAllGuildMarkRegInfo((LPCSP_REQ_ALLGUILDREGINFO)aRecv,aIndex); break; case 0x84: DGAnsFirstCreateNPC((LPCSP_REQ_NPCSAVEDATA)aRecv,aIndex); break; case 0x85: DGAnsCalcRegGuildList((LPCSP_REQ_CALCREGGUILDLIST)aRecv,aIndex); break; case 0x86: DGAnsCsGulidUnionInfo((LPCSP_REQ_CSGUILDUNIONINFO)aRecv,aIndex); break; case 0x87: DGAnsCsSaveTotalGuildInfo((LPCSP_REQ_CSSAVETOTALGUILDINFO)aRecv,aIndex); break; case 0x88: DGAnsCsLoadTotalGuildInfo((LPCSP_REQ_CSLOADTOTALGUILDINFO)aRecv,aIndex); break; case 0x89: DGAnsCastleNpcUpdate((LPCSP_REQ_NPCUPDATEDATA)aRecv,aIndex); break; case 0xB0: DGAnsCrywolfSync((LPCWP_REQ_CRYWOLFSYNC)aRecv,aIndex); break; case 0xB1: DGAnsCrywolfInfoLoad((LPCWP_REQ_CRYWOLFINFOLOAD)aRecv,aIndex); break; case 0xB2: DGAnsCrywolfInfoSave((LPCWP_REQ_CRYWOLFINFOSAVE)aRecv,aIndex); break; case 0xD0: { PBMSG_HEAD2 * lpMsg = (PBMSG_HEAD2 *)aRecv; switch ( lpMsg->subcode ) { case 0x03: DGAnsPeriodItemInsert((LPMSG_REQ_PERIODITEM_INSERT)aRecv,aIndex); break; case 0x05: DGAnsPeriodItemList((LPMSG_REQ_PERIODITEM_LIST)aRecv,aIndex); break; case 0x07: DGAnsPeriodItemUpdate((LPMSG_REQ_PERIODITEM_UPDATE)aRecv,aIndex); break; case 0x09: DGAnsPeriodItemDelete((LPMSG_REQ_PERIODITEM_DELETE)aRecv,aIndex); break; } } break; case 0xA2: DGSummonerCreate((CSHOP_SET_SUMMONER_CREATE*)aRecv); break; case 0xA3: DGExpandRequest((LPCSHOP_SET_EXPANDINVENTORY)aRecv); break; case 0xA4: DGAnsErtelList((LPMSG_REQ_ERTELLIST)aRecv,aIndex); break; case 0xA5: DGSaveErtelList((LPMSG_SAVE_ERTELLIST)aRecv); break; case 0xA6: //-> Custom { PBMSG_HEAD2* lpHead = (PBMSG_HEAD2*)aRecv; switch(lpHead->subcode) { case 0x00: { DGAchievUpdateMonsterData((AchievGDUpdateMonster*)aRecv, aIndex); } break; case 0x01: { DGAchievUpdateEventData((AchievGDUpdateEvent*)aRecv, aIndex); } break; case 0x02: { DGAchievUpdateMixData((AchievGDUpdateMix*)aRecv, aIndex); } break; } } break; case 0xEF: { PBMSG_HEAD2* lpHead = (PBMSG_HEAD2*)aRecv; // ---- switch(lpHead->subcode) { case 0x00: DGPartyMatchRegister((LPMSG_PARTYMATCHING_REG_REQ)aRecv,aIndex); break; case 0x01: DGPartyMatchInfo((LPMSG_PARTYMATCHING_INFO_REQ)aRecv,aIndex); break; case 0x02: DGPartyMatchJoin((LPMSG_PARTYMATCHING_JOIN_REQ)aRecv,aIndex); break; case 0x03: DGPartyMatchWaitInfo((LPMSG_PARTYMATCHING_WAIT_REQ)aRecv,aIndex); break; case 0x04: DGPartyMatchReqList((PARTYMATCH_GDREQ_REQUESTLIST*)aRecv, aIndex); break; case 0x05: DGPartyMatchRequestAnswer((PARTYMATCH_GDREQ_REQUESTANSWER*)aRecv, aIndex); break; case 0x06: DGPartyMatchCancel((LPMSG_PARTYMATCHING_CANCEL_REQ)aRecv,aIndex); break; case 0x07: GDPartyMatchUpdateStatus((PARTYMATCH_GDREQ_UPDATESTATUS*)aRecv); break; } } break; case 0xED: { PBMSG_HEAD2* lpHead = (PBMSG_HEAD2*)aRecv; // ---- switch(lpHead->subcode) { case 0x00: g_GuildClass.GDReqOfferList(aIndex, (GUILDMATCH_GDREQ_OFFERLIST*)aRecv); break; case 0x01: g_GuildClass.GDReqOfferListByFilter(aIndex, (GUILDMATCH_GDREQ_OFFERLISTFILTER*)aRecv); break; case 0x02: g_GuildClass.GDReqOfferCreate(aIndex, (GUILDMATCH_GDREQ_OFFERCREATE*)aRecv); break; case 0x03: g_GuildClass.GDReqOfferDelete(aIndex, (GUILDMATCH_GDREQ_OFFERDELETE*)aRecv); break; case 0x04: g_GuildClass.GDReqJoinReqAdd(aIndex, (GUILDMATCH_GDREQ_JOINREQ*)aRecv); break; case 0x05: g_GuildClass.GDReqJoinReqDelete(aIndex, (GUILDMATCH_GDREQ_JOINREQSTATUS*)aRecv); break; case 0x06: g_GuildClass.GDReqJoinReqAnswer(aIndex, (GUILDMATCH_GDREQ_REQUESTANSWER*)aRecv); break; case 0x07: g_GuildClass.GDReqJoinReqList(aIndex, (GUILDMATCH_GDREQ_REQUESTLIST*)aRecv); break; case 0x08: g_GuildClass.GDReqJoinReqStatus(aIndex, (GUILDMATCH_GDREQ_JOINREQSTATUS*)aRecv); break; } } break; case 0xFD: { PBMSG_HEAD2* lpHead = (PBMSG_HEAD2*)aRecv; // ---- switch(lpHead->subcode) { case 0x04: DBRecvVaultInfo((LPMSG_VAULT_INFO)aRecv,aIndex); break; } } break; case 0xFE: { PBMSG_HEAD2* lpHead = (PBMSG_HEAD2*)aRecv; // ---- switch(lpHead->subcode) { case 0: GD_HardcoreModeActivate((GD_HardcoreMode_Activate*)aRecv, aIndex); break; } } break; } // g_ServerInfoDisplayer.SetState(FALSE,gSObj[aIndex].SType); }
void DSProtocolCore(DServerManager *thisManager,int aIndex,byte HeadCode,byte *aRecv,int iSize) { switch (HeadCode) { case 0x00: DataServerLogin(thisManager,aIndex,(SDHP_SERVERINFO *)aRecv); break; case 0x01: //JGPGetCharList(thisManager,aIndex,(SDHP_GETCHARLIST *)aRecv); break; case 0x04: //JGCharacterCreateRequest(thisManager,aIndex,(SDHP_CHEATECHAR *)aRecv); break; case 0x05: //JGCharDelRequest(thisManager,aIndex,(SDHP_CHARDELETE *)aRecv); break; case 0x06: //JGGetCharacterInfo(thisManager,aIndex,(SDHP_DBCHARINFOREQUEST *)aRecv); break; case 0x07: //GJSetCharacterInfo(thisManager,aIndex,(SDHP_DBCHAR_INFOSAVE *)aRecv); break; case 0x08: break; case 0x09: break; case 0x11: break; case 0x12: break; case 0x13: break; case 0x14: break; case 0x52: break; case 0x55: break; case 0x56: break; case 0x57: break; case 0x60: break; case 0x80: break; case 0x81: break; case 0x83: break; case 0x84: break; case 0x85: break; case 0x86: break; case 0x87: break; case 0x88: break; case 0x89: break; case 0xB0: break; case 0xB1: break; case 0xCF: break; } }