Ejemplo n.º 1
0
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);
		}
	}
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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;
    }
}